From 94e095032a1ac1a502a10893ff176553bcc45483 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 6 Oct 2020 15:30:16 +0700 Subject: [PATCH 01/56] modify package.json to prepare for release --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 3d57d55..2c92d40 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "web-digraph", - "version": "1.0.0", + "version": "0.1.0", "description": "A web component to create directed graph editor.", - "main": "dist/index.js", - "types": "dist/index.d.ts", "repository": { "url": "https://github.com/harchcode/web-digraph" }, - "keywords": [], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "keywords": ["graph", "digraph"], "license": "MIT", "scripts": { "dev:example": "parcel src/example/index.html --port 1234 --hmr-port 1235", From 97074a48f9f4302d0ac97bf9344b5213ea2de0b1 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 13 Oct 2020 09:58:26 +0700 Subject: [PATCH 02/56] fix package description --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2c92d40..b6a92fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "web-digraph", "version": "0.1.0", - "description": "A web component to create directed graph editor.", + "description": "A library to create directed graph editor on the web.", "repository": { "url": "https://github.com/harchcode/web-digraph" }, From 6a877f1329a2bd9eace69203223f1b12e6f591b4 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 13 Oct 2020 09:58:50 +0700 Subject: [PATCH 03/56] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6a92fd..4ae6c4d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "web-digraph", - "version": "0.1.0", + "version": "0.1.1", "description": "A library to create directed graph editor on the web.", "repository": { "url": "https://github.com/harchcode/web-digraph" From 447012f1f5b878c840aa8325e54e758925030cf9 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 2 Apr 2022 21:41:56 +0700 Subject: [PATCH 04/56] update package and use tsdx --- .cache/05/db7a47489528a4520720c6b723d48c.json | 1 + .cache/17/5dc020bbff5329b93b5244c56ccb55.json | 1 + .cache/18/2b115ee70b2bcead4c63e6276c075e.json | 1 + .cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json | 1 + .cache/56/a5e5810e9f1bf24cc69cd25889e30f.json | 1 + .cache/6a/fe7693a37c74e8fe750eea0303096a.json | 1 + .cache/8a/45b276546564a899bc98d01c1485d1.json | 1 + .cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json | 1 + .cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json | 1 + .cache/a8/346376fc3bacab5e9b27a7d40d0396.json | 1 + .cache/b8/64c6455411c25dcfe047430f377131.json | 1 + .cache/c8/311f5b0fe21736d57e08222dbdaf1b.json | 1 + .cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json | 1 + .cache/f5/b28d209f209bcff4b5b54fdda998f3.json | 1 + .cache/fd/e02fd302f16baaafc5facbaaf5d11c.json | 1 + .cache/ff/924b57b58436315cf5fc93aa4d4655.json | 1 + .eslintignore | 6 +- .eslintrc.js | 56 +- .github/workflows/main.yml | 41 + .github/workflows/release.yml | 34 + .gitignore | 37 +- .husky/pre-commit | 4 + .prettierrc.js | 19 +- .vscode/settings.json | 16 +- package-lock.json | 15160 +++++++++------- package.json | 82 +- tsconfig.json | 37 +- 27 files changed, 9216 insertions(+), 6292 deletions(-) create mode 100644 .cache/05/db7a47489528a4520720c6b723d48c.json create mode 100644 .cache/17/5dc020bbff5329b93b5244c56ccb55.json create mode 100644 .cache/18/2b115ee70b2bcead4c63e6276c075e.json create mode 100644 .cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json create mode 100644 .cache/56/a5e5810e9f1bf24cc69cd25889e30f.json create mode 100644 .cache/6a/fe7693a37c74e8fe750eea0303096a.json create mode 100644 .cache/8a/45b276546564a899bc98d01c1485d1.json create mode 100644 .cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json create mode 100644 .cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json create mode 100644 .cache/a8/346376fc3bacab5e9b27a7d40d0396.json create mode 100644 .cache/b8/64c6455411c25dcfe047430f377131.json create mode 100644 .cache/c8/311f5b0fe21736d57e08222dbdaf1b.json create mode 100644 .cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json create mode 100644 .cache/f5/b28d209f209bcff4b5b54fdda998f3.json create mode 100644 .cache/fd/e02fd302f16baaafc5facbaaf5d11c.json create mode 100644 .cache/ff/924b57b58436315cf5fc93aa4d4655.json create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/release.yml create mode 100755 .husky/pre-commit diff --git a/.cache/05/db7a47489528a4520720c6b723d48c.json b/.cache/05/db7a47489528a4520720c6b723d48c.json new file mode 100644 index 0000000..3c10523 --- /dev/null +++ b/.cache/05/db7a47489528a4520720c6b723d48c.json @@ -0,0 +1 @@ +{"id":"nodeTypes.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1601972876654},{"name":"../types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/nodeTypes.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.edgeTypes = exports.nodeTypes = void 0;\n\nvar types_1 = require(\"../types\");\n\nexports.nodeTypes = {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }],\n decision: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }],\n unknown: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -80], [80, 0], [0, 80], [-80, 0]]\n }],\n complex: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }]\n};\nexports.edgeTypes = {\n normal: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -25], [25, 0], [0, 25], [-25, 0]]\n }],\n round: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25\n }],\n double: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }]\n};"},"sourceMaps":{"js":{"mappings":[{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":10,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":7},"generated":{"line":11,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":11,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":11,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":11},"generated":{"line":12,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":12,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":12,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":7},"generated":{"line":13,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":9},"generated":{"line":13,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":14,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":14,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":14,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":10},"generated":{"line":15,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":15,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":15,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":11},"generated":{"line":16,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":25},"generated":{"line":16,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":16,"column":40}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":11},"generated":{"line":17,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":13},"generated":{"line":17,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":17,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":12},"generated":{"line":18,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":18,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":19,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":19,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":19,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":20,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":20,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":20,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":21,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":21,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":12},"generated":{"line":22,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":22,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":15}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":22,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":22,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":23}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":9},"generated":{"line":22,"column":24}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":26}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":22,"column":28}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":29}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":9},"generated":{"line":22,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":34}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":12},"generated":{"line":22,"column":36}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":39}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":41}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":22,"column":42}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":22,"column":43}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":45}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":14},"generated":{"line":22,"column":47}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":48}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":49}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":23,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":23,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":23,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":24,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":24,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":24,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":11},"generated":{"line":25,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":25},"generated":{"line":25,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":25,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":7},"generated":{"line":26,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":26,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":27,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":27,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":27,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":11},"generated":{"line":28,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":25},"generated":{"line":28,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":28,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":7},"generated":{"line":29,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":29,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":30,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":13},"generated":{"line":30,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":31,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":31,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":31,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":32,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":25},"generated":{"line":32,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":32,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":7},"generated":{"line":33,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":33,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":33,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":11},"generated":{"line":34,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":13},"generated":{"line":34,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":35,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":35,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":36,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":36,"column":1}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":37,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":38,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":38,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":38,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":39,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":25},"generated":{"line":39,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":39,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":40,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":40,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":15}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":40,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":13},"generated":{"line":40,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":23}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":40,"column":24}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":26}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":40,"column":28}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":29}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":40,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":34}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":40,"column":36}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":39}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":41}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":40,"column":42}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":40,"column":43}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":45}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":14},"generated":{"line":40,"column":47}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":48}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":49}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":41,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":41,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":41,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":7},"generated":{"line":42,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":42,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":42,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":11},"generated":{"line":43,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":25},"generated":{"line":43,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":43,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":7},"generated":{"line":44,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":9},"generated":{"line":44,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":45,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":45,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":45,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":8},"generated":{"line":46,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":46,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":46,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":47,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":25},"generated":{"line":47,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":47,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":7},"generated":{"line":48,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":48,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":48,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":11},"generated":{"line":49,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":49,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":50,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":50,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":50,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":51,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":25},"generated":{"line":51,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":51,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":52,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":52,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":52,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":11},"generated":{"line":53,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":13},"generated":{"line":53,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":54,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":54,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":55,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":55,"column":1}}],"sources":{"nodeTypes.ts":"import { GEShapeTypes, GEShapeName } from \"../types\";\n\nexport const nodeTypes: GEShapeTypes = {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ],\n decision: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }\n ],\n unknown: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -80],\n [80, 0],\n [0, 80],\n [-80, 0]\n ]\n }\n ],\n complex: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }\n ]\n};\n\nexport const edgeTypes: GEShapeTypes = {\n normal: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -25],\n [25, 0],\n [0, 25],\n [-25, 0]\n ]\n }\n ],\n round: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25\n }\n ],\n double: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }\n ]\n};\n"},"lineCount":null}},"error":null,"hash":"497a4137cd0e233456586674549ea60e","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/17/5dc020bbff5329b93b5244c56ccb55.json b/.cache/17/5dc020bbff5329b93b5244c56ccb55.json new file mode 100644 index 0000000..88be571 --- /dev/null +++ b/.cache/17/5dc020bbff5329b93b5244c56ccb55.json @@ -0,0 +1 @@ +{"id":"index.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"../index","loc":{"line":10,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/index.ts"},{"name":"./node-types","loc":{"line":11,"column":27},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/example/node-types.ts"},{"name":"./utils","loc":{"line":12,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/example/utils.ts"}],"generated":{"js":"\"use strict\";\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar index_1 = require(\"../index\");\n\nvar node_types_1 = require(\"./node-types\");\n\nvar utils_1 = require(\"./utils\");\n\nvar graphDiv = document.getElementById(\"graph\");\nvar nodeCountSpan = document.getElementById(\"node-count-span\");\nvar edgeCountSpan = document.getElementById(\"edge-count-span\");\nvar zoomSlider = document.getElementById(\"zoom-slider\");\nvar generateTextbox = document.getElementById(\"generate-textbox\");\nvar generateButton = document.getElementById(\"generate-button\");\nvar nodes = [];\nvar edges = [];\nvar lastId = 0;\nvar graphView = new index_1.GEView();\n\nfunction updateNodeCount() {\n nodeCountSpan.innerHTML = nodes.length.toString();\n}\n\nfunction updateEdgeCount() {\n edgeCountSpan.innerHTML = edges.length.toString();\n}\n\nfunction handleCreateNode(x, y) {\n lastId += 1;\n var newNode = {\n id: lastId,\n x: x,\n y: y,\n type: \"empty\",\n text: \"Node ID: \" + lastId\n };\n nodes = __spreadArrays(nodes, [newNode]);\n graphView.setData(nodes, edges);\n updateNodeCount();\n}\n\nfunction handleCreateEdge(sourceNode, targetNode) {\n lastId += 1;\n var newEdge = {\n id: lastId,\n sourceNode: sourceNode,\n targetNode: targetNode,\n type: \"normal\",\n text: lastId.toString()\n };\n edges = __spreadArrays(edges, [newEdge]);\n graphView.setData(nodes, edges);\n updateEdgeCount();\n}\n\nfunction handleDeleteNode(node) {\n nodes = nodes.filter(function (n) {\n return n !== node;\n });\n edges = edges.filter(function (e) {\n return e.sourceNode !== node && e.targetNode !== node;\n });\n graphView.setData(nodes, edges);\n updateNodeCount();\n updateEdgeCount();\n}\n\nfunction handleDeleteEdge(edge) {\n edges = edges.filter(function (e) {\n return e.id !== edge.id;\n });\n graphView.setData(nodes, edges);\n updateEdgeCount();\n}\n\nfunction handleMoveNode(node, newX, newY) {\n node.x = newX;\n node.y = newY;\n}\n\nfunction handleViewZoom() {\n zoomSlider.value = graphView.getScale().toString();\n}\n\ngraphView.setOptions({\n minScale: 0.2,\n maxScale: 3.0,\n nodeTypes: node_types_1.nodeTypes,\n edgeTypes: node_types_1.edgeTypes,\n onViewZoom: handleViewZoom,\n onCreateNode: handleCreateNode,\n onCreateEdge: handleCreateEdge,\n onDeleteNode: handleDeleteNode,\n onDeleteEdge: handleDeleteEdge,\n onMoveNode: handleMoveNode\n});\ngraphView.init(graphDiv);\nwindow.addEventListener(\"resize\", function () {\n graphView.resize(window.innerWidth, window.innerHeight);\n});\nzoomSlider.addEventListener(\"input\", function (e) {\n var target = e.target;\n graphView.zoomTo(Number(target.value));\n});\ngenerateButton.addEventListener(\"click\", function () {\n var value = parseInt(generateTextbox.value, 10);\n var columns = Math.ceil(Math.sqrt(value));\n var r = utils_1.randomize(value, columns);\n lastId = r.lastId;\n nodes = r.nodes;\n edges = r.edges;\n graphView.setData(r.nodes, r.edges);\n updateNodeCount();\n updateEdgeCount();\n});"},"sourceMaps":{"js":{"mappings":[{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":0}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":4}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":11}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":14}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":21}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":22}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":32}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":33}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":0}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":4}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":16}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":19}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":26}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":27}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":41}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":42}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":0}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":4}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":11}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":14}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":21}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":22}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":31}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":32}},{"source":"index.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":27,"column":0}},{"source":"index.ts","name":null,"original":{"line":5,"column":6},"generated":{"line":27,"column":4}},{"source":"index.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":27,"column":12}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":15}},{"source":"index.ts","name":null,"original":{"line":5,"column":25},"generated":{"line":27,"column":23}},{"source":"index.ts","name":null,"original":{"line":5,"column":26},"generated":{"line":27,"column":24}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":38}},{"source":"index.ts","name":null,"original":{"line":5,"column":41},"generated":{"line":27,"column":39}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":46}},{"source":"index.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":27,"column":47}},{"source":"index.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":28,"column":0}},{"source":"index.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":28,"column":4}},{"source":"index.ts","name":null,"original":{"line":6,"column":19},"generated":{"line":28,"column":17}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":20}},{"source":"index.ts","name":null,"original":{"line":6,"column":30},"generated":{"line":28,"column":28}},{"source":"index.ts","name":null,"original":{"line":6,"column":31},"generated":{"line":28,"column":29}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":43}},{"source":"index.ts","name":null,"original":{"line":6,"column":46},"generated":{"line":28,"column":44}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":61}},{"source":"index.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":28,"column":62}},{"source":"index.ts","name":null,"original":{"line":7,"column":0},"generated":{"line":29,"column":0}},{"source":"index.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":29,"column":4}},{"source":"index.ts","name":null,"original":{"line":7,"column":19},"generated":{"line":29,"column":17}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":20}},{"source":"index.ts","name":null,"original":{"line":7,"column":30},"generated":{"line":29,"column":28}},{"source":"index.ts","name":null,"original":{"line":7,"column":31},"generated":{"line":29,"column":29}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":43}},{"source":"index.ts","name":null,"original":{"line":7,"column":46},"generated":{"line":29,"column":44}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":61}},{"source":"index.ts","name":null,"original":{"line":7,"column":0},"generated":{"line":29,"column":62}},{"source":"index.ts","name":null,"original":{"line":8,"column":0},"generated":{"line":30,"column":0}},{"source":"index.ts","name":null,"original":{"line":8,"column":6},"generated":{"line":30,"column":4}},{"source":"index.ts","name":null,"original":{"line":8,"column":16},"generated":{"line":30,"column":14}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":17}},{"source":"index.ts","name":null,"original":{"line":8,"column":27},"generated":{"line":30,"column":25}},{"source":"index.ts","name":null,"original":{"line":8,"column":28},"generated":{"line":30,"column":26}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":40}},{"source":"index.ts","name":null,"original":{"line":8,"column":43},"generated":{"line":30,"column":41}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":54}},{"source":"index.ts","name":null,"original":{"line":8,"column":0},"generated":{"line":30,"column":55}},{"source":"index.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":31,"column":0}},{"source":"index.ts","name":null,"original":{"line":9,"column":6},"generated":{"line":31,"column":4}},{"source":"index.ts","name":null,"original":{"line":9,"column":21},"generated":{"line":31,"column":19}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":22}},{"source":"index.ts","name":null,"original":{"line":9,"column":32},"generated":{"line":31,"column":30}},{"source":"index.ts","name":null,"original":{"line":9,"column":33},"generated":{"line":31,"column":31}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":45}},{"source":"index.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":31,"column":46}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":64}},{"source":"index.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":31,"column":65}},{"source":"index.ts","name":null,"original":{"line":12,"column":0},"generated":{"line":32,"column":0}},{"source":"index.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":32,"column":4}},{"source":"index.ts","name":null,"original":{"line":12,"column":20},"generated":{"line":32,"column":18}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":21}},{"source":"index.ts","name":null,"original":{"line":12,"column":31},"generated":{"line":32,"column":29}},{"source":"index.ts","name":null,"original":{"line":12,"column":32},"generated":{"line":32,"column":30}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":44}},{"source":"index.ts","name":null,"original":{"line":12,"column":47},"generated":{"line":32,"column":45}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":62}},{"source":"index.ts","name":null,"original":{"line":12,"column":0},"generated":{"line":32,"column":63}},{"source":"index.ts","name":null,"original":{"line":14,"column":0},"generated":{"line":33,"column":0}},{"source":"index.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":33,"column":4}},{"source":"index.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":33,"column":9}},{"source":"index.ts","name":null,"original":{"line":14,"column":22},"generated":{"line":33,"column":12}},{"source":"index.ts","name":null,"original":{"line":14,"column":0},"generated":{"line":33,"column":14}},{"source":"index.ts","name":null,"original":{"line":15,"column":0},"generated":{"line":34,"column":0}},{"source":"index.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":34,"column":4}},{"source":"index.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":34,"column":9}},{"source":"index.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":34,"column":12}},{"source":"index.ts","name":null,"original":{"line":15,"column":0},"generated":{"line":34,"column":14}},{"source":"index.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":35,"column":0}},{"source":"index.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":35,"column":4}},{"source":"index.ts","name":null,"original":{"line":16,"column":10},"generated":{"line":35,"column":10}},{"source":"index.ts","name":null,"original":{"line":16,"column":13},"generated":{"line":35,"column":13}},{"source":"index.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":35,"column":14}},{"source":"index.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":36,"column":0}},{"source":"index.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":36,"column":4}},{"source":"index.ts","name":null,"original":{"line":18,"column":15},"generated":{"line":36,"column":13}},{"source":"index.ts","name":null,"original":{"line":18,"column":18},"generated":{"line":36,"column":16}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":20}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":27}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":28}},{"source":"index.ts","name":null,"original":{"line":18,"column":18},"generated":{"line":36,"column":34}},{"source":"index.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":36,"column":36}},{"source":"index.ts","name":null,"original":{"line":20,"column":0},"generated":{"line":38,"column":0}},{"source":"index.ts","name":null,"original":{"line":20,"column":9},"generated":{"line":38,"column":9}},{"source":"index.ts","name":null,"original":{"line":20,"column":0},"generated":{"line":38,"column":24}},{"source":"index.ts","name":null,"original":{"line":20,"column":24},"generated":{"line":38,"column":27}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":0}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":2}},{"source":"index.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":39,"column":15}},{"source":"index.ts","name":null,"original":{"line":21,"column":16},"generated":{"line":39,"column":16}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":25}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":28}},{"source":"index.ts","name":null,"original":{"line":21,"column":33},"generated":{"line":39,"column":33}},{"source":"index.ts","name":null,"original":{"line":21,"column":34},"generated":{"line":39,"column":34}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":40}},{"source":"index.ts","name":null,"original":{"line":21,"column":41},"generated":{"line":39,"column":41}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":49}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":51}},{"source":"index.ts","name":null,"original":{"line":22,"column":1},"generated":{"line":40,"column":0}},{"source":"index.ts","name":null,"original":{"line":24,"column":0},"generated":{"line":42,"column":0}},{"source":"index.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":42,"column":9}},{"source":"index.ts","name":null,"original":{"line":24,"column":0},"generated":{"line":42,"column":24}},{"source":"index.ts","name":null,"original":{"line":24,"column":24},"generated":{"line":42,"column":27}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":0}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":2}},{"source":"index.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":43,"column":15}},{"source":"index.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":43,"column":16}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":25}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":28}},{"source":"index.ts","name":null,"original":{"line":25,"column":33},"generated":{"line":43,"column":33}},{"source":"index.ts","name":null,"original":{"line":25,"column":34},"generated":{"line":43,"column":34}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":40}},{"source":"index.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":43,"column":41}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":49}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":51}},{"source":"index.ts","name":null,"original":{"line":26,"column":1},"generated":{"line":44,"column":0}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":0}},{"source":"index.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":46,"column":9}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":25}},{"source":"index.ts","name":null,"original":{"line":28,"column":26},"generated":{"line":46,"column":26}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":27}},{"source":"index.ts","name":null,"original":{"line":28,"column":37},"generated":{"line":46,"column":29}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":30}},{"source":"index.ts","name":null,"original":{"line":28,"column":46},"generated":{"line":46,"column":32}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":0}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":2}},{"source":"index.ts","name":null,"original":{"line":29,"column":8},"generated":{"line":47,"column":8}},{"source":"index.ts","name":null,"original":{"line":29,"column":12},"generated":{"line":47,"column":12}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":13}},{"source":"index.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":48,"column":0}},{"source":"index.ts","name":null,"original":{"line":31,"column":8},"generated":{"line":48,"column":6}},{"source":"index.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":48,"column":13}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":48,"column":16}},{"source":"index.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":49,"column":0}},{"source":"index.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":49,"column":4}},{"source":"index.ts","name":null,"original":{"line":32,"column":6},"generated":{"line":49,"column":6}},{"source":"index.ts","name":null,"original":{"line":32,"column":8},"generated":{"line":49,"column":8}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":49,"column":14}},{"source":"index.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":50,"column":0}},{"source":"index.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":50,"column":4}},{"source":"index.ts","name":null,"original":{"line":33,"column":5},"generated":{"line":50,"column":5}},{"source":"index.ts","name":null,"original":{"line":33,"column":5},"generated":{"line":50,"column":7}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":50,"column":8}},{"source":"index.ts","name":null,"original":{"line":34,"column":4},"generated":{"line":51,"column":0}},{"source":"index.ts","name":null,"original":{"line":34,"column":4},"generated":{"line":51,"column":4}},{"source":"index.ts","name":null,"original":{"line":34,"column":5},"generated":{"line":51,"column":5}},{"source":"index.ts","name":null,"original":{"line":34,"column":5},"generated":{"line":51,"column":7}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":51,"column":8}},{"source":"index.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":52,"column":0}},{"source":"index.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":52,"column":4}},{"source":"index.ts","name":null,"original":{"line":35,"column":8},"generated":{"line":52,"column":8}},{"source":"index.ts","name":null,"original":{"line":35,"column":10},"generated":{"line":52,"column":10}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":52,"column":17}},{"source":"index.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":53,"column":0}},{"source":"index.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":53,"column":4}},{"source":"index.ts","name":null,"original":{"line":36,"column":8},"generated":{"line":53,"column":8}},{"source":"index.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":53,"column":10}},{"source":"index.ts","name":null,"original":{"line":36,"column":22},"generated":{"line":53,"column":24}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":54,"column":0}},{"source":"index.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":54,"column":3}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":0}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":2}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":7}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":10}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":24}},{"source":"index.ts","name":null,"original":{"line":39,"column":14},"generated":{"line":55,"column":25}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":30}},{"source":"index.ts","name":null,"original":{"line":39,"column":19},"generated":{"line":55,"column":32}},{"source":"index.ts","name":null,"original":{"line":39,"column":21},"generated":{"line":55,"column":33}},{"source":"index.ts","name":null,"original":{"line":39,"column":19},"generated":{"line":55,"column":40}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":41}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":42}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":0}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":2}},{"source":"index.ts","name":null,"original":{"line":40,"column":11},"generated":{"line":56,"column":11}},{"source":"index.ts","name":null,"original":{"line":40,"column":12},"generated":{"line":56,"column":12}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":19}},{"source":"index.ts","name":null,"original":{"line":40,"column":20},"generated":{"line":56,"column":20}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":25}},{"source":"index.ts","name":null,"original":{"line":40,"column":27},"generated":{"line":56,"column":27}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":32}},{"source":"index.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":57,"column":0}},{"source":"index.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":57,"column":2}},{"source":"index.ts","name":null,"original":{"line":42,"column":17},"generated":{"line":57,"column":17}},{"source":"index.ts","name":null,"original":{"line":43,"column":1},"generated":{"line":58,"column":0}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":0}},{"source":"index.ts","name":null,"original":{"line":45,"column":9},"generated":{"line":60,"column":9}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":25}},{"source":"index.ts","name":null,"original":{"line":45,"column":26},"generated":{"line":60,"column":26}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":36}},{"source":"index.ts","name":null,"original":{"line":45,"column":46},"generated":{"line":60,"column":38}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":48}},{"source":"index.ts","name":null,"original":{"line":45,"column":64},"generated":{"line":60,"column":50}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":0}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":2}},{"source":"index.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":61,"column":8}},{"source":"index.ts","name":null,"original":{"line":46,"column":12},"generated":{"line":61,"column":12}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":13}},{"source":"index.ts","name":null,"original":{"line":48,"column":2},"generated":{"line":62,"column":0}},{"source":"index.ts","name":null,"original":{"line":48,"column":8},"generated":{"line":62,"column":6}},{"source":"index.ts","name":null,"original":{"line":48,"column":15},"generated":{"line":62,"column":13}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":62,"column":16}},{"source":"index.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":63,"column":0}},{"source":"index.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":63,"column":4}},{"source":"index.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":63,"column":6}},{"source":"index.ts","name":null,"original":{"line":49,"column":8},"generated":{"line":63,"column":8}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":63,"column":14}},{"source":"index.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":64,"column":0}},{"source":"index.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":64,"column":4}},{"source":"index.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":64,"column":14}},{"source":"index.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":64,"column":16}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":64,"column":26}},{"source":"index.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":65,"column":0}},{"source":"index.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":65,"column":4}},{"source":"index.ts","name":null,"original":{"line":51,"column":14},"generated":{"line":65,"column":14}},{"source":"index.ts","name":null,"original":{"line":51,"column":14},"generated":{"line":65,"column":16}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":65,"column":26}},{"source":"index.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":66,"column":0}},{"source":"index.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":66,"column":4}},{"source":"index.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":66,"column":8}},{"source":"index.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":66,"column":10}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":66,"column":18}},{"source":"index.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":67,"column":0}},{"source":"index.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":67,"column":4}},{"source":"index.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":67,"column":8}},{"source":"index.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":67,"column":10}},{"source":"index.ts","name":null,"original":{"line":53,"column":16},"generated":{"line":67,"column":16}},{"source":"index.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":67,"column":17}},{"source":"index.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":67,"column":25}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":68,"column":0}},{"source":"index.ts","name":null,"original":{"line":48,"column":2},"generated":{"line":68,"column":3}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":0}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":2}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":7}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":10}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":24}},{"source":"index.ts","name":null,"original":{"line":56,"column":14},"generated":{"line":69,"column":25}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":30}},{"source":"index.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":69,"column":32}},{"source":"index.ts","name":null,"original":{"line":56,"column":21},"generated":{"line":69,"column":33}},{"source":"index.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":69,"column":40}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":41}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":42}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":0}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":2}},{"source":"index.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":70,"column":11}},{"source":"index.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":70,"column":12}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":19}},{"source":"index.ts","name":null,"original":{"line":57,"column":20},"generated":{"line":70,"column":20}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":25}},{"source":"index.ts","name":null,"original":{"line":57,"column":27},"generated":{"line":70,"column":27}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":32}},{"source":"index.ts","name":null,"original":{"line":59,"column":2},"generated":{"line":71,"column":0}},{"source":"index.ts","name":null,"original":{"line":59,"column":2},"generated":{"line":71,"column":2}},{"source":"index.ts","name":null,"original":{"line":59,"column":17},"generated":{"line":71,"column":17}},{"source":"index.ts","name":null,"original":{"line":60,"column":1},"generated":{"line":72,"column":0}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":0}},{"source":"index.ts","name":null,"original":{"line":62,"column":9},"generated":{"line":74,"column":9}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":25}},{"source":"index.ts","name":null,"original":{"line":62,"column":26},"generated":{"line":74,"column":26}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":30}},{"source":"index.ts","name":null,"original":{"line":62,"column":38},"generated":{"line":74,"column":32}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":75,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":75,"column":2}},{"source":"index.ts","name":null,"original":{"line":63,"column":7},"generated":{"line":75,"column":7}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":75,"column":10}},{"source":"index.ts","name":null,"original":{"line":63,"column":15},"generated":{"line":75,"column":15}},{"source":"index.ts","name":null,"original":{"line":63,"column":16},"generated":{"line":75,"column":16}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":75,"column":22}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":23}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":33}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":34}},{"source":"index.ts","name":null,"original":{"line":63,"column":24},"generated":{"line":75,"column":36}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":11}},{"source":"index.ts","name":null,"original":{"line":63,"column":29},"generated":{"line":76,"column":12}},{"source":"index.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":76,"column":17}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":21}},{"source":"index.ts","name":null,"original":{"line":63,"column":38},"generated":{"line":77,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":77,"column":3}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":77,"column":4}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":78,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":78,"column":2}},{"source":"index.ts","name":null,"original":{"line":64,"column":7},"generated":{"line":78,"column":7}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":78,"column":10}},{"source":"index.ts","name":null,"original":{"line":64,"column":15},"generated":{"line":78,"column":15}},{"source":"index.ts","name":null,"original":{"line":64,"column":16},"generated":{"line":78,"column":16}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":78,"column":22}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":23}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":33}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":34}},{"source":"index.ts","name":null,"original":{"line":64,"column":24},"generated":{"line":78,"column":36}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":11}},{"source":"index.ts","name":null,"original":{"line":64,"column":29},"generated":{"line":79,"column":12}},{"source":"index.ts","name":null,"original":{"line":64,"column":30},"generated":{"line":79,"column":13}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":23}},{"source":"index.ts","name":null,"original":{"line":64,"column":45},"generated":{"line":79,"column":28}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":32}},{"source":"index.ts","name":null,"original":{"line":64,"column":53},"generated":{"line":79,"column":36}},{"source":"index.ts","name":null,"original":{"line":64,"column":54},"generated":{"line":79,"column":37}},{"source":"index.ts","name":null,"original":{"line":64,"column":55},"generated":{"line":79,"column":38}},{"source":"index.ts","name":null,"original":{"line":64,"column":53},"generated":{"line":79,"column":48}},{"source":"index.ts","name":null,"original":{"line":64,"column":70},"generated":{"line":79,"column":53}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":57}},{"source":"index.ts","name":null,"original":{"line":64,"column":74},"generated":{"line":80,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":80,"column":3}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":80,"column":4}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":0}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":2}},{"source":"index.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":81,"column":11}},{"source":"index.ts","name":null,"original":{"line":66,"column":12},"generated":{"line":81,"column":12}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":19}},{"source":"index.ts","name":null,"original":{"line":66,"column":20},"generated":{"line":81,"column":20}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":25}},{"source":"index.ts","name":null,"original":{"line":66,"column":27},"generated":{"line":81,"column":27}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":32}},{"source":"index.ts","name":null,"original":{"line":68,"column":2},"generated":{"line":82,"column":0}},{"source":"index.ts","name":null,"original":{"line":68,"column":2},"generated":{"line":82,"column":2}},{"source":"index.ts","name":null,"original":{"line":68,"column":17},"generated":{"line":82,"column":17}},{"source":"index.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":83,"column":0}},{"source":"index.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":83,"column":2}},{"source":"index.ts","name":null,"original":{"line":69,"column":17},"generated":{"line":83,"column":17}},{"source":"index.ts","name":null,"original":{"line":70,"column":1},"generated":{"line":84,"column":0}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":0}},{"source":"index.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":86,"column":9}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":25}},{"source":"index.ts","name":null,"original":{"line":72,"column":26},"generated":{"line":86,"column":26}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":30}},{"source":"index.ts","name":null,"original":{"line":72,"column":38},"generated":{"line":86,"column":32}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":87,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":87,"column":2}},{"source":"index.ts","name":null,"original":{"line":73,"column":7},"generated":{"line":87,"column":7}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":87,"column":10}},{"source":"index.ts","name":null,"original":{"line":73,"column":15},"generated":{"line":87,"column":15}},{"source":"index.ts","name":null,"original":{"line":73,"column":16},"generated":{"line":87,"column":16}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":87,"column":22}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":23}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":33}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":34}},{"source":"index.ts","name":null,"original":{"line":73,"column":24},"generated":{"line":87,"column":36}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":11}},{"source":"index.ts","name":null,"original":{"line":73,"column":29},"generated":{"line":88,"column":12}},{"source":"index.ts","name":null,"original":{"line":73,"column":30},"generated":{"line":88,"column":13}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":15}},{"source":"index.ts","name":null,"original":{"line":73,"column":37},"generated":{"line":88,"column":20}},{"source":"index.ts","name":null,"original":{"line":73,"column":41},"generated":{"line":88,"column":24}},{"source":"index.ts","name":null,"original":{"line":73,"column":42},"generated":{"line":88,"column":25}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":27}},{"source":"index.ts","name":null,"original":{"line":73,"column":44},"generated":{"line":89,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":89,"column":3}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":89,"column":4}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":0}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":2}},{"source":"index.ts","name":null,"original":{"line":75,"column":11},"generated":{"line":90,"column":11}},{"source":"index.ts","name":null,"original":{"line":75,"column":12},"generated":{"line":90,"column":12}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":19}},{"source":"index.ts","name":null,"original":{"line":75,"column":20},"generated":{"line":90,"column":20}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":25}},{"source":"index.ts","name":null,"original":{"line":75,"column":27},"generated":{"line":90,"column":27}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":32}},{"source":"index.ts","name":null,"original":{"line":77,"column":2},"generated":{"line":91,"column":0}},{"source":"index.ts","name":null,"original":{"line":77,"column":2},"generated":{"line":91,"column":2}},{"source":"index.ts","name":null,"original":{"line":77,"column":17},"generated":{"line":91,"column":17}},{"source":"index.ts","name":null,"original":{"line":78,"column":1},"generated":{"line":92,"column":0}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":0}},{"source":"index.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":94,"column":9}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":23}},{"source":"index.ts","name":null,"original":{"line":80,"column":24},"generated":{"line":94,"column":24}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":28}},{"source":"index.ts","name":null,"original":{"line":80,"column":38},"generated":{"line":94,"column":30}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":34}},{"source":"index.ts","name":null,"original":{"line":80,"column":52},"generated":{"line":94,"column":36}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":40}},{"source":"index.ts","name":null,"original":{"line":80,"column":64},"generated":{"line":94,"column":42}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":0}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":2}},{"source":"index.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":95,"column":6}},{"source":"index.ts","name":null,"original":{"line":81,"column":7},"generated":{"line":95,"column":7}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":8}},{"source":"index.ts","name":null,"original":{"line":81,"column":11},"generated":{"line":95,"column":11}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":15}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":0}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":2}},{"source":"index.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":96,"column":6}},{"source":"index.ts","name":null,"original":{"line":82,"column":7},"generated":{"line":96,"column":7}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":8}},{"source":"index.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":96,"column":11}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":15}},{"source":"index.ts","name":null,"original":{"line":83,"column":1},"generated":{"line":97,"column":0}},{"source":"index.ts","name":null,"original":{"line":85,"column":0},"generated":{"line":99,"column":0}},{"source":"index.ts","name":null,"original":{"line":85,"column":9},"generated":{"line":99,"column":9}},{"source":"index.ts","name":null,"original":{"line":85,"column":0},"generated":{"line":99,"column":23}},{"source":"index.ts","name":null,"original":{"line":85,"column":23},"generated":{"line":99,"column":26}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":0}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":2}},{"source":"index.ts","name":null,"original":{"line":86,"column":12},"generated":{"line":100,"column":12}},{"source":"index.ts","name":null,"original":{"line":86,"column":13},"generated":{"line":100,"column":13}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":18}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":21}},{"source":"index.ts","name":null,"original":{"line":86,"column":30},"generated":{"line":100,"column":30}},{"source":"index.ts","name":null,"original":{"line":86,"column":31},"generated":{"line":100,"column":31}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":39}},{"source":"index.ts","name":null,"original":{"line":86,"column":42},"generated":{"line":100,"column":42}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":50}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":52}},{"source":"index.ts","name":null,"original":{"line":87,"column":1},"generated":{"line":101,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":103,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":103,"column":9}},{"source":"index.ts","name":null,"original":{"line":89,"column":10},"generated":{"line":103,"column":10}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":103,"column":20}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":103,"column":21}},{"source":"index.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":104,"column":0}},{"source":"index.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":104,"column":2}},{"source":"index.ts","name":null,"original":{"line":90,"column":10},"generated":{"line":104,"column":10}},{"source":"index.ts","name":null,"original":{"line":90,"column":12},"generated":{"line":104,"column":12}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":104,"column":15}},{"source":"index.ts","name":null,"original":{"line":91,"column":2},"generated":{"line":105,"column":0}},{"source":"index.ts","name":null,"original":{"line":91,"column":2},"generated":{"line":105,"column":2}},{"source":"index.ts","name":null,"original":{"line":91,"column":10},"generated":{"line":105,"column":10}},{"source":"index.ts","name":null,"original":{"line":91,"column":12},"generated":{"line":105,"column":12}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":105,"column":15}},{"source":"index.ts","name":null,"original":{"line":92,"column":2},"generated":{"line":106,"column":0}},{"source":"index.ts","name":null,"original":{"line":92,"column":2},"generated":{"line":106,"column":2}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":11}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":13}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":25}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":26}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":106,"column":35}},{"source":"index.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":107,"column":0}},{"source":"index.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":107,"column":2}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":11}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":13}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":25}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":26}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":107,"column":35}},{"source":"index.ts","name":null,"original":{"line":94,"column":2},"generated":{"line":108,"column":0}},{"source":"index.ts","name":null,"original":{"line":94,"column":2},"generated":{"line":108,"column":2}},{"source":"index.ts","name":null,"original":{"line":94,"column":12},"generated":{"line":108,"column":12}},{"source":"index.ts","name":null,"original":{"line":94,"column":14},"generated":{"line":108,"column":14}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":108,"column":28}},{"source":"index.ts","name":null,"original":{"line":95,"column":2},"generated":{"line":109,"column":0}},{"source":"index.ts","name":null,"original":{"line":95,"column":2},"generated":{"line":109,"column":2}},{"source":"index.ts","name":null,"original":{"line":95,"column":14},"generated":{"line":109,"column":14}},{"source":"index.ts","name":null,"original":{"line":95,"column":16},"generated":{"line":109,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":109,"column":32}},{"source":"index.ts","name":null,"original":{"line":96,"column":2},"generated":{"line":110,"column":0}},{"source":"index.ts","name":null,"original":{"line":96,"column":2},"generated":{"line":110,"column":2}},{"source":"index.ts","name":null,"original":{"line":96,"column":14},"generated":{"line":110,"column":14}},{"source":"index.ts","name":null,"original":{"line":96,"column":16},"generated":{"line":110,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":110,"column":32}},{"source":"index.ts","name":null,"original":{"line":97,"column":2},"generated":{"line":111,"column":0}},{"source":"index.ts","name":null,"original":{"line":97,"column":2},"generated":{"line":111,"column":2}},{"source":"index.ts","name":null,"original":{"line":97,"column":14},"generated":{"line":111,"column":14}},{"source":"index.ts","name":null,"original":{"line":97,"column":16},"generated":{"line":111,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":111,"column":32}},{"source":"index.ts","name":null,"original":{"line":98,"column":2},"generated":{"line":112,"column":0}},{"source":"index.ts","name":null,"original":{"line":98,"column":2},"generated":{"line":112,"column":2}},{"source":"index.ts","name":null,"original":{"line":98,"column":14},"generated":{"line":112,"column":14}},{"source":"index.ts","name":null,"original":{"line":98,"column":16},"generated":{"line":112,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":112,"column":32}},{"source":"index.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":113,"column":0}},{"source":"index.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":113,"column":2}},{"source":"index.ts","name":null,"original":{"line":99,"column":12},"generated":{"line":113,"column":12}},{"source":"index.ts","name":null,"original":{"line":99,"column":14},"generated":{"line":113,"column":14}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":114,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":114,"column":1}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":0}},{"source":"index.ts","name":null,"original":{"line":102,"column":9},"generated":{"line":115,"column":9}},{"source":"index.ts","name":null,"original":{"line":102,"column":10},"generated":{"line":115,"column":10}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":14}},{"source":"index.ts","name":null,"original":{"line":102,"column":15},"generated":{"line":115,"column":15}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":23}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":0}},{"source":"index.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":116,"column":6}},{"source":"index.ts","name":null,"original":{"line":104,"column":7},"generated":{"line":116,"column":7}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":23}},{"source":"index.ts","name":null,"original":{"line":104,"column":24},"generated":{"line":116,"column":24}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":32}},{"source":"index.ts","name":null,"original":{"line":104,"column":34},"generated":{"line":116,"column":34}},{"source":"index.ts","name":null,"original":{"line":104,"column":34},"generated":{"line":116,"column":46}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":0}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":2}},{"source":"index.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":117,"column":11}},{"source":"index.ts","name":null,"original":{"line":105,"column":12},"generated":{"line":117,"column":12}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":18}},{"source":"index.ts","name":null,"original":{"line":105,"column":19},"generated":{"line":117,"column":19}},{"source":"index.ts","name":null,"original":{"line":105,"column":25},"generated":{"line":117,"column":25}},{"source":"index.ts","name":null,"original":{"line":105,"column":26},"generated":{"line":117,"column":26}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":36}},{"source":"index.ts","name":null,"original":{"line":105,"column":38},"generated":{"line":117,"column":38}},{"source":"index.ts","name":null,"original":{"line":105,"column":44},"generated":{"line":117,"column":44}},{"source":"index.ts","name":null,"original":{"line":105,"column":45},"generated":{"line":117,"column":45}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":56}},{"source":"index.ts","name":null,"original":{"line":106,"column":1},"generated":{"line":118,"column":0}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":118,"column":1}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":0}},{"source":"index.ts","name":null,"original":{"line":108,"column":10},"generated":{"line":119,"column":10}},{"source":"index.ts","name":null,"original":{"line":108,"column":11},"generated":{"line":119,"column":11}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":27}},{"source":"index.ts","name":null,"original":{"line":108,"column":28},"generated":{"line":119,"column":28}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":35}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":37}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":47}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":48}},{"source":"index.ts","name":null,"original":{"line":108,"column":38},"generated":{"line":119,"column":50}},{"source":"index.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":120,"column":0}},{"source":"index.ts","name":null,"original":{"line":109,"column":8},"generated":{"line":120,"column":6}},{"source":"index.ts","name":null,"original":{"line":109,"column":14},"generated":{"line":120,"column":12}},{"source":"index.ts","name":null,"original":{"line":109,"column":17},"generated":{"line":120,"column":15}},{"source":"index.ts","name":null,"original":{"line":109,"column":18},"generated":{"line":120,"column":16}},{"source":"index.ts","name":null,"original":{"line":109,"column":19},"generated":{"line":120,"column":17}},{"source":"index.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":120,"column":23}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":0}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":2}},{"source":"index.ts","name":null,"original":{"line":111,"column":11},"generated":{"line":121,"column":11}},{"source":"index.ts","name":null,"original":{"line":111,"column":12},"generated":{"line":121,"column":12}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":18}},{"source":"index.ts","name":null,"original":{"line":111,"column":19},"generated":{"line":121,"column":19}},{"source":"index.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":121,"column":25}},{"source":"index.ts","name":null,"original":{"line":111,"column":26},"generated":{"line":121,"column":26}},{"source":"index.ts","name":null,"original":{"line":111,"column":32},"generated":{"line":121,"column":32}},{"source":"index.ts","name":null,"original":{"line":111,"column":33},"generated":{"line":121,"column":33}},{"source":"index.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":121,"column":38}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":39}},{"source":"index.ts","name":null,"original":{"line":112,"column":1},"generated":{"line":122,"column":0}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":122,"column":1}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":0}},{"source":"index.ts","name":null,"original":{"line":114,"column":14},"generated":{"line":123,"column":14}},{"source":"index.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":123,"column":15}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":31}},{"source":"index.ts","name":null,"original":{"line":114,"column":32},"generated":{"line":123,"column":32}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":39}},{"source":"index.ts","name":null,"original":{"line":114,"column":41},"generated":{"line":123,"column":41}},{"source":"index.ts","name":null,"original":{"line":114,"column":41},"generated":{"line":123,"column":53}},{"source":"index.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":124,"column":0}},{"source":"index.ts","name":null,"original":{"line":115,"column":8},"generated":{"line":124,"column":6}},{"source":"index.ts","name":null,"original":{"line":115,"column":13},"generated":{"line":124,"column":11}},{"source":"index.ts","name":null,"original":{"line":115,"column":16},"generated":{"line":124,"column":14}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":22}},{"source":"index.ts","name":null,"original":{"line":115,"column":25},"generated":{"line":124,"column":23}},{"source":"index.ts","name":null,"original":{"line":115,"column":40},"generated":{"line":124,"column":38}},{"source":"index.ts","name":null,"original":{"line":115,"column":41},"generated":{"line":124,"column":39}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":44}},{"source":"index.ts","name":null,"original":{"line":115,"column":48},"generated":{"line":124,"column":46}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":48}},{"source":"index.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":124,"column":49}},{"source":"index.ts","name":null,"original":{"line":116,"column":2},"generated":{"line":125,"column":0}},{"source":"index.ts","name":null,"original":{"line":116,"column":8},"generated":{"line":125,"column":6}},{"source":"index.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":125,"column":13}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":16}},{"source":"index.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":125,"column":20}},{"source":"index.ts","name":null,"original":{"line":116,"column":23},"generated":{"line":125,"column":21}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":25}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":26}},{"source":"index.ts","name":null,"original":{"line":116,"column":32},"generated":{"line":125,"column":30}},{"source":"index.ts","name":null,"original":{"line":116,"column":33},"generated":{"line":125,"column":31}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":35}},{"source":"index.ts","name":null,"original":{"line":116,"column":38},"generated":{"line":125,"column":36}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":41}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":42}},{"source":"index.ts","name":null,"original":{"line":116,"column":2},"generated":{"line":125,"column":43}},{"source":"index.ts","name":null,"original":{"line":118,"column":2},"generated":{"line":126,"column":0}},{"source":"index.ts","name":null,"original":{"line":118,"column":8},"generated":{"line":126,"column":6}},{"source":"index.ts","name":null,"original":{"line":118,"column":9},"generated":{"line":126,"column":7}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":10}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":17}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":18}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":27}},{"source":"index.ts","name":null,"original":{"line":118,"column":22},"generated":{"line":126,"column":28}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":33}},{"source":"index.ts","name":null,"original":{"line":118,"column":29},"generated":{"line":126,"column":35}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":42}},{"source":"index.ts","name":null,"original":{"line":118,"column":2},"generated":{"line":126,"column":43}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":0}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":2}},{"source":"index.ts","name":null,"original":{"line":120,"column":8},"generated":{"line":127,"column":8}},{"source":"index.ts","name":null,"original":{"line":120,"column":11},"generated":{"line":127,"column":11}},{"source":"index.ts","name":null,"original":{"line":120,"column":12},"generated":{"line":127,"column":12}},{"source":"index.ts","name":null,"original":{"line":120,"column":13},"generated":{"line":127,"column":13}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":19}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":0}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":2}},{"source":"index.ts","name":null,"original":{"line":121,"column":7},"generated":{"line":128,"column":7}},{"source":"index.ts","name":null,"original":{"line":121,"column":10},"generated":{"line":128,"column":10}},{"source":"index.ts","name":null,"original":{"line":121,"column":11},"generated":{"line":128,"column":11}},{"source":"index.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":128,"column":12}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":17}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":0}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":2}},{"source":"index.ts","name":null,"original":{"line":122,"column":7},"generated":{"line":129,"column":7}},{"source":"index.ts","name":null,"original":{"line":122,"column":10},"generated":{"line":129,"column":10}},{"source":"index.ts","name":null,"original":{"line":122,"column":11},"generated":{"line":129,"column":11}},{"source":"index.ts","name":null,"original":{"line":122,"column":12},"generated":{"line":129,"column":12}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":17}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":0}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":2}},{"source":"index.ts","name":null,"original":{"line":124,"column":11},"generated":{"line":130,"column":11}},{"source":"index.ts","name":null,"original":{"line":124,"column":12},"generated":{"line":130,"column":12}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":19}},{"source":"index.ts","name":null,"original":{"line":124,"column":20},"generated":{"line":130,"column":20}},{"source":"index.ts","name":null,"original":{"line":124,"column":21},"generated":{"line":130,"column":21}},{"source":"index.ts","name":null,"original":{"line":124,"column":22},"generated":{"line":130,"column":22}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":27}},{"source":"index.ts","name":null,"original":{"line":124,"column":29},"generated":{"line":130,"column":29}},{"source":"index.ts","name":null,"original":{"line":124,"column":30},"generated":{"line":130,"column":30}},{"source":"index.ts","name":null,"original":{"line":124,"column":31},"generated":{"line":130,"column":31}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":36}},{"source":"index.ts","name":null,"original":{"line":126,"column":2},"generated":{"line":131,"column":0}},{"source":"index.ts","name":null,"original":{"line":126,"column":2},"generated":{"line":131,"column":2}},{"source":"index.ts","name":null,"original":{"line":126,"column":17},"generated":{"line":131,"column":17}},{"source":"index.ts","name":null,"original":{"line":127,"column":2},"generated":{"line":132,"column":0}},{"source":"index.ts","name":null,"original":{"line":127,"column":2},"generated":{"line":132,"column":2}},{"source":"index.ts","name":null,"original":{"line":127,"column":17},"generated":{"line":132,"column":17}},{"source":"index.ts","name":null,"original":{"line":128,"column":1},"generated":{"line":133,"column":0}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":133,"column":1}}],"sources":{"index.ts":"import { GEView, GENode, GEEdge } from \"../index\";\nimport { nodeTypes, edgeTypes } from \"./node-types\";\nimport { randomize } from \"./utils\";\n\nconst graphDiv = document.getElementById(\"graph\");\nconst nodeCountSpan = document.getElementById(\"node-count-span\");\nconst edgeCountSpan = document.getElementById(\"edge-count-span\");\nconst zoomSlider = document.getElementById(\"zoom-slider\") as HTMLInputElement;\nconst generateTextbox = document.getElementById(\n \"generate-textbox\"\n) as HTMLInputElement;\nconst generateButton = document.getElementById(\"generate-button\");\n\nlet nodes: GENode[] = [];\nlet edges: GEEdge[] = [];\nlet lastId = 0;\n\nconst graphView = new GEView();\n\nfunction updateNodeCount(): void {\n nodeCountSpan.innerHTML = nodes.length.toString();\n}\n\nfunction updateEdgeCount(): void {\n edgeCountSpan.innerHTML = edges.length.toString();\n}\n\nfunction handleCreateNode(x: number, y: number) {\n lastId += 1;\n\n const newNode: GENode = {\n id: lastId,\n x,\n y,\n type: \"empty\",\n text: `Node ID: ${lastId}`\n };\n\n nodes = [...nodes, newNode];\n graphView.setData(nodes, edges);\n\n updateNodeCount();\n}\n\nfunction handleCreateEdge(sourceNode: GENode, targetNode: GENode) {\n lastId += 1;\n\n const newEdge: GEEdge = {\n id: lastId,\n sourceNode,\n targetNode,\n type: \"normal\",\n text: lastId.toString()\n };\n\n edges = [...edges, newEdge];\n graphView.setData(nodes, edges);\n\n updateEdgeCount();\n}\n\nfunction handleDeleteNode(node: GENode) {\n nodes = nodes.filter(n => n !== node);\n edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node);\n\n graphView.setData(nodes, edges);\n\n updateNodeCount();\n updateEdgeCount();\n}\n\nfunction handleDeleteEdge(edge: GEEdge) {\n edges = edges.filter(e => e.id !== edge.id);\n\n graphView.setData(nodes, edges);\n\n updateEdgeCount();\n}\n\nfunction handleMoveNode(node: GENode, newX: number, newY: number) {\n node.x = newX;\n node.y = newY;\n}\n\nfunction handleViewZoom() {\n zoomSlider.value = graphView.getScale().toString();\n}\n\ngraphView.setOptions({\n minScale: 0.2,\n maxScale: 3.0,\n nodeTypes,\n edgeTypes,\n onViewZoom: handleViewZoom,\n onCreateNode: handleCreateNode,\n onCreateEdge: handleCreateEdge,\n onDeleteNode: handleDeleteNode,\n onDeleteEdge: handleDeleteEdge,\n onMoveNode: handleMoveNode\n});\n\ngraphView.init(graphDiv);\n\nwindow.addEventListener(\"resize\", () => {\n graphView.resize(window.innerWidth, window.innerHeight);\n});\n\nzoomSlider.addEventListener(\"input\", e => {\n const target = e.target as HTMLInputElement;\n\n graphView.zoomTo(Number(target.value));\n});\n\ngenerateButton.addEventListener(\"click\", () => {\n const value = parseInt(generateTextbox.value, 10);\n const columns = Math.ceil(Math.sqrt(value));\n\n const r = randomize(value, columns);\n\n lastId = r.lastId;\n nodes = r.nodes;\n edges = r.edges;\n\n graphView.setData(r.nodes, r.edges);\n\n updateNodeCount();\n updateEdgeCount();\n});\n"},"lineCount":null}},"error":null,"hash":"2a43184b15e135479ea12ab828ee926e","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/18/2b115ee70b2bcead4c63e6276c075e.json b/.cache/18/2b115ee70b2bcead4c63e6276c075e.json new file mode 100644 index 0000000..bb662e7 --- /dev/null +++ b/.cache/18/2b115ee70b2bcead4c63e6276c075e.json @@ -0,0 +1 @@ +{"id":"../event-handler.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEEventHandler = void 0;\n\nvar GEEventHandler =\n/** @class */\nfunction () {\n function GEEventHandler(view, canvas, renderer) {\n var _this = this;\n\n this.handleMouseDown = function (evt) {\n var _a, _b;\n\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n _this.state.isDragging = true;\n\n if (_this.state.selectedNode !== _this.state.hoveredNode || _this.state.selectedEdge !== _this.state.hoveredEdge) {\n _this.state.selectedNode = _this.state.hoveredNode;\n _this.state.selectedEdge = _this.state.hoveredEdge;\n (_b = (_a = _this.state.options).onSelectionChange) === null || _b === void 0 ? void 0 : _b.call(_a, _this.state.selectedNode, _this.state.selectedEdge);\n }\n\n if (_this.state.selectedNode) {\n var node = _this.state.selectedNode;\n\n if (_this.state.isShiftDown) {\n _this.state.isCreatingEdge = true;\n _this.state.dragLineSourceNode = node;\n _this.state.dragLineTargetX = node.x;\n _this.state.dragLineTargetY = node.y;\n } else {\n _this.state.moveNodeX = node.x;\n _this.state.moveNodeY = node.y;\n }\n }\n\n _this.renderer.requestDraw();\n };\n\n this.handleMouseMove = function (evt) {\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (_this.state.isMovingNode()) {\n _this.state.moveNodeX += evt.movementX / _this.state.scale;\n _this.state.moveNodeY += evt.movementY / _this.state.scale;\n } else if (_this.state.isMovingView()) {\n _this.state.translateX += evt.movementX;\n _this.state.translateY += evt.movementY;\n }\n\n _this.renderer.requestDraw();\n\n _this.updateCursorStyle();\n };\n\n this.handleMouseUp = function (evt) {\n var _a, _b, _c, _d, _e, _f;\n\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (_this.state.isCreatingEdge && _this.state.hoveredNode && _this.state.hoveredNode !== _this.state.dragLineSourceNode) {\n var sourceNode = _this.state.dragLineSourceNode;\n var targetNode = _this.state.hoveredNode;\n (_b = (_a = _this.state.options).onCreateEdge) === null || _b === void 0 ? void 0 : _b.call(_a, sourceNode, targetNode, evt);\n } else if (_this.state.isShiftDown && !_this.state.isCreatingEdge && !_this.state.hoveredNode && !_this.state.hoveredEdge) {\n (_d = (_c = _this.state.options).onCreateNode) === null || _d === void 0 ? void 0 : _d.call(_c, _this.state.pointerViewX, _this.state.pointerViewY, evt);\n } else if (_this.state.isMovingNode()) {\n var node = _this.state.selectedNode;\n (_f = (_e = _this.state.options).onMoveNode) === null || _f === void 0 ? void 0 : _f.call(_e, node, _this.state.moveNodeX, _this.state.moveNodeY);\n }\n\n _this.state.isDragging = false;\n _this.state.isCreatingEdge = false;\n\n _this.renderer.requestDraw();\n };\n\n this.updateCursorStyle = function () {\n var options = _this.state.options;\n\n if (_this.state.hoveredNode || _this.state.hoveredEdge) {\n _this.canvas.style.cursor = options.cursorPointer;\n } else if (!_this.state.isShiftDown) {\n _this.canvas.style.cursor = options.cursorGrab;\n } else {\n _this.canvas.style.cursor = options.cursorCrosshair;\n }\n };\n\n this.handleKeyDown = function (evt) {\n var _a, _b, _c, _d;\n\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n _this.state.isShiftDown = true;\n\n _this.updateCursorStyle();\n }\n\n if (evt.key === \"Backspace\" || evt.keyCode === 8 || evt.key === \"Delete\" || evt.keyCode === 46) {\n if (_this.state.selectedNode) {\n var node = _this.state.selectedNode;\n (_b = (_a = _this.state.options).onDeleteNode) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n _this.state.selectedNode = undefined;\n }\n\n if (_this.state.selectedEdge) {\n var edge = _this.state.selectedEdge;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n (_d = (_c = _this.state.options).onDeleteEdge) === null || _d === void 0 ? void 0 : _d.call(_c, edge, source, target);\n _this.state.selectedEdge = undefined;\n }\n\n _this.renderer.requestDraw();\n\n _this.updateCursorStyle();\n }\n };\n\n this.handleKeyUp = function (evt) {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n _this.state.isShiftDown = false;\n\n _this.updateCursorStyle();\n }\n };\n\n this.handleCanvasWheel = function (evt) {\n var _a, _b;\n\n evt.preventDefault();\n\n _this.state.zoomTo(_this.state.scale - evt.deltaY * 0.001, _this.state.pointerViewX, _this.state.pointerViewY);\n\n (_b = (_a = _this.state.options).onViewZoom) === null || _b === void 0 ? void 0 : _b.call(_a);\n\n _this.renderer.requestDraw();\n };\n\n this.state = view;\n this.canvas = canvas;\n this.renderer = renderer;\n }\n\n GEEventHandler.prototype.init = function () {\n this.canvas.addEventListener(\"mousedown\", this.handleMouseDown, {\n passive: true\n });\n window.addEventListener(\"mouseup\", this.handleMouseUp, {\n passive: true\n });\n window.addEventListener(\"mousemove\", this.handleMouseMove, {\n passive: true\n });\n window.addEventListener(\"keydown\", this.handleKeyDown, {\n passive: true\n });\n window.addEventListener(\"keyup\", this.handleKeyUp, {\n passive: true\n });\n this.canvas.addEventListener(\"wheel\", this.handleCanvasWheel, {\n passive: false\n });\n };\n\n GEEventHandler.prototype.destroy = function () {\n this.canvas.removeEventListener(\"mousedown\", this.handleMouseDown);\n window.removeEventListener(\"mouseup\", this.handleMouseUp);\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.removeEventListener(\"keydown\", this.handleKeyDown);\n window.removeEventListener(\"keyup\", this.handleKeyUp);\n this.canvas.removeEventListener(\"wheel\", this.handleCanvasWheel);\n };\n\n return GEEventHandler;\n}();\n\nexports.GEEventHandler = GEEventHandler;"},"sourceMaps":{"js":{"mappings":[{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":9,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":10,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":10,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":10,"column":4},"generated":{"line":11,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":11,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":12,"column":4},"generated":{"line":11,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":12,"column":29},"generated":{"line":11,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":14,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":14,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":14,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":36},"generated":{"line":14,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":8},"generated":{"line":17,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":9},"generated":{"line":17,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":15},"generated":{"line":17,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":34},"generated":{"line":17,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":37},"generated":{"line":17,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":38},"generated":{"line":17,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":47},"generated":{"line":17,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":50},"generated":{"line":17,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":51},"generated":{"line":17,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":19,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":9},"generated":{"line":19,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":15},"generated":{"line":19,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":28},"generated":{"line":19,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":21,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":10},"generated":{"line":21,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":21,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":17},"generated":{"line":21,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":34},"generated":{"line":21,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":38},"generated":{"line":21,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":39},"generated":{"line":21,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":34},"generated":{"line":21,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":45},"generated":{"line":21,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":10},"generated":{"line":21,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":11},"generated":{"line":21,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":17},"generated":{"line":21,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":34},"generated":{"line":21,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":38},"generated":{"line":21,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":39},"generated":{"line":21,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":34},"generated":{"line":21,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":45},"generated":{"line":21,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":21,"column":118}},{"source":"../event-handler.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":21,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":22,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":11},"generated":{"line":22,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":17},"generated":{"line":22,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":32},"generated":{"line":22,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":36},"generated":{"line":22,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":37},"generated":{"line":22,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":32},"generated":{"line":22,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":43},"generated":{"line":22,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":23,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":23,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":23,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":32},"generated":{"line":23,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":36},"generated":{"line":23,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":37},"generated":{"line":23,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":32},"generated":{"line":23,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":43},"generated":{"line":23,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":10},"generated":{"line":24,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":11},"generated":{"line":24,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":17},"generated":{"line":24,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":25},"generated":{"line":24,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":68}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":84}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":105}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":24,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":12},"generated":{"line":24,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":13},"generated":{"line":24,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":24,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":24,"column":121}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":133}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":24,"column":135}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":24,"column":140}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":13},"generated":{"line":24,"column":141}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":24,"column":146}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":19},"generated":{"line":24,"column":147}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":159}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":160}},{"source":"../event-handler.ts","name":null,"original":{"line":59,"column":5},"generated":{"line":25,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":27,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":8},"generated":{"line":27,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":12},"generated":{"line":27,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":13},"generated":{"line":27,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":8},"generated":{"line":27,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":19},"generated":{"line":27,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":27,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":33},"generated":{"line":27,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":28,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":12},"generated":{"line":28,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":16},"generated":{"line":28,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":19},"generated":{"line":28,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":28,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":24},"generated":{"line":28,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":19},"generated":{"line":28,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":30},"generated":{"line":28,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":28,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":30,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":30,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":14},"generated":{"line":30,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":15},"generated":{"line":30,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":30,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":21},"generated":{"line":30,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":30,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":34},"generated":{"line":30,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":12},"generated":{"line":31,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":13},"generated":{"line":31,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":19},"generated":{"line":31,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":36},"generated":{"line":31,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":12},"generated":{"line":32,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":32,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":19},"generated":{"line":32,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":40},"generated":{"line":32,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":12},"generated":{"line":33,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":13},"generated":{"line":33,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":19},"generated":{"line":33,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":37},"generated":{"line":33,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":41},"generated":{"line":33,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":42},"generated":{"line":33,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":12},"generated":{"line":34,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":34,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":19},"generated":{"line":34,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":37},"generated":{"line":34,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":41},"generated":{"line":34,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":42},"generated":{"line":34,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":69,"column":7},"generated":{"line":35,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":35,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":69,"column":13},"generated":{"line":35,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":12},"generated":{"line":36,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":13},"generated":{"line":36,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":19},"generated":{"line":36,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":31},"generated":{"line":36,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":35},"generated":{"line":36,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":36},"generated":{"line":36,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":12},"generated":{"line":37,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":37,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":19},"generated":{"line":37,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":37,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":35},"generated":{"line":37,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":36},"generated":{"line":37,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":38,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":73,"column":5},"generated":{"line":39,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":8},"generated":{"line":41,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":9},"generated":{"line":41,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":18},"generated":{"line":41,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":76,"column":3},"generated":{"line":42,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":42,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":20},"generated":{"line":44,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":21},"generated":{"line":44,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":20},"generated":{"line":44,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":36},"generated":{"line":44,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":45,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":9},"generated":{"line":45,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":15},"generated":{"line":45,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":34},"generated":{"line":45,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":37},"generated":{"line":45,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":38},"generated":{"line":45,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":47},"generated":{"line":45,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":50},"generated":{"line":45,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":51},"generated":{"line":45,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":47,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":12},"generated":{"line":47,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":13},"generated":{"line":47,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":19},"generated":{"line":47,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":47,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":35},"generated":{"line":47,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":10},"generated":{"line":48,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":48,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":17},"generated":{"line":48,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":30},"generated":{"line":48,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":33},"generated":{"line":48,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":34},"generated":{"line":48,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":30},"generated":{"line":48,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":46},"generated":{"line":48,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":50},"generated":{"line":48,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":51},"generated":{"line":48,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":46},"generated":{"line":48,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":57},"generated":{"line":48,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":10},"generated":{"line":49,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":11},"generated":{"line":49,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":17},"generated":{"line":49,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":30},"generated":{"line":49,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":33},"generated":{"line":49,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":34},"generated":{"line":49,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":30},"generated":{"line":49,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":46},"generated":{"line":49,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":50},"generated":{"line":49,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":51},"generated":{"line":49,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":46},"generated":{"line":49,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":57},"generated":{"line":49,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":5},"generated":{"line":50,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":50,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":50,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":19},"generated":{"line":50,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":20},"generated":{"line":50,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":26},"generated":{"line":50,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":50,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":42},"generated":{"line":50,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":10},"generated":{"line":51,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":11},"generated":{"line":51,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":17},"generated":{"line":51,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":31},"generated":{"line":51,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":34},"generated":{"line":51,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":35},"generated":{"line":51,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":52,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":11},"generated":{"line":52,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":17},"generated":{"line":52,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":31},"generated":{"line":52,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":34},"generated":{"line":52,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":35},"generated":{"line":52,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":87,"column":5},"generated":{"line":53,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":8},"generated":{"line":55,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":55,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":18},"generated":{"line":55,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":8},"generated":{"line":57,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":9},"generated":{"line":57,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":91,"column":3},"generated":{"line":58,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":58,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":18},"generated":{"line":60,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":19},"generated":{"line":60,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":18},"generated":{"line":60,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":34},"generated":{"line":60,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":8},"generated":{"line":63,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":63,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":15},"generated":{"line":63,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":34},"generated":{"line":63,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":37},"generated":{"line":63,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":38},"generated":{"line":63,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":47},"generated":{"line":63,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":50},"generated":{"line":63,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":51},"generated":{"line":63,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":65,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":10},"generated":{"line":65,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":11},"generated":{"line":65,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":17},"generated":{"line":65,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":65,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":10},"generated":{"line":65,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":11},"generated":{"line":65,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":65,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":17},"generated":{"line":65,"column":52}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":10},"generated":{"line":65,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":11},"generated":{"line":65,"column":73}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":17},"generated":{"line":65,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":33},"generated":{"line":65,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":37},"generated":{"line":65,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":38},"generated":{"line":65,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":33},"generated":{"line":65,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":44},"generated":{"line":65,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":65,"column":125}},{"source":"../event-handler.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":65,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":66,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":12},"generated":{"line":66,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":22},"generated":{"line":66,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":25},"generated":{"line":66,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":29},"generated":{"line":66,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":30},"generated":{"line":66,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":25},"generated":{"line":66,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":36},"generated":{"line":66,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":66,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":67,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":12},"generated":{"line":67,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":22},"generated":{"line":67,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":67,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":29},"generated":{"line":67,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":30},"generated":{"line":67,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":67,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":36},"generated":{"line":67,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":67,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":10},"generated":{"line":68,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":11},"generated":{"line":68,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":17},"generated":{"line":68,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":25},"generated":{"line":68,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":80}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":83}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":40},"generated":{"line":68,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":52},"generated":{"line":68,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":126}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":64},"generated":{"line":68,"column":128}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":131}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":132}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":5},"generated":{"line":69,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":69,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":69,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":10},"generated":{"line":69,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":11},"generated":{"line":69,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":17},"generated":{"line":69,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":6},"generated":{"line":69,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":7},"generated":{"line":69,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":69,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":12},"generated":{"line":69,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":7},"generated":{"line":69,"column":56}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":18},"generated":{"line":69,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":6},"generated":{"line":69,"column":75}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":7},"generated":{"line":69,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":11},"generated":{"line":69,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":69,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":7},"generated":{"line":69,"column":87}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":18},"generated":{"line":69,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":6},"generated":{"line":69,"column":103}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":7},"generated":{"line":69,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":11},"generated":{"line":69,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":69,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":7},"generated":{"line":69,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":18},"generated":{"line":69,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":69,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":110,"column":6},"generated":{"line":69,"column":129}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":10},"generated":{"line":70,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":11},"generated":{"line":70,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":17},"generated":{"line":70,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":70,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":80}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":83}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":8},"generated":{"line":70,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":12},"generated":{"line":70,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":13},"generated":{"line":70,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":8},"generated":{"line":70,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":19},"generated":{"line":70,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":128}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":70,"column":130}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":12},"generated":{"line":70,"column":135}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":13},"generated":{"line":70,"column":136}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":70,"column":141}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":19},"generated":{"line":70,"column":142}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":154}},{"source":"../event-handler.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":70,"column":156}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":159}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":160}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":5},"generated":{"line":71,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":71,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":11},"generated":{"line":71,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":71,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":20},"generated":{"line":71,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":26},"generated":{"line":71,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":11},"generated":{"line":71,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":42},"generated":{"line":71,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":6},"generated":{"line":72,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":72,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":16},"generated":{"line":72,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":72,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":23},"generated":{"line":72,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":24},"generated":{"line":72,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":72,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":30},"generated":{"line":72,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":6},"generated":{"line":72,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":10},"generated":{"line":73,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":11},"generated":{"line":73,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":17},"generated":{"line":73,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":25},"generated":{"line":73,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":86}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":87}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":120,"column":8},"generated":{"line":73,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":8},"generated":{"line":73,"column":108}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":73,"column":113}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":13},"generated":{"line":73,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":8},"generated":{"line":73,"column":119}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":19},"generated":{"line":73,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":129}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":8},"generated":{"line":73,"column":131}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":12},"generated":{"line":73,"column":136}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":13},"generated":{"line":73,"column":137}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":8},"generated":{"line":73,"column":142}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":19},"generated":{"line":73,"column":143}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":152}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":153}},{"source":"../event-handler.ts","name":null,"original":{"line":124,"column":5},"generated":{"line":74,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":8},"generated":{"line":76,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":9},"generated":{"line":76,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":15},"generated":{"line":76,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":28},"generated":{"line":76,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":8},"generated":{"line":77,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":9},"generated":{"line":77,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":15},"generated":{"line":77,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":32},"generated":{"line":77,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":8},"generated":{"line":79,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":9},"generated":{"line":79,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":18},"generated":{"line":79,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":130,"column":3},"generated":{"line":80,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":80,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":22},"generated":{"line":82,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":22},"generated":{"line":82,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":19},"generated":{"line":83,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":24},"generated":{"line":83,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":28},"generated":{"line":83,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":29},"generated":{"line":83,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":24},"generated":{"line":83,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":34},"generated":{"line":83,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":85,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":12},"generated":{"line":85,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":13},"generated":{"line":85,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":19},"generated":{"line":85,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":34},"generated":{"line":85,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":38},"generated":{"line":85,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":39},"generated":{"line":85,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":34},"generated":{"line":85,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":45},"generated":{"line":85,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":85,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":58},"generated":{"line":85,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":10},"generated":{"line":86,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":11},"generated":{"line":86,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":18},"generated":{"line":86,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":24},"generated":{"line":86,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":33},"generated":{"line":86,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":40},"generated":{"line":86,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":41},"generated":{"line":86,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":5},"generated":{"line":87,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":87,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":87,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":15},"generated":{"line":87,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":16},"generated":{"line":87,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":20},"generated":{"line":87,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":21},"generated":{"line":87,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":16},"generated":{"line":87,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":27},"generated":{"line":87,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":87,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":40},"generated":{"line":87,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":10},"generated":{"line":88,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":11},"generated":{"line":88,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":18},"generated":{"line":88,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":24},"generated":{"line":88,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":33},"generated":{"line":88,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":40},"generated":{"line":88,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":41},"generated":{"line":88,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":139,"column":5},"generated":{"line":89,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":89,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":139,"column":11},"generated":{"line":89,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":10},"generated":{"line":90,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":11},"generated":{"line":90,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":18},"generated":{"line":90,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":24},"generated":{"line":90,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":33},"generated":{"line":90,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":40},"generated":{"line":90,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":41},"generated":{"line":90,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":141,"column":5},"generated":{"line":91,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":142,"column":3},"generated":{"line":92,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":92,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":94,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":19},"generated":{"line":94,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":94,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":37},"generated":{"line":94,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":97,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":11},"generated":{"line":97,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":12},"generated":{"line":97,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":97,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":31},"generated":{"line":97,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":34},"generated":{"line":97,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":35},"generated":{"line":97,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":31},"generated":{"line":97,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":47},"generated":{"line":97,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":97,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":51},"generated":{"line":97,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":10},"generated":{"line":98,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":11},"generated":{"line":98,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":17},"generated":{"line":98,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":31},"generated":{"line":98,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":10},"generated":{"line":100,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":11},"generated":{"line":100,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":148,"column":5},"generated":{"line":101,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":103,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":9},"generated":{"line":103,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":10},"generated":{"line":103,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":18},"generated":{"line":103,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":6},"generated":{"line":103,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":9},"generated":{"line":103,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":10},"generated":{"line":103,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":6},"generated":{"line":103,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":22},"generated":{"line":103,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":103,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":9},"generated":{"line":103,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":103,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":103,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":18},"generated":{"line":103,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":6},"generated":{"line":103,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":9},"generated":{"line":103,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":10},"generated":{"line":103,"column":86}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":6},"generated":{"line":103,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":22},"generated":{"line":103,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":103,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":155,"column":6},"generated":{"line":103,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":6},"generated":{"line":104,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":10},"generated":{"line":104,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":14},"generated":{"line":104,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":15},"generated":{"line":104,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":10},"generated":{"line":104,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":21},"generated":{"line":104,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":6},"generated":{"line":104,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":35},"generated":{"line":104,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":8},"generated":{"line":105,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":14},"generated":{"line":105,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":18},"generated":{"line":105,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":21},"generated":{"line":105,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":25},"generated":{"line":105,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":26},"generated":{"line":105,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":21},"generated":{"line":105,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":32},"generated":{"line":105,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":8},"generated":{"line":105,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":12},"generated":{"line":106,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":13},"generated":{"line":106,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":19},"generated":{"line":106,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":27},"generated":{"line":106,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":42},"generated":{"line":106,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":111}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":107,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":13},"generated":{"line":107,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":19},"generated":{"line":107,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":34},"generated":{"line":107,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":161,"column":7},"generated":{"line":108,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":6},"generated":{"line":110,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":110,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":110,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":15},"generated":{"line":110,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":110,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":21},"generated":{"line":110,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":6},"generated":{"line":110,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":35},"generated":{"line":110,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":8},"generated":{"line":111,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":14},"generated":{"line":111,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":18},"generated":{"line":111,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":21},"generated":{"line":111,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":25},"generated":{"line":111,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":26},"generated":{"line":111,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":21},"generated":{"line":111,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":32},"generated":{"line":111,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":8},"generated":{"line":111,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":8},"generated":{"line":112,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":14},"generated":{"line":112,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":20},"generated":{"line":112,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":23},"generated":{"line":112,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":27},"generated":{"line":112,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":28},"generated":{"line":112,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":8},"generated":{"line":112,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":8},"generated":{"line":113,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":14},"generated":{"line":113,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":20},"generated":{"line":113,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":23},"generated":{"line":113,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":27},"generated":{"line":113,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":28},"generated":{"line":113,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":8},"generated":{"line":113,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":12},"generated":{"line":114,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":13},"generated":{"line":114,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":19},"generated":{"line":114,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":27},"generated":{"line":114,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":42},"generated":{"line":114,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":48},"generated":{"line":114,"column":112}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":118}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":56},"generated":{"line":114,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":126}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":12},"generated":{"line":115,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":13},"generated":{"line":115,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":19},"generated":{"line":115,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":34},"generated":{"line":115,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":170,"column":7},"generated":{"line":116,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":10},"generated":{"line":118,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":11},"generated":{"line":118,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":20},"generated":{"line":118,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":10},"generated":{"line":120,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":11},"generated":{"line":120,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":174,"column":5},"generated":{"line":121,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":175,"column":3},"generated":{"line":122,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":122,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":124,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":17},"generated":{"line":124,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":124,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":35},"generated":{"line":124,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":125,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":11},"generated":{"line":125,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":12},"generated":{"line":125,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":20},"generated":{"line":125,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":31},"generated":{"line":125,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":34},"generated":{"line":125,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":35},"generated":{"line":125,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":31},"generated":{"line":125,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":47},"generated":{"line":125,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":125,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":51},"generated":{"line":125,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":10},"generated":{"line":126,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":11},"generated":{"line":126,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":17},"generated":{"line":126,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":31},"generated":{"line":126,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":10},"generated":{"line":128,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":11},"generated":{"line":128,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":181,"column":5},"generated":{"line":129,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":182,"column":3},"generated":{"line":130,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":130,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":22},"generated":{"line":132,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":23},"generated":{"line":132,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":22},"generated":{"line":132,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":38},"generated":{"line":132,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":7},"generated":{"line":135,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":8},"generated":{"line":135,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":8},"generated":{"line":137,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":9},"generated":{"line":137,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":15},"generated":{"line":137,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":10},"generated":{"line":137,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":11},"generated":{"line":137,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":17},"generated":{"line":137,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":25},"generated":{"line":137,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":28},"generated":{"line":137,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":29},"generated":{"line":137,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":25},"generated":{"line":137,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":38},"generated":{"line":137,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":6},"generated":{"line":137,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":10},"generated":{"line":137,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":11},"generated":{"line":137,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":6},"generated":{"line":137,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":17},"generated":{"line":137,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":6},"generated":{"line":137,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":10},"generated":{"line":137,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":11},"generated":{"line":137,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":6},"generated":{"line":137,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":137,"column":103}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":8},"generated":{"line":139,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":9},"generated":{"line":139,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":15},"generated":{"line":139,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":23},"generated":{"line":139,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":75}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":84}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":8},"generated":{"line":141,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":9},"generated":{"line":141,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":18},"generated":{"line":141,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":196,"column":3},"generated":{"line":142,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":142,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":144,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":17},"generated":{"line":144,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":145,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":145,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":9},"generated":{"line":146,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":20},"generated":{"line":146,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":17,"column":3},"generated":{"line":147,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":2}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":9},"generated":{"line":150,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":16},"generated":{"line":150,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":33},"generated":{"line":150,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":46},"generated":{"line":150,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":51},"generated":{"line":150,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":68},"generated":{"line":150,"column":68}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":151,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":151,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":151,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":151,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":68},"generated":{"line":152,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":152,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":10},"generated":{"line":153,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":11},"generated":{"line":153,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":28},"generated":{"line":153,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":39},"generated":{"line":153,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":44},"generated":{"line":153,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":59},"generated":{"line":153,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":61},"generated":{"line":154,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":61},"generated":{"line":154,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":68},"generated":{"line":154,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":70},"generated":{"line":154,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":59},"generated":{"line":155,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":155,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":156,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":11},"generated":{"line":156,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":28},"generated":{"line":156,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":41},"generated":{"line":156,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":46},"generated":{"line":156,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":63},"generated":{"line":156,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":157,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":157,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":13},"generated":{"line":157,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":157,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":63},"generated":{"line":158,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":158,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":10},"generated":{"line":159,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":11},"generated":{"line":159,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":28},"generated":{"line":159,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":39},"generated":{"line":159,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":44},"generated":{"line":159,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":59},"generated":{"line":159,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":61},"generated":{"line":160,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":61},"generated":{"line":160,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":68},"generated":{"line":160,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":70},"generated":{"line":160,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":59},"generated":{"line":161,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":161,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":162,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":162,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":28},"generated":{"line":162,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":37},"generated":{"line":162,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":42},"generated":{"line":162,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":55},"generated":{"line":162,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":57},"generated":{"line":163,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":57},"generated":{"line":163,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":64},"generated":{"line":163,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":66},"generated":{"line":163,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":55},"generated":{"line":164,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":164,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":9},"generated":{"line":165,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":165,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":33},"generated":{"line":165,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":42},"generated":{"line":165,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":47},"generated":{"line":165,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":66},"generated":{"line":165,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":166,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":166,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":166,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":15},"generated":{"line":166,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":66},"generated":{"line":167,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":167,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":32,"column":3},"generated":{"line":168,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":168,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":2}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":171,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":16},"generated":{"line":171,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":36},"generated":{"line":171,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":49},"generated":{"line":171,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":54},"generated":{"line":171,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":172,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":172,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":31},"generated":{"line":172,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":42},"generated":{"line":172,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":47},"generated":{"line":172,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":10},"generated":{"line":173,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":11},"generated":{"line":173,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":31},"generated":{"line":173,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":44},"generated":{"line":173,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":49},"generated":{"line":173,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":10},"generated":{"line":174,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":11},"generated":{"line":174,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":31},"generated":{"line":174,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":42},"generated":{"line":174,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":47},"generated":{"line":174,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":10},"generated":{"line":175,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":175,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":31},"generated":{"line":175,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":40},"generated":{"line":175,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":45},"generated":{"line":175,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":56}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":176,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":16},"generated":{"line":176,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":36},"generated":{"line":176,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":45},"generated":{"line":176,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":50},"generated":{"line":176,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":41,"column":3},"generated":{"line":177,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":177,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":1}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":39}}],"sources":{"../event-handler.ts":"import { GEState } from \"./state\";\nimport { GEGraphRenderer } from \"./graph-renderer\";\n\nexport class GEEventHandler {\n state: GEState;\n canvas: HTMLCanvasElement;\n renderer: GEGraphRenderer;\n\n constructor(\n view: GEState,\n canvas: HTMLCanvasElement,\n renderer: GEGraphRenderer\n ) {\n this.state = view;\n this.canvas = canvas;\n this.renderer = renderer;\n }\n\n init(): void {\n this.canvas.addEventListener(\"mousedown\", this.handleMouseDown, {\n passive: true\n });\n window.addEventListener(\"mouseup\", this.handleMouseUp, { passive: true });\n window.addEventListener(\"mousemove\", this.handleMouseMove, {\n passive: true\n });\n window.addEventListener(\"keydown\", this.handleKeyDown, { passive: true });\n window.addEventListener(\"keyup\", this.handleKeyUp, { passive: true });\n this.canvas.addEventListener(\"wheel\", this.handleCanvasWheel, {\n passive: false\n });\n }\n\n destroy(): void {\n this.canvas.removeEventListener(\"mousedown\", this.handleMouseDown);\n window.removeEventListener(\"mouseup\", this.handleMouseUp);\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.removeEventListener(\"keydown\", this.handleKeyDown);\n window.removeEventListener(\"keyup\", this.handleKeyUp);\n this.canvas.removeEventListener(\"wheel\", this.handleCanvasWheel);\n }\n\n handleMouseDown = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n this.state.isDragging = true;\n\n if (\n this.state.selectedNode !== this.state.hoveredNode ||\n this.state.selectedEdge !== this.state.hoveredEdge\n ) {\n this.state.selectedNode = this.state.hoveredNode;\n this.state.selectedEdge = this.state.hoveredEdge;\n\n this.state.options.onSelectionChange?.(\n this.state.selectedNode,\n this.state.selectedEdge\n );\n }\n\n if (this.state.selectedNode) {\n const node = this.state.selectedNode;\n\n if (this.state.isShiftDown) {\n this.state.isCreatingEdge = true;\n this.state.dragLineSourceNode = node;\n this.state.dragLineTargetX = node.x;\n this.state.dragLineTargetY = node.y;\n } else {\n this.state.moveNodeX = node.x;\n this.state.moveNodeY = node.y;\n }\n }\n\n this.renderer.requestDraw();\n };\n\n handleMouseMove = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (this.state.isMovingNode()) {\n this.state.moveNodeX += evt.movementX / this.state.scale;\n this.state.moveNodeY += evt.movementY / this.state.scale;\n } else if (this.state.isMovingView()) {\n this.state.translateX += evt.movementX;\n this.state.translateY += evt.movementY;\n }\n\n this.renderer.requestDraw();\n this.updateCursorStyle();\n };\n\n handleMouseUp = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (\n this.state.isCreatingEdge &&\n this.state.hoveredNode &&\n this.state.hoveredNode !== this.state.dragLineSourceNode\n ) {\n const sourceNode = this.state.dragLineSourceNode;\n const targetNode = this.state.hoveredNode;\n\n this.state.options.onCreateEdge?.(sourceNode, targetNode, evt);\n } else if (\n this.state.isShiftDown &&\n !this.state.isCreatingEdge &&\n !this.state.hoveredNode &&\n !this.state.hoveredEdge\n ) {\n this.state.options.onCreateNode?.(\n this.state.pointerViewX,\n this.state.pointerViewY,\n evt\n );\n } else if (this.state.isMovingNode()) {\n const node = this.state.selectedNode;\n\n this.state.options.onMoveNode?.(\n node,\n this.state.moveNodeX,\n this.state.moveNodeY\n );\n }\n\n this.state.isDragging = false;\n this.state.isCreatingEdge = false;\n\n this.renderer.requestDraw();\n };\n\n updateCursorStyle = (): void => {\n const { options } = this.state;\n\n if (this.state.hoveredNode || this.state.hoveredEdge) {\n this.canvas.style.cursor = options.cursorPointer;\n } else if (!this.state.isShiftDown) {\n this.canvas.style.cursor = options.cursorGrab;\n } else {\n this.canvas.style.cursor = options.cursorCrosshair;\n }\n };\n\n handleKeyDown = (evt: KeyboardEvent): void => {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n this.state.isShiftDown = true;\n this.updateCursorStyle();\n }\n\n if (\n evt.key === \"Backspace\" ||\n evt.keyCode === 8 ||\n evt.key === \"Delete\" ||\n evt.keyCode === 46\n ) {\n if (this.state.selectedNode) {\n const node = this.state.selectedNode;\n\n this.state.options.onDeleteNode?.(node);\n this.state.selectedNode = undefined;\n }\n\n if (this.state.selectedEdge) {\n const edge = this.state.selectedEdge;\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n this.state.options.onDeleteEdge?.(edge, source, target);\n this.state.selectedEdge = undefined;\n }\n\n this.renderer.requestDraw();\n this.updateCursorStyle();\n }\n };\n\n handleKeyUp = (evt: KeyboardEvent): void => {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n this.state.isShiftDown = false;\n this.updateCursorStyle();\n }\n };\n\n handleCanvasWheel = (evt: WheelEvent): void => {\n evt.preventDefault();\n\n this.state.zoomTo(\n this.state.scale - evt.deltaY * 0.001,\n this.state.pointerViewX,\n this.state.pointerViewY\n );\n\n this.state.options.onViewZoom?.();\n\n this.renderer.requestDraw();\n };\n}\n"},"lineCount":null}},"error":null,"hash":"ae640e259feaf6fade4342a90bb56047","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json b/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json new file mode 100644 index 0000000..bf2d518 --- /dev/null +++ b/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json @@ -0,0 +1 @@ +{"id":"../intersections.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.intersectLineCircleCenter = exports.instersectLinePolygonCenter = exports.intersectLineRectCenter = exports.intersect = void 0; // http://paulbourke.net/geometry/pointlineplane/javascript.txt\n\nfunction intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint) {\n // Check if none of the lines are of length 0\n if (x1 === x2 && y1 === y2 || x3 === x4 && y3 === y4) return false;\n var denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); // Lines are parallel\n\n if (denominator === 0) return false;\n var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n var ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; // is the intersection along the segments\n\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; // Return a object with the x and y coordinates of the intersection\n\n outPoint[0] = x1 + ua * (x2 - x1);\n outPoint[1] = y1 + ua * (y2 - y1);\n return true;\n}\n\nexports.intersect = intersect;\n\nfunction intersectLineRectCenter(x1, y1, x2, y2, w, h, outPoint) {\n var wh = w * 0.5;\n var hh = h * 0.5;\n var i1 = intersect(x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh, outPoint);\n if (i1) return true;\n var i2 = intersect(x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh, outPoint);\n if (i2) return true;\n var i3 = intersect(x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh, outPoint);\n if (i3) return true;\n var i4 = intersect(x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh, outPoint);\n if (i4) return true;\n return false;\n}\n\nexports.intersectLineRectCenter = intersectLineRectCenter;\n\nfunction instersectLinePolygonCenter(x1, y1, x2, y2, points, outPoint) {\n var len = points.length;\n\n for (var i = 0; i < len; i++) {\n var nextIndex = (i + 1) % len;\n var x3 = x2 + points[i][0];\n var y3 = y2 + points[i][1];\n var x4 = x2 + points[nextIndex][0];\n var y4 = y2 + points[nextIndex][1];\n var int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint);\n if (int) return true;\n }\n\n return false;\n}\n\nexports.instersectLinePolygonCenter = instersectLinePolygonCenter;\n\nfunction intersectLineCircleCenter(x1, y1, x2, y2, r, outPoint) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n if (dx * dx + dy * dy <= r * r) return false;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad);\n outPoint[0] = x2 - cosr * r;\n outPoint[1] = y2 - sinr * r;\n return true;\n}\n\nexports.intersectLineCircleCenter = intersectLineCircleCenter;"},"sourceMaps":{"js":{"mappings":[{"source":"../intersections.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":6,"column":136}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":16},"generated":{"line":8,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":3,"column":2},"generated":{"line":8,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":8,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":8,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":8,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":7,"column":2},"generated":{"line":8,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":8,"column":2},"generated":{"line":8,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":8,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":8,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":8,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":8,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":9,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":2},"generated":{"line":10,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":7},"generated":{"line":10,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":10,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":10,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":7},"generated":{"line":10,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":20},"generated":{"line":10,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":22},"generated":{"line":10,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":27},"generated":{"line":10,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":10,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":35},"generated":{"line":10,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":37},"generated":{"line":10,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":42},"generated":{"line":10,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":35},"generated":{"line":10,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":48},"generated":{"line":10,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":50},"generated":{"line":10,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":55},"generated":{"line":10,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":2},"generated":{"line":10,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":60},"generated":{"line":10,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":67},"generated":{"line":10,"column":63}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":60},"generated":{"line":10,"column":68}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":11,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":8},"generated":{"line":11,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":19},"generated":{"line":11,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":23},"generated":{"line":11,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":11,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":28},"generated":{"line":11,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":35},"generated":{"line":11,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":37},"generated":{"line":11,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":40},"generated":{"line":11,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":40}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":47},"generated":{"line":11,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":49},"generated":{"line":11,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":52},"generated":{"line":11,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":59},"generated":{"line":11,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":61},"generated":{"line":11,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":64},"generated":{"line":11,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":11,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":11,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":11,"column":67}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":13,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":13,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":17},"generated":{"line":13,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":22},"generated":{"line":13,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":13,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":13,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":32},"generated":{"line":13,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":13,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":14,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":14,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":10},"generated":{"line":14,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":14,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":14,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":17},"generated":{"line":14,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":20},"generated":{"line":14,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":27},"generated":{"line":14,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":29},"generated":{"line":14,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":32},"generated":{"line":14,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":39},"generated":{"line":14,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":41},"generated":{"line":14,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":44},"generated":{"line":14,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":51},"generated":{"line":14,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":53},"generated":{"line":14,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":56},"generated":{"line":14,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":14,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":63},"generated":{"line":14,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":14,"column":72}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":2},"generated":{"line":15,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":15,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":10},"generated":{"line":15,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":15,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":15},"generated":{"line":15,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":17},"generated":{"line":15,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":20},"generated":{"line":15,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":27},"generated":{"line":15,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":29},"generated":{"line":15,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":32},"generated":{"line":15,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":39},"generated":{"line":15,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":41},"generated":{"line":15,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":44},"generated":{"line":15,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":51},"generated":{"line":15,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":53},"generated":{"line":15,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":56},"generated":{"line":15,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":15,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":63},"generated":{"line":15,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":2},"generated":{"line":15,"column":72}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":15,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":15,"column":74}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":17,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":8},"generated":{"line":17,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":11},"generated":{"line":17,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":17,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":18},"generated":{"line":17,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":21},"generated":{"line":17,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":26},"generated":{"line":17,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":17,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":31},"generated":{"line":17,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":36},"generated":{"line":17,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":38},"generated":{"line":17,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":17,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":17,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":44},"generated":{"line":17,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":51},"generated":{"line":17,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":44},"generated":{"line":17,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":17,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":27,"column":2},"generated":{"line":17,"column":58}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":19,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":19,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":19,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":16},"generated":{"line":19,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":18},"generated":{"line":19,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":21},"generated":{"line":19,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":23},"generated":{"line":19,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":27},"generated":{"line":19,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":29},"generated":{"line":19,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":32},"generated":{"line":19,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":23},"generated":{"line":19,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":20,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":20,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":20,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":20,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":18},"generated":{"line":20,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":21},"generated":{"line":20,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":20,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":27},"generated":{"line":20,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":29},"generated":{"line":20,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":32},"generated":{"line":20,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":20,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":21,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":21,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":21,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":32,"column":1},"generated":{"line":22,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":16},"generated":{"line":26,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":26,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":36,"column":2},"generated":{"line":26,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":37,"column":2},"generated":{"line":26,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":26,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":26,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":26,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":26,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":63}},{"source":"../intersections.ts","name":null,"original":{"line":41,"column":28},"generated":{"line":26,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":27,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":27,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":27,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":13},"generated":{"line":27,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":14},"generated":{"line":27,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":17},"generated":{"line":27,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":27,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":28,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":8},"generated":{"line":28,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":28,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":13},"generated":{"line":28,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":14},"generated":{"line":28,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":17},"generated":{"line":28,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":28,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":29,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":29,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":10},"generated":{"line":29,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":29,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":29,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":29,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":29,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":29,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":29,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":29,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":29,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":29,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":29,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":29,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":6},"generated":{"line":29,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":29,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":29,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":29,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":30,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":6},"generated":{"line":30,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":30,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":10},"generated":{"line":30,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":17},"generated":{"line":30,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":10},"generated":{"line":30,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":31,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":8},"generated":{"line":31,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":10},"generated":{"line":31,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":31,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":31,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":62,"column":4},"generated":{"line":31,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":63,"column":4},"generated":{"line":31,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":31,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":31,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":6},"generated":{"line":31,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":31,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":31,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":31,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":9},"generated":{"line":31,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":4},"generated":{"line":31,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":31,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":31,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":31,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":31,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":31,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":69,"column":4},"generated":{"line":31,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":31,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":2},"generated":{"line":32,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":32,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":2},"generated":{"line":32,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":10},"generated":{"line":32,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":17},"generated":{"line":32,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":10},"generated":{"line":32,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":2},"generated":{"line":33,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":8},"generated":{"line":33,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":10},"generated":{"line":33,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":13},"generated":{"line":33,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":33,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":33,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":33,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":78,"column":4},"generated":{"line":33,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":33,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":33,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":9},"generated":{"line":33,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":4},"generated":{"line":33,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":33,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":33,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":33,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":33,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":9},"generated":{"line":33,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":33,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":33,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":9},"generated":{"line":33,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":83,"column":4},"generated":{"line":33,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":2},"generated":{"line":33,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":34,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":34,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":34,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":34,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":17},"generated":{"line":34,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":34,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":2},"generated":{"line":35,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":8},"generated":{"line":35,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":10},"generated":{"line":35,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":13},"generated":{"line":35,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":35,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":35,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":35,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":92,"column":4},"generated":{"line":35,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":35,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":35,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":35,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":35,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":35,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":35,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":4},"generated":{"line":35,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":35,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":9},"generated":{"line":35,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":35,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":35,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":9},"generated":{"line":35,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":97,"column":4},"generated":{"line":35,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":2},"generated":{"line":35,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":2},"generated":{"line":36,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":36,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":2},"generated":{"line":36,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":10},"generated":{"line":36,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":17},"generated":{"line":36,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":10},"generated":{"line":36,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":2},"generated":{"line":37,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":9},"generated":{"line":37,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":2},"generated":{"line":37,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":103,"column":1},"generated":{"line":38,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":16},"generated":{"line":42,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":42,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":107,"column":2},"generated":{"line":42,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":108,"column":2},"generated":{"line":42,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":42,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":42,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":42,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":111,"column":28},"generated":{"line":42,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":2},"generated":{"line":43,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":43,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":11},"generated":{"line":43,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":14},"generated":{"line":43,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":20},"generated":{"line":43,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":21},"generated":{"line":43,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":2},"generated":{"line":43,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":7},"generated":{"line":45,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":11},"generated":{"line":45,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":12},"generated":{"line":45,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":15},"generated":{"line":45,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":18},"generated":{"line":45,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":19},"generated":{"line":45,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":22},"generated":{"line":45,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":27},"generated":{"line":45,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":28},"generated":{"line":45,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":32},"generated":{"line":45,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":46,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":10},"generated":{"line":46,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":46,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":46,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":23},"generated":{"line":46,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":24},"generated":{"line":46,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":27},"generated":{"line":46,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":46,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":32},"generated":{"line":46,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":46,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":47,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":10},"generated":{"line":47,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":47,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":15},"generated":{"line":47,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":17},"generated":{"line":47,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":26},"generated":{"line":47,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":27},"generated":{"line":47,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":26},"generated":{"line":47,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":30},"generated":{"line":47,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":47,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":48,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":10},"generated":{"line":48,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":12},"generated":{"line":48,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":15},"generated":{"line":48,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":17},"generated":{"line":48,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":26},"generated":{"line":48,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":27},"generated":{"line":48,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":26},"generated":{"line":48,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":30},"generated":{"line":48,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":48,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":49,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":10},"generated":{"line":49,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":12},"generated":{"line":49,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":15},"generated":{"line":49,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":17},"generated":{"line":49,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":26},"generated":{"line":49,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":27},"generated":{"line":49,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":26},"generated":{"line":49,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":38},"generated":{"line":49,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":49,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":4},"generated":{"line":50,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":10},"generated":{"line":50,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":50,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":15},"generated":{"line":50,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":17},"generated":{"line":50,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":26},"generated":{"line":50,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":27},"generated":{"line":50,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":26},"generated":{"line":50,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":38},"generated":{"line":50,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":4},"generated":{"line":50,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":51,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":10},"generated":{"line":51,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":13},"generated":{"line":51,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":16},"generated":{"line":51,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":26},"generated":{"line":51,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":30},"generated":{"line":51,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":34},"generated":{"line":51,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":38},"generated":{"line":51,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":42},"generated":{"line":51,"column":40}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":46},"generated":{"line":51,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":50},"generated":{"line":51,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":54},"generated":{"line":51,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":58},"generated":{"line":51,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":51,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":4},"generated":{"line":52,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":8},"generated":{"line":52,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":4},"generated":{"line":52,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":13},"generated":{"line":52,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":20},"generated":{"line":52,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":13},"generated":{"line":52,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":126,"column":3},"generated":{"line":53,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":2},"generated":{"line":55,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":9},"generated":{"line":55,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":2},"generated":{"line":55,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":129,"column":1},"generated":{"line":56,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":16},"generated":{"line":60,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":60,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":133,"column":2},"generated":{"line":60,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":134,"column":2},"generated":{"line":60,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":135,"column":2},"generated":{"line":60,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":136,"column":2},"generated":{"line":60,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":137,"column":2},"generated":{"line":60,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":137,"column":28},"generated":{"line":60,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":2},"generated":{"line":61,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":8},"generated":{"line":61,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":61,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":13},"generated":{"line":61,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":15},"generated":{"line":61,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":18},"generated":{"line":61,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":2},"generated":{"line":61,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":2},"generated":{"line":62,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":8},"generated":{"line":62,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":10},"generated":{"line":62,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":13},"generated":{"line":62,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":15},"generated":{"line":62,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":18},"generated":{"line":62,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":2},"generated":{"line":62,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":2},"generated":{"line":63,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":8},"generated":{"line":63,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":11},"generated":{"line":63,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":16},"generated":{"line":63,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":18},"generated":{"line":63,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":21},"generated":{"line":63,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":27},"generated":{"line":63,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":28},"generated":{"line":63,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":31},"generated":{"line":63,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":2},"generated":{"line":63,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":34},"generated":{"line":63,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":41},"generated":{"line":63,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":34},"generated":{"line":63,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":64,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":8},"generated":{"line":64,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":11},"generated":{"line":64,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":64,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":19},"generated":{"line":64,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":25},"generated":{"line":64,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":29},"generated":{"line":64,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":64,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":2},"generated":{"line":65,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":65,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":12},"generated":{"line":65,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":19},"generated":{"line":65,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":65,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":24},"generated":{"line":65,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":2},"generated":{"line":65,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":2},"generated":{"line":66,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":66,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":12},"generated":{"line":66,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":19},"generated":{"line":66,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":20},"generated":{"line":66,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":66,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":2},"generated":{"line":66,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":10},"generated":{"line":67,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":11},"generated":{"line":67,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":10},"generated":{"line":67,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":16},"generated":{"line":67,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":18},"generated":{"line":67,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":21},"generated":{"line":67,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":25},"generated":{"line":67,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":28},"generated":{"line":67,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":10},"generated":{"line":68,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":11},"generated":{"line":68,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":10},"generated":{"line":68,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":16},"generated":{"line":68,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":18},"generated":{"line":68,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":21},"generated":{"line":68,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":25},"generated":{"line":68,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":28},"generated":{"line":68,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":2},"generated":{"line":69,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":9},"generated":{"line":69,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":2},"generated":{"line":69,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":152,"column":1},"generated":{"line":70,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":61}}],"sources":{"../intersections.ts":"// http://paulbourke.net/geometry/pointlineplane/javascript.txt\nexport function intersect(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n x4: number,\n y4: number,\n outPoint: [number, number]\n): boolean {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false;\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) return false;\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false;\n\n // Return a object with the x and y coordinates of the intersection\n outPoint[0] = x1 + ua * (x2 - x1);\n outPoint[1] = y1 + ua * (y2 - y1);\n\n return true;\n}\n\nexport function intersectLineRectCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n w: number,\n h: number,\n outPoint: [number, number]\n): boolean {\n const wh = w * 0.5;\n const hh = h * 0.5;\n\n const i1 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 - wh,\n y2 - hh,\n x2 + wh,\n y2 - hh,\n outPoint\n );\n\n if (i1) return true;\n\n const i2 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 + wh,\n y2 - hh,\n x2 + wh,\n y2 + hh,\n outPoint\n );\n\n if (i2) return true;\n\n const i3 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 + wh,\n y2 + hh,\n x2 - wh,\n y2 + hh,\n outPoint\n );\n\n if (i3) return true;\n\n const i4 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 - wh,\n y2 + hh,\n x2 - wh,\n y2 - hh,\n outPoint\n );\n\n if (i4) return true;\n\n return false;\n}\n\nexport function instersectLinePolygonCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n points: [number, number][],\n outPoint: [number, number]\n): boolean {\n const len = points.length;\n\n for (let i = 0; i < len; i++) {\n const nextIndex = (i + 1) % len;\n\n const x3 = x2 + points[i][0];\n const y3 = y2 + points[i][1];\n const x4 = x2 + points[nextIndex][0];\n const y4 = y2 + points[nextIndex][1];\n\n const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint);\n\n if (int) return true;\n }\n\n return false;\n}\n\nexport function intersectLineCircleCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n r: number,\n outPoint: [number, number]\n): boolean {\n const dx = x2 - x1;\n const dy = y2 - y1;\n\n if (dx * dx + dy * dy <= r * r) return false;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n outPoint[0] = x2 - cosr * r;\n outPoint[1] = y2 - sinr * r;\n\n return true;\n}\n"},"lineCount":null}},"error":null,"hash":"3cf584ec9ff339c1581524a81de018c4","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json b/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json new file mode 100644 index 0000000..894fd86 --- /dev/null +++ b/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json @@ -0,0 +1 @@ +{"id":"../types.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEGridType = exports.GEShapeName = void 0;\nvar GEShapeName;\n\n(function (GEShapeName) {\n GEShapeName[GEShapeName[\"CIRCLE\"] = 0] = \"CIRCLE\";\n GEShapeName[GEShapeName[\"RECTANGLE\"] = 1] = \"RECTANGLE\";\n GEShapeName[GEShapeName[\"POLYGON\"] = 2] = \"POLYGON\";\n})(GEShapeName = exports.GEShapeName || (exports.GEShapeName = {}));\n\nvar GEGridType;\n\n(function (GEGridType) {\n GEGridType[GEGridType[\"LINES\"] = 0] = \"LINES\";\n GEGridType[GEGridType[\"DOTS\"] = 1] = \"DOTS\";\n})(GEGridType = exports.GEGridType || (exports.GEGridType = {}));"},"sourceMaps":{"js":{"mappings":[{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":7,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":7,"column":4}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":7,"column":15}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":1}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":9,"column":11}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":22}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":9,"column":24}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":0}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":2}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":13}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":14}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":25}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":26}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":34}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":35}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":38}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":39}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":40}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":43}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":51}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":0}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":2}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":13}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":14}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":25}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":26}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":37}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":38}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":41}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":42}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":43}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":46}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":57}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":0}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":2}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":13}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":14}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":25}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":26}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":35}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":36}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":39}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":40}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":41}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":44}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":53}},{"source":"../types.ts","name":null,"original":{"line":7,"column":1},"generated":{"line":13,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":13,"column":1}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":3}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":13,"column":14}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":17}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":24}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":25}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":36}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":41}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":48}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":49}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":60}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":13,"column":63}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":65}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":13,"column":66}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":15,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":15,"column":4}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":15,"column":14}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":1}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":17,"column":11}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":21}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":17,"column":23}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":0}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":2}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":12}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":13}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":23}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":24}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":31}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":32}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":35}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":36}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":37}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":40}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":47}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":0}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":2}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":12}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":13}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":23}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":24}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":30}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":31}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":34}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":35}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":36}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":39}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":45}},{"source":"../types.ts","name":null,"original":{"line":53,"column":1},"generated":{"line":20,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":20,"column":1}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":3}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":20,"column":13}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":16}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":23}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":24}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":34}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":39}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":46}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":47}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":57}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":20,"column":60}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":62}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":20,"column":63}}],"sources":{"../types.ts":"export type Point = [number, number];\n\nexport enum GEShapeName {\n CIRCLE,\n RECTANGLE,\n POLYGON\n}\n\nexport type GECircleShape = {\n shape: GEShapeName.CIRCLE;\n r: number;\n color?: string;\n};\n\nexport type GERectangleShape = {\n shape: GEShapeName.RECTANGLE;\n width: number;\n height: number;\n color?: string;\n};\n\nexport type GEPolygonShape = {\n shape: GEShapeName.POLYGON;\n points: Point[];\n color?: string;\n};\n\nexport type GEShape = GECircleShape | GERectangleShape | GEPolygonShape;\n\nexport type GEShapes = { 0: GEShape } & GEShape[];\n\nexport type GEShapeTypes = Record;\n\nexport type GENode = {\n id: number;\n x: number;\n y: number;\n text: string;\n type: string;\n};\n\nexport type GEEdge = {\n id: number;\n text: string;\n sourceNode: GENode;\n targetNode: GENode;\n type: string;\n};\n\nexport enum GEGridType {\n LINES,\n DOTS\n}\n\nexport type GEViewOptions = {\n edgeArrowLength: number;\n edgeArrowRadian: number;\n backgroundColor: string;\n showGrid: boolean;\n gridType: GEGridType;\n gridColor: string;\n gridLineWidth: number;\n gridGap: number;\n defaultSubShapeColor: string;\n nodeLineWidth: number;\n nodeColor: string;\n nodeSelectedColor: string;\n nodeStrokeColor: string;\n nodeTextColor: string;\n nodeSelectedTextColor: string;\n nodeTextStyle: string;\n edgeLineWidth: number;\n edgeLineColor: string;\n edgeLineSelectedColor: string;\n edgeShapeFillColor: string;\n edgeTextColor: string;\n edgeSelectedTextColor: string;\n edgeTextStyle: string;\n minScale: number;\n maxScale: number;\n cursorGrab: string;\n cursorPointer: string;\n cursorCrosshair: string;\n nodeTypes: GEShapeTypes;\n edgeTypes: GEShapeTypes;\n onViewMoved?: () => void;\n onViewZoom?: () => void;\n onCreateNode?: (x: number, y: number, evt: MouseEvent) => void;\n onMoveNode?: (node: GENode, newX: number, newY: number) => void;\n onDeleteNode?: (node: GENode) => void;\n onCreateEdge?: (\n sourceNode: GENode,\n targetNode: GENode,\n evt: MouseEvent\n ) => void;\n onDeleteEdge?: (edge: GEEdge, sourceNode: GENode, targetNode: GENode) => void;\n onSelectionChange?: (\n selectedNode: GENode | undefined,\n selectedEdge: GEEdge | undefined\n ) => void;\n onHoverChange?: (\n hoveredNode: GENode | undefined,\n hoveredEdge: GEEdge | undefined,\n viewX: number,\n viewY: number,\n canvasX: number,\n canvasY: number,\n clientX: number,\n clientY: number\n ) => void;\n};\n\nexport type GEViewOptionsParams = {\n [T in keyof GEViewOptions]?: GEViewOptions[T];\n};\n"},"lineCount":null}},"error":null,"hash":"0a7cf289fb2c5ab9bd21ab8ab71782a9","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/6a/fe7693a37c74e8fe750eea0303096a.json b/.cache/6a/fe7693a37c74e8fe750eea0303096a.json new file mode 100644 index 0000000..49f1a19 --- /dev/null +++ b/.cache/6a/fe7693a37c74e8fe750eea0303096a.json @@ -0,0 +1 @@ +{"id":"../graph-view.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./state","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/state.ts"},{"name":"./graph-renderer","loc":{"line":5,"column":31},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts"},{"name":"./event-handler","loc":{"line":6,"column":30},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/event-handler.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEView = void 0;\n\nvar state_1 = require(\"./state\");\n\nvar graph_renderer_1 = require(\"./graph-renderer\");\n\nvar event_handler_1 = require(\"./event-handler\");\n\nvar GEView =\n/** @class */\nfunction () {\n function GEView(options) {\n this.canvas = document.createElement(\"canvas\");\n this._state = new state_1.GEState();\n this._renderer = new graph_renderer_1.GEGraphRenderer(this._state, this.canvas);\n this._eventHandler = new event_handler_1.GEEventHandler(this._state, this.canvas, this._renderer);\n\n if (options) {\n this._state.setOptions(options);\n }\n }\n\n GEView.prototype.getTranslateX = function () {\n return this._state.translateX;\n };\n\n GEView.prototype.getTanslateY = function () {\n return this._state.translateY;\n };\n\n GEView.prototype.getScale = function () {\n return this._state.scale;\n };\n\n GEView.prototype.zoomTo = function (value) {\n var _a = this.canvas,\n width = _a.width,\n height = _a.height;\n var _b = this._state,\n translateX = _b.translateX,\n translateY = _b.translateY,\n scale = _b.scale;\n var centerX = (width * 0.5 - translateX) / scale;\n var centerY = (height * 0.5 - translateY) / scale;\n\n this._state.zoomTo(value, centerX, centerY);\n\n this.requestDraw();\n };\n\n GEView.prototype.init = function (container) {\n container.appendChild(this.canvas);\n this.canvas.textContent = \"Canvas is not supported in your browser.\";\n this.canvas.width = container.clientWidth;\n this.canvas.height = container.clientHeight;\n\n this._state.setBoundingRect(this.canvas);\n\n this._eventHandler.init();\n\n this.requestDraw();\n };\n\n GEView.prototype.destroy = function () {\n this._eventHandler.destroy();\n };\n\n GEView.prototype.requestDraw = function () {\n this._renderer.requestDraw();\n };\n\n GEView.prototype.resize = function (width, height) {\n this.canvas.width = width;\n this.canvas.height = height;\n\n this._state.setBoundingRect(this.canvas);\n\n this.requestDraw();\n };\n\n GEView.prototype.setData = function (nodes, edges) {\n this._state.setData(nodes, edges);\n\n this.requestDraw();\n };\n\n GEView.prototype.setOptions = function (options) {\n this._state.setOptions(options);\n\n this.requestDraw();\n };\n\n GEView.prototype.setSelection = function (node, edge) {\n if (node && edge) return;\n this._state.selectedNode = node;\n this._state.selectedEdge = edge;\n this.requestDraw();\n };\n\n GEView.prototype.setSelectedNode = function (node) {\n this._state.selectedNode = node;\n this._state.selectedEdge = undefined;\n this.requestDraw();\n };\n\n GEView.prototype.getSelectedNode = function () {\n return this._state.selectedNode;\n };\n\n GEView.prototype.setSelectedEdge = function (edge) {\n this._state.selectedNode = undefined;\n this._state.selectedEdge = edge;\n this.requestDraw();\n };\n\n GEView.prototype.getSelectedEdge = function () {\n return this._state.selectedEdge;\n };\n\n return GEView;\n}();\n\nexports.GEView = GEView;"},"sourceMaps":{"js":{"mappings":[{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":15,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":16,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":16,"column":12}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":14},"generated":{"line":17,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":43},"generated":{"line":17,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":18,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":26},"generated":{"line":18,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":27},"generated":{"line":18,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":41},"generated":{"line":18,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":19,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":19,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":19,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":9},"generated":{"line":20,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":57}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":41},"generated":{"line":20,"column":58}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":20,"column":63}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":69}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":54},"generated":{"line":20,"column":71}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":59},"generated":{"line":20,"column":76}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":82}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":83}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":21,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":59}},{"source":"../graph-view.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":21,"column":60}},{"source":"../graph-view.ts","name":null,"original":{"line":18,"column":11},"generated":{"line":21,"column":65}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":71}},{"source":"../graph-view.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":73}},{"source":"../graph-view.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":78}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":84}},{"source":"../graph-view.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":21,"column":86}},{"source":"../graph-view.ts","name":null,"original":{"line":20,"column":11},"generated":{"line":21,"column":91}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":100}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":101}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":23,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":23,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":23,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":17},"generated":{"line":23,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":11},"generated":{"line":24,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":18},"generated":{"line":24,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":29},"generated":{"line":24,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":25,"column":5},"generated":{"line":25,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":26,"column":3},"generated":{"line":26,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":29,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":29,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":29,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":29,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":29,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":29,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":30,"column":3},"generated":{"line":30,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":30,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":33,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":11},"generated":{"line":33,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":16},"generated":{"line":33,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":11},"generated":{"line":33,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":23},"generated":{"line":33,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":33,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":34,"column":3},"generated":{"line":34,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":34,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":37,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":37,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":16},"generated":{"line":37,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":37,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":23},"generated":{"line":37,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":37,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":37,"column":3},"generated":{"line":38,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":38,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":9},"generated":{"line":40,"column":38}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":22},"generated":{"line":40,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":30},"generated":{"line":41,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":35},"generated":{"line":41,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":42,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":12},"generated":{"line":42,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":42,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":43,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":19},"generated":{"line":43,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":43,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":46},"generated":{"line":44,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":51},"generated":{"line":44,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":45,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":12},"generated":{"line":45,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":45,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":46,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":24},"generated":{"line":46,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":46,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":47,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":36},"generated":{"line":47,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":47,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":48,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":48,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":17},"generated":{"line":48,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":48,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":48,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":26},"generated":{"line":48,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":29},"generated":{"line":48,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":48,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":35},"generated":{"line":48,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":48,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":49},"generated":{"line":48,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":48,"column":52}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":49,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":49,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":17},"generated":{"line":49,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":20},"generated":{"line":49,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":21},"generated":{"line":49,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":27},"generated":{"line":49,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":30},"generated":{"line":49,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":21},"generated":{"line":49,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":36},"generated":{"line":49,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":20},"generated":{"line":49,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":50},"generated":{"line":49,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":49,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":9},"generated":{"line":51,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":16},"generated":{"line":51,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":23},"generated":{"line":51,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":30},"generated":{"line":51,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":51,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":53,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":9},"generated":{"line":53,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":53,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":49,"column":3},"generated":{"line":54,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":54,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":7},"generated":{"line":56,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":29},"generated":{"line":56,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":57,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":14},"generated":{"line":57,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":26},"generated":{"line":57,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":31},"generated":{"line":57,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":58,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":16},"generated":{"line":58,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":30},"generated":{"line":58,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":72}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":9},"generated":{"line":59,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":16},"generated":{"line":59,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":24},"generated":{"line":59,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":33},"generated":{"line":59,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":34},"generated":{"line":59,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":9},"generated":{"line":60,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":16},"generated":{"line":60,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":25},"generated":{"line":60,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":34},"generated":{"line":60,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":35},"generated":{"line":60,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":62,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":16},"generated":{"line":62,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":32},"generated":{"line":62,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":37},"generated":{"line":62,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":9},"generated":{"line":64,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":23},"generated":{"line":64,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":4},"generated":{"line":66,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":9},"generated":{"line":66,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":4},"generated":{"line":66,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":61,"column":3},"generated":{"line":67,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":67,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":70,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":70,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":65,"column":3},"generated":{"line":71,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":71,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":74,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":19},"generated":{"line":74,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":69,"column":3},"generated":{"line":75,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":75,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":9},"generated":{"line":77,"column":38}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":77,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":38},"generated":{"line":77,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":78,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":16},"generated":{"line":78,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":24},"generated":{"line":78,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":9},"generated":{"line":79,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":16},"generated":{"line":79,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":25},"generated":{"line":79,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":9},"generated":{"line":81,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":16},"generated":{"line":81,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":32},"generated":{"line":81,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":37},"generated":{"line":81,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":83,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":9},"generated":{"line":83,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":83,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":78,"column":3},"generated":{"line":84,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":84,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":10},"generated":{"line":86,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":27},"generated":{"line":86,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":42},"generated":{"line":86,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":9},"generated":{"line":87,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":87,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":24},"generated":{"line":87,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":31},"generated":{"line":87,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":89,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":9},"generated":{"line":89,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":89,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":83,"column":3},"generated":{"line":90,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":90,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":13},"generated":{"line":92,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":41},"generated":{"line":92,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":9},"generated":{"line":93,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":16},"generated":{"line":93,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":27},"generated":{"line":93,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":4},"generated":{"line":95,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":9},"generated":{"line":95,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":4},"generated":{"line":95,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":88,"column":3},"generated":{"line":96,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":96,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":15},"generated":{"line":98,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":41},"generated":{"line":98,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":54}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":65},"generated":{"line":98,"column":56}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":99,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":8},"generated":{"line":99,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":12},"generated":{"line":99,"column":12}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":16},"generated":{"line":99,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":99,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":22},"generated":{"line":99,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":100,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":16},"generated":{"line":100,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":31},"generated":{"line":100,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":101,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":16},"generated":{"line":101,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":31},"generated":{"line":101,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":102,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":9},"generated":{"line":102,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":102,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":97,"column":3},"generated":{"line":103,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":103,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":18},"generated":{"line":105,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":42},"generated":{"line":105,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":9},"generated":{"line":106,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":106,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":31},"generated":{"line":106,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":9},"generated":{"line":107,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":16},"generated":{"line":107,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":31},"generated":{"line":107,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":4},"generated":{"line":108,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":9},"generated":{"line":108,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":4},"generated":{"line":108,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":104,"column":3},"generated":{"line":109,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":109,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":4},"generated":{"line":112,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":112,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":16},"generated":{"line":112,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":112,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":23},"generated":{"line":112,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":4},"generated":{"line":112,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":108,"column":3},"generated":{"line":113,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":113,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":18},"generated":{"line":115,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":42},"generated":{"line":115,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":9},"generated":{"line":116,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":16},"generated":{"line":116,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":31},"generated":{"line":116,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":9},"generated":{"line":117,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":16},"generated":{"line":117,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":31},"generated":{"line":117,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":4},"generated":{"line":118,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":9},"generated":{"line":118,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":4},"generated":{"line":118,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":115,"column":3},"generated":{"line":119,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":119,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":122,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":11},"generated":{"line":122,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":16},"generated":{"line":122,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":11},"generated":{"line":122,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":23},"generated":{"line":122,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":122,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":119,"column":3},"generated":{"line":123,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":123,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":1}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":7}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":23}}],"sources":{"../graph-view.ts":"import { GEState } from \"./state\";\nimport { GEGraphRenderer } from \"./graph-renderer\";\nimport { GEEventHandler } from \"./event-handler\";\nimport { GENode, GEEdge, GEViewOptionsParams } from \"./types\";\n\nexport class GEView {\n readonly canvas: HTMLCanvasElement;\n\n private _state: GEState;\n private _renderer: GEGraphRenderer;\n private _eventHandler: GEEventHandler;\n\n constructor(options?: GEViewOptionsParams) {\n this.canvas = document.createElement(\"canvas\");\n this._state = new GEState();\n this._renderer = new GEGraphRenderer(this._state, this.canvas);\n this._eventHandler = new GEEventHandler(\n this._state,\n this.canvas,\n this._renderer\n );\n\n if (options) {\n this._state.setOptions(options);\n }\n }\n\n getTranslateX(): number {\n return this._state.translateX;\n }\n\n getTanslateY(): number {\n return this._state.translateY;\n }\n getScale(): number {\n return this._state.scale;\n }\n\n zoomTo(value: number): void {\n const { width, height } = this.canvas;\n const { translateX, translateY, scale } = this._state;\n\n const centerX = (width * 0.5 - translateX) / scale;\n const centerY = (height * 0.5 - translateY) / scale;\n\n this._state.zoomTo(value, centerX, centerY);\n\n this.requestDraw();\n }\n\n init(container: HTMLElement): void {\n container.appendChild(this.canvas);\n\n this.canvas.textContent = \"Canvas is not supported in your browser.\";\n this.canvas.width = container.clientWidth;\n this.canvas.height = container.clientHeight;\n\n this._state.setBoundingRect(this.canvas);\n this._eventHandler.init();\n this.requestDraw();\n }\n\n destroy(): void {\n this._eventHandler.destroy();\n }\n\n requestDraw(): void {\n this._renderer.requestDraw();\n }\n\n resize(width: number, height: number): void {\n this.canvas.width = width;\n this.canvas.height = height;\n\n this._state.setBoundingRect(this.canvas);\n\n this.requestDraw();\n }\n\n setData(nodes: GENode[], edges: GEEdge[]): void {\n this._state.setData(nodes, edges);\n this.requestDraw();\n }\n\n setOptions(options: GEViewOptionsParams): void {\n this._state.setOptions(options);\n this.requestDraw();\n }\n\n setSelection(node: GENode | undefined, edge: GEEdge | undefined): void {\n if (node && edge) return;\n\n this._state.selectedNode = node;\n this._state.selectedEdge = edge;\n\n this.requestDraw();\n }\n\n setSelectedNode(node: GENode | undefined): void {\n this._state.selectedNode = node;\n this._state.selectedEdge = undefined;\n\n this.requestDraw();\n }\n\n getSelectedNode(): GENode | undefined {\n return this._state.selectedNode;\n }\n\n setSelectedEdge(edge: GEEdge | undefined): void {\n this._state.selectedNode = undefined;\n this._state.selectedEdge = edge;\n\n this.requestDraw();\n }\n\n getSelectedEdge(): GEEdge | undefined {\n return this._state.selectedEdge;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"dd9a0a7861c24cb43e5d47448ac030cf","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/8a/45b276546564a899bc98d01c1485d1.json b/.cache/8a/45b276546564a899bc98d01c1485d1.json new file mode 100644 index 0000000..88db657 --- /dev/null +++ b/.cache/8a/45b276546564a899bc98d01c1485d1.json @@ -0,0 +1 @@ +{"id":"node-types.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"../types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/node-types.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.edgeTypes = exports.nodeTypes = void 0;\n\nvar types_1 = require(\"../types\");\n\nexports.nodeTypes = {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }],\n decision: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }],\n unknown: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -80], [80, 0], [0, 80], [-80, 0]]\n }],\n complex: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }]\n};\nexports.edgeTypes = {\n normal: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -25], [25, 0], [0, 25], [-25, 0]]\n }],\n round: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25\n }],\n double: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }]\n};"},"sourceMaps":{"js":{"mappings":[{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":10,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":7},"generated":{"line":11,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":11,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":11,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":11},"generated":{"line":12,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":12,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":12,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":7},"generated":{"line":13,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":9},"generated":{"line":13,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":14,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":14,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":14,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":10},"generated":{"line":15,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":15,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":15,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":11},"generated":{"line":16,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":25},"generated":{"line":16,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":16,"column":40}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":11},"generated":{"line":17,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":13},"generated":{"line":17,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":17,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":12},"generated":{"line":18,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":18,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":19,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":19,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":19,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":20,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":20,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":20,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":21,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":21,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":12},"generated":{"line":22,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":22,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":15}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":22,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":22,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":23}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":9},"generated":{"line":22,"column":24}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":26}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":22,"column":28}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":29}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":9},"generated":{"line":22,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":34}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":12},"generated":{"line":22,"column":36}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":39}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":41}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":22,"column":42}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":22,"column":43}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":45}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":14},"generated":{"line":22,"column":47}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":48}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":49}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":23,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":23,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":23,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":24,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":24,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":24,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":11},"generated":{"line":25,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":25},"generated":{"line":25,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":25,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":7},"generated":{"line":26,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":26,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":27,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":27,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":27,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":11},"generated":{"line":28,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":25},"generated":{"line":28,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":28,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":7},"generated":{"line":29,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":29,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":30,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":13},"generated":{"line":30,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":31,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":31,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":31,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":32,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":25},"generated":{"line":32,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":32,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":7},"generated":{"line":33,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":33,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":33,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":11},"generated":{"line":34,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":13},"generated":{"line":34,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":35,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":35,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":36,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":36,"column":1}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":37,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":38,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":38,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":38,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":39,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":25},"generated":{"line":39,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":39,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":40,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":40,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":15}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":40,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":13},"generated":{"line":40,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":23}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":40,"column":24}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":26}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":40,"column":28}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":29}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":40,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":34}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":40,"column":36}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":39}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":41}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":40,"column":42}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":40,"column":43}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":45}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":14},"generated":{"line":40,"column":47}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":48}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":49}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":41,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":41,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":41,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":7},"generated":{"line":42,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":42,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":42,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":11},"generated":{"line":43,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":25},"generated":{"line":43,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":43,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":7},"generated":{"line":44,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":9},"generated":{"line":44,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":45,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":45,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":45,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":8},"generated":{"line":46,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":46,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":46,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":47,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":25},"generated":{"line":47,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":47,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":7},"generated":{"line":48,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":48,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":48,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":11},"generated":{"line":49,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":49,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":50,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":50,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":50,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":51,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":25},"generated":{"line":51,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":51,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":52,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":52,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":52,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":11},"generated":{"line":53,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":13},"generated":{"line":53,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":54,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":54,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":55,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":55,"column":1}}],"sources":{"node-types.ts":"import { GEShapeTypes, GEShapeName } from \"../types\";\n\nexport const nodeTypes: GEShapeTypes = {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ],\n decision: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }\n ],\n unknown: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -80],\n [80, 0],\n [0, 80],\n [-80, 0]\n ]\n }\n ],\n complex: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }\n ]\n};\n\nexport const edgeTypes: GEShapeTypes = {\n normal: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -25],\n [25, 0],\n [0, 25],\n [-25, 0]\n ]\n }\n ],\n round: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25\n }\n ],\n double: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }\n ]\n};\n"},"lineCount":null}},"error":null,"hash":"cab0c5681abbb83ede8a394c81b9d6d7","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json b/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json new file mode 100644 index 0000000..2ab8a54 --- /dev/null +++ b/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json @@ -0,0 +1 @@ +{"id":"index.html","dependencies":[{"name":"./index.css","dynamic":true,"resolved":"/Users/hartonochandra/try/web-digraph/src/example/index.css","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.html"},{"name":"./index.ts","dynamic":true,"resolved":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.html"}],"generated":{"html":"\n\n\n\n \n \n\n web-digraph example\n \n\n\n\n
\n
\n
\n
\n \n
\n\n
\n \n \n
\n\n
\n
Node count: 0
\n
Edge count: 0
\n
\n
\n
\n
Press and hold shift, and then click on empty place to create a new node.
\n
Press and hold shift, and then click and drag a node to another node to create a new edge.
\n
\n
\n\n \n\n\n"},"sourceMaps":null,"error":null,"hash":"15b8fd597ff59cb8477e0484d654e88b","cacheData":{}} \ No newline at end of file diff --git a/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json b/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json new file mode 100644 index 0000000..c05e9fd --- /dev/null +++ b/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json @@ -0,0 +1 @@ +{"id":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000},{"name":"./bundle-url","loc":{"line":1,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/css-loader.js","resolved":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/bundle-url.js"}],"generated":{"js":"var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n\n newLink.onload = function () {\n link.remove();\n };\n\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\n\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":1,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":0}},{"name":"bundle","generated":{"line":1,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":4}},{"generated":{"line":1,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":10}},{"name":"require","generated":{"line":1,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":13}},{"generated":{"line":1,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":20}},{"generated":{"line":1,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":21}},{"generated":{"line":1,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":20}},{"generated":{"line":1,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"name":"updateLink","generated":{"line":3,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":9}},{"generated":{"line":3,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"name":"link","generated":{"line":3,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":20}},{"generated":{"line":3,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"generated":{"line":3,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":26}},{"generated":{"line":4,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":2}},{"name":"newLink","generated":{"line":4,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":6}},{"generated":{"line":4,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":13}},{"name":"link","generated":{"line":4,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":16}},{"generated":{"line":4,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":20}},{"name":"cloneNode","generated":{"line":4,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":21}},{"generated":{"line":4,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":16}},{"generated":{"line":4,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":2}},{"name":"newLink","generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"name":"newLink","generated":{"line":6,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"generated":{"line":6,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":9}},{"name":"onload","generated":{"line":6,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":10}},{"generated":{"line":6,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"generated":{"line":6,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":19}},{"generated":{"line":6,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":31}},{"name":"link","generated":{"line":7,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"name":"link","generated":{"line":7,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"generated":{"line":7,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":8}},{"name":"remove","generated":{"line":7,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":9}},{"generated":{"line":7,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":7,"column":3}},{"generated":{"line":8,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"name":"newLink","generated":{"line":10,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"newLink","generated":{"line":10,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"generated":{"line":10,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":9}},{"name":"href","generated":{"line":10,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":10}},{"generated":{"line":10,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"link","generated":{"line":10,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":21}},{"name":"href","generated":{"line":10,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":22}},{"generated":{"line":10,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"name":"split","generated":{"line":10,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":27}},{"generated":{"line":10,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":33}},{"generated":{"line":10,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":38}},{"generated":{"line":10,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":43}},{"generated":{"line":10,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"name":"Date","generated":{"line":10,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":49}},{"generated":{"line":10,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":53}},{"name":"now","generated":{"line":10,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":54}},{"generated":{"line":10,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":49}},{"generated":{"line":10,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"link","generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"link","generated":{"line":11,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"generated":{"line":11,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":6}},{"name":"parentNode","generated":{"line":11,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":7}},{"generated":{"line":11,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"insertBefore","generated":{"line":11,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":18}},{"generated":{"line":11,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"newLink","generated":{"line":11,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":31}},{"generated":{"line":11,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"link","generated":{"line":11,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":40}},{"generated":{"line":11,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":44}},{"name":"nextSibling","generated":{"line":11,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":45}},{"generated":{"line":11,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":10,"column":1}},{"generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":0}},{"name":"cssTimeout","generated":{"line":14,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":4}},{"generated":{"line":14,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":14}},{"generated":{"line":14,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":17}},{"generated":{"line":14,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":0}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":0}},{"name":"reloadCSS","generated":{"line":16,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":9}},{"generated":{"line":16,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":0}},{"generated":{"line":16,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":21}},{"generated":{"line":17,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":2}},{"name":"cssTimeout","generated":{"line":17,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":6}},{"generated":{"line":17,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":2}},{"generated":{"line":17,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":18}},{"generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":15,"column":4}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":16,"column":3}},{"name":"cssTimeout","generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"name":"cssTimeout","generated":{"line":21,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"generated":{"line":21,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":12}},{"name":"setTimeout","generated":{"line":21,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":15}},{"generated":{"line":21,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":21,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":26}},{"generated":{"line":21,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":38}},{"generated":{"line":22,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":4}},{"name":"links","generated":{"line":22,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":8}},{"generated":{"line":22,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":13}},{"name":"document","generated":{"line":22,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":24}},{"name":"querySelectorAll","generated":{"line":22,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":25}},{"generated":{"line":22,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":42}},{"generated":{"line":22,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":67},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":4}},{"generated":{"line":24,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"generated":{"line":24,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":9}},{"name":"i","generated":{"line":24,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":13}},{"generated":{"line":24,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":14}},{"generated":{"line":24,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":17}},{"generated":{"line":24,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"name":"i","generated":{"line":24,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":20}},{"generated":{"line":24,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":21}},{"name":"links","generated":{"line":24,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":24}},{"generated":{"line":24,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":29}},{"name":"length","generated":{"line":24,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":30}},{"generated":{"line":24,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"name":"i","generated":{"line":24,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":38}},{"generated":{"line":24,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":39}},{"generated":{"line":24,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"generated":{"line":24,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":43}},{"generated":{"line":25,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":6}},{"name":"bundle","generated":{"line":25,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"generated":{"line":25,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":16}},{"name":"getBaseURL","generated":{"line":25,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":17}},{"generated":{"line":25,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"name":"links","generated":{"line":25,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":28}},{"generated":{"line":25,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":33}},{"name":"i","generated":{"line":25,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":34}},{"generated":{"line":25,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":33}},{"generated":{"line":25,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":28}},{"name":"href","generated":{"line":25,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":37}},{"generated":{"line":25,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"name":"bundle","generated":{"line":25,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":47}},{"generated":{"line":25,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":53}},{"name":"getBundleURL","generated":{"line":25,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":54}},{"generated":{"line":25,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":47}},{"generated":{"line":25,"column":68},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":6}},{"generated":{"line":25,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":70}},{"name":"updateLink","generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"name":"updateLink","generated":{"line":26,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"generated":{"line":26,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":18}},{"name":"links","generated":{"line":26,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":19}},{"generated":{"line":26,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":24}},{"name":"i","generated":{"line":26,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":25}},{"generated":{"line":26,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":24}},{"generated":{"line":26,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":18}},{"generated":{"line":26,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":23,"column":7}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":24,"column":5}},{"name":"cssTimeout","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"name":"cssTimeout","generated":{"line":30,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"generated":{"line":30,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":14}},{"generated":{"line":30,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":17}},{"generated":{"line":30,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":27,"column":3}},{"generated":{"line":31,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":31,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":27,"column":5}},{"generated":{"line":31,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":31,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"generated":{"line":32,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":28,"column":1}},{"name":"module","generated":{"line":34,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}},{"generated":{"line":34,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":6}},{"name":"exports","generated":{"line":34,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":7}},{"generated":{"line":34,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}},{"name":"reloadCSS","generated":{"line":34,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":17}},{"generated":{"line":34,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/css-loader.js":"var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"},"lineCount":null}},"error":null,"hash":"c26039cf4bc605359c22edaec867b189","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json b/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json new file mode 100644 index 0000000..f0c80b3 --- /dev/null +++ b/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json @@ -0,0 +1 @@ +{"id":"../state.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/state.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEState = void 0;\n\nvar types_1 = require(\"./types\");\n\nvar GEState =\n/** @class */\nfunction () {\n function GEState() {\n this.isDragging = false;\n this.isShiftDown = false;\n this.isDrawing = false;\n this.moveNodeX = 0;\n this.moveNodeY = 0; // transform\n\n this.translateX = 0;\n this.translateY = 0;\n this.scale = 1; // pointer position\n\n this.pointerScreenX = 0;\n this.pointerScreenY = 0;\n this.pointerCanvasX = 0;\n this.pointerCanvasY = 0;\n this.pointerViewX = 0;\n this.pointerViewY = 0; // selection\n\n this.selectedNode = undefined;\n this.selectedEdge = undefined;\n this.hoveredNode = undefined;\n this.hoveredEdge = undefined; // drag line when creating edge\n\n this.isCreatingEdge = false;\n this.dragLineSourceNode = undefined;\n this.dragLineTargetX = 0;\n this.dragLineTargetY = 0;\n this.nodes = [];\n this.edges = [];\n this.options = this.getDefaultOptions();\n }\n\n GEState.prototype.isMovingNode = function () {\n return this.isDragging && this.selectedNode && !this.isCreatingEdge;\n };\n\n GEState.prototype.isMovingView = function () {\n return !this.isShiftDown && this.isDragging && !this.selectedNode;\n };\n\n GEState.prototype.setData = function (nodes, edges) {\n this.nodes = nodes;\n this.edges = edges;\n };\n\n GEState.prototype.setOptions = function (options) {\n var _this = this;\n\n Object.keys(options).forEach(function (k) {\n _this.options[k] = options[k];\n });\n };\n\n GEState.prototype.getDefaultOptions = function () {\n return {\n edgeArrowLength: 16,\n edgeArrowRadian: Math.PI / 6,\n backgroundColor: \"#F7FAFC\",\n showGrid: true,\n gridType: types_1.GEGridType.DOTS,\n gridColor: \"#CBD5E0\",\n gridLineWidth: 8,\n gridGap: 64,\n defaultSubShapeColor: \"green\",\n nodeLineWidth: 2,\n nodeColor: \"white\",\n nodeSelectedColor: \"#4299E1\",\n nodeStrokeColor: \"#1A202C\",\n nodeTextColor: \"#1A202C\",\n nodeSelectedTextColor: \"white\",\n nodeTextStyle: \"16px sans-serif\",\n edgeLineWidth: 3,\n edgeLineColor: \"#2B6CB0\",\n edgeLineSelectedColor: \"#4299E1\",\n edgeShapeFillColor: \"white\",\n edgeTextColor: \"#1A202C\",\n edgeSelectedTextColor: \"white\",\n edgeTextStyle: \"16px sans-serif\",\n minScale: 0.2,\n maxScale: 1.8,\n cursorGrab: \"grab\",\n cursorPointer: \"pointer\",\n cursorCrosshair: \"crosshair\",\n nodeTypes: {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }]\n },\n edgeTypes: {\n empty: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 30,\n height: 20\n }]\n }\n };\n };\n\n GEState.prototype.setBoundingRect = function (canvas) {\n this.boundingClientRect = canvas.getBoundingClientRect();\n };\n\n GEState.prototype.setPointerPosition = function (screenX, screenY) {\n this.pointerScreenX = screenX;\n this.pointerScreenY = screenY;\n this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left);\n this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top);\n this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale;\n this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale;\n };\n\n GEState.prototype.zoomTo = function (scale, viewX, viewY) {\n var _a = this.options,\n maxScale = _a.maxScale,\n minScale = _a.minScale;\n var newScale = Math.min(maxScale, Math.max(minScale, scale));\n var deltaScale = newScale - this.scale;\n var offsetX = -(viewX * deltaScale);\n var offsetY = -(viewY * deltaScale);\n this.translateX += offsetX;\n this.translateY += offsetY;\n this.scale += deltaScale;\n };\n\n return GEState;\n}();\n\nexports.GEState = GEState;"},"sourceMaps":{"js":{"mappings":[{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":4}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":11}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":11,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":12,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":12,"column":12}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":0}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":11}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":18}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":21}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":0}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":9}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":19}},{"source":"../state.ts","name":null,"original":{"line":16,"column":15},"generated":{"line":14,"column":22}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":27}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":0}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":9}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":20}},{"source":"../state.ts","name":null,"original":{"line":17,"column":16},"generated":{"line":15,"column":23}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":28}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":0}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":9}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":18}},{"source":"../state.ts","name":null,"original":{"line":18,"column":14},"generated":{"line":16,"column":21}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":26}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":0}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":9}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":18}},{"source":"../state.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":17,"column":21}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":22}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":0}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":9}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":18}},{"source":"../state.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":18,"column":21}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":22}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":18,"column":23}},{"source":"../state.ts","name":null,"original":{"line":23,"column":2},"generated":{"line":18,"column":24}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":0}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":9}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":19}},{"source":"../state.ts","name":null,"original":{"line":24,"column":15},"generated":{"line":20,"column":22}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":23}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":0}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":9}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":19}},{"source":"../state.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":21,"column":22}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":23}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":0}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":9}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":14}},{"source":"../state.ts","name":null,"original":{"line":26,"column":10},"generated":{"line":22,"column":17}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":18}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":22,"column":19}},{"source":"../state.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":20}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":0}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":9}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":23}},{"source":"../state.ts","name":null,"original":{"line":29,"column":19},"generated":{"line":24,"column":26}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":27}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":0}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":9}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":23}},{"source":"../state.ts","name":null,"original":{"line":30,"column":19},"generated":{"line":25,"column":26}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":27}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":0}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":9}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":23}},{"source":"../state.ts","name":null,"original":{"line":31,"column":19},"generated":{"line":26,"column":26}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":27}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":0}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":9}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":23}},{"source":"../state.ts","name":null,"original":{"line":32,"column":19},"generated":{"line":27,"column":26}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":27}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":0}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":9}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":21}},{"source":"../state.ts","name":null,"original":{"line":33,"column":17},"generated":{"line":28,"column":24}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":25}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":0}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":9}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":21}},{"source":"../state.ts","name":null,"original":{"line":34,"column":17},"generated":{"line":29,"column":24}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":25}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":29,"column":26}},{"source":"../state.ts","name":null,"original":{"line":37,"column":2},"generated":{"line":29,"column":27}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":0}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":9}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":21}},{"source":"../state.ts","name":null,"original":{"line":38,"column":37},"generated":{"line":31,"column":24}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":33}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":0}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":9}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":21}},{"source":"../state.ts","name":null,"original":{"line":39,"column":37},"generated":{"line":32,"column":24}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":33}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":0}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":9}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":20}},{"source":"../state.ts","name":null,"original":{"line":40,"column":36},"generated":{"line":33,"column":23}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":32}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":0}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":9}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":20}},{"source":"../state.ts","name":null,"original":{"line":41,"column":36},"generated":{"line":34,"column":23}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":32}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":34,"column":33}},{"source":"../state.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":34,"column":34}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":0}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":9}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":23}},{"source":"../state.ts","name":null,"original":{"line":44,"column":19},"generated":{"line":36,"column":26}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":31}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":0}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":9}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":27}},{"source":"../state.ts","name":null,"original":{"line":45,"column":43},"generated":{"line":37,"column":30}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":39}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":0}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":9}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":24}},{"source":"../state.ts","name":null,"original":{"line":46,"column":20},"generated":{"line":38,"column":27}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":28}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":0}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":9}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":24}},{"source":"../state.ts","name":null,"original":{"line":47,"column":20},"generated":{"line":39,"column":27}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":28}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":0}},{"source":"../state.ts","name":null,"original":{"line":50,"column":9},"generated":{"line":40,"column":9}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":14}},{"source":"../state.ts","name":null,"original":{"line":50,"column":17},"generated":{"line":40,"column":17}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":19}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":0}},{"source":"../state.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":41,"column":9}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":14}},{"source":"../state.ts","name":null,"original":{"line":51,"column":17},"generated":{"line":41,"column":17}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":19}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":0}},{"source":"../state.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":42,"column":9}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":16}},{"source":"../state.ts","name":null,"original":{"line":53,"column":19},"generated":{"line":42,"column":19}},{"source":"../state.ts","name":null,"original":{"line":53,"column":24},"generated":{"line":42,"column":24}},{"source":"../state.ts","name":null,"original":{"line":53,"column":19},"generated":{"line":42,"column":41}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":43}},{"source":"../state.ts","name":null,"original":{"line":54,"column":3},"generated":{"line":43,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":2}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":9}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":10}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":19}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":20}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":32}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":35}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":47}},{"source":"../state.ts","name":null,"original":{"line":57,"column":4},"generated":{"line":46,"column":0}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":11}},{"source":"../state.ts","name":null,"original":{"line":57,"column":16},"generated":{"line":46,"column":16}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":26}},{"source":"../state.ts","name":null,"original":{"line":57,"column":30},"generated":{"line":46,"column":30}},{"source":"../state.ts","name":null,"original":{"line":57,"column":35},"generated":{"line":46,"column":35}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":47}},{"source":"../state.ts","name":null,"original":{"line":57,"column":51},"generated":{"line":46,"column":51}},{"source":"../state.ts","name":null,"original":{"line":57,"column":52},"generated":{"line":46,"column":52}},{"source":"../state.ts","name":null,"original":{"line":57,"column":57},"generated":{"line":46,"column":57}},{"source":"../state.ts","name":null,"original":{"line":57,"column":4},"generated":{"line":46,"column":71}},{"source":"../state.ts","name":null,"original":{"line":58,"column":3},"generated":{"line":47,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":47,"column":3}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":0}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":2}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":9}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":10}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":19}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":20}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":32}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":35}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":47}},{"source":"../state.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":50,"column":0}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":11}},{"source":"../state.ts","name":null,"original":{"line":61,"column":12},"generated":{"line":50,"column":12}},{"source":"../state.ts","name":null,"original":{"line":61,"column":17},"generated":{"line":50,"column":17}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":28}},{"source":"../state.ts","name":null,"original":{"line":61,"column":32},"generated":{"line":50,"column":32}},{"source":"../state.ts","name":null,"original":{"line":61,"column":37},"generated":{"line":50,"column":37}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":47}},{"source":"../state.ts","name":null,"original":{"line":61,"column":51},"generated":{"line":50,"column":51}},{"source":"../state.ts","name":null,"original":{"line":61,"column":52},"generated":{"line":50,"column":52}},{"source":"../state.ts","name":null,"original":{"line":61,"column":57},"generated":{"line":50,"column":57}},{"source":"../state.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":50,"column":69}},{"source":"../state.ts","name":null,"original":{"line":62,"column":3},"generated":{"line":51,"column":0}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":51,"column":3}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":0}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":2}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":9}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":10}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":19}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":20}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":27}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":30}},{"source":"../state.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":53,"column":40}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":45}},{"source":"../state.ts","name":null,"original":{"line":64,"column":27},"generated":{"line":53,"column":47}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":52}},{"source":"../state.ts","name":null,"original":{"line":64,"column":42},"generated":{"line":53,"column":54}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":0}},{"source":"../state.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":54,"column":9}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":14}},{"source":"../state.ts","name":null,"original":{"line":65,"column":17},"generated":{"line":54,"column":17}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":22}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":0}},{"source":"../state.ts","name":null,"original":{"line":66,"column":9},"generated":{"line":55,"column":9}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":14}},{"source":"../state.ts","name":null,"original":{"line":66,"column":17},"generated":{"line":55,"column":17}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":22}},{"source":"../state.ts","name":null,"original":{"line":67,"column":3},"generated":{"line":56,"column":0}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":56,"column":3}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":2}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":9}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":10}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":19}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":20}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":30}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":33}},{"source":"../state.ts","name":null,"original":{"line":69,"column":13},"generated":{"line":58,"column":43}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":50}},{"source":"../state.ts","name":null,"original":{"line":69,"column":41},"generated":{"line":58,"column":52}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":8}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":13}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":16}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":20}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":0}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":4}},{"source":"../state.ts","name":null,"original":{"line":70,"column":10},"generated":{"line":61,"column":10}},{"source":"../state.ts","name":null,"original":{"line":70,"column":11},"generated":{"line":61,"column":11}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":15}},{"source":"../state.ts","name":null,"original":{"line":70,"column":16},"generated":{"line":61,"column":16}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":23}},{"source":"../state.ts","name":null,"original":{"line":70,"column":25},"generated":{"line":61,"column":25}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":32}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":33}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":43}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":44}},{"source":"../state.ts","name":null,"original":{"line":70,"column":34},"generated":{"line":61,"column":46}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":0}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":6}},{"source":"../state.ts","name":null,"original":{"line":71,"column":10},"generated":{"line":62,"column":11}},{"source":"../state.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":62,"column":12}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":19}},{"source":"../state.ts","name":null,"original":{"line":71,"column":19},"generated":{"line":62,"column":20}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":21}},{"source":"../state.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":62,"column":25}},{"source":"../state.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":62,"column":32}},{"source":"../state.ts","name":null,"original":{"line":71,"column":32},"generated":{"line":62,"column":33}},{"source":"../state.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":62,"column":34}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":35}},{"source":"../state.ts","name":null,"original":{"line":72,"column":5},"generated":{"line":63,"column":0}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":63,"column":5}},{"source":"../state.ts","name":null,"original":{"line":73,"column":3},"generated":{"line":64,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":64,"column":3}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":0}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":2}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":9}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":10}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":19}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":20}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":37}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":40}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":52}},{"source":"../state.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":67,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":67,"column":11}},{"source":"../state.ts","name":null,"original":{"line":77,"column":6},"generated":{"line":68,"column":0}},{"source":"../state.ts","name":null,"original":{"line":77,"column":6},"generated":{"line":68,"column":6}},{"source":"../state.ts","name":null,"original":{"line":77,"column":21},"generated":{"line":68,"column":21}},{"source":"../state.ts","name":null,"original":{"line":77,"column":23},"generated":{"line":68,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":68,"column":25}},{"source":"../state.ts","name":null,"original":{"line":78,"column":6},"generated":{"line":69,"column":0}},{"source":"../state.ts","name":null,"original":{"line":78,"column":6},"generated":{"line":69,"column":6}},{"source":"../state.ts","name":null,"original":{"line":78,"column":21},"generated":{"line":69,"column":21}},{"source":"../state.ts","name":null,"original":{"line":78,"column":23},"generated":{"line":69,"column":23}},{"source":"../state.ts","name":null,"original":{"line":78,"column":27},"generated":{"line":69,"column":27}},{"source":"../state.ts","name":null,"original":{"line":78,"column":28},"generated":{"line":69,"column":28}},{"source":"../state.ts","name":null,"original":{"line":78,"column":23},"generated":{"line":69,"column":30}},{"source":"../state.ts","name":null,"original":{"line":78,"column":33},"generated":{"line":69,"column":33}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":69,"column":34}},{"source":"../state.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":70,"column":0}},{"source":"../state.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":70,"column":6}},{"source":"../state.ts","name":null,"original":{"line":79,"column":21},"generated":{"line":70,"column":21}},{"source":"../state.ts","name":null,"original":{"line":79,"column":23},"generated":{"line":70,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":70,"column":32}},{"source":"../state.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":71,"column":0}},{"source":"../state.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":71,"column":6}},{"source":"../state.ts","name":null,"original":{"line":80,"column":14},"generated":{"line":71,"column":14}},{"source":"../state.ts","name":null,"original":{"line":80,"column":16},"generated":{"line":71,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":71,"column":20}},{"source":"../state.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":72,"column":0}},{"source":"../state.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":72,"column":6}},{"source":"../state.ts","name":null,"original":{"line":81,"column":14},"generated":{"line":72,"column":14}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":16}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":23}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":24}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":34}},{"source":"../state.ts","name":null,"original":{"line":81,"column":27},"generated":{"line":72,"column":35}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":72,"column":39}},{"source":"../state.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":73,"column":0}},{"source":"../state.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":73,"column":6}},{"source":"../state.ts","name":null,"original":{"line":82,"column":15},"generated":{"line":73,"column":15}},{"source":"../state.ts","name":null,"original":{"line":82,"column":17},"generated":{"line":73,"column":17}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":73,"column":26}},{"source":"../state.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":74,"column":0}},{"source":"../state.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":74,"column":6}},{"source":"../state.ts","name":null,"original":{"line":83,"column":19},"generated":{"line":74,"column":19}},{"source":"../state.ts","name":null,"original":{"line":83,"column":21},"generated":{"line":74,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":74,"column":22}},{"source":"../state.ts","name":null,"original":{"line":84,"column":6},"generated":{"line":75,"column":0}},{"source":"../state.ts","name":null,"original":{"line":84,"column":6},"generated":{"line":75,"column":6}},{"source":"../state.ts","name":null,"original":{"line":84,"column":13},"generated":{"line":75,"column":13}},{"source":"../state.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":75,"column":15}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":75,"column":17}},{"source":"../state.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":76,"column":0}},{"source":"../state.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":76,"column":6}},{"source":"../state.ts","name":null,"original":{"line":85,"column":26},"generated":{"line":76,"column":26}},{"source":"../state.ts","name":null,"original":{"line":85,"column":28},"generated":{"line":76,"column":28}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":76,"column":35}},{"source":"../state.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":77,"column":0}},{"source":"../state.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":77,"column":6}},{"source":"../state.ts","name":null,"original":{"line":86,"column":19},"generated":{"line":77,"column":19}},{"source":"../state.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":77,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":77,"column":22}},{"source":"../state.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":78,"column":0}},{"source":"../state.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":78,"column":6}},{"source":"../state.ts","name":null,"original":{"line":87,"column":15},"generated":{"line":78,"column":15}},{"source":"../state.ts","name":null,"original":{"line":87,"column":17},"generated":{"line":78,"column":17}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":78,"column":24}},{"source":"../state.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":79,"column":0}},{"source":"../state.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":79,"column":6}},{"source":"../state.ts","name":null,"original":{"line":88,"column":23},"generated":{"line":79,"column":23}},{"source":"../state.ts","name":null,"original":{"line":88,"column":25},"generated":{"line":79,"column":25}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":79,"column":34}},{"source":"../state.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":80,"column":0}},{"source":"../state.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":80,"column":6}},{"source":"../state.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":80,"column":21}},{"source":"../state.ts","name":null,"original":{"line":89,"column":23},"generated":{"line":80,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":80,"column":32}},{"source":"../state.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":81,"column":0}},{"source":"../state.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":81,"column":6}},{"source":"../state.ts","name":null,"original":{"line":90,"column":19},"generated":{"line":81,"column":19}},{"source":"../state.ts","name":null,"original":{"line":90,"column":21},"generated":{"line":81,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":81,"column":30}},{"source":"../state.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":82,"column":0}},{"source":"../state.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":82,"column":6}},{"source":"../state.ts","name":null,"original":{"line":91,"column":27},"generated":{"line":82,"column":27}},{"source":"../state.ts","name":null,"original":{"line":91,"column":29},"generated":{"line":82,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":82,"column":36}},{"source":"../state.ts","name":null,"original":{"line":92,"column":6},"generated":{"line":83,"column":0}},{"source":"../state.ts","name":null,"original":{"line":92,"column":6},"generated":{"line":83,"column":6}},{"source":"../state.ts","name":null,"original":{"line":92,"column":19},"generated":{"line":83,"column":19}},{"source":"../state.ts","name":null,"original":{"line":92,"column":21},"generated":{"line":83,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":83,"column":38}},{"source":"../state.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":84,"column":0}},{"source":"../state.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":84,"column":6}},{"source":"../state.ts","name":null,"original":{"line":93,"column":19},"generated":{"line":84,"column":19}},{"source":"../state.ts","name":null,"original":{"line":93,"column":21},"generated":{"line":84,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":84,"column":22}},{"source":"../state.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":85,"column":0}},{"source":"../state.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":85,"column":6}},{"source":"../state.ts","name":null,"original":{"line":94,"column":19},"generated":{"line":85,"column":19}},{"source":"../state.ts","name":null,"original":{"line":94,"column":21},"generated":{"line":85,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":85,"column":30}},{"source":"../state.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":86,"column":0}},{"source":"../state.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":86,"column":6}},{"source":"../state.ts","name":null,"original":{"line":95,"column":27},"generated":{"line":86,"column":27}},{"source":"../state.ts","name":null,"original":{"line":95,"column":29},"generated":{"line":86,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":86,"column":38}},{"source":"../state.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":87,"column":0}},{"source":"../state.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":87,"column":6}},{"source":"../state.ts","name":null,"original":{"line":96,"column":24},"generated":{"line":87,"column":24}},{"source":"../state.ts","name":null,"original":{"line":96,"column":26},"generated":{"line":87,"column":26}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":87,"column":33}},{"source":"../state.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":88,"column":0}},{"source":"../state.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":88,"column":6}},{"source":"../state.ts","name":null,"original":{"line":97,"column":19},"generated":{"line":88,"column":19}},{"source":"../state.ts","name":null,"original":{"line":97,"column":21},"generated":{"line":88,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":88,"column":30}},{"source":"../state.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":89,"column":0}},{"source":"../state.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":89,"column":6}},{"source":"../state.ts","name":null,"original":{"line":98,"column":27},"generated":{"line":89,"column":27}},{"source":"../state.ts","name":null,"original":{"line":98,"column":29},"generated":{"line":89,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":89,"column":36}},{"source":"../state.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":90,"column":0}},{"source":"../state.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":90,"column":6}},{"source":"../state.ts","name":null,"original":{"line":99,"column":19},"generated":{"line":90,"column":19}},{"source":"../state.ts","name":null,"original":{"line":99,"column":21},"generated":{"line":90,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":90,"column":38}},{"source":"../state.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":91,"column":0}},{"source":"../state.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":91,"column":6}},{"source":"../state.ts","name":null,"original":{"line":100,"column":14},"generated":{"line":91,"column":14}},{"source":"../state.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":91,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":91,"column":19}},{"source":"../state.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":92,"column":0}},{"source":"../state.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":92,"column":6}},{"source":"../state.ts","name":null,"original":{"line":101,"column":14},"generated":{"line":92,"column":14}},{"source":"../state.ts","name":null,"original":{"line":101,"column":16},"generated":{"line":92,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":92,"column":19}},{"source":"../state.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":93,"column":0}},{"source":"../state.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":93,"column":6}},{"source":"../state.ts","name":null,"original":{"line":102,"column":16},"generated":{"line":93,"column":16}},{"source":"../state.ts","name":null,"original":{"line":102,"column":18},"generated":{"line":93,"column":18}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":93,"column":24}},{"source":"../state.ts","name":null,"original":{"line":103,"column":6},"generated":{"line":94,"column":0}},{"source":"../state.ts","name":null,"original":{"line":103,"column":6},"generated":{"line":94,"column":6}},{"source":"../state.ts","name":null,"original":{"line":103,"column":19},"generated":{"line":94,"column":19}},{"source":"../state.ts","name":null,"original":{"line":103,"column":21},"generated":{"line":94,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":94,"column":30}},{"source":"../state.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":95,"column":0}},{"source":"../state.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":95,"column":6}},{"source":"../state.ts","name":null,"original":{"line":104,"column":21},"generated":{"line":95,"column":21}},{"source":"../state.ts","name":null,"original":{"line":104,"column":23},"generated":{"line":95,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":95,"column":34}},{"source":"../state.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":96,"column":0}},{"source":"../state.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":96,"column":6}},{"source":"../state.ts","name":null,"original":{"line":105,"column":15},"generated":{"line":96,"column":15}},{"source":"../state.ts","name":null,"original":{"line":105,"column":17},"generated":{"line":96,"column":17}},{"source":"../state.ts","name":null,"original":{"line":106,"column":8},"generated":{"line":97,"column":0}},{"source":"../state.ts","name":null,"original":{"line":106,"column":8},"generated":{"line":97,"column":8}},{"source":"../state.ts","name":null,"original":{"line":106,"column":13},"generated":{"line":97,"column":13}},{"source":"../state.ts","name":null,"original":{"line":106,"column":15},"generated":{"line":97,"column":15}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":97,"column":16}},{"source":"../state.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":98,"column":0}},{"source":"../state.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":98,"column":10}},{"source":"../state.ts","name":null,"original":{"line":108,"column":17},"generated":{"line":98,"column":15}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":17}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":24}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":25}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":36}},{"source":"../state.ts","name":null,"original":{"line":108,"column":31},"generated":{"line":98,"column":37}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":98,"column":43}},{"source":"../state.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":99,"column":0}},{"source":"../state.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":99,"column":10}},{"source":"../state.ts","name":null,"original":{"line":109,"column":13},"generated":{"line":99,"column":11}},{"source":"../state.ts","name":null,"original":{"line":109,"column":15},"generated":{"line":99,"column":13}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":100,"column":0}},{"source":"../state.ts","name":null,"original":{"line":106,"column":15},"generated":{"line":100,"column":9}},{"source":"../state.ts","name":null,"original":{"line":105,"column":17},"generated":{"line":101,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":101,"column":7}},{"source":"../state.ts","name":null,"original":{"line":113,"column":6},"generated":{"line":102,"column":0}},{"source":"../state.ts","name":null,"original":{"line":113,"column":6},"generated":{"line":102,"column":6}},{"source":"../state.ts","name":null,"original":{"line":113,"column":15},"generated":{"line":102,"column":15}},{"source":"../state.ts","name":null,"original":{"line":113,"column":17},"generated":{"line":102,"column":17}},{"source":"../state.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":103,"column":0}},{"source":"../state.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":103,"column":8}},{"source":"../state.ts","name":null,"original":{"line":114,"column":13},"generated":{"line":103,"column":13}},{"source":"../state.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":103,"column":15}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":103,"column":16}},{"source":"../state.ts","name":null,"original":{"line":116,"column":12},"generated":{"line":104,"column":0}},{"source":"../state.ts","name":null,"original":{"line":116,"column":12},"generated":{"line":104,"column":10}},{"source":"../state.ts","name":null,"original":{"line":116,"column":17},"generated":{"line":104,"column":15}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":17}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":24}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":25}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":36}},{"source":"../state.ts","name":null,"original":{"line":116,"column":31},"generated":{"line":104,"column":37}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":104,"column":46}},{"source":"../state.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":105,"column":0}},{"source":"../state.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":105,"column":10}},{"source":"../state.ts","name":null,"original":{"line":117,"column":17},"generated":{"line":105,"column":15}},{"source":"../state.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":105,"column":17}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":105,"column":19}},{"source":"../state.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":106,"column":0}},{"source":"../state.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":106,"column":10}},{"source":"../state.ts","name":null,"original":{"line":118,"column":18},"generated":{"line":106,"column":16}},{"source":"../state.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":106,"column":18}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":107,"column":0}},{"source":"../state.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":107,"column":9}},{"source":"../state.ts","name":null,"original":{"line":113,"column":17},"generated":{"line":108,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":109,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":109,"column":5}},{"source":"../state.ts","name":null,"original":{"line":123,"column":3},"generated":{"line":110,"column":0}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":110,"column":3}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":0}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":2}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":9}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":10}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":19}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":20}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":35}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":38}},{"source":"../state.ts","name":null,"original":{"line":125,"column":18},"generated":{"line":112,"column":48}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":54}},{"source":"../state.ts","name":null,"original":{"line":125,"column":43},"generated":{"line":112,"column":56}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":0}},{"source":"../state.ts","name":null,"original":{"line":126,"column":9},"generated":{"line":113,"column":9}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":27}},{"source":"../state.ts","name":null,"original":{"line":126,"column":30},"generated":{"line":113,"column":30}},{"source":"../state.ts","name":null,"original":{"line":126,"column":36},"generated":{"line":113,"column":36}},{"source":"../state.ts","name":null,"original":{"line":126,"column":37},"generated":{"line":113,"column":37}},{"source":"../state.ts","name":null,"original":{"line":126,"column":30},"generated":{"line":113,"column":58}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":60}},{"source":"../state.ts","name":null,"original":{"line":127,"column":3},"generated":{"line":114,"column":0}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":114,"column":3}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":0}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":2}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":9}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":10}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":19}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":20}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":38}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":41}},{"source":"../state.ts","name":null,"original":{"line":129,"column":21},"generated":{"line":116,"column":51}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":58}},{"source":"../state.ts","name":null,"original":{"line":129,"column":38},"generated":{"line":116,"column":60}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":67}},{"source":"../state.ts","name":null,"original":{"line":129,"column":53},"generated":{"line":116,"column":69}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":0}},{"source":"../state.ts","name":null,"original":{"line":130,"column":9},"generated":{"line":117,"column":9}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":23}},{"source":"../state.ts","name":null,"original":{"line":130,"column":26},"generated":{"line":117,"column":26}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":33}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":0}},{"source":"../state.ts","name":null,"original":{"line":131,"column":9},"generated":{"line":118,"column":9}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":23}},{"source":"../state.ts","name":null,"original":{"line":131,"column":26},"generated":{"line":118,"column":26}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":33}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":0}},{"source":"../state.ts","name":null,"original":{"line":132,"column":9},"generated":{"line":119,"column":9}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":23}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":26}},{"source":"../state.ts","name":null,"original":{"line":132,"column":30},"generated":{"line":119,"column":30}},{"source":"../state.ts","name":null,"original":{"line":132,"column":31},"generated":{"line":119,"column":31}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":36}},{"source":"../state.ts","name":null,"original":{"line":132,"column":37},"generated":{"line":119,"column":37}},{"source":"../state.ts","name":null,"original":{"line":132,"column":44},"generated":{"line":119,"column":44}},{"source":"../state.ts","name":null,"original":{"line":132,"column":47},"generated":{"line":119,"column":47}},{"source":"../state.ts","name":null,"original":{"line":132,"column":52},"generated":{"line":119,"column":52}},{"source":"../state.ts","name":null,"original":{"line":132,"column":47},"generated":{"line":119,"column":70}},{"source":"../state.ts","name":null,"original":{"line":132,"column":71},"generated":{"line":119,"column":71}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":75}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":76}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":0}},{"source":"../state.ts","name":null,"original":{"line":133,"column":9},"generated":{"line":120,"column":9}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":23}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":26}},{"source":"../state.ts","name":null,"original":{"line":133,"column":30},"generated":{"line":120,"column":30}},{"source":"../state.ts","name":null,"original":{"line":133,"column":31},"generated":{"line":120,"column":31}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":36}},{"source":"../state.ts","name":null,"original":{"line":133,"column":37},"generated":{"line":120,"column":37}},{"source":"../state.ts","name":null,"original":{"line":133,"column":44},"generated":{"line":120,"column":44}},{"source":"../state.ts","name":null,"original":{"line":133,"column":47},"generated":{"line":120,"column":47}},{"source":"../state.ts","name":null,"original":{"line":133,"column":52},"generated":{"line":120,"column":52}},{"source":"../state.ts","name":null,"original":{"line":133,"column":47},"generated":{"line":120,"column":70}},{"source":"../state.ts","name":null,"original":{"line":133,"column":71},"generated":{"line":120,"column":71}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":74}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":75}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":0}},{"source":"../state.ts","name":null,"original":{"line":134,"column":9},"generated":{"line":121,"column":9}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":21}},{"source":"../state.ts","name":null,"original":{"line":134,"column":24},"generated":{"line":121,"column":24}},{"source":"../state.ts","name":null,"original":{"line":134,"column":25},"generated":{"line":121,"column":25}},{"source":"../state.ts","name":null,"original":{"line":134,"column":30},"generated":{"line":121,"column":30}},{"source":"../state.ts","name":null,"original":{"line":134,"column":25},"generated":{"line":121,"column":44}},{"source":"../state.ts","name":null,"original":{"line":134,"column":47},"generated":{"line":121,"column":47}},{"source":"../state.ts","name":null,"original":{"line":134,"column":52},"generated":{"line":121,"column":52}},{"source":"../state.ts","name":null,"original":{"line":134,"column":24},"generated":{"line":121,"column":62}},{"source":"../state.ts","name":null,"original":{"line":134,"column":66},"generated":{"line":121,"column":66}},{"source":"../state.ts","name":null,"original":{"line":134,"column":71},"generated":{"line":121,"column":71}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":76}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":0}},{"source":"../state.ts","name":null,"original":{"line":135,"column":9},"generated":{"line":122,"column":9}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":21}},{"source":"../state.ts","name":null,"original":{"line":135,"column":24},"generated":{"line":122,"column":24}},{"source":"../state.ts","name":null,"original":{"line":135,"column":25},"generated":{"line":122,"column":25}},{"source":"../state.ts","name":null,"original":{"line":135,"column":30},"generated":{"line":122,"column":30}},{"source":"../state.ts","name":null,"original":{"line":135,"column":25},"generated":{"line":122,"column":44}},{"source":"../state.ts","name":null,"original":{"line":135,"column":47},"generated":{"line":122,"column":47}},{"source":"../state.ts","name":null,"original":{"line":135,"column":52},"generated":{"line":122,"column":52}},{"source":"../state.ts","name":null,"original":{"line":135,"column":24},"generated":{"line":122,"column":62}},{"source":"../state.ts","name":null,"original":{"line":135,"column":66},"generated":{"line":122,"column":66}},{"source":"../state.ts","name":null,"original":{"line":135,"column":71},"generated":{"line":122,"column":71}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":76}},{"source":"../state.ts","name":null,"original":{"line":136,"column":3},"generated":{"line":123,"column":0}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":123,"column":3}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":0}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":2}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":9}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":10}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":19}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":20}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":26}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":29}},{"source":"../state.ts","name":null,"original":{"line":138,"column":9},"generated":{"line":125,"column":39}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":44}},{"source":"../state.ts","name":null,"original":{"line":138,"column":24},"generated":{"line":125,"column":46}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":51}},{"source":"../state.ts","name":null,"original":{"line":138,"column":39},"generated":{"line":125,"column":53}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":58}},{"source":"../state.ts","name":null,"original":{"line":138,"column":52},"generated":{"line":125,"column":60}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":10}},{"source":"../state.ts","name":null,"original":{"line":139,"column":35},"generated":{"line":126,"column":13}},{"source":"../state.ts","name":null,"original":{"line":139,"column":40},"generated":{"line":126,"column":18}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":25}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":127,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":12},"generated":{"line":127,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":16}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":19}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":21}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":22}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":127,"column":30}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":128,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":22},"generated":{"line":128,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":16}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":19}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":21}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":22}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":128,"column":30}},{"source":"../state.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":129,"column":0}},{"source":"../state.ts","name":null,"original":{"line":141,"column":10},"generated":{"line":129,"column":8}},{"source":"../state.ts","name":null,"original":{"line":141,"column":18},"generated":{"line":129,"column":16}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":19}},{"source":"../state.ts","name":null,"original":{"line":141,"column":25},"generated":{"line":129,"column":23}},{"source":"../state.ts","name":null,"original":{"line":141,"column":26},"generated":{"line":129,"column":24}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":27}},{"source":"../state.ts","name":null,"original":{"line":141,"column":30},"generated":{"line":129,"column":28}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":36}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":38}},{"source":"../state.ts","name":null,"original":{"line":141,"column":44},"generated":{"line":129,"column":42}},{"source":"../state.ts","name":null,"original":{"line":141,"column":45},"generated":{"line":129,"column":43}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":46}},{"source":"../state.ts","name":null,"original":{"line":141,"column":49},"generated":{"line":129,"column":47}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":55}},{"source":"../state.ts","name":null,"original":{"line":141,"column":59},"generated":{"line":129,"column":57}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":62}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":63}},{"source":"../state.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":129,"column":64}},{"source":"../state.ts","name":null,"original":{"line":143,"column":4},"generated":{"line":130,"column":0}},{"source":"../state.ts","name":null,"original":{"line":143,"column":10},"generated":{"line":130,"column":8}},{"source":"../state.ts","name":null,"original":{"line":143,"column":20},"generated":{"line":130,"column":18}},{"source":"../state.ts","name":null,"original":{"line":143,"column":23},"generated":{"line":130,"column":21}},{"source":"../state.ts","name":null,"original":{"line":143,"column":31},"generated":{"line":130,"column":29}},{"source":"../state.ts","name":null,"original":{"line":143,"column":34},"generated":{"line":130,"column":32}},{"source":"../state.ts","name":null,"original":{"line":143,"column":39},"generated":{"line":130,"column":37}},{"source":"../state.ts","name":null,"original":{"line":143,"column":4},"generated":{"line":130,"column":42}},{"source":"../state.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":131,"column":0}},{"source":"../state.ts","name":null,"original":{"line":144,"column":10},"generated":{"line":131,"column":8}},{"source":"../state.ts","name":null,"original":{"line":144,"column":17},"generated":{"line":131,"column":15}},{"source":"../state.ts","name":null,"original":{"line":144,"column":20},"generated":{"line":131,"column":18}},{"source":"../state.ts","name":null,"original":{"line":144,"column":22},"generated":{"line":131,"column":20}},{"source":"../state.ts","name":null,"original":{"line":144,"column":27},"generated":{"line":131,"column":25}},{"source":"../state.ts","name":null,"original":{"line":144,"column":30},"generated":{"line":131,"column":28}},{"source":"../state.ts","name":null,"original":{"line":144,"column":20},"generated":{"line":131,"column":38}},{"source":"../state.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":131,"column":39}},{"source":"../state.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":132,"column":0}},{"source":"../state.ts","name":null,"original":{"line":145,"column":10},"generated":{"line":132,"column":8}},{"source":"../state.ts","name":null,"original":{"line":145,"column":17},"generated":{"line":132,"column":15}},{"source":"../state.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":132,"column":18}},{"source":"../state.ts","name":null,"original":{"line":145,"column":22},"generated":{"line":132,"column":20}},{"source":"../state.ts","name":null,"original":{"line":145,"column":27},"generated":{"line":132,"column":25}},{"source":"../state.ts","name":null,"original":{"line":145,"column":30},"generated":{"line":132,"column":28}},{"source":"../state.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":132,"column":38}},{"source":"../state.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":132,"column":39}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":0}},{"source":"../state.ts","name":null,"original":{"line":147,"column":9},"generated":{"line":133,"column":9}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":19}},{"source":"../state.ts","name":null,"original":{"line":147,"column":23},"generated":{"line":133,"column":23}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":30}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":0}},{"source":"../state.ts","name":null,"original":{"line":148,"column":9},"generated":{"line":134,"column":9}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":19}},{"source":"../state.ts","name":null,"original":{"line":148,"column":23},"generated":{"line":134,"column":23}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":30}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":0}},{"source":"../state.ts","name":null,"original":{"line":149,"column":9},"generated":{"line":135,"column":9}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":14}},{"source":"../state.ts","name":null,"original":{"line":149,"column":18},"generated":{"line":135,"column":18}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":28}},{"source":"../state.ts","name":null,"original":{"line":150,"column":3},"generated":{"line":136,"column":0}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":136,"column":3}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":0}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":9}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":16}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":1}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":3}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":7}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":8}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":15}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":18}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":25}}],"sources":{"../state.ts":"import {\n GEViewOptions,\n GEViewOptionsParams,\n GEGridType,\n GEShapeName,\n GENode,\n GEEdge\n} from \"./types\";\n\nexport class GEState {\n nodes: GENode[];\n edges: GEEdge[];\n\n options: GEViewOptions;\n\n isDragging = false;\n isShiftDown = false;\n isDrawing = false;\n\n moveNodeX = 0;\n moveNodeY = 0;\n\n // transform\n translateX = 0;\n translateY = 0;\n scale = 1;\n\n // pointer position\n pointerScreenX = 0;\n pointerScreenY = 0;\n pointerCanvasX = 0;\n pointerCanvasY = 0;\n pointerViewX = 0;\n pointerViewY = 0;\n boundingClientRect: DOMRect;\n\n // selection\n selectedNode: GENode | undefined = undefined;\n selectedEdge: GEEdge | undefined = undefined;\n hoveredNode: GENode | undefined = undefined;\n hoveredEdge: GEEdge | undefined = undefined;\n\n // drag line when creating edge\n isCreatingEdge = false;\n dragLineSourceNode: GENode | undefined = undefined;\n dragLineTargetX = 0;\n dragLineTargetY = 0;\n\n constructor() {\n this.nodes = [];\n this.edges = [];\n\n this.options = this.getDefaultOptions();\n }\n\n isMovingNode(): boolean {\n return this.isDragging && this.selectedNode && !this.isCreatingEdge;\n }\n\n isMovingView(): boolean {\n return !this.isShiftDown && this.isDragging && !this.selectedNode;\n }\n\n setData(nodes: GENode[], edges: GEEdge[]): void {\n this.nodes = nodes;\n this.edges = edges;\n }\n\n setOptions(options: GEViewOptionsParams): void {\n Object.keys(options).forEach(k => {\n this.options[k] = options[k];\n });\n }\n\n getDefaultOptions(): GEViewOptions {\n return {\n edgeArrowLength: 16,\n edgeArrowRadian: Math.PI / 6,\n backgroundColor: \"#F7FAFC\",\n showGrid: true,\n gridType: GEGridType.DOTS,\n gridColor: \"#CBD5E0\",\n gridLineWidth: 8,\n gridGap: 64,\n defaultSubShapeColor: \"green\",\n nodeLineWidth: 2,\n nodeColor: \"white\",\n nodeSelectedColor: \"#4299E1\",\n nodeStrokeColor: \"#1A202C\",\n nodeTextColor: \"#1A202C\",\n nodeSelectedTextColor: \"white\",\n nodeTextStyle: \"16px sans-serif\",\n edgeLineWidth: 3,\n edgeLineColor: \"#2B6CB0\",\n edgeLineSelectedColor: \"#4299E1\",\n edgeShapeFillColor: \"white\",\n edgeTextColor: \"#1A202C\",\n edgeSelectedTextColor: \"white\",\n edgeTextStyle: \"16px sans-serif\",\n minScale: 0.2,\n maxScale: 1.8,\n cursorGrab: \"grab\",\n cursorPointer: \"pointer\",\n cursorCrosshair: \"crosshair\",\n nodeTypes: {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ]\n },\n edgeTypes: {\n empty: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 30,\n height: 20\n }\n ]\n }\n };\n }\n\n setBoundingRect(canvas: HTMLCanvasElement): void {\n this.boundingClientRect = canvas.getBoundingClientRect();\n }\n\n setPointerPosition(screenX: number, screenY: number): void {\n this.pointerScreenX = screenX;\n this.pointerScreenY = screenY;\n this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left);\n this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top);\n this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale;\n this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale;\n }\n\n zoomTo(scale: number, viewX: number, viewY: number): void {\n const { maxScale, minScale } = this.options;\n\n const newScale = Math.min(maxScale, Math.max(minScale, scale));\n\n const deltaScale = newScale - this.scale;\n const offsetX = -(viewX * deltaScale);\n const offsetY = -(viewY * deltaScale);\n\n this.translateX += offsetX;\n this.translateY += offsetY;\n this.scale += deltaScale;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"b9f2375965c319540c5c5ba659c5625d","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/b8/64c6455411c25dcfe047430f377131.json b/.cache/b8/64c6455411c25dcfe047430f377131.json new file mode 100644 index 0000000..75f1d9d --- /dev/null +++ b/.cache/b8/64c6455411c25dcfe047430f377131.json @@ -0,0 +1 @@ +{"id":"utils.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.randomize = exports.getRandomIntInclusive = void 0;\n\nfunction getRandomIntInclusive(minF, maxF) {\n var min = Math.ceil(minF);\n var max = Math.floor(maxF);\n return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive\n}\n\nexports.getRandomIntInclusive = getRandomIntInclusive;\n\nfunction randomize(nodeCount, cols) {\n if (nodeCount === void 0) {\n nodeCount = 1000;\n }\n\n if (cols === void 0) {\n cols = 40;\n }\n\n var nodes = [];\n var edges = [];\n var lastId = 0;\n\n for (var i = 0; i < nodeCount; i++) {\n var col = i % cols;\n var row = Math.floor(i / cols);\n var tmp = getRandomIntInclusive(0, 3);\n var nodeType = tmp === 0 ? \"empty\" : tmp === 1 ? \"decision\" : tmp === 2 ? \"unknown\" : \"complex\";\n var tmp2 = getRandomIntInclusive(0, 2);\n var edgeType = tmp2 === 0 ? \"normal\" : tmp2 === 1 ? \"round\" : \"double\";\n lastId++;\n var currNode = {\n id: lastId,\n x: col * 320,\n y: row * 320,\n type: nodeType,\n text: \"Node ID: \" + lastId\n };\n nodes.push(currNode);\n\n if (i > 0) {\n var prevNode = nodes[i - 1];\n lastId++;\n edges.push({\n id: lastId,\n sourceNode: prevNode,\n targetNode: currNode,\n type: edgeType,\n text: lastId.toString()\n });\n }\n }\n\n return {\n nodes: nodes,\n edges: edges,\n lastId: lastId\n };\n}\n\nexports.randomize = randomize;"},"sourceMaps":{"js":{"mappings":[{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":16},"generated":{"line":8,"column":9}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":30}},{"source":"utils.ts","name":null,"original":{"line":3,"column":38},"generated":{"line":8,"column":31}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":35}},{"source":"utils.ts","name":null,"original":{"line":3,"column":52},"generated":{"line":8,"column":37}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":41}},{"source":"utils.ts","name":null,"original":{"line":3,"column":64},"generated":{"line":8,"column":43}},{"source":"utils.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":9,"column":0}},{"source":"utils.ts","name":null,"original":{"line":4,"column":8},"generated":{"line":9,"column":6}},{"source":"utils.ts","name":null,"original":{"line":4,"column":11},"generated":{"line":9,"column":9}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":12}},{"source":"utils.ts","name":null,"original":{"line":4,"column":18},"generated":{"line":9,"column":16}},{"source":"utils.ts","name":null,"original":{"line":4,"column":19},"generated":{"line":9,"column":17}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":21}},{"source":"utils.ts","name":null,"original":{"line":4,"column":24},"generated":{"line":9,"column":22}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":26}},{"source":"utils.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":9,"column":27}},{"source":"utils.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":10,"column":0}},{"source":"utils.ts","name":null,"original":{"line":5,"column":8},"generated":{"line":10,"column":6}},{"source":"utils.ts","name":null,"original":{"line":5,"column":11},"generated":{"line":10,"column":9}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":12}},{"source":"utils.ts","name":null,"original":{"line":5,"column":18},"generated":{"line":10,"column":16}},{"source":"utils.ts","name":null,"original":{"line":5,"column":19},"generated":{"line":10,"column":17}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":22}},{"source":"utils.ts","name":null,"original":{"line":5,"column":25},"generated":{"line":10,"column":23}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":27}},{"source":"utils.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":10,"column":28}},{"source":"utils.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":11,"column":0}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":9}},{"source":"utils.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":11,"column":13}},{"source":"utils.ts","name":null,"original":{"line":6,"column":14},"generated":{"line":11,"column":14}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":19}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":20}},{"source":"utils.ts","name":null,"original":{"line":6,"column":24},"generated":{"line":11,"column":24}},{"source":"utils.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":11,"column":25}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":31}},{"source":"utils.ts","name":null,"original":{"line":6,"column":37},"generated":{"line":11,"column":37}},{"source":"utils.ts","name":null,"original":{"line":6,"column":40},"generated":{"line":11,"column":40}},{"source":"utils.ts","name":null,"original":{"line":6,"column":43},"generated":{"line":11,"column":43}},{"source":"utils.ts","name":null,"original":{"line":6,"column":37},"generated":{"line":11,"column":46}},{"source":"utils.ts","name":null,"original":{"line":6,"column":49},"generated":{"line":11,"column":49}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":50}},{"source":"utils.ts","name":null,"original":{"line":6,"column":54},"generated":{"line":11,"column":54}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":57}},{"source":"utils.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":11,"column":58}},{"source":"utils.ts","name":null,"original":{"line":3,"column":64},"generated":{"line":11,"column":59}},{"source":"utils.ts","name":null,"original":{"line":6,"column":60},"generated":{"line":11,"column":60}},{"source":"utils.ts","name":null,"original":{"line":7,"column":1},"generated":{"line":12,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":7}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":8}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":29}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":32}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":53}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":16},"generated":{"line":16,"column":9}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":18}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":16,"column":19}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":28}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":16,"column":30}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":34}},{"source":"utils.ts","name":null,"original":{"line":11,"column":11},"generated":{"line":16,"column":36}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":0}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":6}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":15}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":20}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":25}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":26}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":28}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":0}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":4}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":13}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":16}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":20}},{"source":"utils.ts","name":null,"original":{"line":10,"column":18},"generated":{"line":19,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":6}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":10}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":15}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":20}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":21}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":23}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":4}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":8}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":11}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":13}},{"source":"utils.ts","name":null,"original":{"line":11,"column":11},"generated":{"line":23,"column":0}},{"source":"utils.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":25,"column":0}},{"source":"utils.ts","name":null,"original":{"line":17,"column":8},"generated":{"line":25,"column":6}},{"source":"utils.ts","name":null,"original":{"line":17,"column":13},"generated":{"line":25,"column":11}},{"source":"utils.ts","name":null,"original":{"line":17,"column":16},"generated":{"line":25,"column":14}},{"source":"utils.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":25,"column":16}},{"source":"utils.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":26,"column":0}},{"source":"utils.ts","name":null,"original":{"line":18,"column":8},"generated":{"line":26,"column":6}},{"source":"utils.ts","name":null,"original":{"line":18,"column":13},"generated":{"line":26,"column":11}},{"source":"utils.ts","name":null,"original":{"line":18,"column":16},"generated":{"line":26,"column":14}},{"source":"utils.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":26,"column":16}},{"source":"utils.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":27,"column":0}},{"source":"utils.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":27,"column":6}},{"source":"utils.ts","name":null,"original":{"line":19,"column":12},"generated":{"line":27,"column":12}},{"source":"utils.ts","name":null,"original":{"line":19,"column":15},"generated":{"line":27,"column":15}},{"source":"utils.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":27,"column":16}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":0}},{"source":"utils.ts","name":null,"original":{"line":21,"column":7},"generated":{"line":29,"column":7}},{"source":"utils.ts","name":null,"original":{"line":21,"column":11},"generated":{"line":29,"column":11}},{"source":"utils.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":29,"column":12}},{"source":"utils.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":29,"column":15}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":16}},{"source":"utils.ts","name":null,"original":{"line":21,"column":18},"generated":{"line":29,"column":18}},{"source":"utils.ts","name":null,"original":{"line":21,"column":19},"generated":{"line":29,"column":19}},{"source":"utils.ts","name":null,"original":{"line":21,"column":22},"generated":{"line":29,"column":22}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":31}},{"source":"utils.ts","name":null,"original":{"line":21,"column":33},"generated":{"line":29,"column":33}},{"source":"utils.ts","name":null,"original":{"line":21,"column":34},"generated":{"line":29,"column":34}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":36}},{"source":"utils.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":29,"column":38}},{"source":"utils.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":30,"column":0}},{"source":"utils.ts","name":null,"original":{"line":22,"column":10},"generated":{"line":30,"column":8}},{"source":"utils.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":30,"column":11}},{"source":"utils.ts","name":null,"original":{"line":22,"column":16},"generated":{"line":30,"column":14}},{"source":"utils.ts","name":null,"original":{"line":22,"column":17},"generated":{"line":30,"column":15}},{"source":"utils.ts","name":null,"original":{"line":22,"column":20},"generated":{"line":30,"column":18}},{"source":"utils.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":30,"column":22}},{"source":"utils.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":31,"column":0}},{"source":"utils.ts","name":null,"original":{"line":23,"column":10},"generated":{"line":31,"column":8}},{"source":"utils.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":31,"column":11}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":14}},{"source":"utils.ts","name":null,"original":{"line":23,"column":20},"generated":{"line":31,"column":18}},{"source":"utils.ts","name":null,"original":{"line":23,"column":21},"generated":{"line":31,"column":19}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":24}},{"source":"utils.ts","name":null,"original":{"line":23,"column":27},"generated":{"line":31,"column":25}},{"source":"utils.ts","name":null,"original":{"line":23,"column":28},"generated":{"line":31,"column":26}},{"source":"utils.ts","name":null,"original":{"line":23,"column":31},"generated":{"line":31,"column":29}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":33}},{"source":"utils.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":31,"column":34}},{"source":"utils.ts","name":null,"original":{"line":25,"column":4},"generated":{"line":32,"column":0}},{"source":"utils.ts","name":null,"original":{"line":25,"column":10},"generated":{"line":32,"column":8}},{"source":"utils.ts","name":null,"original":{"line":25,"column":13},"generated":{"line":32,"column":11}},{"source":"utils.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":32,"column":14}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":35}},{"source":"utils.ts","name":null,"original":{"line":25,"column":38},"generated":{"line":32,"column":36}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":37}},{"source":"utils.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":32,"column":39}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":40}},{"source":"utils.ts","name":null,"original":{"line":25,"column":4},"generated":{"line":32,"column":41}},{"source":"utils.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":33,"column":0}},{"source":"utils.ts","name":null,"original":{"line":26,"column":10},"generated":{"line":33,"column":8}},{"source":"utils.ts","name":null,"original":{"line":26,"column":18},"generated":{"line":33,"column":16}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":19}},{"source":"utils.ts","name":null,"original":{"line":27,"column":9},"generated":{"line":33,"column":22}},{"source":"utils.ts","name":null,"original":{"line":27,"column":14},"generated":{"line":33,"column":27}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":28}},{"source":"utils.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":33,"column":31}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":38}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":41}},{"source":"utils.ts","name":null,"original":{"line":29,"column":13},"generated":{"line":33,"column":44}},{"source":"utils.ts","name":null,"original":{"line":29,"column":18},"generated":{"line":33,"column":49}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":50}},{"source":"utils.ts","name":null,"original":{"line":30,"column":10},"generated":{"line":33,"column":53}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":63}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":66}},{"source":"utils.ts","name":null,"original":{"line":31,"column":13},"generated":{"line":33,"column":69}},{"source":"utils.ts","name":null,"original":{"line":31,"column":18},"generated":{"line":33,"column":74}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":75}},{"source":"utils.ts","name":null,"original":{"line":32,"column":10},"generated":{"line":33,"column":78}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":87}},{"source":"utils.ts","name":null,"original":{"line":33,"column":10},"generated":{"line":33,"column":90}},{"source":"utils.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":33,"column":99}},{"source":"utils.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":34,"column":0}},{"source":"utils.ts","name":null,"original":{"line":35,"column":10},"generated":{"line":34,"column":8}},{"source":"utils.ts","name":null,"original":{"line":35,"column":14},"generated":{"line":34,"column":12}},{"source":"utils.ts","name":null,"original":{"line":35,"column":17},"generated":{"line":34,"column":15}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":36}},{"source":"utils.ts","name":null,"original":{"line":35,"column":39},"generated":{"line":34,"column":37}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":38}},{"source":"utils.ts","name":null,"original":{"line":35,"column":42},"generated":{"line":34,"column":40}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":41}},{"source":"utils.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":34,"column":42}},{"source":"utils.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":35,"column":0}},{"source":"utils.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":35,"column":8}},{"source":"utils.ts","name":null,"original":{"line":36,"column":18},"generated":{"line":35,"column":16}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":19}},{"source":"utils.ts","name":null,"original":{"line":36,"column":25},"generated":{"line":35,"column":23}},{"source":"utils.ts","name":null,"original":{"line":36,"column":30},"generated":{"line":35,"column":28}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":29}},{"source":"utils.ts","name":null,"original":{"line":36,"column":34},"generated":{"line":35,"column":32}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":40}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":43}},{"source":"utils.ts","name":null,"original":{"line":36,"column":49},"generated":{"line":35,"column":47}},{"source":"utils.ts","name":null,"original":{"line":36,"column":54},"generated":{"line":35,"column":52}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":53}},{"source":"utils.ts","name":null,"original":{"line":36,"column":58},"generated":{"line":35,"column":56}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":63}},{"source":"utils.ts","name":null,"original":{"line":36,"column":68},"generated":{"line":35,"column":66}},{"source":"utils.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":35,"column":74}},{"source":"utils.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":36,"column":0}},{"source":"utils.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":36,"column":4}},{"source":"utils.ts","name":null,"original":{"line":38,"column":10},"generated":{"line":36,"column":10}},{"source":"utils.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":37,"column":0}},{"source":"utils.ts","name":null,"original":{"line":39,"column":10},"generated":{"line":37,"column":8}},{"source":"utils.ts","name":null,"original":{"line":39,"column":18},"generated":{"line":37,"column":16}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":37,"column":19}},{"source":"utils.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":38,"column":0}},{"source":"utils.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":38,"column":6}},{"source":"utils.ts","name":null,"original":{"line":40,"column":8},"generated":{"line":38,"column":8}},{"source":"utils.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":38,"column":10}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":38,"column":16}},{"source":"utils.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":39,"column":0}},{"source":"utils.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":39,"column":6}},{"source":"utils.ts","name":null,"original":{"line":41,"column":7},"generated":{"line":39,"column":7}},{"source":"utils.ts","name":null,"original":{"line":41,"column":9},"generated":{"line":39,"column":9}},{"source":"utils.ts","name":null,"original":{"line":41,"column":12},"generated":{"line":39,"column":12}},{"source":"utils.ts","name":null,"original":{"line":41,"column":15},"generated":{"line":39,"column":15}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":39,"column":18}},{"source":"utils.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":40,"column":0}},{"source":"utils.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":40,"column":6}},{"source":"utils.ts","name":null,"original":{"line":42,"column":7},"generated":{"line":40,"column":7}},{"source":"utils.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":40,"column":9}},{"source":"utils.ts","name":null,"original":{"line":42,"column":12},"generated":{"line":40,"column":12}},{"source":"utils.ts","name":null,"original":{"line":42,"column":15},"generated":{"line":40,"column":15}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":40,"column":18}},{"source":"utils.ts","name":null,"original":{"line":43,"column":6},"generated":{"line":41,"column":0}},{"source":"utils.ts","name":null,"original":{"line":43,"column":6},"generated":{"line":41,"column":6}},{"source":"utils.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":41,"column":10}},{"source":"utils.ts","name":null,"original":{"line":43,"column":12},"generated":{"line":41,"column":12}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":41,"column":20}},{"source":"utils.ts","name":null,"original":{"line":44,"column":6},"generated":{"line":42,"column":0}},{"source":"utils.ts","name":null,"original":{"line":44,"column":6},"generated":{"line":42,"column":6}},{"source":"utils.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":42,"column":10}},{"source":"utils.ts","name":null,"original":{"line":44,"column":12},"generated":{"line":42,"column":12}},{"source":"utils.ts","name":null,"original":{"line":44,"column":24},"generated":{"line":42,"column":26}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":43,"column":0}},{"source":"utils.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":43,"column":5}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":0}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":4}},{"source":"utils.ts","name":null,"original":{"line":47,"column":9},"generated":{"line":44,"column":9}},{"source":"utils.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":44,"column":10}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":14}},{"source":"utils.ts","name":null,"original":{"line":47,"column":15},"generated":{"line":44,"column":15}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":23}},{"source":"utils.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":46,"column":0}},{"source":"utils.ts","name":null,"original":{"line":49,"column":8},"generated":{"line":46,"column":8}},{"source":"utils.ts","name":null,"original":{"line":49,"column":9},"generated":{"line":46,"column":9}},{"source":"utils.ts","name":null,"original":{"line":49,"column":12},"generated":{"line":46,"column":12}},{"source":"utils.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":46,"column":13}},{"source":"utils.ts","name":null,"original":{"line":49,"column":15},"generated":{"line":46,"column":15}},{"source":"utils.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":47,"column":0}},{"source":"utils.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":47,"column":10}},{"source":"utils.ts","name":null,"original":{"line":50,"column":20},"generated":{"line":47,"column":18}},{"source":"utils.ts","name":null,"original":{"line":50,"column":23},"generated":{"line":47,"column":21}},{"source":"utils.ts","name":null,"original":{"line":50,"column":28},"generated":{"line":47,"column":26}},{"source":"utils.ts","name":null,"original":{"line":50,"column":29},"generated":{"line":47,"column":27}},{"source":"utils.ts","name":null,"original":{"line":50,"column":30},"generated":{"line":47,"column":28}},{"source":"utils.ts","name":null,"original":{"line":50,"column":33},"generated":{"line":47,"column":31}},{"source":"utils.ts","name":null,"original":{"line":50,"column":28},"generated":{"line":47,"column":32}},{"source":"utils.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":47,"column":33}},{"source":"utils.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":48,"column":0}},{"source":"utils.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":48,"column":6}},{"source":"utils.ts","name":null,"original":{"line":52,"column":12},"generated":{"line":48,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":0}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":6}},{"source":"utils.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":49,"column":11}},{"source":"utils.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":49,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":16}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":49,"column":17}},{"source":"utils.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":50,"column":0}},{"source":"utils.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":50,"column":8}},{"source":"utils.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":50,"column":10}},{"source":"utils.ts","name":null,"original":{"line":54,"column":12},"generated":{"line":50,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":50,"column":18}},{"source":"utils.ts","name":null,"original":{"line":55,"column":8},"generated":{"line":51,"column":0}},{"source":"utils.ts","name":null,"original":{"line":55,"column":8},"generated":{"line":51,"column":8}},{"source":"utils.ts","name":null,"original":{"line":55,"column":18},"generated":{"line":51,"column":18}},{"source":"utils.ts","name":null,"original":{"line":55,"column":20},"generated":{"line":51,"column":20}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":51,"column":28}},{"source":"utils.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":52,"column":0}},{"source":"utils.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":52,"column":8}},{"source":"utils.ts","name":null,"original":{"line":56,"column":18},"generated":{"line":52,"column":18}},{"source":"utils.ts","name":null,"original":{"line":56,"column":20},"generated":{"line":52,"column":20}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":52,"column":28}},{"source":"utils.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":53,"column":0}},{"source":"utils.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":53,"column":8}},{"source":"utils.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":53,"column":12}},{"source":"utils.ts","name":null,"original":{"line":57,"column":14},"generated":{"line":53,"column":14}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":53,"column":22}},{"source":"utils.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":54,"column":0}},{"source":"utils.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":54,"column":8}},{"source":"utils.ts","name":null,"original":{"line":58,"column":12},"generated":{"line":54,"column":12}},{"source":"utils.ts","name":null,"original":{"line":58,"column":14},"generated":{"line":54,"column":14}},{"source":"utils.ts","name":null,"original":{"line":58,"column":20},"generated":{"line":54,"column":20}},{"source":"utils.ts","name":null,"original":{"line":58,"column":21},"generated":{"line":54,"column":21}},{"source":"utils.ts","name":null,"original":{"line":58,"column":14},"generated":{"line":54,"column":29}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":55,"column":0}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":55,"column":7}},{"source":"utils.ts","name":null,"original":{"line":60,"column":5},"generated":{"line":56,"column":0}},{"source":"utils.ts","name":null,"original":{"line":61,"column":3},"generated":{"line":57,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":59,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":59,"column":9}},{"source":"utils.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":60,"column":0}},{"source":"utils.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":60,"column":4}},{"source":"utils.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":60,"column":9}},{"source":"utils.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":60,"column":11}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":60,"column":16}},{"source":"utils.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":61,"column":0}},{"source":"utils.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":61,"column":4}},{"source":"utils.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":61,"column":9}},{"source":"utils.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":61,"column":11}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":61,"column":16}},{"source":"utils.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":62,"column":0}},{"source":"utils.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":62,"column":4}},{"source":"utils.ts","name":null,"original":{"line":66,"column":10},"generated":{"line":62,"column":10}},{"source":"utils.ts","name":null,"original":{"line":66,"column":10},"generated":{"line":62,"column":12}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":63,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":63,"column":3}},{"source":"utils.ts","name":null,"original":{"line":68,"column":1},"generated":{"line":64,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":7}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":8}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":17}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":20}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":29}}],"sources":{"utils.ts":"import { GENode, GEEdge } from \"../types\";\n\nexport function getRandomIntInclusive(minF: number, maxF: number): number {\n const min = Math.ceil(minF);\n const max = Math.floor(maxF);\n return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive\n}\n\nexport function randomize(\n nodeCount = 1000,\n cols = 40\n): {\n nodes: GENode[];\n edges: GEEdge[];\n lastId: number;\n} {\n const nodes = [];\n const edges = [];\n let lastId = 0;\n\n for (let i = 0; i < nodeCount; i++) {\n const col = i % cols;\n const row = Math.floor(i / cols);\n\n const tmp = getRandomIntInclusive(0, 3);\n const nodeType =\n tmp === 0\n ? \"empty\"\n : tmp === 1\n ? \"decision\"\n : tmp === 2\n ? \"unknown\"\n : \"complex\";\n\n const tmp2 = getRandomIntInclusive(0, 2);\n const edgeType = tmp2 === 0 ? \"normal\" : tmp2 === 1 ? \"round\" : \"double\";\n\n lastId++;\n const currNode: GENode = {\n id: lastId,\n x: col * 320,\n y: row * 320,\n type: nodeType,\n text: `Node ID: ${lastId}`\n };\n\n nodes.push(currNode);\n\n if (i > 0) {\n const prevNode = nodes[i - 1];\n\n lastId++;\n edges.push({\n id: lastId,\n sourceNode: prevNode,\n targetNode: currNode,\n type: edgeType,\n text: lastId.toString()\n });\n }\n }\n\n return {\n nodes,\n edges,\n lastId\n };\n}\n"},"lineCount":null}},"error":null,"hash":"4e87e157c594cd4ebda5bc0211927edb","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json b/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json new file mode 100644 index 0000000..93a01e2 --- /dev/null +++ b/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json @@ -0,0 +1 @@ +{"id":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557863421},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000}],"generated":{"js":"var global = arguments[3];\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\nvar parent = module.bundle.parent;\n\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = \"\" || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + \"1235\" + '/');\n\n ws.onmessage = function (event) {\n checkedAssets = {};\n assetsToAccept = [];\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function (asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n\n if (didAccept) {\n handled = true;\n }\n }\n }); // Enable HMR for CSS by default.\n\n handled = handled || data.assets.every(function (asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) {\n // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n\n ws.onclose = function () {\n location.reload();\n };\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n removeErrorOverlay();\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID; // html encode message and stack trace\n\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n overlay.innerHTML = '
' + 'ERROR' + '🚨' + '
' + message.innerHTML + '
' + '
' + stackTrace.innerHTML + '
' + '
';\n return overlay;\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id);\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n cached = bundle.cache[id];\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n\n return true;\n }\n}"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":2,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":0}},{"name":"OVERLAY_ID","generated":{"line":2,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":4}},{"generated":{"line":2,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":14}},{"generated":{"line":2,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":17}},{"generated":{"line":2,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":0}},{"name":"OldModule","generated":{"line":3,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":4}},{"generated":{"line":3,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":13}},{"name":"module","generated":{"line":3,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":16}},{"generated":{"line":3,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":22}},{"name":"bundle","generated":{"line":3,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":23}},{"generated":{"line":3,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":16}},{"name":"Module","generated":{"line":3,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":30}},{"generated":{"line":3,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":0}},{"generated":{"line":5,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"name":"Module","generated":{"line":5,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":9}},{"generated":{"line":5,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"name":"moduleName","generated":{"line":5,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":16}},{"generated":{"line":5,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"generated":{"line":5,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":28}},{"name":"OldModule","generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"name":"OldModule","generated":{"line":6,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":6,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":11}},{"name":"call","generated":{"line":6,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":12}},{"generated":{"line":6,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":6,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":17}},{"generated":{"line":6,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"name":"moduleName","generated":{"line":6,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":23}},{"generated":{"line":6,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":7,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"name":"hot","generated":{"line":7,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":7}},{"generated":{"line":7,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"generated":{"line":7,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"data","generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":4}},{"name":"data","generated":{"line":8,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":4}},{"generated":{"line":8,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":8}},{"name":"module","generated":{"line":8,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":10}},{"generated":{"line":8,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":16}},{"name":"bundle","generated":{"line":8,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":17}},{"generated":{"line":8,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":10}},{"name":"hotData","generated":{"line":8,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":24}},{"generated":{"line":8,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"_acceptCallbacks","generated":{"line":9,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":4}},{"name":"_acceptCallbacks","generated":{"line":9,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":4}},{"generated":{"line":9,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":20}},{"generated":{"line":9,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":22}},{"generated":{"line":9,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"_disposeCallbacks","generated":{"line":10,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":4}},{"name":"_disposeCallbacks","generated":{"line":10,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":4}},{"generated":{"line":10,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":21}},{"generated":{"line":10,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":23}},{"generated":{"line":10,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"accept","generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":4}},{"name":"accept","generated":{"line":11,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":4}},{"generated":{"line":11,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":10}},{"generated":{"line":11,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":12}},{"name":"fn","generated":{"line":11,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":22}},{"generated":{"line":11,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":12}},{"generated":{"line":11,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":26}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"_acceptCallbacks","generated":{"line":12,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":11}},{"generated":{"line":12,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"push","generated":{"line":12,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":28}},{"generated":{"line":12,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"fn","generated":{"line":12,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":33}},{"generated":{"line":12,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":35}},{"generated":{"line":12,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":39}},{"generated":{"line":12,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":51}},{"generated":{"line":12,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":53}},{"generated":{"line":12,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"generated":{"line":13,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":13,"column":5}},{"generated":{"line":13,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"dispose","generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":4}},{"name":"dispose","generated":{"line":14,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":4}},{"generated":{"line":14,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":11}},{"generated":{"line":14,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":13}},{"name":"fn","generated":{"line":14,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":23}},{"generated":{"line":14,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":13}},{"generated":{"line":14,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":27}},{"generated":{"line":15,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"_disposeCallbacks","generated":{"line":15,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":11}},{"generated":{"line":15,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"push","generated":{"line":15,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":29}},{"generated":{"line":15,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"fn","generated":{"line":15,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":34}},{"generated":{"line":15,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":16,"column":5}},{"generated":{"line":17,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"generated":{"line":17,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"name":"module","generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"name":"module","generated":{"line":18,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":18,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":8}},{"name":"bundle","generated":{"line":18,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":9}},{"generated":{"line":18,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"name":"hotData","generated":{"line":18,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":16}},{"generated":{"line":18,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":18,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":26}},{"generated":{"line":18,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":20,"column":1}},{"name":"module","generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"generated":{"line":21,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":6}},{"name":"bundle","generated":{"line":21,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":7}},{"generated":{"line":21,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"name":"Module","generated":{"line":21,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":14}},{"generated":{"line":21,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"name":"Module","generated":{"line":21,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":23}},{"generated":{"line":21,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"generated":{"line":22,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"name":"checkedAssets","generated":{"line":22,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":4}},{"generated":{"line":22,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"name":"assetsToAccept","generated":{"line":22,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":19}},{"generated":{"line":22,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"generated":{"line":23,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":0}},{"name":"parent","generated":{"line":23,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":4}},{"generated":{"line":23,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":10}},{"name":"module","generated":{"line":23,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":13}},{"generated":{"line":23,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":19}},{"name":"bundle","generated":{"line":23,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":20}},{"generated":{"line":23,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":13}},{"name":"parent","generated":{"line":23,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":27}},{"generated":{"line":23,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":0}},{"generated":{"line":25,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":0}},{"generated":{"line":25,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":4}},{"generated":{"line":25,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":5}},{"name":"parent","generated":{"line":25,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":6}},{"generated":{"line":25,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":5}},{"generated":{"line":25,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":16}},{"name":"parent","generated":{"line":25,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":17}},{"generated":{"line":25,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":23}},{"name":"isParcelRequire","generated":{"line":25,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":24}},{"generated":{"line":25,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":4}},{"generated":{"line":25,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":44}},{"name":"WebSocket","generated":{"line":25,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":51}},{"generated":{"line":25,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":44}},{"generated":{"line":25,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":65}},{"generated":{"line":25,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":0}},{"generated":{"line":25,"column":78},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":78}},{"generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":2}},{"name":"hostname","generated":{"line":26,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":6}},{"generated":{"line":26,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":14}},{"generated":{"line":26,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":17}},{"name":"location","generated":{"line":26,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":45}},{"generated":{"line":26,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":53}},{"name":"hostname","generated":{"line":26,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":54}},{"generated":{"line":26,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":2}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":2}},{"name":"protocol","generated":{"line":27,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":6}},{"generated":{"line":27,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":14}},{"name":"location","generated":{"line":27,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":25}},{"name":"protocol","generated":{"line":27,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":26}},{"generated":{"line":27,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":39}},{"generated":{"line":27,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":50}},{"generated":{"line":27,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":58}},{"generated":{"line":27,"column":62},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":2}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":2}},{"name":"ws","generated":{"line":28,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":6}},{"generated":{"line":28,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":8}},{"generated":{"line":28,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"name":"WebSocket","generated":{"line":28,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":15}},{"generated":{"line":28,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"name":"protocol","generated":{"line":28,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":33}},{"generated":{"line":28,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":36}},{"generated":{"line":28,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"name":"hostname","generated":{"line":28,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":44}},{"generated":{"line":28,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":55}},{"generated":{"line":28,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":84}},{"generated":{"line":28,"column":73},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"generated":{"line":28,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":2}},{"name":"ws","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"name":"ws","generated":{"line":30,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":30,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":4}},{"name":"onmessage","generated":{"line":30,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":5}},{"generated":{"line":30,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":30,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":17}},{"name":"event","generated":{"line":30,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":26}},{"generated":{"line":30,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":17}},{"generated":{"line":30,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":33}},{"name":"checkedAssets","generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"name":"checkedAssets","generated":{"line":31,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"generated":{"line":31,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":17}},{"generated":{"line":31,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":20}},{"generated":{"line":31,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"name":"assetsToAccept","generated":{"line":32,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"name":"assetsToAccept","generated":{"line":32,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"generated":{"line":32,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":18}},{"generated":{"line":32,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":21}},{"generated":{"line":32,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"generated":{"line":33,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":4}},{"name":"data","generated":{"line":33,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":8}},{"generated":{"line":33,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":12}},{"name":"JSON","generated":{"line":33,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"generated":{"line":33,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":19}},{"name":"parse","generated":{"line":33,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":20}},{"generated":{"line":33,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"name":"event","generated":{"line":33,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":26}},{"generated":{"line":33,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":31}},{"name":"data","generated":{"line":33,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":32}},{"generated":{"line":33,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"generated":{"line":33,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":4}},{"generated":{"line":35,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":4}},{"name":"data","generated":{"line":35,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":8}},{"generated":{"line":35,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":12}},{"name":"type","generated":{"line":35,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":13}},{"generated":{"line":35,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":8}},{"generated":{"line":35,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":22}},{"generated":{"line":35,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":4}},{"generated":{"line":35,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":32}},{"generated":{"line":36,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":6}},{"name":"handled","generated":{"line":36,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":10}},{"generated":{"line":36,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":17}},{"generated":{"line":36,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":20}},{"generated":{"line":36,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":6}},{"name":"data","generated":{"line":37,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"name":"data","generated":{"line":37,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":37,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":10}},{"name":"assets","generated":{"line":37,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":11}},{"generated":{"line":37,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"name":"forEach","generated":{"line":37,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":18}},{"generated":{"line":37,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":37,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":26}},{"name":"asset","generated":{"line":37,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":35}},{"generated":{"line":37,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":26}},{"generated":{"line":37,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":42}},{"generated":{"line":38,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":8}},{"generated":{"line":38,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":12}},{"name":"asset","generated":{"line":38,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":13}},{"generated":{"line":38,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":18}},{"name":"isNew","generated":{"line":38,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":19}},{"generated":{"line":38,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":8}},{"generated":{"line":38,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":26}},{"generated":{"line":39,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":10}},{"name":"didAccept","generated":{"line":39,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":14}},{"generated":{"line":39,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":23}},{"name":"hmrAcceptCheck","generated":{"line":39,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":26}},{"generated":{"line":39,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"name":"global","generated":{"line":39,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":41}},{"generated":{"line":39,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":47}},{"name":"parcelRequire","generated":{"line":39,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":48}},{"generated":{"line":39,"column":61},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"name":"asset","generated":{"line":39,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":63}},{"generated":{"line":39,"column":68},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":68}},{"name":"id","generated":{"line":39,"column":69},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":69}},{"generated":{"line":39,"column":71},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"generated":{"line":39,"column":72},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":10}},{"generated":{"line":41,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":10}},{"name":"didAccept","generated":{"line":41,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":14}},{"generated":{"line":41,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":10}},{"generated":{"line":41,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":25}},{"name":"handled","generated":{"line":42,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"name":"handled","generated":{"line":42,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"generated":{"line":42,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":19}},{"generated":{"line":42,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":22}},{"generated":{"line":42,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"generated":{"line":43,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":43,"column":11}},{"generated":{"line":44,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":44,"column":9}},{"generated":{"line":45,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":45,"column":7}},{"generated":{"line":45,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":45,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":32}},{"generated":{"line":45,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":47,"column":6}},{"name":"handled","generated":{"line":47,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"name":"handled","generated":{"line":47,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"generated":{"line":47,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":13}},{"name":"handled","generated":{"line":47,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":16}},{"generated":{"line":47,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":23}},{"name":"data","generated":{"line":47,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":47,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":31}},{"name":"assets","generated":{"line":47,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":32}},{"generated":{"line":47,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"name":"every","generated":{"line":47,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":39}},{"generated":{"line":47,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":47,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":45}},{"name":"asset","generated":{"line":47,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":54}},{"generated":{"line":47,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":45}},{"generated":{"line":47,"column":62},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":61}},{"generated":{"line":48,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":8}},{"name":"asset","generated":{"line":48,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"generated":{"line":48,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":20}},{"name":"type","generated":{"line":48,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":21}},{"generated":{"line":48,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"generated":{"line":48,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":30}},{"generated":{"line":48,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"name":"asset","generated":{"line":48,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":39}},{"generated":{"line":48,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":44}},{"name":"generated","generated":{"line":48,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":45}},{"generated":{"line":48,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":39}},{"name":"js","generated":{"line":48,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":55}},{"generated":{"line":48,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":8}},{"generated":{"line":49,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":50,"column":7}},{"generated":{"line":49,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":49,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"generated":{"line":51,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"name":"handled","generated":{"line":51,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":10}},{"generated":{"line":51,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"generated":{"line":51,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":19}},{"name":"console","generated":{"line":52,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"name":"console","generated":{"line":52,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"generated":{"line":52,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":15}},{"name":"clear","generated":{"line":52,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":16}},{"generated":{"line":52,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"name":"data","generated":{"line":53,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"data","generated":{"line":53,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"generated":{"line":53,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":12}},{"name":"assets","generated":{"line":53,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":13}},{"generated":{"line":53,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"forEach","generated":{"line":53,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":20}},{"generated":{"line":53,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"generated":{"line":53,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":28}},{"name":"asset","generated":{"line":53,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":38}},{"generated":{"line":53,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":28}},{"generated":{"line":53,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":45}},{"name":"hmrApply","generated":{"line":54,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"name":"hmrApply","generated":{"line":54,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"generated":{"line":54,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"name":"global","generated":{"line":54,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":19}},{"generated":{"line":54,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":25}},{"name":"parcelRequire","generated":{"line":54,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":26}},{"generated":{"line":54,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"name":"asset","generated":{"line":54,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":41}},{"generated":{"line":54,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"generated":{"line":54,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"generated":{"line":55,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":57,"column":9}},{"generated":{"line":55,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"assetsToAccept","generated":{"line":56,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"name":"assetsToAccept","generated":{"line":56,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":56,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":22}},{"name":"forEach","generated":{"line":56,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":23}},{"generated":{"line":56,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":56,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":31}},{"name":"v","generated":{"line":56,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":41}},{"generated":{"line":56,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":31}},{"generated":{"line":56,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":44}},{"name":"hmrAcceptRun","generated":{"line":57,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"name":"hmrAcceptRun","generated":{"line":57,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"generated":{"line":57,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"name":"v","generated":{"line":57,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":23}},{"generated":{"line":57,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":24}},{"generated":{"line":57,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":25}},{"generated":{"line":57,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":24}},{"generated":{"line":57,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"name":"v","generated":{"line":57,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":29}},{"generated":{"line":57,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":30}},{"generated":{"line":57,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":31}},{"generated":{"line":57,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":30}},{"generated":{"line":57,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"generated":{"line":57,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"generated":{"line":58,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":61,"column":9}},{"generated":{"line":58,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":59,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":7}},{"generated":{"line":59,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"generated":{"line":59,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":13}},{"name":"location","generated":{"line":59,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":17}},{"generated":{"line":59,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":25}},{"name":"reload","generated":{"line":59,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":26}},{"generated":{"line":59,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":13}},{"generated":{"line":59,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":34}},{"generated":{"line":60,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":36}},{"name":"location","generated":{"line":61,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"name":"location","generated":{"line":61,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"generated":{"line":61,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":16}},{"name":"reload","generated":{"line":61,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":17}},{"generated":{"line":61,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"generated":{"line":62,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":64,"column":7}},{"generated":{"line":63,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":65,"column":5}},{"generated":{"line":65,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":4}},{"name":"data","generated":{"line":65,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":8}},{"generated":{"line":65,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":12}},{"name":"type","generated":{"line":65,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":13}},{"generated":{"line":65,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":8}},{"generated":{"line":65,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":22}},{"generated":{"line":65,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":4}},{"generated":{"line":65,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":32}},{"name":"ws","generated":{"line":66,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"name":"ws","generated":{"line":66,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"generated":{"line":66,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":8}},{"name":"close","generated":{"line":66,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":9}},{"generated":{"line":66,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"name":"ws","generated":{"line":68,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"name":"ws","generated":{"line":68,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":68,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":8}},{"name":"onclose","generated":{"line":68,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":9}},{"generated":{"line":68,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":68,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":19}},{"generated":{"line":68,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":31}},{"name":"location","generated":{"line":69,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"name":"location","generated":{"line":69,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"generated":{"line":69,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":16}},{"name":"reload","generated":{"line":69,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":17}},{"generated":{"line":69,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"generated":{"line":70,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":71,"column":7}},{"generated":{"line":70,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":71,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":72,"column":5}},{"generated":{"line":73,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":4}},{"name":"data","generated":{"line":73,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":8}},{"generated":{"line":73,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":12}},{"name":"type","generated":{"line":73,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":13}},{"generated":{"line":73,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":8}},{"generated":{"line":73,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":22}},{"generated":{"line":73,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":4}},{"generated":{"line":73,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":40}},{"name":"console","generated":{"line":74,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"name":"console","generated":{"line":74,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"generated":{"line":74,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":13}},{"name":"log","generated":{"line":74,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":14}},{"generated":{"line":74,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"generated":{"line":74,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":18}},{"generated":{"line":74,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"name":"removeErrorOverlay","generated":{"line":75,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":6}},{"name":"removeErrorOverlay","generated":{"line":75,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":6}},{"generated":{"line":75,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":24}},{"generated":{"line":76,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":78,"column":5}},{"generated":{"line":78,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":4}},{"name":"data","generated":{"line":78,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":8}},{"generated":{"line":78,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":12}},{"name":"type","generated":{"line":78,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":13}},{"generated":{"line":78,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":8}},{"generated":{"line":78,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":22}},{"generated":{"line":78,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":4}},{"generated":{"line":78,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":31}},{"name":"console","generated":{"line":79,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"name":"console","generated":{"line":79,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"generated":{"line":79,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":13}},{"name":"error","generated":{"line":79,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":14}},{"generated":{"line":79,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"generated":{"line":79,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"name":"data","generated":{"line":79,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":38}},{"generated":{"line":79,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":42}},{"name":"error","generated":{"line":79,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":43}},{"generated":{"line":79,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":38}},{"name":"message","generated":{"line":79,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":49}},{"generated":{"line":79,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"generated":{"line":79,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":59}},{"generated":{"line":79,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"name":"data","generated":{"line":79,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":66}},{"generated":{"line":79,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":70}},{"name":"error","generated":{"line":79,"column":71},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":71}},{"generated":{"line":79,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":66}},{"name":"stack","generated":{"line":79,"column":77},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":77}},{"generated":{"line":79,"column":82},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"name":"removeErrorOverlay","generated":{"line":80,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":6}},{"name":"removeErrorOverlay","generated":{"line":80,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":6}},{"generated":{"line":80,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":24}},{"generated":{"line":81,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":6}},{"name":"overlay","generated":{"line":81,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":10}},{"generated":{"line":81,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":17}},{"name":"createErrorOverlay","generated":{"line":81,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":20}},{"generated":{"line":81,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":38}},{"name":"data","generated":{"line":81,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":39}},{"generated":{"line":81,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":38}},{"generated":{"line":81,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":6}},{"name":"document","generated":{"line":82,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"document","generated":{"line":82,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"generated":{"line":82,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":14}},{"name":"body","generated":{"line":82,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":15}},{"generated":{"line":82,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"appendChild","generated":{"line":82,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":20}},{"generated":{"line":82,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"overlay","generated":{"line":82,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":32}},{"generated":{"line":82,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"generated":{"line":83,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":87,"column":5}},{"generated":{"line":84,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":88,"column":3}},{"generated":{"line":84,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":85,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":89,"column":1}},{"generated":{"line":87,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":0}},{"name":"removeErrorOverlay","generated":{"line":87,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":9}},{"generated":{"line":87,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":0}},{"generated":{"line":87,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":30}},{"generated":{"line":88,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":2}},{"name":"overlay","generated":{"line":88,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":6}},{"generated":{"line":88,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":13}},{"name":"document","generated":{"line":88,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"generated":{"line":88,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":24}},{"name":"getElementById","generated":{"line":88,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":25}},{"generated":{"line":88,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"name":"OVERLAY_ID","generated":{"line":88,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":40}},{"generated":{"line":88,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"generated":{"line":88,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":2}},{"generated":{"line":90,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":2}},{"name":"overlay","generated":{"line":90,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":6}},{"generated":{"line":90,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":2}},{"generated":{"line":90,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":15}},{"name":"overlay","generated":{"line":91,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"name":"overlay","generated":{"line":91,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"generated":{"line":91,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":11}},{"name":"remove","generated":{"line":91,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":12}},{"generated":{"line":91,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"generated":{"line":92,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":95,"column":3}},{"generated":{"line":93,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":96,"column":1}},{"generated":{"line":95,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"name":"createErrorOverlay","generated":{"line":95,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":9}},{"generated":{"line":95,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"name":"data","generated":{"line":95,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":28}},{"generated":{"line":95,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"generated":{"line":95,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":34}},{"generated":{"line":96,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":2}},{"name":"overlay","generated":{"line":96,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":6}},{"generated":{"line":96,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":13}},{"name":"document","generated":{"line":96,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":24}},{"name":"createElement","generated":{"line":96,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":25}},{"generated":{"line":96,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":39}},{"generated":{"line":96,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":2}},{"name":"overlay","generated":{"line":97,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"name":"overlay","generated":{"line":97,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"generated":{"line":97,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":9}},{"name":"id","generated":{"line":97,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":10}},{"generated":{"line":97,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"name":"OVERLAY_ID","generated":{"line":97,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":15}},{"generated":{"line":97,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"generated":{"line":97,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":34}},{"generated":{"line":97,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":102,"column":2}},{"generated":{"line":99,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":2}},{"name":"message","generated":{"line":99,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":6}},{"generated":{"line":99,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":13}},{"name":"document","generated":{"line":99,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":24}},{"name":"createElement","generated":{"line":99,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":25}},{"generated":{"line":99,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":39}},{"generated":{"line":99,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":2}},{"generated":{"line":100,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":2}},{"name":"stackTrace","generated":{"line":100,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":6}},{"generated":{"line":100,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":16}},{"name":"document","generated":{"line":100,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":27}},{"name":"createElement","generated":{"line":100,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":28}},{"generated":{"line":100,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":42}},{"generated":{"line":100,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":2}},{"name":"message","generated":{"line":101,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"message","generated":{"line":101,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"generated":{"line":101,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":9}},{"name":"innerText","generated":{"line":101,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":10}},{"generated":{"line":101,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"data","generated":{"line":101,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":22}},{"generated":{"line":101,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":26}},{"name":"error","generated":{"line":101,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":27}},{"generated":{"line":101,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":22}},{"name":"message","generated":{"line":101,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":33}},{"generated":{"line":101,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"stackTrace","generated":{"line":102,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"stackTrace","generated":{"line":102,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"generated":{"line":102,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":12}},{"name":"innerText","generated":{"line":102,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":13}},{"generated":{"line":102,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"data","generated":{"line":102,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":25}},{"generated":{"line":102,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":29}},{"name":"error","generated":{"line":102,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":30}},{"generated":{"line":102,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":25}},{"name":"stack","generated":{"line":102,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":36}},{"generated":{"line":102,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"overlay","generated":{"line":103,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"name":"overlay","generated":{"line":103,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":103,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":9}},{"name":"innerHTML","generated":{"line":103,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":10}},{"generated":{"line":103,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":103,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":241},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":110,"column":6}},{"generated":{"line":103,"column":324},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":327},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":111,"column":6}},{"generated":{"line":103,"column":400},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":403},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":6}},{"generated":{"line":103,"column":472},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"name":"message","generated":{"line":103,"column":475},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":78}},{"generated":{"line":103,"column":482},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":85}},{"name":"innerHTML","generated":{"line":103,"column":483},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":86}},{"generated":{"line":103,"column":492},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":495},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":98}},{"generated":{"line":103,"column":503},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":506},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":6}},{"generated":{"line":103,"column":513},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"name":"stackTrace","generated":{"line":103,"column":516},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":16}},{"generated":{"line":103,"column":526},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":26}},{"name":"innerHTML","generated":{"line":103,"column":527},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":27}},{"generated":{"line":103,"column":536},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":539},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":39}},{"generated":{"line":103,"column":547},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":550},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":114,"column":4}},{"generated":{"line":103,"column":558},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":104,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":2}},{"name":"overlay","generated":{"line":104,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":9}},{"generated":{"line":104,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":2}},{"generated":{"line":105,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":119,"column":1}},{"generated":{"line":107,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"getParents","generated":{"line":107,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":9}},{"generated":{"line":107,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"bundle","generated":{"line":107,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":20}},{"generated":{"line":107,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"id","generated":{"line":107,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":28}},{"generated":{"line":107,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"generated":{"line":107,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":32}},{"generated":{"line":108,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":2}},{"name":"modules","generated":{"line":108,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":6}},{"generated":{"line":108,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":13}},{"name":"bundle","generated":{"line":108,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":16}},{"generated":{"line":108,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":22}},{"name":"modules","generated":{"line":108,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":23}},{"generated":{"line":108,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":2}},{"generated":{"line":110,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":2}},{"generated":{"line":110,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":6}},{"name":"modules","generated":{"line":110,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":7}},{"generated":{"line":110,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":2}},{"generated":{"line":110,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":16}},{"generated":{"line":111,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":4}},{"generated":{"line":111,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":11}},{"generated":{"line":111,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":4}},{"generated":{"line":112,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":125,"column":3}},{"generated":{"line":114,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":2}},{"name":"parents","generated":{"line":114,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":6}},{"generated":{"line":114,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":13}},{"generated":{"line":114,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":16}},{"generated":{"line":114,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":2}},{"generated":{"line":115,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"k","generated":{"line":115,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":6}},{"generated":{"line":115,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"d","generated":{"line":115,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":9}},{"generated":{"line":115,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"dep","generated":{"line":115,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":12}},{"generated":{"line":115,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"generated":{"line":117,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"name":"k","generated":{"line":117,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":7}},{"generated":{"line":117,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"name":"modules","generated":{"line":117,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":12}},{"generated":{"line":117,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"generated":{"line":117,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":21}},{"generated":{"line":118,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"name":"d","generated":{"line":118,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":9}},{"generated":{"line":118,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"name":"modules","generated":{"line":118,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":21}},{"name":"k","generated":{"line":118,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":22}},{"generated":{"line":118,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":21}},{"generated":{"line":118,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":25}},{"generated":{"line":118,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"generated":{"line":118,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":29}},{"name":"dep","generated":{"line":119,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"name":"dep","generated":{"line":119,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"generated":{"line":119,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":9}},{"name":"modules","generated":{"line":119,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":19}},{"name":"k","generated":{"line":119,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":20}},{"generated":{"line":119,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":19}},{"generated":{"line":119,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":23}},{"generated":{"line":119,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"name":"d","generated":{"line":119,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":26}},{"generated":{"line":119,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"generated":{"line":121,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":6}},{"name":"dep","generated":{"line":121,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":10}},{"generated":{"line":121,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":13}},{"name":"id","generated":{"line":121,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":18}},{"generated":{"line":121,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":10}},{"name":"Array","generated":{"line":121,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"generated":{"line":121,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":30}},{"name":"isArray","generated":{"line":121,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":31}},{"generated":{"line":121,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"name":"dep","generated":{"line":121,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":39}},{"generated":{"line":121,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"name":"dep","generated":{"line":121,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":47}},{"generated":{"line":121,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":50}},{"name":"dep","generated":{"line":121,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":51}},{"generated":{"line":121,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":54}},{"name":"length","generated":{"line":121,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":55}},{"generated":{"line":121,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":51}},{"generated":{"line":121,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":64}},{"generated":{"line":121,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":50}},{"generated":{"line":121,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":47}},{"name":"id","generated":{"line":121,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":71}},{"generated":{"line":121,"column":72},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":6}},{"generated":{"line":121,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":76}},{"name":"parents","generated":{"line":122,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"name":"parents","generated":{"line":122,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"generated":{"line":122,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":15}},{"name":"push","generated":{"line":122,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":16}},{"generated":{"line":122,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"name":"k","generated":{"line":122,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":21}},{"generated":{"line":122,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"generated":{"line":123,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":135,"column":7}},{"generated":{"line":124,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":136,"column":5}},{"generated":{"line":125,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":137,"column":3}},{"generated":{"line":127,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":2}},{"name":"bundle","generated":{"line":127,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":6}},{"generated":{"line":127,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":12}},{"name":"parent","generated":{"line":127,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":13}},{"generated":{"line":127,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":2}},{"generated":{"line":127,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":21}},{"name":"parents","generated":{"line":128,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"name":"parents","generated":{"line":128,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"generated":{"line":128,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":11}},{"name":"parents","generated":{"line":128,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"generated":{"line":128,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":21}},{"name":"concat","generated":{"line":128,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":22}},{"generated":{"line":128,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"name":"getParents","generated":{"line":128,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":29}},{"generated":{"line":128,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"name":"bundle","generated":{"line":128,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":40}},{"generated":{"line":128,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":46}},{"name":"parent","generated":{"line":128,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":47}},{"generated":{"line":128,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"name":"id","generated":{"line":128,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":55}},{"generated":{"line":128,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"generated":{"line":128,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"generated":{"line":128,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"generated":{"line":129,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":141,"column":3}},{"generated":{"line":131,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":2}},{"name":"parents","generated":{"line":131,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":9}},{"generated":{"line":131,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":2}},{"generated":{"line":132,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":144,"column":1}},{"generated":{"line":134,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"hmrApply","generated":{"line":134,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":9}},{"generated":{"line":134,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"bundle","generated":{"line":134,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":18}},{"generated":{"line":134,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"asset","generated":{"line":134,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":26}},{"generated":{"line":134,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"generated":{"line":134,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":33}},{"generated":{"line":135,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":2}},{"name":"modules","generated":{"line":135,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":6}},{"generated":{"line":135,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":13}},{"name":"bundle","generated":{"line":135,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":16}},{"generated":{"line":135,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":22}},{"name":"modules","generated":{"line":135,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":23}},{"generated":{"line":135,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":2}},{"generated":{"line":137,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":2}},{"generated":{"line":137,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":6}},{"name":"modules","generated":{"line":137,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":7}},{"generated":{"line":137,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":2}},{"generated":{"line":137,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":16}},{"generated":{"line":138,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":149,"column":4}},{"generated":{"line":139,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":150,"column":3}},{"generated":{"line":141,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"name":"modules","generated":{"line":141,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":6}},{"generated":{"line":141,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":13}},{"name":"asset","generated":{"line":141,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":14}},{"generated":{"line":141,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":19}},{"name":"id","generated":{"line":141,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":20}},{"generated":{"line":141,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":13}},{"generated":{"line":141,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":6}},{"generated":{"line":141,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":27}},{"name":"bundle","generated":{"line":141,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":28}},{"generated":{"line":141,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":34}},{"name":"parent","generated":{"line":141,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":35}},{"generated":{"line":141,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"generated":{"line":141,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":43}},{"generated":{"line":142,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":4}},{"name":"fn","generated":{"line":142,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":8}},{"generated":{"line":142,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":10}},{"generated":{"line":142,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"name":"Function","generated":{"line":142,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":17}},{"generated":{"line":142,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":26}},{"generated":{"line":142,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":37}},{"generated":{"line":142,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":47}},{"generated":{"line":142,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"name":"asset","generated":{"line":142,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":58}},{"generated":{"line":142,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":63}},{"name":"generated","generated":{"line":142,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":64}},{"generated":{"line":142,"column":73},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":58}},{"name":"js","generated":{"line":142,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":74}},{"generated":{"line":142,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":77},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":4}},{"name":"asset","generated":{"line":143,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"name":"asset","generated":{"line":143,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"generated":{"line":143,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":9}},{"name":"isNew","generated":{"line":143,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":10}},{"generated":{"line":143,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"generated":{"line":143,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":18}},{"name":"modules","generated":{"line":143,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":19}},{"generated":{"line":143,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":26}},{"name":"asset","generated":{"line":143,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":27}},{"generated":{"line":143,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":32}},{"name":"id","generated":{"line":143,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":33}},{"generated":{"line":143,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":26}},{"generated":{"line":143,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"name":"modules","generated":{"line":144,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"name":"modules","generated":{"line":144,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":144,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":11}},{"name":"asset","generated":{"line":144,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":12}},{"generated":{"line":144,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":17}},{"name":"id","generated":{"line":144,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":18}},{"generated":{"line":144,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":11}},{"generated":{"line":144,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":144,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"name":"fn","generated":{"line":144,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":25}},{"generated":{"line":144,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"name":"asset","generated":{"line":144,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":29}},{"generated":{"line":144,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":34}},{"name":"deps","generated":{"line":144,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":35}},{"generated":{"line":144,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"generated":{"line":144,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":145,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":3}},{"generated":{"line":145,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"generated":{"line":145,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":9}},{"name":"bundle","generated":{"line":145,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":13}},{"generated":{"line":145,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":19}},{"name":"parent","generated":{"line":145,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":20}},{"generated":{"line":145,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":9}},{"generated":{"line":145,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":28}},{"name":"hmrApply","generated":{"line":146,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"name":"hmrApply","generated":{"line":146,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"generated":{"line":146,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"name":"bundle","generated":{"line":146,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":13}},{"generated":{"line":146,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":19}},{"name":"parent","generated":{"line":146,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":20}},{"generated":{"line":146,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"name":"asset","generated":{"line":146,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":28}},{"generated":{"line":146,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"generated":{"line":146,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"generated":{"line":147,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":158,"column":3}},{"generated":{"line":148,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":159,"column":1}},{"generated":{"line":150,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"hmrAcceptCheck","generated":{"line":150,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":9}},{"generated":{"line":150,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"bundle","generated":{"line":150,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":24}},{"generated":{"line":150,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"id","generated":{"line":150,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":32}},{"generated":{"line":150,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"generated":{"line":150,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":36}},{"generated":{"line":151,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":2}},{"name":"modules","generated":{"line":151,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":6}},{"generated":{"line":151,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":13}},{"name":"bundle","generated":{"line":151,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":16}},{"generated":{"line":151,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":22}},{"name":"modules","generated":{"line":151,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":23}},{"generated":{"line":151,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":2}},{"generated":{"line":153,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":2}},{"generated":{"line":153,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":6}},{"name":"modules","generated":{"line":153,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":7}},{"generated":{"line":153,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":2}},{"generated":{"line":153,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":16}},{"generated":{"line":154,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":164,"column":4}},{"generated":{"line":155,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":165,"column":3}},{"generated":{"line":157,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":2}},{"generated":{"line":157,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":6}},{"name":"modules","generated":{"line":157,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":7}},{"generated":{"line":157,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":14}},{"name":"id","generated":{"line":157,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":15}},{"generated":{"line":157,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":14}},{"generated":{"line":157,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":6}},{"name":"bundle","generated":{"line":157,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":22}},{"generated":{"line":157,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":28}},{"name":"parent","generated":{"line":157,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":29}},{"generated":{"line":157,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":2}},{"generated":{"line":157,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":37}},{"generated":{"line":158,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":4}},{"name":"hmrAcceptCheck","generated":{"line":158,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":11}},{"generated":{"line":158,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"name":"bundle","generated":{"line":158,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":26}},{"generated":{"line":158,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":32}},{"name":"parent","generated":{"line":158,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":33}},{"generated":{"line":158,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"name":"id","generated":{"line":158,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":41}},{"generated":{"line":158,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"generated":{"line":158,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":4}},{"generated":{"line":159,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":169,"column":3}},{"generated":{"line":161,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":2}},{"name":"checkedAssets","generated":{"line":161,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":6}},{"generated":{"line":161,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":19}},{"name":"id","generated":{"line":161,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":20}},{"generated":{"line":161,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":19}},{"generated":{"line":161,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":2}},{"generated":{"line":161,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":25}},{"generated":{"line":162,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":172,"column":4}},{"generated":{"line":163,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":173,"column":3}},{"name":"checkedAssets","generated":{"line":165,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"name":"checkedAssets","generated":{"line":165,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":165,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":15}},{"name":"id","generated":{"line":165,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":16}},{"generated":{"line":165,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":15}},{"generated":{"line":165,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":165,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":22}},{"generated":{"line":165,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":166,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":2}},{"name":"cached","generated":{"line":166,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":6}},{"generated":{"line":166,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":12}},{"name":"bundle","generated":{"line":166,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"generated":{"line":166,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":21}},{"name":"cache","generated":{"line":166,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":22}},{"generated":{"line":166,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"name":"id","generated":{"line":166,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":28}},{"generated":{"line":166,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"generated":{"line":166,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":2}},{"name":"assetsToAccept","generated":{"line":167,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"name":"assetsToAccept","generated":{"line":167,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":167,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":16}},{"name":"push","generated":{"line":167,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":17}},{"generated":{"line":167,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":167,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"name":"bundle","generated":{"line":167,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":23}},{"generated":{"line":167,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"name":"id","generated":{"line":167,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":31}},{"generated":{"line":167,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"generated":{"line":167,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":169,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":2}},{"name":"cached","generated":{"line":169,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":6}},{"generated":{"line":169,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":12}},{"name":"cached","generated":{"line":169,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":16}},{"generated":{"line":169,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":22}},{"name":"hot","generated":{"line":169,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":23}},{"generated":{"line":169,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":6}},{"name":"cached","generated":{"line":169,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"generated":{"line":169,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":36}},{"name":"hot","generated":{"line":169,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":37}},{"generated":{"line":169,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"name":"_acceptCallbacks","generated":{"line":169,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":41}},{"generated":{"line":169,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"name":"length","generated":{"line":169,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":58}},{"generated":{"line":169,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":2}},{"generated":{"line":169,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":66}},{"generated":{"line":170,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":4}},{"generated":{"line":170,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":11}},{"generated":{"line":170,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":4}},{"generated":{"line":171,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":182,"column":3}},{"generated":{"line":173,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":2}},{"name":"getParents","generated":{"line":173,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":173,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"name":"global","generated":{"line":173,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":20}},{"generated":{"line":173,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":26}},{"name":"parcelRequire","generated":{"line":173,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":27}},{"generated":{"line":173,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"name":"id","generated":{"line":173,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":42}},{"generated":{"line":173,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"generated":{"line":173,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"name":"some","generated":{"line":173,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":46}},{"generated":{"line":173,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":173,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":51}},{"name":"id","generated":{"line":173,"column":61},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":61}},{"generated":{"line":173,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":51}},{"generated":{"line":173,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":65}},{"generated":{"line":174,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":4}},{"name":"hmrAcceptCheck","generated":{"line":174,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":11}},{"generated":{"line":174,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"name":"global","generated":{"line":174,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":26}},{"generated":{"line":174,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":32}},{"name":"parcelRequire","generated":{"line":174,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":33}},{"generated":{"line":174,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"name":"id","generated":{"line":174,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":48}},{"generated":{"line":174,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"generated":{"line":174,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":4}},{"generated":{"line":175,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":186,"column":3}},{"generated":{"line":175,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":175,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":2}},{"generated":{"line":176,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":187,"column":1}},{"generated":{"line":178,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"hmrAcceptRun","generated":{"line":178,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":9}},{"generated":{"line":178,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"bundle","generated":{"line":178,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":22}},{"generated":{"line":178,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"id","generated":{"line":178,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":30}},{"generated":{"line":178,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"generated":{"line":178,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":34}},{"generated":{"line":179,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":2}},{"name":"cached","generated":{"line":179,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":6}},{"generated":{"line":179,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":12}},{"name":"bundle","generated":{"line":179,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"generated":{"line":179,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":21}},{"name":"cache","generated":{"line":179,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":22}},{"generated":{"line":179,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"name":"id","generated":{"line":179,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":28}},{"generated":{"line":179,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"generated":{"line":179,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":2}},{"name":"bundle","generated":{"line":180,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"name":"bundle","generated":{"line":180,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":180,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":8}},{"name":"hotData","generated":{"line":180,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":9}},{"generated":{"line":180,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":180,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":19}},{"generated":{"line":180,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":182,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":2}},{"name":"cached","generated":{"line":182,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":6}},{"generated":{"line":182,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":2}},{"generated":{"line":182,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":14}},{"name":"cached","generated":{"line":183,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"cached","generated":{"line":183,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"generated":{"line":183,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":10}},{"name":"hot","generated":{"line":183,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":11}},{"generated":{"line":183,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"data","generated":{"line":183,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":15}},{"generated":{"line":183,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"bundle","generated":{"line":183,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":22}},{"generated":{"line":183,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":28}},{"name":"hotData","generated":{"line":183,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":29}},{"generated":{"line":183,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"generated":{"line":184,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":194,"column":3}},{"generated":{"line":186,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":2}},{"name":"cached","generated":{"line":186,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":6}},{"generated":{"line":186,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":12}},{"name":"cached","generated":{"line":186,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":16}},{"generated":{"line":186,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":22}},{"name":"hot","generated":{"line":186,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":23}},{"generated":{"line":186,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":6}},{"name":"cached","generated":{"line":186,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"generated":{"line":186,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":36}},{"name":"hot","generated":{"line":186,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":37}},{"generated":{"line":186,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"name":"_disposeCallbacks","generated":{"line":186,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":41}},{"generated":{"line":186,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"name":"length","generated":{"line":186,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":59}},{"generated":{"line":186,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":2}},{"generated":{"line":186,"column":67},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":67}},{"name":"cached","generated":{"line":187,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"cached","generated":{"line":187,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":187,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":10}},{"name":"hot","generated":{"line":187,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":11}},{"generated":{"line":187,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"_disposeCallbacks","generated":{"line":187,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":15}},{"generated":{"line":187,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"forEach","generated":{"line":187,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":33}},{"generated":{"line":187,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":187,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":41}},{"name":"cb","generated":{"line":187,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":51}},{"generated":{"line":187,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":41}},{"generated":{"line":187,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":55}},{"name":"cb","generated":{"line":188,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"name":"cb","generated":{"line":188,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"generated":{"line":188,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":8}},{"name":"bundle","generated":{"line":188,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":9}},{"generated":{"line":188,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":15}},{"name":"hotData","generated":{"line":188,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":16}},{"generated":{"line":188,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":8}},{"generated":{"line":188,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"generated":{"line":189,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":199,"column":5}},{"generated":{"line":189,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":190,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":200,"column":3}},{"generated":{"line":192,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":2}},{"name":"bundle","generated":{"line":192,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"generated":{"line":192,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":15}},{"name":"cache","generated":{"line":192,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":16}},{"generated":{"line":192,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"name":"id","generated":{"line":192,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":22}},{"generated":{"line":192,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"generated":{"line":192,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":2}},{"name":"bundle","generated":{"line":193,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"name":"bundle","generated":{"line":193,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"generated":{"line":193,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":8}},{"name":"id","generated":{"line":193,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":9}},{"generated":{"line":193,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":8}},{"generated":{"line":193,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"name":"cached","generated":{"line":194,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"name":"cached","generated":{"line":194,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"generated":{"line":194,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":8}},{"name":"bundle","generated":{"line":194,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"generated":{"line":194,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":17}},{"name":"cache","generated":{"line":194,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":18}},{"generated":{"line":194,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"name":"id","generated":{"line":194,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":24}},{"generated":{"line":194,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"generated":{"line":194,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"generated":{"line":196,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":2}},{"name":"cached","generated":{"line":196,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":6}},{"generated":{"line":196,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":12}},{"name":"cached","generated":{"line":196,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":16}},{"generated":{"line":196,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":22}},{"name":"hot","generated":{"line":196,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":23}},{"generated":{"line":196,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":6}},{"name":"cached","generated":{"line":196,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"generated":{"line":196,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":36}},{"name":"hot","generated":{"line":196,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":37}},{"generated":{"line":196,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"name":"_acceptCallbacks","generated":{"line":196,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":41}},{"generated":{"line":196,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"name":"length","generated":{"line":196,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":58}},{"generated":{"line":196,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":2}},{"generated":{"line":196,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":66}},{"name":"cached","generated":{"line":197,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"cached","generated":{"line":197,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":197,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":10}},{"name":"hot","generated":{"line":197,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":11}},{"generated":{"line":197,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"_acceptCallbacks","generated":{"line":197,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":15}},{"generated":{"line":197,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"forEach","generated":{"line":197,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":32}},{"generated":{"line":197,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":197,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":40}},{"name":"cb","generated":{"line":197,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":50}},{"generated":{"line":197,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":40}},{"generated":{"line":197,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":54}},{"name":"cb","generated":{"line":198,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":6}},{"name":"cb","generated":{"line":198,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":6}},{"generated":{"line":198,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":8}},{"generated":{"line":199,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":209,"column":5}},{"generated":{"line":199,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":201,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":4}},{"generated":{"line":201,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":11}},{"generated":{"line":201,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":4}},{"generated":{"line":202,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":211,"column":3}},{"generated":{"line":203,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":212,"column":1}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":"var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '
' +\n 'ERROR' +\n '🚨' +\n '
' + message.innerHTML + '
' +\n '
' + stackTrace.innerHTML + '
' +\n '
'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"b1c5ce68fcef9e7211775bd160e78081","cacheData":{"env":{"HMR_HOSTNAME":"","HMR_PORT":"1235"}}} \ No newline at end of file diff --git a/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json b/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json new file mode 100644 index 0000000..ac703ae --- /dev/null +++ b/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json @@ -0,0 +1 @@ +{"id":"index.css","dependencies":[{"name":"_css_loader","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.css","resolved":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/css-loader.js"},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"css":"html, body {\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n font-family: sans-serif;\n font-size: 16px;\n}\n\n#graph {\n width: 100%;\n height: 100%;\n}\n\n#container {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n#hints {\n position: absolute;\n bottom: 0;\n left: 0;\n margin: 1em;\n font-size: 0.9em;\n color: #718096\n}\n\n#buttons {\n position: absolute;\n top: 0;\n left: 0;\n margin: 1em;\n}\n\n.generate-input {\n margin-top: 1em;\n}\n\n#generate-textbox {\n padding: 0.5em;\n width: 7.5em;\n text-align: right;\n}\n\nbutton {\n padding: 0.5em;\n cursor: pointer;\n}\n\n.zoom-input {\n}\n\n.info {\n margin-top: 1em;\n}\n","js":"var reloadCSS = require('_css_loader');\n\nmodule.hot.dispose(reloadCSS);\nmodule.hot.accept(reloadCSS);"},"sourceMaps":{"css":{"mappings":[{"source":"index.css","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"index.css","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"index.css","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"index.css","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"index.css","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"index.css","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"index.css","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"index.css","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"index.css","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"index.css","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"index.css","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"index.css","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"index.css","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"index.css","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"index.css","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"index.css","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"index.css","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"index.css","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"index.css","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"index.css","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"index.css","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"index.css","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"index.css","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"index.css","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"index.css","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"index.css","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"index.css","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"index.css","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"index.css","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"index.css","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"index.css","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"index.css","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"index.css","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"index.css","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"index.css","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"index.css","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"index.css","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"index.css","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"index.css","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"index.css","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"index.css","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"index.css","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"index.css","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"index.css","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"index.css","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"index.css","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"index.css","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"index.css","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"index.css","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"index.css","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"index.css","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"index.css","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"index.css","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"index.css","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"index.css","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"index.css","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"index.css","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"index.css","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"index.css","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"index.css","original":{"line":60,"column":0},"generated":{"line":60,"column":0}}],"sources":{"index.css":"html, body {\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n font-family: sans-serif;\n font-size: 16px;\n}\n\n#graph {\n width: 100%;\n height: 100%;\n}\n\n#container {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n#hints {\n position: absolute;\n bottom: 0;\n left: 0;\n margin: 1em;\n font-size: 0.9em;\n color: #718096\n}\n\n#buttons {\n position: absolute;\n top: 0;\n left: 0;\n margin: 1em;\n}\n\n.generate-input {\n margin-top: 1em;\n}\n\n#generate-textbox {\n padding: 0.5em;\n width: 7.5em;\n text-align: right;\n}\n\nbutton {\n padding: 0.5em;\n cursor: pointer;\n}\n\n.zoom-input {\n}\n\n.info {\n margin-top: 1em;\n}\n"},"lineCount":60}},"error":null,"hash":"17c84d91c7ca8bb43df861b6e75aa626","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json b/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json new file mode 100644 index 0000000..3aca91c --- /dev/null +++ b/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json @@ -0,0 +1 @@ +{"id":"../index.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":13,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/src/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"},{"name":"./graph-view","loc":{"line":14,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/src/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts"}],"generated":{"js":"\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__exportStar(require(\"./types\"), exports);\n\n__exportStar(require(\"./graph-view\"), exports);"},"sourceMaps":{"js":{"mappings":[{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":0}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":12}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":13}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":20}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":21}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":30}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":31}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":33}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":40}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":41}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":0}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":12}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":13}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":20}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":21}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":35}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":36}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":38}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":45}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":46}}],"sources":{"../index.ts":"export * from \"./types\";\nexport * from \"./graph-view\";\n"},"lineCount":null}},"error":null,"hash":"cb441cac2e626f28d068193c7314af96","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json b/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json new file mode 100644 index 0000000..ad165f4 --- /dev/null +++ b/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json @@ -0,0 +1 @@ +{"id":"../graph-renderer.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"},{"name":"./intersections","loc":{"line":5,"column":30},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/intersections.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEGraphRenderer = void 0;\n\nvar types_1 = require(\"./types\");\n\nvar intersections_1 = require(\"./intersections\");\n\nvar TEXT_ALIGN = \"center\";\nvar TEXT_BASELINE = \"middle\";\nvar LINE_CAP_ROUND = \"round\";\nvar LINE_CAP_SQUARE = \"square\";\nvar tmpPoint = [0, 0];\n\nvar GEGraphRenderer =\n/** @class */\nfunction () {\n function GEGraphRenderer(view, canvas) {\n var _this = this;\n\n this.draw = function () {\n _this.state.isDrawing = false;\n\n _this.drawBackground();\n\n _this.ctx.transform(_this.state.scale, 0, 0, _this.state.scale, _this.state.translateX, _this.state.translateY);\n\n _this.drawGraph();\n\n _this.ctx.resetTransform();\n };\n\n this.shapePath = function (x, y, shape) {\n var ctx = _this.ctx;\n\n if (shape.shape === types_1.GEShapeName.CIRCLE) {\n ctx.arc(x, y, shape.r, 0, Math.PI * 2);\n } else if (shape.shape === types_1.GEShapeName.RECTANGLE) {\n ctx.rect(x - shape.width * 0.5, y - shape.height * 0.5, shape.width, shape.height);\n } else {\n ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n for (var i = 1; i < shape.points.length; i++) {\n ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]);\n }\n\n ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]);\n ctx.closePath();\n }\n };\n\n this.getInstersectionPoint = function (sourceX, sourceY, targetX, targetY, shape) {\n if (shape.shape === types_1.GEShapeName.CIRCLE) {\n var int = intersections_1.intersectLineCircleCenter(sourceX, sourceY, targetX, targetY, shape.r, tmpPoint);\n if (int) return tmpPoint;\n } else if (shape.shape === types_1.GEShapeName.RECTANGLE) {\n var int = intersections_1.intersectLineRectCenter(sourceX, sourceY, targetX, targetY, shape.width, shape.height, tmpPoint);\n if (int) return tmpPoint;\n } else {\n var int = intersections_1.instersectLinePolygonCenter(sourceX, sourceY, targetX, targetY, shape.points, tmpPoint);\n if (int) return tmpPoint;\n }\n\n return [targetX, targetY];\n };\n\n this.drawSubShapes = function (shapes, x, y) {\n var ctx = _this.ctx;\n var options = _this.state.options;\n if (shapes.length <= 1) return;\n\n for (var i = 1; i < shapes.length; i++) {\n var sh = shapes[i];\n ctx.beginPath();\n\n _this.shapePath(x, y, sh);\n\n ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor;\n ctx.fill();\n }\n };\n\n this.drawSelectedShape = function (shape, x, y, color) {\n var ctx = _this.ctx;\n ctx.beginPath();\n\n _this.shapePath(x, y, shape);\n\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.8;\n ctx.fill();\n ctx.globalAlpha = 1.0;\n };\n\n this.drawNode = function (node) {\n if (_this.isNodeOutOfView(node)) return;\n var ctx = _this.ctx;\n var _a = _this.state,\n pointerCanvasX = _a.pointerCanvasX,\n pointerCanvasY = _a.pointerCanvasY,\n options = _a.options,\n moveNodeX = _a.moveNodeX,\n moveNodeY = _a.moveNodeY,\n selectedNode = _a.selectedNode;\n var isMovingNode = _this.state.isMovingNode() && selectedNode === node;\n var x = isMovingNode ? moveNodeX : node.x;\n var y = isMovingNode ? moveNodeY : node.y;\n var shapes = options.nodeTypes[node.type];\n ctx.strokeStyle = options.nodeStrokeColor;\n ctx.lineWidth = options.nodeLineWidth;\n ctx.beginPath();\n\n _this.shapePath(x, y, shapes[0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredNode = node;\n }\n\n var selected = node === _this.state.selectedNode;\n var hovered = node === _this.state.hoveredNode;\n ctx.strokeStyle = selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor;\n ctx.fillStyle = shapes[0].color || options.nodeColor;\n ctx.fill();\n ctx.stroke();\n\n _this.drawSubShapes(shapes, x, y);\n\n if (selected) {\n _this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.nodeSelectedTextColor;\n } else {\n ctx.fillStyle = options.nodeTextColor;\n }\n\n ctx.font = options.nodeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(node.text, x, y);\n };\n\n this.drawEdge = function (edge) {\n if (_this.isEdgeOutOfView(edge)) return;\n var ctx = _this.ctx;\n var _a = _this.state,\n pointerCanvasX = _a.pointerCanvasX,\n pointerCanvasY = _a.pointerCanvasY,\n options = _a.options,\n selectedNode = _a.selectedNode,\n moveNodeX = _a.moveNodeX,\n moveNodeY = _a.moveNodeY;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n var isMovingSourceNode = _this.state.isMovingNode() && source === selectedNode;\n var sourceX = isMovingSourceNode ? moveNodeX : source.x;\n var sourceY = isMovingSourceNode ? moveNodeY : source.y;\n var isMovingTargetNode = _this.state.isMovingNode() && target === selectedNode;\n var targetX = isMovingTargetNode ? moveNodeX : target.x;\n var targetY = isMovingTargetNode ? moveNodeY : target.y;\n var dx = targetX - sourceX;\n var dy = targetY - sourceY;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad); // calculate the start and end points of the line\n\n var _b = _this.getInstersectionPoint(targetX, targetY, sourceX, sourceY, options.nodeTypes[source.type][0]),\n startX = _b[0],\n startY = _b[1];\n\n var _c = _this.getInstersectionPoint(sourceX, sourceY, targetX, targetY, options.nodeTypes[target.type][0]),\n endX0 = _c[0],\n endY0 = _c[1];\n\n var endX = endX0 - cosr * 3;\n var endY = endY0 - sinr * 3;\n var edgeLineOffset = options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n var lineEndX = endX - cosr * edgeLineOffset;\n var lineEndY = endY - sinr * edgeLineOffset;\n ctx.lineWidth = options.edgeLineWidth;\n var midX = (startX + endX) * 0.5;\n var midY = (startY + endY) * 0.5; // this is just to check if the rect is hovered\n\n ctx.beginPath();\n\n _this.shapePath(midX, midY, options.edgeTypes[edge.type][0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredEdge = edge;\n }\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian));\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian));\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredEdge = edge;\n }\n\n var selected = edge === _this.state.selectedEdge;\n var hovered = edge === _this.state.hoveredEdge;\n var shapes = options.edgeTypes[edge.type];\n\n if (selected || hovered) {\n ctx.strokeStyle = options.edgeLineSelectedColor;\n ctx.fillStyle = options.edgeLineSelectedColor;\n } else {\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n }\n\n ctx.stroke();\n ctx.fill();\n ctx.beginPath();\n\n _this.shapePath(midX, midY, shapes[0]);\n\n ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor;\n ctx.fill();\n ctx.stroke();\n\n _this.drawSubShapes(shapes, midX, midY);\n\n if (selected) {\n _this.drawSelectedShape(shapes[0], midX, midY, options.edgeLineSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.edgeSelectedTextColor;\n } else {\n ctx.fillStyle = options.edgeTextColor;\n }\n\n ctx.font = options.edgeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(edge.text, midX, midY);\n };\n\n this.state = view;\n this.canvas = canvas;\n this.ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n\n GEGraphRenderer.prototype.requestDraw = function () {\n if (!this.state.isDrawing) {\n requestAnimationFrame(this.draw);\n }\n\n this.state.isDrawing = true;\n };\n\n GEGraphRenderer.prototype.drawBackground = function () {\n var _a = this,\n canvas = _a.canvas,\n ctx = _a.ctx;\n\n var _b = this.state,\n translateX = _b.translateX,\n translateY = _b.translateY,\n scale = _b.scale,\n options = _b.options;\n ctx.fillStyle = options.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (!options.showGrid) return;\n var lw = options.gridLineWidth * scale;\n var gap = options.gridGap * scale;\n var offsetX = translateX % gap - lw;\n var offsetY = translateY % gap - lw;\n ctx.strokeStyle = options.gridColor;\n ctx.lineWidth = lw;\n\n if (options.gridType === types_1.GEGridType.DOTS) {\n ctx.beginPath();\n\n for (var i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, offsetY);\n ctx.lineTo(i, canvas.height + lw);\n }\n\n ctx.lineCap = LINE_CAP_ROUND;\n ctx.setLineDash([0, gap]);\n ctx.stroke();\n ctx.setLineDash([0]);\n ctx.lineCap = LINE_CAP_SQUARE;\n } else {\n ctx.beginPath();\n\n for (var i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, 0);\n ctx.lineTo(i, canvas.height);\n }\n\n for (var i = offsetY; i < canvas.height + lw; i += gap) {\n ctx.moveTo(0, i);\n ctx.lineTo(canvas.width, i);\n }\n\n ctx.stroke();\n }\n };\n\n GEGraphRenderer.prototype.drawGraph = function () {\n var _a;\n\n var _b = this.state,\n nodes = _b.nodes,\n edges = _b.edges,\n options = _b.options;\n var prevhoveredNode = this.state.hoveredNode;\n var prevhoveredEdge = this.state.hoveredEdge;\n this.state.hoveredNode = undefined;\n this.state.hoveredEdge = undefined;\n edges.forEach(this.drawEdge);\n this.drawDragLine();\n nodes.forEach(this.drawNode); // This event is done here because we are using canvas to check hover.\n // Please let me know if there is a better way.\n\n if (!this.state.isMovingNode() && !this.state.isMovingView() && (this.state.hoveredNode !== prevhoveredNode || this.state.hoveredEdge !== prevhoveredEdge)) {\n (_a = options.onHoverChange) === null || _a === void 0 ? void 0 : _a.call(options, this.state.hoveredNode, this.state.hoveredEdge, this.state.pointerViewX, this.state.pointerViewY, this.state.pointerCanvasX, this.state.pointerCanvasY, this.state.pointerScreenX, this.state.pointerScreenY);\n }\n };\n\n GEGraphRenderer.prototype.getShapeBound = function (shapes) {\n var shape = shapes[0];\n if (shape.shape === types_1.GEShapeName.CIRCLE) return shape.r;\n if (shape.shape === types_1.GEShapeName.RECTANGLE) return Math.max(shape.width, shape.height);\n var r = 0;\n shape.points.forEach(function (p) {\n r = Math.max(r, Math.max(p[0], p[1]));\n });\n return r;\n };\n\n GEGraphRenderer.prototype.isNodeOutOfView = function (node) {\n var canvas = this.canvas;\n var _a = this.state,\n translateX = _a.translateX,\n translateY = _a.translateY,\n scale = _a.scale,\n options = _a.options;\n var r = this.getShapeBound(options.nodeTypes[node.type]);\n return (node.x + r) * scale + translateX < 0 || (node.y + r) * scale + translateY < 0 || (node.x - r) * scale + translateX > canvas.width || (node.y - r) * scale + translateY > canvas.height;\n };\n\n GEGraphRenderer.prototype.isEdgeOutOfView = function (edge) {\n var canvas = this.canvas;\n var _a = this.state,\n translateX = _a.translateX,\n translateY = _a.translateY,\n scale = _a.scale,\n options = _a.options;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n var sourceX = source.x * scale + translateX;\n var sourceY = source.y * scale + translateY;\n var targetX = target.x * scale + translateX;\n var targetY = target.y * scale + translateY;\n var r = this.getShapeBound(options.edgeTypes[edge.type]);\n return sourceX < -r && targetX < -r || sourceY < -r && targetY < -r || sourceX > canvas.width + r && targetX > canvas.width + r || sourceY > canvas.height + r && targetY > canvas.height + r;\n };\n\n GEGraphRenderer.prototype.drawDragLine = function () {\n if (!this.state.isCreatingEdge) return;\n var ctx = this.ctx;\n var _a = this.state,\n pointerViewX = _a.pointerViewX,\n pointerViewY = _a.pointerViewY,\n options = _a.options;\n var targetX = pointerViewX;\n var targetY = pointerViewY;\n var source = this.state.dragLineSourceNode;\n var dx = targetX - source.x;\n var dy = targetY - source.y;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad); // calculate the start and end points of the line\n\n var startX = source.x;\n var startY = source.y;\n var endX = targetX - cosr * 3;\n var endY = targetY - sinr * 3;\n var edgeLineOffset = options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n var lineEndX = targetX - cosr * edgeLineOffset;\n var lineEndY = targetY - sinr * edgeLineOffset;\n ctx.lineWidth = options.edgeLineWidth;\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian));\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian));\n ctx.lineTo(endX, endY);\n ctx.closePath();\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n ctx.stroke();\n ctx.fill();\n };\n\n return GEGraphRenderer;\n}();\n\nexports.GEGraphRenderer = GEGraphRenderer;"},"sourceMaps":{"js":{"mappings":[{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":12,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":6},"generated":{"line":12,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":16},"generated":{"line":12,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":19},"generated":{"line":12,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":12,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":0},"generated":{"line":13,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":6},"generated":{"line":13,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":19},"generated":{"line":13,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":22},"generated":{"line":13,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":0},"generated":{"line":13,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":14,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":14,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":20},"generated":{"line":14,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":23},"generated":{"line":14,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":14,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":0},"generated":{"line":15,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":15,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":21},"generated":{"line":15,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":24},"generated":{"line":15,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":0},"generated":{"line":15,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":0},"generated":{"line":16,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":16,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":16,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":36},"generated":{"line":16,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":39},"generated":{"line":16,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":0},"generated":{"line":16,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":19,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":20,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":20,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":14},"generated":{"line":21,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":29},"generated":{"line":21,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":54},"generated":{"line":21,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":24,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":24,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":25,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":9},"generated":{"line":25,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":15},"generated":{"line":25,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":27},"generated":{"line":25,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":8},"generated":{"line":27,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":9},"generated":{"line":27,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":29,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":9},"generated":{"line":29,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":13},"generated":{"line":29,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":6},"generated":{"line":29,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":10},"generated":{"line":29,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":11},"generated":{"line":29,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":6},"generated":{"line":29,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":17},"generated":{"line":29,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":29,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":29,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":10},"generated":{"line":29,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":11},"generated":{"line":29,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":17},"generated":{"line":29,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":29,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":11},"generated":{"line":29,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":81}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":17},"generated":{"line":29,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":29,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":29,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":29,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":31,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":9},"generated":{"line":31,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":33,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":33,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":13},"generated":{"line":33,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":59,"column":3},"generated":{"line":34,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":34,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":15},"generated":{"line":36,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":26},"generated":{"line":36,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":37},"generated":{"line":36,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":51},"generated":{"line":36,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":15},"generated":{"line":37,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":20},"generated":{"line":37,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":24},"generated":{"line":37,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":24},"generated":{"line":37,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":39,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":8},"generated":{"line":39,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":13},"generated":{"line":39,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":14},"generated":{"line":39,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":8},"generated":{"line":39,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":36},"generated":{"line":39,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":39,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":44},"generated":{"line":39,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":9},"generated":{"line":40,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":10},"generated":{"line":40,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":14},"generated":{"line":40,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":17},"generated":{"line":40,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":20},"generated":{"line":40,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":25},"generated":{"line":40,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":26},"generated":{"line":40,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":29},"generated":{"line":40,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":32},"generated":{"line":40,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":36},"generated":{"line":40,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":37},"generated":{"line":40,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":32},"generated":{"line":40,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":42},"generated":{"line":40,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":5},"generated":{"line":41,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":41,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":41,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":15},"generated":{"line":41,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":20},"generated":{"line":41,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":21},"generated":{"line":41,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":15},"generated":{"line":41,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":43},"generated":{"line":41,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":41,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":54},"generated":{"line":41,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":9},"generated":{"line":42,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":10},"generated":{"line":42,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":8},"generated":{"line":42,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":9},"generated":{"line":42,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":12},"generated":{"line":42,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":17},"generated":{"line":42,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":18},"generated":{"line":42,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":12},"generated":{"line":42,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":26},"generated":{"line":42,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":8},"generated":{"line":42,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":9},"generated":{"line":42,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":12},"generated":{"line":42,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":17},"generated":{"line":42,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":18},"generated":{"line":42,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":12},"generated":{"line":42,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":27},"generated":{"line":42,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":8},"generated":{"line":42,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":13},"generated":{"line":42,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":14},"generated":{"line":42,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":8},"generated":{"line":42,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":13},"generated":{"line":42,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":14},"generated":{"line":42,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":207,"column":5},"generated":{"line":43,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":43,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":207,"column":11},"generated":{"line":43,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":9},"generated":{"line":44,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":10},"generated":{"line":44,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":17},"generated":{"line":44,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":18},"generated":{"line":44,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":26},"generated":{"line":44,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":27},"generated":{"line":44,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":34},"generated":{"line":44,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":37},"generated":{"line":44,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":41},"generated":{"line":44,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":42},"generated":{"line":44,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":50},"generated":{"line":44,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":51},"generated":{"line":44,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":58},"generated":{"line":44,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":61},"generated":{"line":44,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":11},"generated":{"line":46,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":15},"generated":{"line":46,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":16},"generated":{"line":46,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":19},"generated":{"line":46,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":22},"generated":{"line":46,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":23},"generated":{"line":46,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":26},"generated":{"line":46,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":31},"generated":{"line":46,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":32},"generated":{"line":46,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":26},"generated":{"line":46,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":39},"generated":{"line":46,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":47},"generated":{"line":46,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":48},"generated":{"line":46,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":52},"generated":{"line":46,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":11},"generated":{"line":47,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":12},"generated":{"line":47,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":19},"generated":{"line":47,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":20},"generated":{"line":47,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":28},"generated":{"line":47,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":29},"generated":{"line":47,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":36},"generated":{"line":47,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":39},"generated":{"line":47,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":43},"generated":{"line":47,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":44},"generated":{"line":47,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":52},"generated":{"line":47,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":53},"generated":{"line":47,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":60},"generated":{"line":47,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":63},"generated":{"line":47,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":212,"column":7},"generated":{"line":48,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":9},"generated":{"line":50,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":10},"generated":{"line":50,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":17},"generated":{"line":50,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":18},"generated":{"line":50,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":26},"generated":{"line":50,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":27},"generated":{"line":50,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":34},"generated":{"line":50,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":37},"generated":{"line":50,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":41},"generated":{"line":50,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":42},"generated":{"line":50,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":50},"generated":{"line":50,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":51},"generated":{"line":50,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":58},"generated":{"line":50,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":61},"generated":{"line":50,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":9},"generated":{"line":51,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":10},"generated":{"line":51,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":217,"column":5},"generated":{"line":52,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":218,"column":3},"generated":{"line":53,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":53,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":272,"column":4},"generated":{"line":55,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":273,"column":4},"generated":{"line":55,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":274,"column":4},"generated":{"line":55,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":275,"column":4},"generated":{"line":55,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":276,"column":4},"generated":{"line":55,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":276,"column":18},"generated":{"line":55,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":56,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":8},"generated":{"line":56,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":13},"generated":{"line":56,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":14},"generated":{"line":56,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":8},"generated":{"line":56,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":36},"generated":{"line":56,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":56,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":44},"generated":{"line":56,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":6},"generated":{"line":57,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":12},"generated":{"line":57,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":15},"generated":{"line":57,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":280,"column":8},"generated":{"line":57,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":281,"column":8},"generated":{"line":57,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":282,"column":8},"generated":{"line":57,"column":78}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":283,"column":8},"generated":{"line":57,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":8},"generated":{"line":57,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":13},"generated":{"line":57,"column":101}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":14},"generated":{"line":57,"column":102}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":285,"column":8},"generated":{"line":57,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":6},"generated":{"line":57,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":6},"generated":{"line":58,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":10},"generated":{"line":58,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":6},"generated":{"line":58,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":15},"generated":{"line":58,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":22},"generated":{"line":58,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":15},"generated":{"line":58,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":5},"generated":{"line":59,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":59,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":59,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":15},"generated":{"line":59,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":20},"generated":{"line":59,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":21},"generated":{"line":59,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":15},"generated":{"line":59,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":43},"generated":{"line":59,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":59,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":54},"generated":{"line":59,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":6},"generated":{"line":60,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":12},"generated":{"line":60,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":15},"generated":{"line":60,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":291,"column":8},"generated":{"line":60,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":292,"column":8},"generated":{"line":60,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":293,"column":8},"generated":{"line":60,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":294,"column":8},"generated":{"line":60,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":8},"generated":{"line":60,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":13},"generated":{"line":60,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":14},"generated":{"line":60,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":8},"generated":{"line":60,"column":107}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":13},"generated":{"line":60,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":14},"generated":{"line":60,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":297,"column":8},"generated":{"line":60,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":6},"generated":{"line":60,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":6},"generated":{"line":61,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":10},"generated":{"line":61,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":6},"generated":{"line":61,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":15},"generated":{"line":61,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":22},"generated":{"line":61,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":15},"generated":{"line":61,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":301,"column":5},"generated":{"line":62,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":62,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":301,"column":11},"generated":{"line":62,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":6},"generated":{"line":63,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":12},"generated":{"line":63,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":15},"generated":{"line":63,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":303,"column":8},"generated":{"line":63,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":304,"column":8},"generated":{"line":63,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":78}},{"source":"../graph-renderer.ts","name":null,"original":{"line":305,"column":8},"generated":{"line":63,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":306,"column":8},"generated":{"line":63,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":8},"generated":{"line":63,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":13},"generated":{"line":63,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":14},"generated":{"line":63,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":308,"column":8},"generated":{"line":63,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":120}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":6},"generated":{"line":63,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":6},"generated":{"line":64,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":10},"generated":{"line":64,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":6},"generated":{"line":64,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":15},"generated":{"line":64,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":22},"generated":{"line":64,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":15},"generated":{"line":64,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":312,"column":5},"generated":{"line":65,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":4},"generated":{"line":67,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":12},"generated":{"line":67,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":21},"generated":{"line":67,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":4},"generated":{"line":67,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":315,"column":3},"generated":{"line":68,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":68,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":19},"generated":{"line":70,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":37},"generated":{"line":70,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":48},"generated":{"line":70,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":57},"generated":{"line":70,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":15},"generated":{"line":71,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":20},"generated":{"line":71,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":24},"generated":{"line":71,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":24},"generated":{"line":71,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":19},"generated":{"line":72,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":24},"generated":{"line":72,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":28},"generated":{"line":72,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":29},"generated":{"line":72,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":24},"generated":{"line":72,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":34},"generated":{"line":72,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":4},"generated":{"line":73,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":8},"generated":{"line":73,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":14},"generated":{"line":73,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":15},"generated":{"line":73,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":8},"generated":{"line":73,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":25},"generated":{"line":73,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":4},"generated":{"line":73,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":28},"generated":{"line":73,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":9},"generated":{"line":75,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":13},"generated":{"line":75,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":14},"generated":{"line":75,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":17},"generated":{"line":75,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":20},"generated":{"line":75,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":21},"generated":{"line":75,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":24},"generated":{"line":75,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":30},"generated":{"line":75,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":31},"generated":{"line":75,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":39},"generated":{"line":75,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":40},"generated":{"line":75,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":44},"generated":{"line":75,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":6},"generated":{"line":76,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":12},"generated":{"line":76,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":14},"generated":{"line":76,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":17},"generated":{"line":76,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":23},"generated":{"line":76,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":24},"generated":{"line":76,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":23},"generated":{"line":76,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":6},"generated":{"line":76,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":9},"generated":{"line":77,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":10},"generated":{"line":77,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":10},"generated":{"line":79,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":11},"generated":{"line":79,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":21},"generated":{"line":79,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":24},"generated":{"line":79,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":27},"generated":{"line":79,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":9},"generated":{"line":81,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":10},"generated":{"line":81,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":24},"generated":{"line":81,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":25},"generated":{"line":81,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":33},"generated":{"line":81,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":35},"generated":{"line":81,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":36},"generated":{"line":81,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":44},"generated":{"line":81,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":51},"generated":{"line":81,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":52},"generated":{"line":81,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":9},"generated":{"line":82,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":10},"generated":{"line":82,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":331,"column":5},"generated":{"line":83,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":332,"column":3},"generated":{"line":84,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":84,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":335,"column":4},"generated":{"line":86,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":336,"column":4},"generated":{"line":86,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":337,"column":4},"generated":{"line":86,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":338,"column":4},"generated":{"line":86,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":338,"column":17},"generated":{"line":86,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":15},"generated":{"line":87,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":20},"generated":{"line":87,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":24},"generated":{"line":87,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":24},"generated":{"line":87,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":7},"generated":{"line":88,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":8},"generated":{"line":88,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":8},"generated":{"line":90,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":9},"generated":{"line":90,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":19},"generated":{"line":90,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":22},"generated":{"line":90,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":25},"generated":{"line":90,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":7},"generated":{"line":92,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":8},"generated":{"line":92,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":20},"generated":{"line":92,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":7},"generated":{"line":93,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":8},"generated":{"line":93,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":22},"generated":{"line":93,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":7},"generated":{"line":94,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":8},"generated":{"line":94,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":7},"generated":{"line":95,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":8},"generated":{"line":95,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":22},"generated":{"line":95,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":348,"column":3},"generated":{"line":96,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":96,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":13},"generated":{"line":98,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":14},"generated":{"line":98,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":13},"generated":{"line":98,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":26},"generated":{"line":98,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":4},"generated":{"line":99,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":12},"generated":{"line":99,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":13},"generated":{"line":99,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":29},"generated":{"line":99,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":4},"generated":{"line":99,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":36},"generated":{"line":99,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":15},"generated":{"line":100,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":20},"generated":{"line":100,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":24},"generated":{"line":100,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":24},"generated":{"line":100,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":8},"generated":{"line":101,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":12},"generated":{"line":101,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":13},"generated":{"line":101,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":102,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":6},"generated":{"line":102,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":102,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":103,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":6},"generated":{"line":103,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":103,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":104,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":6},"generated":{"line":104,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":104,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":105,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":6},"generated":{"line":105,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":105,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":106,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":6},"generated":{"line":106,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":106,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":107,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":6},"generated":{"line":107,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":107,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":4},"generated":{"line":108,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":10},"generated":{"line":108,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":22},"generated":{"line":108,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":29},"generated":{"line":108,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":30},"generated":{"line":108,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":36},"generated":{"line":108,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":54},"generated":{"line":108,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":66},"generated":{"line":108,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":71},"generated":{"line":108,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":4},"generated":{"line":108,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":4},"generated":{"line":109,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":10},"generated":{"line":109,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":11},"generated":{"line":109,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":14},"generated":{"line":109,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":26},"generated":{"line":109,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":29},"generated":{"line":109,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":26},"generated":{"line":109,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":41},"generated":{"line":109,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":45},"generated":{"line":109,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":46},"generated":{"line":109,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":4},"generated":{"line":109,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":4},"generated":{"line":110,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":10},"generated":{"line":110,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":11},"generated":{"line":110,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":14},"generated":{"line":110,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":26},"generated":{"line":110,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":29},"generated":{"line":110,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":26},"generated":{"line":110,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":41},"generated":{"line":110,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":45},"generated":{"line":110,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":46},"generated":{"line":110,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":4},"generated":{"line":110,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":4},"generated":{"line":111,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":10},"generated":{"line":111,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":16},"generated":{"line":111,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":26},"generated":{"line":111,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":27},"generated":{"line":111,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":37},"generated":{"line":111,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":41},"generated":{"line":111,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":42},"generated":{"line":111,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":4},"generated":{"line":111,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":7},"generated":{"line":112,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":8},"generated":{"line":112,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":22},"generated":{"line":112,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":29},"generated":{"line":112,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":30},"generated":{"line":112,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":7},"generated":{"line":113,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":8},"generated":{"line":113,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":20},"generated":{"line":113,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":27},"generated":{"line":113,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":28},"generated":{"line":113,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":7},"generated":{"line":114,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":8},"generated":{"line":114,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":8},"generated":{"line":116,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":9},"generated":{"line":116,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":19},"generated":{"line":116,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":22},"generated":{"line":116,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":25},"generated":{"line":116,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":31},"generated":{"line":116,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":32},"generated":{"line":116,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":31},"generated":{"line":116,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":4},"generated":{"line":118,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":11},"generated":{"line":118,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":12},"generated":{"line":118,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":26},"generated":{"line":118,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":42},"generated":{"line":118,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":4},"generated":{"line":118,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":59},"generated":{"line":118,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":10},"generated":{"line":119,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":11},"generated":{"line":119,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":17},"generated":{"line":119,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":31},"generated":{"line":119,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":377,"column":5},"generated":{"line":120,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":4},"generated":{"line":122,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":10},"generated":{"line":122,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":18},"generated":{"line":122,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":21},"generated":{"line":122,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":25},"generated":{"line":122,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":30},"generated":{"line":122,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":34},"generated":{"line":122,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":35},"generated":{"line":122,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":30},"generated":{"line":122,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":41},"generated":{"line":122,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":4},"generated":{"line":122,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":4},"generated":{"line":123,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":10},"generated":{"line":123,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":17},"generated":{"line":123,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":20},"generated":{"line":123,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":24},"generated":{"line":123,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":29},"generated":{"line":123,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":33},"generated":{"line":123,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":34},"generated":{"line":123,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":29},"generated":{"line":123,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":40},"generated":{"line":123,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":4},"generated":{"line":123,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":7},"generated":{"line":124,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":8},"generated":{"line":124,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":14},"generated":{"line":124,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":18},"generated":{"line":124,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":28},"generated":{"line":124,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":35},"generated":{"line":124,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":36},"generated":{"line":124,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":56},"generated":{"line":124,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":63},"generated":{"line":124,"column":81}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":64},"generated":{"line":124,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":7},"generated":{"line":125,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":8},"generated":{"line":125,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":26},"generated":{"line":125,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":27},"generated":{"line":125,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":26},"generated":{"line":125,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":30},"generated":{"line":125,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":39},"generated":{"line":125,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":46},"generated":{"line":125,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":47},"generated":{"line":125,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":7},"generated":{"line":126,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":8},"generated":{"line":126,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":7},"generated":{"line":127,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":8},"generated":{"line":127,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":8},"generated":{"line":129,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":9},"generated":{"line":129,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":23},"generated":{"line":129,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":31},"generated":{"line":129,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":34},"generated":{"line":129,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":4},"generated":{"line":131,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":8},"generated":{"line":131,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":4},"generated":{"line":131,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":18},"generated":{"line":131,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":10},"generated":{"line":132,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":11},"generated":{"line":132,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":29},"generated":{"line":132,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":35},"generated":{"line":132,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":36},"generated":{"line":132,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":35},"generated":{"line":132,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":40},"generated":{"line":132,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":43},"generated":{"line":132,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":46},"generated":{"line":132,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":53},"generated":{"line":132,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":54},"generated":{"line":132,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":393,"column":5},"generated":{"line":133,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":135,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":8},"generated":{"line":135,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":135,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":18},"generated":{"line":135,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":9},"generated":{"line":136,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":10},"generated":{"line":136,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":22},"generated":{"line":136,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":29},"generated":{"line":136,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":30},"generated":{"line":136,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":397,"column":5},"generated":{"line":137,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":137,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":397,"column":11},"generated":{"line":137,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":9},"generated":{"line":138,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":10},"generated":{"line":138,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":22},"generated":{"line":138,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":29},"generated":{"line":138,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":30},"generated":{"line":138,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":399,"column":5},"generated":{"line":139,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":7},"generated":{"line":141,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":8},"generated":{"line":141,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":15},"generated":{"line":141,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":22},"generated":{"line":141,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":23},"generated":{"line":141,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":7},"generated":{"line":142,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":8},"generated":{"line":142,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":20},"generated":{"line":142,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":7},"generated":{"line":143,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":8},"generated":{"line":143,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":23},"generated":{"line":143,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":7},"generated":{"line":144,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":8},"generated":{"line":144,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":17},"generated":{"line":144,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":21},"generated":{"line":144,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":22},"generated":{"line":144,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":28},"generated":{"line":144,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":31},"generated":{"line":144,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":406,"column":3},"generated":{"line":145,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":145,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":13},"generated":{"line":147,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":14},"generated":{"line":147,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":13},"generated":{"line":147,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":147,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":4},"generated":{"line":148,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":12},"generated":{"line":148,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":13},"generated":{"line":148,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":29},"generated":{"line":148,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":4},"generated":{"line":148,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":36},"generated":{"line":148,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":15},"generated":{"line":149,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":20},"generated":{"line":149,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":24},"generated":{"line":149,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":24},"generated":{"line":149,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":8},"generated":{"line":150,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":12},"generated":{"line":150,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":13},"generated":{"line":150,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":151,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":6},"generated":{"line":151,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":151,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":152,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":6},"generated":{"line":152,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":152,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":153,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":6},"generated":{"line":153,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":153,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":154,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":6},"generated":{"line":154,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":154,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":155,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":6},"generated":{"line":155,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":155,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":156,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":6},"generated":{"line":156,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":156,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":4},"generated":{"line":157,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":10},"generated":{"line":157,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":16},"generated":{"line":157,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":19},"generated":{"line":157,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":23},"generated":{"line":157,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":24},"generated":{"line":157,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":4},"generated":{"line":157,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":4},"generated":{"line":158,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":10},"generated":{"line":158,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":16},"generated":{"line":158,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":19},"generated":{"line":158,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":23},"generated":{"line":158,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":24},"generated":{"line":158,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":4},"generated":{"line":158,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":4},"generated":{"line":159,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":10},"generated":{"line":159,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":28},"generated":{"line":159,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":10},"generated":{"line":159,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":11},"generated":{"line":159,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":17},"generated":{"line":159,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":35},"generated":{"line":159,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":41},"generated":{"line":159,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":46},"generated":{"line":159,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":4},"generated":{"line":159,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":4},"generated":{"line":160,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":10},"generated":{"line":160,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":17},"generated":{"line":160,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":20},"generated":{"line":160,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":38},"generated":{"line":160,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":41},"generated":{"line":160,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":38},"generated":{"line":160,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":53},"generated":{"line":160,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":59},"generated":{"line":160,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":60},"generated":{"line":160,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":4},"generated":{"line":160,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":4},"generated":{"line":161,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":10},"generated":{"line":161,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":17},"generated":{"line":161,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":20},"generated":{"line":161,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":38},"generated":{"line":161,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":41},"generated":{"line":161,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":38},"generated":{"line":161,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":53},"generated":{"line":161,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":59},"generated":{"line":161,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":60},"generated":{"line":161,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":4},"generated":{"line":161,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":4},"generated":{"line":162,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":10},"generated":{"line":162,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":28},"generated":{"line":162,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":10},"generated":{"line":162,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":11},"generated":{"line":162,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":17},"generated":{"line":162,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":35},"generated":{"line":162,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":41},"generated":{"line":162,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":46},"generated":{"line":162,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":4},"generated":{"line":162,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":4},"generated":{"line":163,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":10},"generated":{"line":163,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":17},"generated":{"line":163,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":20},"generated":{"line":163,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":38},"generated":{"line":163,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":41},"generated":{"line":163,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":38},"generated":{"line":163,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":53},"generated":{"line":163,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":59},"generated":{"line":163,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":60},"generated":{"line":163,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":4},"generated":{"line":163,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":4},"generated":{"line":164,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":10},"generated":{"line":164,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":17},"generated":{"line":164,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":20},"generated":{"line":164,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":38},"generated":{"line":164,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":41},"generated":{"line":164,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":38},"generated":{"line":164,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":53},"generated":{"line":164,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":59},"generated":{"line":164,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":60},"generated":{"line":164,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":4},"generated":{"line":164,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":4},"generated":{"line":165,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":10},"generated":{"line":165,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":12},"generated":{"line":165,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":15},"generated":{"line":165,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":22},"generated":{"line":165,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":25},"generated":{"line":165,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":4},"generated":{"line":165,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":4},"generated":{"line":166,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":10},"generated":{"line":166,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":12},"generated":{"line":166,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":15},"generated":{"line":166,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":22},"generated":{"line":166,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":25},"generated":{"line":166,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":4},"generated":{"line":166,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":4},"generated":{"line":167,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":10},"generated":{"line":167,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":13},"generated":{"line":167,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":20},"generated":{"line":167,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":21},"generated":{"line":167,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":27},"generated":{"line":167,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":31},"generated":{"line":167,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":4},"generated":{"line":167,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":4},"generated":{"line":168,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":10},"generated":{"line":168,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":14},"generated":{"line":168,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":21},"generated":{"line":168,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":22},"generated":{"line":168,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":26},"generated":{"line":168,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":4},"generated":{"line":168,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":4},"generated":{"line":169,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":10},"generated":{"line":169,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":14},"generated":{"line":169,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":21},"generated":{"line":169,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":22},"generated":{"line":169,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":26},"generated":{"line":169,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":4},"generated":{"line":169,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":169,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":443,"column":4},"generated":{"line":169,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":33},"generated":{"line":171,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":34},"generated":{"line":171,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":445,"column":6},"generated":{"line":171,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":446,"column":6},"generated":{"line":171,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":447,"column":6},"generated":{"line":171,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":448,"column":6},"generated":{"line":171,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":13},"generated":{"line":171,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":14},"generated":{"line":171,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":24},"generated":{"line":171,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":30},"generated":{"line":171,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":31},"generated":{"line":171,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":37},"generated":{"line":171,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":172,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":11},"generated":{"line":172,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":172,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":173,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":19},"generated":{"line":173,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":173,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":31},"generated":{"line":175,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":32},"generated":{"line":175,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":452,"column":6},"generated":{"line":175,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":453,"column":6},"generated":{"line":175,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":454,"column":6},"generated":{"line":175,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":455,"column":6},"generated":{"line":175,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":13},"generated":{"line":175,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":14},"generated":{"line":175,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":24},"generated":{"line":175,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":30},"generated":{"line":175,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":31},"generated":{"line":175,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":37},"generated":{"line":175,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":176,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":11},"generated":{"line":176,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":176,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":177,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":18},"generated":{"line":177,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":177,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":4},"generated":{"line":179,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":10},"generated":{"line":179,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":14},"generated":{"line":179,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":17},"generated":{"line":179,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":22},"generated":{"line":179,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":25},"generated":{"line":179,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":29},"generated":{"line":179,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":32},"generated":{"line":179,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":4},"generated":{"line":179,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":4},"generated":{"line":180,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":10},"generated":{"line":180,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":14},"generated":{"line":180,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":17},"generated":{"line":180,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":22},"generated":{"line":180,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":25},"generated":{"line":180,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":29},"generated":{"line":180,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":32},"generated":{"line":180,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":4},"generated":{"line":180,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":4},"generated":{"line":181,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":10},"generated":{"line":181,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":24},"generated":{"line":181,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":6},"generated":{"line":181,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":13},"generated":{"line":181,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":14},"generated":{"line":181,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":6},"generated":{"line":181,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":36},"generated":{"line":181,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":37},"generated":{"line":181,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":41},"generated":{"line":181,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":48},"generated":{"line":181,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":49},"generated":{"line":181,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":4},"generated":{"line":181,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":4},"generated":{"line":182,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":10},"generated":{"line":182,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":18},"generated":{"line":182,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":21},"generated":{"line":182,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":25},"generated":{"line":182,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":28},"generated":{"line":182,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":32},"generated":{"line":182,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":35},"generated":{"line":182,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":4},"generated":{"line":182,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":4},"generated":{"line":183,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":10},"generated":{"line":183,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":18},"generated":{"line":183,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":21},"generated":{"line":183,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":25},"generated":{"line":183,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":28},"generated":{"line":183,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":32},"generated":{"line":183,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":35},"generated":{"line":183,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":4},"generated":{"line":183,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":7},"generated":{"line":184,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":8},"generated":{"line":184,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":20},"generated":{"line":184,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":27},"generated":{"line":184,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":28},"generated":{"line":184,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":4},"generated":{"line":185,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":10},"generated":{"line":185,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":14},"generated":{"line":185,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":17},"generated":{"line":185,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":18},"generated":{"line":185,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":24},"generated":{"line":185,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":27},"generated":{"line":185,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":17},"generated":{"line":185,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":35},"generated":{"line":185,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":4},"generated":{"line":185,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":4},"generated":{"line":186,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":10},"generated":{"line":186,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":14},"generated":{"line":186,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":17},"generated":{"line":186,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":18},"generated":{"line":186,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":24},"generated":{"line":186,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":27},"generated":{"line":186,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":17},"generated":{"line":186,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":35},"generated":{"line":186,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":4},"generated":{"line":186,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":186,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":471,"column":4},"generated":{"line":186,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":7},"generated":{"line":188,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":8},"generated":{"line":188,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":8},"generated":{"line":190,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":9},"generated":{"line":190,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":19},"generated":{"line":190,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":25},"generated":{"line":190,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":38},"generated":{"line":190,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":39},"generated":{"line":190,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":49},"generated":{"line":190,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":53},"generated":{"line":190,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":54},"generated":{"line":190,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":60},"generated":{"line":190,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":475,"column":4},"generated":{"line":192,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":9},"generated":{"line":192,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":10},"generated":{"line":192,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":24},"generated":{"line":192,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":40},"generated":{"line":192,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":9},"generated":{"line":192,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":10},"generated":{"line":192,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":26},"generated":{"line":192,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":42},"generated":{"line":192,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":475,"column":4},"generated":{"line":192,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":478,"column":6},"generated":{"line":192,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":10},"generated":{"line":193,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":11},"generated":{"line":193,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":17},"generated":{"line":193,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":31},"generated":{"line":193,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":480,"column":5},"generated":{"line":194,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":7},"generated":{"line":196,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":8},"generated":{"line":196,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":7},"generated":{"line":197,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":8},"generated":{"line":197,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":15},"generated":{"line":197,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":23},"generated":{"line":197,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":7},"generated":{"line":198,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":8},"generated":{"line":198,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":15},"generated":{"line":198,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":25},"generated":{"line":198,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":7},"generated":{"line":199,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":8},"generated":{"line":199,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":15},"generated":{"line":199,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":21},"generated":{"line":199,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":7},"generated":{"line":200,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":8},"generated":{"line":200,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":6},"generated":{"line":200,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":10},"generated":{"line":200,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":13},"generated":{"line":200,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":20},"generated":{"line":200,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":21},"generated":{"line":200,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":13},"generated":{"line":200,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":43},"generated":{"line":200,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":44},"generated":{"line":200,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":48},"generated":{"line":200,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":51},"generated":{"line":200,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":54},"generated":{"line":200,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":61},"generated":{"line":200,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":62},"generated":{"line":200,"column":73}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":6},"generated":{"line":200,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":10},"generated":{"line":200,"column":95}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":13},"generated":{"line":200,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":20},"generated":{"line":200,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":21},"generated":{"line":200,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":13},"generated":{"line":200,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":43},"generated":{"line":200,"column":128}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":44},"generated":{"line":200,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":132}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":48},"generated":{"line":200,"column":133}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":51},"generated":{"line":200,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":54},"generated":{"line":200,"column":139}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":61},"generated":{"line":200,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":62},"generated":{"line":200,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":163}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":7},"generated":{"line":201,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":8},"generated":{"line":201,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":6},"generated":{"line":201,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":10},"generated":{"line":201,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":13},"generated":{"line":201,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":20},"generated":{"line":201,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":21},"generated":{"line":201,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":13},"generated":{"line":201,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":43},"generated":{"line":201,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":44},"generated":{"line":201,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":48},"generated":{"line":201,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":51},"generated":{"line":201,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":54},"generated":{"line":201,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":61},"generated":{"line":201,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":62},"generated":{"line":201,"column":73}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":6},"generated":{"line":201,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":10},"generated":{"line":201,"column":95}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":13},"generated":{"line":201,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":20},"generated":{"line":201,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":21},"generated":{"line":201,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":13},"generated":{"line":201,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":43},"generated":{"line":201,"column":128}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":44},"generated":{"line":201,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":132}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":48},"generated":{"line":201,"column":133}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":51},"generated":{"line":201,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":54},"generated":{"line":201,"column":139}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":61},"generated":{"line":201,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":62},"generated":{"line":201,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":163}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":7},"generated":{"line":202,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":8},"generated":{"line":202,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":15},"generated":{"line":202,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":21},"generated":{"line":202,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":7},"generated":{"line":203,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":8},"generated":{"line":203,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":497,"column":4},"generated":{"line":205,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":9},"generated":{"line":205,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":10},"generated":{"line":205,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":24},"generated":{"line":205,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":40},"generated":{"line":205,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":9},"generated":{"line":205,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":10},"generated":{"line":205,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":26},"generated":{"line":205,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":42},"generated":{"line":205,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":497,"column":4},"generated":{"line":205,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":500,"column":6},"generated":{"line":205,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":10},"generated":{"line":206,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":11},"generated":{"line":206,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":17},"generated":{"line":206,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":31},"generated":{"line":206,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":502,"column":5},"generated":{"line":207,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":4},"generated":{"line":209,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":10},"generated":{"line":209,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":18},"generated":{"line":209,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":21},"generated":{"line":209,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":25},"generated":{"line":209,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":30},"generated":{"line":209,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":34},"generated":{"line":209,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":35},"generated":{"line":209,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":30},"generated":{"line":209,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":41},"generated":{"line":209,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":4},"generated":{"line":209,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":4},"generated":{"line":210,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":10},"generated":{"line":210,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":17},"generated":{"line":210,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":20},"generated":{"line":210,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":24},"generated":{"line":210,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":29},"generated":{"line":210,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":33},"generated":{"line":210,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":34},"generated":{"line":210,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":29},"generated":{"line":210,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":40},"generated":{"line":210,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":4},"generated":{"line":210,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":4},"generated":{"line":211,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":10},"generated":{"line":211,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":16},"generated":{"line":211,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":26},"generated":{"line":211,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":27},"generated":{"line":211,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":37},"generated":{"line":211,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":41},"generated":{"line":211,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":42},"generated":{"line":211,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":4},"generated":{"line":211,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":213,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":8},"generated":{"line":213,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":16},"generated":{"line":213,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":20},"generated":{"line":213,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":213,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":29},"generated":{"line":213,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":9},"generated":{"line":214,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":10},"generated":{"line":214,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":24},"generated":{"line":214,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":31},"generated":{"line":214,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":32},"generated":{"line":214,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":9},"generated":{"line":215,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":10},"generated":{"line":215,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":22},"generated":{"line":215,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":29},"generated":{"line":215,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":30},"generated":{"line":215,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":511,"column":5},"generated":{"line":216,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":216,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":511,"column":11},"generated":{"line":216,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":9},"generated":{"line":217,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":10},"generated":{"line":217,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":24},"generated":{"line":217,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":31},"generated":{"line":217,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":32},"generated":{"line":217,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":9},"generated":{"line":218,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":10},"generated":{"line":218,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":22},"generated":{"line":218,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":29},"generated":{"line":218,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":30},"generated":{"line":218,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":514,"column":5},"generated":{"line":219,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":7},"generated":{"line":221,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":8},"generated":{"line":221,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":7},"generated":{"line":222,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":8},"generated":{"line":222,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":7},"generated":{"line":223,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":8},"generated":{"line":223,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":8},"generated":{"line":225,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":9},"generated":{"line":225,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":19},"generated":{"line":225,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":25},"generated":{"line":225,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":31},"generated":{"line":225,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":37},"generated":{"line":225,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":38},"generated":{"line":225,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":37},"generated":{"line":225,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":7},"generated":{"line":227,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":8},"generated":{"line":227,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":26},"generated":{"line":227,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":27},"generated":{"line":227,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":26},"generated":{"line":227,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":30},"generated":{"line":227,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":39},"generated":{"line":227,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":46},"generated":{"line":227,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":47},"generated":{"line":227,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":7},"generated":{"line":228,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":8},"generated":{"line":228,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":7},"generated":{"line":229,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":8},"generated":{"line":229,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":8},"generated":{"line":231,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":9},"generated":{"line":231,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":23},"generated":{"line":231,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":31},"generated":{"line":231,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":37},"generated":{"line":231,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":4},"generated":{"line":233,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":8},"generated":{"line":233,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":4},"generated":{"line":233,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":18},"generated":{"line":233,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":10},"generated":{"line":234,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":11},"generated":{"line":234,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":8},"generated":{"line":234,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":14},"generated":{"line":234,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":15},"generated":{"line":234,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":14},"generated":{"line":234,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":532,"column":8},"generated":{"line":234,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":533,"column":8},"generated":{"line":234,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":8},"generated":{"line":234,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":15},"generated":{"line":234,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":16},"generated":{"line":234,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":536,"column":5},"generated":{"line":235,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":237,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":8},"generated":{"line":237,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":237,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":18},"generated":{"line":237,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":9},"generated":{"line":238,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":10},"generated":{"line":238,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":22},"generated":{"line":238,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":29},"generated":{"line":238,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":30},"generated":{"line":238,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":540,"column":5},"generated":{"line":239,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":239,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":540,"column":11},"generated":{"line":239,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":9},"generated":{"line":240,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":10},"generated":{"line":240,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":22},"generated":{"line":240,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":29},"generated":{"line":240,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":30},"generated":{"line":240,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":542,"column":5},"generated":{"line":241,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":7},"generated":{"line":243,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":8},"generated":{"line":243,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":15},"generated":{"line":243,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":22},"generated":{"line":243,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":23},"generated":{"line":243,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":7},"generated":{"line":244,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":8},"generated":{"line":244,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":20},"generated":{"line":244,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":7},"generated":{"line":245,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":8},"generated":{"line":245,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":23},"generated":{"line":245,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":7},"generated":{"line":246,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":8},"generated":{"line":246,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":17},"generated":{"line":246,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":21},"generated":{"line":246,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":22},"generated":{"line":246,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":28},"generated":{"line":246,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":34},"generated":{"line":246,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":547,"column":3},"generated":{"line":247,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":247,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":9},"generated":{"line":249,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":17},"generated":{"line":249,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":9},"generated":{"line":250,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":18},"generated":{"line":250,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":251,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":251,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":251,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":21},"generated":{"line":251,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":22},"generated":{"line":251,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":33},"generated":{"line":251,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":39},"generated":{"line":251,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":41},"generated":{"line":252,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":41},"generated":{"line":252,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":46},"generated":{"line":252,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":48},"generated":{"line":252,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":39},"generated":{"line":253,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":253,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":253,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":32,"column":3},"generated":{"line":254,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":257,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":8},"generated":{"line":257,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":257,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":14},"generated":{"line":257,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":257,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":20},"generated":{"line":257,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":257,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":31},"generated":{"line":257,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":27},"generated":{"line":258,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":28},"generated":{"line":258,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":33},"generated":{"line":258,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":27},"generated":{"line":258,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":37,"column":5},"generated":{"line":259,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":9},"generated":{"line":261,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":15},"generated":{"line":261,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":27},"generated":{"line":261,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":40,"column":3},"generated":{"line":262,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":262,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":28},"generated":{"line":265,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":266,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":12},"generated":{"line":266,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":266,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":267,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":20},"generated":{"line":267,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":267,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":55},"generated":{"line":269,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":60},"generated":{"line":269,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":270,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":12},"generated":{"line":270,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":270,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":271,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":24},"generated":{"line":271,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":271,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":272,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":36},"generated":{"line":272,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":272,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":273,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":43},"generated":{"line":273,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":273,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":7},"generated":{"line":274,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":274,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":20},"generated":{"line":274,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":27},"generated":{"line":274,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":28},"generated":{"line":274,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":7},"generated":{"line":275,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":275,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":17},"generated":{"line":275,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":20},"generated":{"line":275,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":23},"generated":{"line":275,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":29},"generated":{"line":275,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":30},"generated":{"line":275,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":37},"generated":{"line":275,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":43},"generated":{"line":275,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":44},"generated":{"line":275,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":276,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":276,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":276,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":16},"generated":{"line":276,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":17},"generated":{"line":276,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":276,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":27},"generated":{"line":276,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":277,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":10},"generated":{"line":277,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":12},"generated":{"line":277,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":15},"generated":{"line":277,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":22},"generated":{"line":277,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":23},"generated":{"line":277,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":15},"generated":{"line":277,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":39},"generated":{"line":277,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":277,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":4},"generated":{"line":278,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":10},"generated":{"line":278,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":278,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":16},"generated":{"line":278,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":23},"generated":{"line":278,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":278,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":16},"generated":{"line":278,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":34},"generated":{"line":278,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":4},"generated":{"line":278,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":279,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":279,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":17},"generated":{"line":279,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":21},"generated":{"line":279,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":31},"generated":{"line":279,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":34},"generated":{"line":279,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":20},"generated":{"line":279,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":41},"generated":{"line":279,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":279,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":4},"generated":{"line":280,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":10},"generated":{"line":280,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":17},"generated":{"line":280,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":21},"generated":{"line":280,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":31},"generated":{"line":280,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":34},"generated":{"line":280,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":20},"generated":{"line":280,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":41},"generated":{"line":280,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":4},"generated":{"line":280,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":7},"generated":{"line":281,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":8},"generated":{"line":281,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":22},"generated":{"line":281,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":29},"generated":{"line":281,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":30},"generated":{"line":281,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":7},"generated":{"line":282,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":8},"generated":{"line":282,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":20},"generated":{"line":282,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":284,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":284,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":15},"generated":{"line":284,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":16},"generated":{"line":284,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":284,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":40},"generated":{"line":284,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":284,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":46},"generated":{"line":284,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":285,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":10},"generated":{"line":285,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":287,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":15},"generated":{"line":287,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":16},"generated":{"line":287,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":19},"generated":{"line":287,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":28},"generated":{"line":287,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":29},"generated":{"line":287,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":32},"generated":{"line":287,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":38},"generated":{"line":287,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":39},"generated":{"line":287,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":32},"generated":{"line":287,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":47},"generated":{"line":287,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":51},"generated":{"line":287,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":52},"generated":{"line":287,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":56},"generated":{"line":287,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":61},"generated":{"line":287,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":11},"generated":{"line":288,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":12},"generated":{"line":288,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":19},"generated":{"line":288,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":22},"generated":{"line":288,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":289,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":12},"generated":{"line":289,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":19},"generated":{"line":289,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":22},"generated":{"line":289,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":28},"generated":{"line":289,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":29},"generated":{"line":289,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":22},"generated":{"line":289,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":38},"generated":{"line":289,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":85,"column":7},"generated":{"line":290,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":9},"generated":{"line":292,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":10},"generated":{"line":292,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":20},"generated":{"line":292,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":9},"generated":{"line":293,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":10},"generated":{"line":293,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":23},"generated":{"line":293,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":26},"generated":{"line":293,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":294,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":10},"generated":{"line":294,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":9},"generated":{"line":295,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":10},"generated":{"line":295,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":22},"generated":{"line":295,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":23},"generated":{"line":295,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":22},"generated":{"line":295,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":9},"generated":{"line":296,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":10},"generated":{"line":296,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":20},"generated":{"line":296,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":92,"column":5},"generated":{"line":297,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":297,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":297,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":298,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":10},"generated":{"line":298,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":11},"generated":{"line":300,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":15},"generated":{"line":300,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":16},"generated":{"line":300,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":19},"generated":{"line":300,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":28},"generated":{"line":300,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":29},"generated":{"line":300,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":32},"generated":{"line":300,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":38},"generated":{"line":300,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":39},"generated":{"line":300,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":32},"generated":{"line":300,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":47},"generated":{"line":300,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":51},"generated":{"line":300,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":52},"generated":{"line":300,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":56},"generated":{"line":300,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":61},"generated":{"line":300,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":11},"generated":{"line":301,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":12},"generated":{"line":301,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":19},"generated":{"line":301,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":22},"generated":{"line":301,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":11},"generated":{"line":302,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":12},"generated":{"line":302,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":19},"generated":{"line":302,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":22},"generated":{"line":302,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":28},"generated":{"line":302,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":29},"generated":{"line":302,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":98,"column":7},"generated":{"line":303,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":11},"generated":{"line":305,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":15},"generated":{"line":305,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":305,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":19},"generated":{"line":305,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":28},"generated":{"line":305,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":29},"generated":{"line":305,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":32},"generated":{"line":305,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":38},"generated":{"line":305,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":39},"generated":{"line":305,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":32},"generated":{"line":305,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":48},"generated":{"line":305,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":52},"generated":{"line":305,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":53},"generated":{"line":305,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":57},"generated":{"line":305,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":62},"generated":{"line":305,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":11},"generated":{"line":306,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":12},"generated":{"line":306,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":19},"generated":{"line":306,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":22},"generated":{"line":306,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":11},"generated":{"line":307,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":12},"generated":{"line":307,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":19},"generated":{"line":307,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":307,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":26},"generated":{"line":307,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":33},"generated":{"line":307,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":103,"column":7},"generated":{"line":308,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":9},"generated":{"line":310,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":10},"generated":{"line":310,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":106,"column":5},"generated":{"line":311,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":107,"column":3},"generated":{"line":312,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":312,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":38},"generated":{"line":317,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":43},"generated":{"line":317,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":318,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":12},"generated":{"line":318,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":318,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":319,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":19},"generated":{"line":319,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":319,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":320,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":26},"generated":{"line":320,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":320,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":321,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":10},"generated":{"line":321,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":25},"generated":{"line":321,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":28},"generated":{"line":321,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":33},"generated":{"line":321,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":28},"generated":{"line":321,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":39},"generated":{"line":321,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":321,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":4},"generated":{"line":322,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":10},"generated":{"line":322,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":25},"generated":{"line":322,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":28},"generated":{"line":322,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":33},"generated":{"line":322,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":28},"generated":{"line":322,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":39},"generated":{"line":322,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":4},"generated":{"line":322,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":9},"generated":{"line":323,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":15},"generated":{"line":323,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":29},"generated":{"line":323,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":9},"generated":{"line":324,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":324,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":29},"generated":{"line":324,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":9},"generated":{"line":325,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":10},"generated":{"line":325,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":18},"generated":{"line":325,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":23},"generated":{"line":325,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":326,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":9},"generated":{"line":326,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":326,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":9},"generated":{"line":327,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":10},"generated":{"line":327,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":18},"generated":{"line":327,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":23},"generated":{"line":327,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":327,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":122,"column":4},"generated":{"line":327,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":328,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":124,"column":4},"generated":{"line":330,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":12},"generated":{"line":330,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":18},"generated":{"line":330,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":6},"generated":{"line":330,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":12},"generated":{"line":330,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":18},"generated":{"line":330,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":12},"generated":{"line":330,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":18},"generated":{"line":330,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":34},"generated":{"line":330,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":115}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":13},"generated":{"line":330,"column":120}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":125}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":19},"generated":{"line":330,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":35},"generated":{"line":330,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":157}},{"source":"../graph-renderer.ts","name":null,"original":{"line":124,"column":4},"generated":{"line":330,"column":158}},{"source":"../graph-renderer.ts","name":null,"original":{"line":129,"column":6},"generated":{"line":330,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":13},"generated":{"line":331,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":14},"generated":{"line":331,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":8},"generated":{"line":331,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":13},"generated":{"line":331,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":8},"generated":{"line":331,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":19},"generated":{"line":331,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":8},"generated":{"line":331,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":13},"generated":{"line":331,"column":118}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":8},"generated":{"line":331,"column":123}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":19},"generated":{"line":331,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":8},"generated":{"line":331,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":13},"generated":{"line":331,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":8},"generated":{"line":331,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":19},"generated":{"line":331,"column":148}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":8},"generated":{"line":331,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":13},"generated":{"line":331,"column":167}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":8},"generated":{"line":331,"column":172}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":19},"generated":{"line":331,"column":173}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":185}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":331,"column":187}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":13},"generated":{"line":331,"column":192}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":331,"column":197}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":19},"generated":{"line":331,"column":198}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":212}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":8},"generated":{"line":331,"column":214}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":13},"generated":{"line":331,"column":219}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":8},"generated":{"line":331,"column":224}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":19},"generated":{"line":331,"column":225}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":239}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":8},"generated":{"line":331,"column":241}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":13},"generated":{"line":331,"column":246}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":8},"generated":{"line":331,"column":251}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":19},"generated":{"line":331,"column":252}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":266}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":8},"generated":{"line":331,"column":268}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":13},"generated":{"line":331,"column":273}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":8},"generated":{"line":331,"column":278}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":19},"generated":{"line":331,"column":279}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":293}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":294}},{"source":"../graph-renderer.ts","name":null,"original":{"line":140,"column":5},"generated":{"line":332,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":141,"column":3},"generated":{"line":333,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":333,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":16},"generated":{"line":335,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":32},"generated":{"line":335,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":336,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":10},"generated":{"line":336,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":15},"generated":{"line":336,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":336,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":24},"generated":{"line":336,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":25},"generated":{"line":336,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":24},"generated":{"line":336,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":336,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":4},"generated":{"line":337,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":337,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":13},"generated":{"line":337,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":14},"generated":{"line":337,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":337,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":36},"generated":{"line":337,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":4},"generated":{"line":337,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":44},"generated":{"line":337,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":51},"generated":{"line":337,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":56},"generated":{"line":337,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":57},"generated":{"line":337,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":44},"generated":{"line":337,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":338,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":8},"generated":{"line":338,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":13},"generated":{"line":338,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":14},"generated":{"line":338,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":8},"generated":{"line":338,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":36},"generated":{"line":338,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":338,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":6},"generated":{"line":338,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":17},"generated":{"line":338,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":18},"generated":{"line":338,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":22},"generated":{"line":338,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":27},"generated":{"line":338,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":28},"generated":{"line":338,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":35},"generated":{"line":338,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":40},"generated":{"line":338,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":41},"generated":{"line":338,"column":90}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":6},"generated":{"line":338,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":339,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":8},"generated":{"line":339,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":9},"generated":{"line":339,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":12},"generated":{"line":339,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":339,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":9},"generated":{"line":340,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":10},"generated":{"line":340,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":17},"generated":{"line":340,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":26},"generated":{"line":340,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":7},"generated":{"line":341,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":14},"generated":{"line":341,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":15},"generated":{"line":341,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":19},"generated":{"line":341,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":26},"generated":{"line":341,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":27},"generated":{"line":341,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":31},"generated":{"line":341,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":32},"generated":{"line":341,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":33},"generated":{"line":341,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":32},"generated":{"line":341,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":37},"generated":{"line":341,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":38},"generated":{"line":341,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":39},"generated":{"line":341,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":38},"generated":{"line":341,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":154,"column":5},"generated":{"line":342,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":342,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":4},"generated":{"line":343,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":11},"generated":{"line":343,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":4},"generated":{"line":343,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":157,"column":3},"generated":{"line":344,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":344,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":18},"generated":{"line":346,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":30},"generated":{"line":346,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":18},"generated":{"line":347,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":23},"generated":{"line":347,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":27},"generated":{"line":347,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":55},"generated":{"line":348,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":60},"generated":{"line":348,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":349,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":12},"generated":{"line":349,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":349,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":350,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":24},"generated":{"line":350,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":350,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":351,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":36},"generated":{"line":351,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":351,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":352,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":43},"generated":{"line":352,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":352,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":4},"generated":{"line":353,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":353,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":11},"generated":{"line":353,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":19},"generated":{"line":353,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":40},"generated":{"line":353,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":41},"generated":{"line":353,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":51},"generated":{"line":353,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":55},"generated":{"line":353,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":56},"generated":{"line":353,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":4},"generated":{"line":353,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":165,"column":4},"generated":{"line":354,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":7},"generated":{"line":354,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":11},"generated":{"line":354,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":12},"generated":{"line":354,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":7},"generated":{"line":354,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":16},"generated":{"line":354,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":21},"generated":{"line":354,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":29},"generated":{"line":354,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":42},"generated":{"line":354,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":7},"generated":{"line":354,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":11},"generated":{"line":354,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":12},"generated":{"line":354,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":7},"generated":{"line":354,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":16},"generated":{"line":354,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":21},"generated":{"line":354,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":29},"generated":{"line":354,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":42},"generated":{"line":354,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":7},"generated":{"line":354,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":11},"generated":{"line":354,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":12},"generated":{"line":354,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":7},"generated":{"line":354,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":16},"generated":{"line":354,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":21},"generated":{"line":354,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":29},"generated":{"line":354,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":42},"generated":{"line":354,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":48},"generated":{"line":354,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":49},"generated":{"line":354,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":141}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":7},"generated":{"line":354,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":11},"generated":{"line":354,"column":150}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":12},"generated":{"line":354,"column":151}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":7},"generated":{"line":354,"column":152}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":16},"generated":{"line":354,"column":155}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":156}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":21},"generated":{"line":354,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":165}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":29},"generated":{"line":354,"column":168}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":178}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":42},"generated":{"line":354,"column":181}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":48},"generated":{"line":354,"column":187}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":49},"generated":{"line":354,"column":188}},{"source":"../graph-renderer.ts","name":null,"original":{"line":165,"column":4},"generated":{"line":354,"column":194}},{"source":"../graph-renderer.ts","name":null,"original":{"line":171,"column":3},"generated":{"line":355,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":355,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":18},"generated":{"line":357,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":30},"generated":{"line":357,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":18},"generated":{"line":358,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":23},"generated":{"line":358,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":27},"generated":{"line":358,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":55},"generated":{"line":359,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":60},"generated":{"line":359,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":360,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":12},"generated":{"line":360,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":360,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":361,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":24},"generated":{"line":361,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":361,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":362,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":36},"generated":{"line":362,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":362,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":363,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":43},"generated":{"line":363,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":363,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":4},"generated":{"line":364,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":10},"generated":{"line":364,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":364,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":19},"generated":{"line":364,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":23},"generated":{"line":364,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":24},"generated":{"line":364,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":4},"generated":{"line":364,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":365,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":10},"generated":{"line":365,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":16},"generated":{"line":365,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":19},"generated":{"line":365,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":23},"generated":{"line":365,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":24},"generated":{"line":365,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":365,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":4},"generated":{"line":366,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":10},"generated":{"line":366,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":17},"generated":{"line":366,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":26},"generated":{"line":366,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":27},"generated":{"line":366,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":31},"generated":{"line":366,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":39},"generated":{"line":366,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":4},"generated":{"line":366,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":4},"generated":{"line":367,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":10},"generated":{"line":367,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":17},"generated":{"line":367,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":26},"generated":{"line":367,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":27},"generated":{"line":367,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":31},"generated":{"line":367,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":39},"generated":{"line":367,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":4},"generated":{"line":367,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":4},"generated":{"line":368,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":10},"generated":{"line":368,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":17},"generated":{"line":368,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":26},"generated":{"line":368,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":27},"generated":{"line":368,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":31},"generated":{"line":368,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":39},"generated":{"line":368,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":4},"generated":{"line":368,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":4},"generated":{"line":369,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":10},"generated":{"line":369,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":17},"generated":{"line":369,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":26},"generated":{"line":369,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":27},"generated":{"line":369,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":31},"generated":{"line":369,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":39},"generated":{"line":369,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":4},"generated":{"line":369,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":370,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":10},"generated":{"line":370,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":11},"generated":{"line":370,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":19},"generated":{"line":370,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":40},"generated":{"line":370,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":41},"generated":{"line":370,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":51},"generated":{"line":370,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":55},"generated":{"line":370,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":56},"generated":{"line":370,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":370,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":371,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":7},"generated":{"line":371,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":14},"generated":{"line":371,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":17},"generated":{"line":371,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":18},"generated":{"line":371,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":7},"generated":{"line":371,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":23},"generated":{"line":371,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":30},"generated":{"line":371,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":33},"generated":{"line":371,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":34},"generated":{"line":371,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":7},"generated":{"line":371,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":14},"generated":{"line":371,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":17},"generated":{"line":371,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":18},"generated":{"line":371,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":7},"generated":{"line":371,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":23},"generated":{"line":371,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":30},"generated":{"line":371,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":33},"generated":{"line":371,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":34},"generated":{"line":371,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":7},"generated":{"line":371,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":14},"generated":{"line":371,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":371,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":23},"generated":{"line":371,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":24},"generated":{"line":371,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":371,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":32},"generated":{"line":371,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":7},"generated":{"line":371,"column":101}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":37},"generated":{"line":371,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":44},"generated":{"line":371,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":47},"generated":{"line":371,"column":115}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":53},"generated":{"line":371,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":54},"generated":{"line":371,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":47},"generated":{"line":371,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":62},"generated":{"line":371,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":7},"generated":{"line":371,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":14},"generated":{"line":371,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":17},"generated":{"line":371,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":23},"generated":{"line":371,"column":151}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":24},"generated":{"line":371,"column":152}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":17},"generated":{"line":371,"column":158}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":33},"generated":{"line":371,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":7},"generated":{"line":371,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":38},"generated":{"line":371,"column":166}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":45},"generated":{"line":371,"column":173}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":48},"generated":{"line":371,"column":176}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":54},"generated":{"line":371,"column":182}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":55},"generated":{"line":371,"column":183}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":48},"generated":{"line":371,"column":189}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":64},"generated":{"line":371,"column":192}},{"source":"../graph-renderer.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":371,"column":193}},{"source":"../graph-renderer.ts","name":null,"original":{"line":193,"column":3},"generated":{"line":372,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":372,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":4},"generated":{"line":375,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":8},"generated":{"line":375,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":9},"generated":{"line":375,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":14},"generated":{"line":375,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":9},"generated":{"line":375,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":20},"generated":{"line":375,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":4},"generated":{"line":375,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":36},"generated":{"line":375,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":15},"generated":{"line":376,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":20},"generated":{"line":376,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":24},"generated":{"line":376,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":52},"generated":{"line":377,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":57},"generated":{"line":377,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":378,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":12},"generated":{"line":378,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":378,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":379,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":26},"generated":{"line":379,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":379,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":380,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":40},"generated":{"line":380,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":380,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":4},"generated":{"line":381,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":10},"generated":{"line":381,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":17},"generated":{"line":381,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":20},"generated":{"line":381,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":4},"generated":{"line":381,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":4},"generated":{"line":382,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":10},"generated":{"line":382,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":17},"generated":{"line":382,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":20},"generated":{"line":382,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":4},"generated":{"line":382,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":4},"generated":{"line":383,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":10},"generated":{"line":383,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":16},"generated":{"line":383,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":19},"generated":{"line":383,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":24},"generated":{"line":383,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":19},"generated":{"line":383,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":30},"generated":{"line":383,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":4},"generated":{"line":383,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":4},"generated":{"line":384,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":10},"generated":{"line":384,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":12},"generated":{"line":384,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":15},"generated":{"line":384,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":22},"generated":{"line":384,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":25},"generated":{"line":384,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":31},"generated":{"line":384,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":32},"generated":{"line":384,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":4},"generated":{"line":384,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":4},"generated":{"line":385,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":10},"generated":{"line":385,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":12},"generated":{"line":385,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":15},"generated":{"line":385,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":22},"generated":{"line":385,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":25},"generated":{"line":385,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":31},"generated":{"line":385,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":32},"generated":{"line":385,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":4},"generated":{"line":385,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":4},"generated":{"line":386,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":10},"generated":{"line":386,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":13},"generated":{"line":386,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":20},"generated":{"line":386,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":21},"generated":{"line":386,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":27},"generated":{"line":386,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":31},"generated":{"line":386,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":4},"generated":{"line":386,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":4},"generated":{"line":387,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":10},"generated":{"line":387,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":14},"generated":{"line":387,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":21},"generated":{"line":387,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":22},"generated":{"line":387,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":26},"generated":{"line":387,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":4},"generated":{"line":387,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":4},"generated":{"line":388,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":10},"generated":{"line":388,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":14},"generated":{"line":388,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":21},"generated":{"line":388,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":22},"generated":{"line":388,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":26},"generated":{"line":388,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":4},"generated":{"line":388,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":388,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":237,"column":4},"generated":{"line":388,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":4},"generated":{"line":390,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":10},"generated":{"line":390,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":16},"generated":{"line":390,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":19},"generated":{"line":390,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":25},"generated":{"line":390,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":26},"generated":{"line":390,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":4},"generated":{"line":390,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":4},"generated":{"line":391,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":10},"generated":{"line":391,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":16},"generated":{"line":391,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":19},"generated":{"line":391,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":25},"generated":{"line":391,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":26},"generated":{"line":391,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":4},"generated":{"line":391,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":4},"generated":{"line":392,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":10},"generated":{"line":392,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":14},"generated":{"line":392,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":17},"generated":{"line":392,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":24},"generated":{"line":392,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":27},"generated":{"line":392,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":31},"generated":{"line":392,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":34},"generated":{"line":392,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":4},"generated":{"line":392,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":4},"generated":{"line":393,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":10},"generated":{"line":393,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":14},"generated":{"line":393,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":17},"generated":{"line":393,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":24},"generated":{"line":393,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":27},"generated":{"line":393,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":31},"generated":{"line":393,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":34},"generated":{"line":393,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":4},"generated":{"line":393,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":4},"generated":{"line":394,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":10},"generated":{"line":394,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":24},"generated":{"line":394,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":6},"generated":{"line":394,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":13},"generated":{"line":394,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":14},"generated":{"line":394,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":6},"generated":{"line":394,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":36},"generated":{"line":394,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":37},"generated":{"line":394,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":41},"generated":{"line":394,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":48},"generated":{"line":394,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":49},"generated":{"line":394,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":4},"generated":{"line":394,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":4},"generated":{"line":395,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":10},"generated":{"line":395,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":18},"generated":{"line":395,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":21},"generated":{"line":395,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":28},"generated":{"line":395,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":31},"generated":{"line":395,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":35},"generated":{"line":395,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":38},"generated":{"line":395,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":4},"generated":{"line":395,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":4},"generated":{"line":396,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":10},"generated":{"line":396,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":18},"generated":{"line":396,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":21},"generated":{"line":396,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":28},"generated":{"line":396,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":31},"generated":{"line":396,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":35},"generated":{"line":396,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":38},"generated":{"line":396,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":4},"generated":{"line":396,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":7},"generated":{"line":397,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":8},"generated":{"line":397,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":20},"generated":{"line":397,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":27},"generated":{"line":397,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":28},"generated":{"line":397,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":7},"generated":{"line":398,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":8},"generated":{"line":398,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":7},"generated":{"line":399,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":8},"generated":{"line":399,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":15},"generated":{"line":399,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":23},"generated":{"line":399,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":7},"generated":{"line":400,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":8},"generated":{"line":400,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":15},"generated":{"line":400,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":25},"generated":{"line":400,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":7},"generated":{"line":401,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":8},"generated":{"line":401,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":15},"generated":{"line":401,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":21},"generated":{"line":401,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":7},"generated":{"line":402,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":8},"generated":{"line":402,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":6},"generated":{"line":402,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":10},"generated":{"line":402,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":13},"generated":{"line":402,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":20},"generated":{"line":402,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":21},"generated":{"line":402,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":13},"generated":{"line":402,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":43},"generated":{"line":402,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":44},"generated":{"line":402,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":48},"generated":{"line":402,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":51},"generated":{"line":402,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":54},"generated":{"line":402,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":61},"generated":{"line":402,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":62},"generated":{"line":402,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":6},"generated":{"line":402,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":10},"generated":{"line":402,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":13},"generated":{"line":402,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":20},"generated":{"line":402,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":21},"generated":{"line":402,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":13},"generated":{"line":402,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":43},"generated":{"line":402,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":44},"generated":{"line":402,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":48},"generated":{"line":402,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":51},"generated":{"line":402,"column":134}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":54},"generated":{"line":402,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":61},"generated":{"line":402,"column":144}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":62},"generated":{"line":402,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":7},"generated":{"line":403,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":8},"generated":{"line":403,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":6},"generated":{"line":403,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":10},"generated":{"line":403,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":13},"generated":{"line":403,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":20},"generated":{"line":403,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":21},"generated":{"line":403,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":13},"generated":{"line":403,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":43},"generated":{"line":403,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":44},"generated":{"line":403,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":48},"generated":{"line":403,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":51},"generated":{"line":403,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":54},"generated":{"line":403,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":61},"generated":{"line":403,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":62},"generated":{"line":403,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":6},"generated":{"line":403,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":10},"generated":{"line":403,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":13},"generated":{"line":403,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":20},"generated":{"line":403,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":21},"generated":{"line":403,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":13},"generated":{"line":403,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":43},"generated":{"line":403,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":44},"generated":{"line":403,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":48},"generated":{"line":403,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":51},"generated":{"line":403,"column":134}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":54},"generated":{"line":403,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":61},"generated":{"line":403,"column":144}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":62},"generated":{"line":403,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":7},"generated":{"line":404,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":8},"generated":{"line":404,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":15},"generated":{"line":404,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":21},"generated":{"line":404,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":7},"generated":{"line":405,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":8},"generated":{"line":405,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":7},"generated":{"line":406,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":8},"generated":{"line":406,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":22},"generated":{"line":406,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":29},"generated":{"line":406,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":30},"generated":{"line":406,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":7},"generated":{"line":407,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":8},"generated":{"line":407,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":20},"generated":{"line":407,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":27},"generated":{"line":407,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":28},"generated":{"line":407,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":7},"generated":{"line":408,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":8},"generated":{"line":408,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":7},"generated":{"line":409,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":8},"generated":{"line":409,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":269,"column":3},"generated":{"line":410,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":410,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":1}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":41}}],"sources":{"../graph-renderer.ts":"import {\n GENode,\n GEEdge,\n GEGridType,\n GEShapes,\n GEShape,\n GEShapeName\n} from \"./types\";\nimport { GEState } from \"./state\";\nimport {\n intersectLineCircleCenter,\n intersectLineRectCenter,\n instersectLinePolygonCenter\n} from \"./intersections\";\n\nconst TEXT_ALIGN = \"center\";\nconst TEXT_BASELINE = \"middle\";\nconst LINE_CAP_ROUND = \"round\";\nconst LINE_CAP_SQUARE = \"square\";\n\nconst tmpPoint: [number, number] = [0, 0];\n\nexport class GEGraphRenderer {\n state: GEState;\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n\n constructor(view: GEState, canvas: HTMLCanvasElement) {\n this.state = view;\n this.canvas = canvas;\n this.ctx = canvas.getContext(\"2d\", { alpha: false });\n }\n\n requestDraw(): void {\n if (!this.state.isDrawing) {\n requestAnimationFrame(this.draw);\n }\n\n this.state.isDrawing = true;\n }\n\n draw = (): void => {\n this.state.isDrawing = false;\n\n this.drawBackground();\n\n this.ctx.transform(\n this.state.scale,\n 0,\n 0,\n this.state.scale,\n this.state.translateX,\n this.state.translateY\n );\n\n this.drawGraph();\n\n this.ctx.resetTransform();\n };\n\n drawBackground(): void {\n const { canvas, ctx } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n if (!options.showGrid) return;\n\n const lw = options.gridLineWidth * scale;\n const gap = options.gridGap * scale;\n\n const offsetX = (translateX % gap) - lw;\n const offsetY = (translateY % gap) - lw;\n\n ctx.strokeStyle = options.gridColor;\n ctx.lineWidth = lw;\n\n if (options.gridType === GEGridType.DOTS) {\n ctx.beginPath();\n\n for (let i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, offsetY);\n ctx.lineTo(i, canvas.height + lw);\n }\n\n ctx.lineCap = LINE_CAP_ROUND;\n ctx.setLineDash([0, gap]);\n ctx.stroke();\n ctx.setLineDash([0]);\n ctx.lineCap = LINE_CAP_SQUARE;\n } else {\n ctx.beginPath();\n\n for (let i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, 0);\n ctx.lineTo(i, canvas.height);\n }\n\n for (let i = offsetY; i < canvas.height + lw; i += gap) {\n ctx.moveTo(0, i);\n ctx.lineTo(canvas.width, i);\n }\n\n ctx.stroke();\n }\n }\n\n drawGraph(): void {\n const { nodes, edges, options } = this.state;\n\n const prevhoveredNode = this.state.hoveredNode;\n const prevhoveredEdge = this.state.hoveredEdge;\n\n this.state.hoveredNode = undefined;\n this.state.hoveredEdge = undefined;\n\n edges.forEach(this.drawEdge);\n this.drawDragLine();\n nodes.forEach(this.drawNode);\n\n // This event is done here because we are using canvas to check hover.\n // Please let me know if there is a better way.\n if (\n !this.state.isMovingNode() &&\n !this.state.isMovingView() &&\n (this.state.hoveredNode !== prevhoveredNode ||\n this.state.hoveredEdge !== prevhoveredEdge)\n ) {\n options.onHoverChange?.(\n this.state.hoveredNode,\n this.state.hoveredEdge,\n this.state.pointerViewX,\n this.state.pointerViewY,\n this.state.pointerCanvasX,\n this.state.pointerCanvasY,\n this.state.pointerScreenX,\n this.state.pointerScreenY\n );\n }\n }\n\n getShapeBound(shapes: GEShapes): number {\n const shape = shapes[0];\n\n if (shape.shape === GEShapeName.CIRCLE) return shape.r;\n if (shape.shape === GEShapeName.RECTANGLE)\n return Math.max(shape.width, shape.height);\n\n let r = 0;\n\n shape.points.forEach(p => {\n r = Math.max(r, Math.max(p[0], p[1]));\n });\n\n return r;\n }\n\n isNodeOutOfView(node: GENode): boolean {\n const { canvas } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n const r = this.getShapeBound(options.nodeTypes[node.type]);\n\n return (\n (node.x + r) * scale + translateX < 0 ||\n (node.y + r) * scale + translateY < 0 ||\n (node.x - r) * scale + translateX > canvas.width ||\n (node.y - r) * scale + translateY > canvas.height\n );\n }\n\n isEdgeOutOfView(edge: GEEdge): boolean {\n const { canvas } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n const sourceX = source.x * scale + translateX;\n const sourceY = source.y * scale + translateY;\n const targetX = target.x * scale + translateX;\n const targetY = target.y * scale + translateY;\n\n const r = this.getShapeBound(options.edgeTypes[edge.type]);\n\n return (\n (sourceX < -r && targetX < -r) ||\n (sourceY < -r && targetY < -r) ||\n (sourceX > canvas.width + r && targetX > canvas.width + r) ||\n (sourceY > canvas.height + r && targetY > canvas.height + r)\n );\n }\n\n shapePath = (x: number, y: number, shape: GEShape): void => {\n const { ctx } = this;\n\n if (shape.shape === GEShapeName.CIRCLE) {\n ctx.arc(x, y, shape.r, 0, Math.PI * 2);\n } else if (shape.shape === GEShapeName.RECTANGLE) {\n ctx.rect(\n x - shape.width * 0.5,\n y - shape.height * 0.5,\n shape.width,\n shape.height\n );\n } else {\n ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n for (let i = 1; i < shape.points.length; i++) {\n ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]);\n }\n\n ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n ctx.closePath();\n }\n };\n\n drawDragLine(): void {\n if (!this.state.isCreatingEdge) return;\n\n const { ctx } = this;\n const { pointerViewX, pointerViewY, options } = this.state;\n\n const targetX = pointerViewX;\n const targetY = pointerViewY;\n\n const source = this.state.dragLineSourceNode;\n const dx = targetX - source.x;\n const dy = targetY - source.y;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n // calculate the start and end points of the line\n const startX = source.x;\n const startY = source.y;\n const endX = targetX - cosr * 3;\n const endY = targetY - sinr * 3;\n const edgeLineOffset =\n options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n const lineEndX = targetX - cosr * edgeLineOffset;\n const lineEndY = targetY - sinr * edgeLineOffset;\n\n ctx.lineWidth = options.edgeLineWidth;\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian)\n );\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian)\n );\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n\n ctx.stroke();\n ctx.fill();\n }\n\n getInstersectionPoint = (\n sourceX: number,\n sourceY: number,\n targetX: number,\n targetY: number,\n shape: GEShape\n ): [number, number] => {\n if (shape.shape === GEShapeName.CIRCLE) {\n const int = intersectLineCircleCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.r,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n } else if (shape.shape === GEShapeName.RECTANGLE) {\n const int = intersectLineRectCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.width,\n shape.height,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n } else {\n const int = instersectLinePolygonCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.points,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n }\n\n return [targetX, targetY];\n };\n\n drawSubShapes = (shapes: GEShapes, x: number, y: number): void => {\n const { ctx } = this;\n const { options } = this.state;\n\n if (shapes.length <= 1) return;\n\n for (let i = 1; i < shapes.length; i++) {\n const sh = shapes[i];\n\n ctx.beginPath();\n this.shapePath(x, y, sh);\n\n ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor;\n ctx.fill();\n }\n };\n\n drawSelectedShape = (\n shape: GEShape,\n x: number,\n y: number,\n color: string\n ): void => {\n const { ctx } = this;\n\n ctx.beginPath();\n this.shapePath(x, y, shape);\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.8;\n ctx.fill();\n ctx.globalAlpha = 1.0;\n };\n\n drawNode = (node: GENode): void => {\n if (this.isNodeOutOfView(node)) return;\n\n const { ctx } = this;\n const {\n pointerCanvasX,\n pointerCanvasY,\n options,\n moveNodeX,\n moveNodeY,\n selectedNode\n } = this.state;\n\n const isMovingNode = this.state.isMovingNode() && selectedNode === node;\n const x = isMovingNode ? moveNodeX : node.x;\n const y = isMovingNode ? moveNodeY : node.y;\n\n const shapes = options.nodeTypes[node.type];\n\n ctx.strokeStyle = options.nodeStrokeColor;\n ctx.lineWidth = options.nodeLineWidth;\n\n ctx.beginPath();\n this.shapePath(x, y, shapes[0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) {\n this.state.hoveredNode = node;\n }\n\n const selected = node === this.state.selectedNode;\n const hovered = node === this.state.hoveredNode;\n\n ctx.strokeStyle =\n selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor;\n ctx.fillStyle = shapes[0].color || options.nodeColor;\n\n ctx.fill();\n ctx.stroke();\n\n this.drawSubShapes(shapes, x, y);\n\n if (selected) {\n this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.nodeSelectedTextColor;\n } else {\n ctx.fillStyle = options.nodeTextColor;\n }\n\n ctx.font = options.nodeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n\n ctx.fillText(node.text, x, y);\n };\n\n drawEdge = (edge: GEEdge): void => {\n if (this.isEdgeOutOfView(edge)) return;\n\n const { ctx } = this;\n const {\n pointerCanvasX,\n pointerCanvasY,\n options,\n selectedNode,\n moveNodeX,\n moveNodeY\n } = this.state;\n\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n const isMovingSourceNode =\n this.state.isMovingNode() && source === selectedNode;\n\n const sourceX = isMovingSourceNode ? moveNodeX : source.x;\n const sourceY = isMovingSourceNode ? moveNodeY : source.y;\n\n const isMovingTargetNode =\n this.state.isMovingNode() && target === selectedNode;\n\n const targetX = isMovingTargetNode ? moveNodeX : target.x;\n const targetY = isMovingTargetNode ? moveNodeY : target.y;\n\n const dx = targetX - sourceX;\n const dy = targetY - sourceY;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n // calculate the start and end points of the line\n const [startX, startY] = this.getInstersectionPoint(\n targetX,\n targetY,\n sourceX,\n sourceY,\n options.nodeTypes[source.type][0]\n );\n const [endX0, endY0] = this.getInstersectionPoint(\n sourceX,\n sourceY,\n targetX,\n targetY,\n options.nodeTypes[target.type][0]\n );\n\n const endX = endX0 - cosr * 3;\n const endY = endY0 - sinr * 3;\n const edgeLineOffset =\n options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n const lineEndX = endX - cosr * edgeLineOffset;\n const lineEndY = endY - sinr * edgeLineOffset;\n\n ctx.lineWidth = options.edgeLineWidth;\n\n const midX = (startX + endX) * 0.5;\n const midY = (startY + endY) * 0.5;\n\n // this is just to check if the rect is hovered\n ctx.beginPath();\n this.shapePath(midX, midY, options.edgeTypes[edge.type][0]);\n\n if (\n ctx.isPointInPath(pointerCanvasX, pointerCanvasY) ||\n ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)\n ) {\n this.state.hoveredEdge = edge;\n }\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian)\n );\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian)\n );\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n if (\n ctx.isPointInPath(pointerCanvasX, pointerCanvasY) ||\n ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)\n ) {\n this.state.hoveredEdge = edge;\n }\n\n const selected = edge === this.state.selectedEdge;\n const hovered = edge === this.state.hoveredEdge;\n const shapes = options.edgeTypes[edge.type];\n\n if (selected || hovered) {\n ctx.strokeStyle = options.edgeLineSelectedColor;\n ctx.fillStyle = options.edgeLineSelectedColor;\n } else {\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n }\n\n ctx.stroke();\n ctx.fill();\n\n ctx.beginPath();\n this.shapePath(midX, midY, shapes[0]);\n\n ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor;\n\n ctx.fill();\n ctx.stroke();\n\n this.drawSubShapes(shapes, midX, midY);\n\n if (selected) {\n this.drawSelectedShape(\n shapes[0],\n midX,\n midY,\n options.edgeLineSelectedColor\n );\n }\n\n if (selected) {\n ctx.fillStyle = options.edgeSelectedTextColor;\n } else {\n ctx.fillStyle = options.edgeTextColor;\n }\n ctx.font = options.edgeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(edge.text, midX, midY);\n };\n}\n"},"lineCount":null}},"error":null,"hash":"6e8cb052b4f82ded399e7fbb18f91580","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/ff/924b57b58436315cf5fc93aa4d4655.json b/.cache/ff/924b57b58436315cf5fc93aa4d4655.json new file mode 100644 index 0000000..83bc5a8 --- /dev/null +++ b/.cache/ff/924b57b58436315cf5fc93aa4d4655.json @@ -0,0 +1 @@ +{"id":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000}],"generated":{"js":"var bundleURL = null;\n\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error();\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":1,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":0}},{"name":"bundleURL","generated":{"line":1,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":4}},{"generated":{"line":1,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":13}},{"generated":{"line":1,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":16}},{"generated":{"line":1,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":0}},{"name":"getBundleURLCached","generated":{"line":3,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":9}},{"generated":{"line":3,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":0}},{"generated":{"line":3,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":30}},{"generated":{"line":4,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":2}},{"generated":{"line":4,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":6}},{"name":"bundleURL","generated":{"line":4,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":7}},{"generated":{"line":4,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":2}},{"generated":{"line":4,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":18}},{"name":"bundleURL","generated":{"line":5,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"name":"bundleURL","generated":{"line":5,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"generated":{"line":5,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":13}},{"name":"getBundleURL","generated":{"line":5,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":16}},{"generated":{"line":5,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":28}},{"generated":{"line":5,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":5,"column":3}},{"generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":2}},{"name":"bundleURL","generated":{"line":8,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":9}},{"generated":{"line":8,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":2}},{"generated":{"line":9,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":8,"column":1}},{"generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":0}},{"name":"getBundleURL","generated":{"line":11,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":9}},{"generated":{"line":11,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":0}},{"generated":{"line":11,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":24}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":11,"column":2}},{"generated":{"line":13,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":2}},{"generated":{"line":13,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":6}},{"generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":4}},{"generated":{"line":14,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":10}},{"name":"Error","generated":{"line":14,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":14}},{"generated":{"line":14,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":10}},{"generated":{"line":14,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":4}},{"generated":{"line":15,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":3}},{"generated":{"line":15,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":2}},{"generated":{"line":15,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":4}},{"name":"err","generated":{"line":15,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":11}},{"generated":{"line":15,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":4}},{"generated":{"line":15,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":16}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":4}},{"name":"matches","generated":{"line":16,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":8}},{"generated":{"line":16,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":15}},{"generated":{"line":16,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":19}},{"name":"err","generated":{"line":16,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":24}},{"generated":{"line":16,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":27}},{"name":"stack","generated":{"line":16,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":28}},{"generated":{"line":16,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"name":"match","generated":{"line":16,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":35}},{"generated":{"line":16,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":41}},{"generated":{"line":16,"column":104},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":105},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":4}},{"generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":4}},{"name":"matches","generated":{"line":18,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":8}},{"generated":{"line":18,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":4}},{"generated":{"line":18,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":17}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":6}},{"name":"getBaseURL","generated":{"line":19,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":13}},{"generated":{"line":19,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":23}},{"name":"matches","generated":{"line":19,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":24}},{"generated":{"line":19,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":31}},{"generated":{"line":19,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":32}},{"generated":{"line":19,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":31}},{"generated":{"line":19,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":23}},{"generated":{"line":19,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":6}},{"generated":{"line":20,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":18,"column":5}},{"generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":19,"column":3}},{"generated":{"line":23,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":2}},{"generated":{"line":23,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":9}},{"generated":{"line":23,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":2}},{"generated":{"line":24,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":22,"column":1}},{"generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"name":"getBaseURL","generated":{"line":26,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":9}},{"generated":{"line":26,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"name":"url","generated":{"line":26,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":20}},{"generated":{"line":26,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"generated":{"line":26,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":25}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":2}},{"generated":{"line":27,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":10}},{"name":"url","generated":{"line":27,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":15}},{"generated":{"line":27,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"name":"replace","generated":{"line":27,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":20}},{"generated":{"line":27,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":28}},{"generated":{"line":27,"column":98},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":100},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":100}},{"generated":{"line":27,"column":104},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":108},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":108}},{"generated":{"line":27,"column":111},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":2}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":26,"column":1}},{"name":"exports","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"generated":{"line":30,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":7}},{"name":"getBundleURL","generated":{"line":30,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":8}},{"generated":{"line":30,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"name":"getBundleURLCached","generated":{"line":30,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":23}},{"generated":{"line":30,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"name":"exports","generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}},{"generated":{"line":31,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":7}},{"name":"getBaseURL","generated":{"line":31,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":8}},{"generated":{"line":31,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}},{"name":"getBaseURL","generated":{"line":31,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":21}},{"generated":{"line":31,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/bundle-url.js":"var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n"},"lineCount":null}},"error":null,"hash":"a5ff7569d8532d9c686dfdf18e9f1ffa","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.eslintignore b/.eslintignore index 352d0bb..d93b796 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,3 @@ -node_modules -dist -dist-* +node_modules +dist +dist-* diff --git a/.eslintrc.js b/.eslintrc.js index 3d282ca..6952cf1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,36 +1,20 @@ -module.exports = { - parser: "@typescript-eslint/parser", // Specifies the ESLint parser - extends: [ - "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin - "prettier/@typescript-eslint", // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier - "plugin:prettier/recommended" // Enables eslint-plugin-prettier and displays prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. - ], - parserOptions: { - ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features - sourceType: "module" // Allows for the use of imports - }, - rules: { - // Error - "arrow-parens": ["error", "as-needed", { requireForBlockBody: false }], - "comma-dangle": ["error", "never"], - "max-lines": ["error", 600], - "no-console": ["error", { allow: ["warn", "error", "info"] }], - "no-param-reassign": ["error", { props: false }], - "@typescript-eslint/no-use-before-define": ["error", { functions: false }] - }, - overrides: [ - { - files: ["*.js", "*.jsx"], - rules: { - "@typescript-eslint/no-var-requires": "off" - } - }, - { - files: ["*.js", "*.jsx", "*.ts", "*.tsx"], - rules: { - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/explicit-function-return-type": "off" - } - } - ] -}; +module.exports = { + parser: "@typescript-eslint/parser", // Specifies the ESLint parser + extends: [ + "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin + "plugin:prettier/recommended" // Enables eslint-plugin-prettier and displays prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. + ], + parserOptions: { + ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features + sourceType: "module" // Allows for the use of imports + }, + rules: { + // Error + "arrow-parens": ["error", "as-needed", { requireForBlockBody: false }], + "comma-dangle": ["error", "never"], + "max-lines": ["error", 600], + "no-console": ["error", { allow: ["warn", "error", "info"] }], + "no-param-reassign": "off", + "@typescript-eslint/no-use-before-define": ["error", { functions: false }] + } +}; diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..a155f3c --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,41 @@ +name: CI + +on: [pull_request] + +env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + +jobs: + build: + name: CI on Node ${{ matrix.node }} and ${{ matrix.os }} + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node: ["14.x"] + os: [ubuntu-latest, windows-latest, macOS-latest] + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + + - name: Install deps and build (with cache) + uses: bahmutov/npm-install@v1 + + - name: Lint + run: npm run lint + + - name: Test + run: npm test --ci --coverage --maxWorkers=2 + + - name: Build + run: npm run build + + - name: Check size + run: npm run size diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..32a143f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,34 @@ +name: Release + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 + +env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + +jobs: + build: + name: Build and publish to NPM + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + + - name: Install deps and build (with cache) + uses: bahmutov/npm-install@v1 + + - name: Build + run: npm run build + + - name: Publish + run: | + echo -e "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ${{ github.workspace }}/.npmrc + npm publish diff --git a/.gitignore b/.gitignore index 987e89d..8043296 100644 --- a/.gitignore +++ b/.gitignore @@ -1,31 +1,8 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -.nyc_output -coverage - -# production -/build -/dist -/dist-* - -# misc +node_modules .DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -.cache -.rts2_cache_cjs -.rts2_cache_es -.rts2_cache_umd +dist +dist-ssr +*.local +*.log +coverage +docs \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..57757f4 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run lint-staged diff --git a/.prettierrc.js b/.prettierrc.js index 12a0b1d..6ed67ea 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,9 +1,10 @@ -module.exports = { - printWidth: 80, - semi: true, - singleQuote: false, - trailingComma: 'none', - useTabs: false, - bracketSpacing: true, - arrowParens: 'avoid' -} +module.exports = { + printWidth: 80, + semi: true, + singleQuote: false, + trailingComma: 'none', + useTabs: false, + bracketSpacing: true, + arrowParens: 'avoid', + endOfLine: "auto" +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 16511e8..222d7e5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,9 @@ -{ - "editor.tabSize": 2, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, - "eslint.validate": ["javascript", "typescript"], -} +{ + "editor.tabSize": 2, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "eslint.validate": ["javascript", "typescript"] +} diff --git a/package-lock.json b/package-lock.json index 30a2a14..88cef60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,91 +1,71 @@ { "name": "web-digraph", - "version": "1.0.0", + "version": "0.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@jridgewell/trace-mapping": "^0.3.0" } }, - "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "@babel/highlight": "^7.16.7" } }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true + }, "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -99,289 +79,295 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz", - "integrity": "sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.11.5" + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", - "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.17.0" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", "dev": true }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, "@babel/helper-remap-async-to-generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", - "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.17.0" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -392,146 +378,227 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-async-generators": { @@ -543,13 +610,31 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-dynamic-import": { @@ -570,10 +655,10 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-syntax-flow": { + "@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", - "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -588,15 +673,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -651,66 +727,75 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, "dependencies": { @@ -723,376 +808,368 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", - "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", + "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.16.7" } }, "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" } }, "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/preset-env": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", - "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.5", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" }, "dependencies": { + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1103,40 +1180,51 @@ } }, "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "@babel/runtime-corejs3": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" } }, - "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "dependencies": { "globals": { @@ -1148,2671 +1236,2279 @@ } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, - "@eslint/eslintrc": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", - "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, - "@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "@jest/core": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz", + "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/reporters": "^25.5.1", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^25.5.0", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-resolve-dependencies": "^25.5.4", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "jest-watcher": "^25.5.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "realpath-native": "^2.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/environment": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz", + "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0" } }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "@jest/fake-timers": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" + "@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" } }, - "@parcel/fs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz", - "integrity": "sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==", + "@jest/globals": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz", + "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", "dev": true, "requires": { - "@parcel/utils": "^1.11.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.2" + "@jest/environment": "^25.5.0", + "@jest/types": "^25.5.0", + "expect": "^25.5.0" } }, - "@parcel/logger": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz", - "integrity": "sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==", + "@jest/reporters": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz", + "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", "dev": true, "requires": { - "@parcel/workers": "^1.11.0", - "chalk": "^2.1.0", - "grapheme-breaker": "^0.3.2", - "ora": "^2.1.0", - "strip-ansi": "^4.0.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^25.5.1", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "node-notifier": "^6.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^3.1.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^4.1.3" }, "dependencies": { - "ansi-regex": { + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/source-map": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", + "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", + "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4" + } + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + } + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } }, - "@parcel/utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz", - "integrity": "sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==", + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", "dev": true }, - "@parcel/watcher": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz", - "integrity": "sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA==", + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", "dev": true, "requires": { - "@parcel/utils": "^1.11.0", - "chokidar": "^2.1.5" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@parcel/workers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz", - "integrity": "sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@parcel/utils": "^1.11.0", - "physical-cpu-count": "^2.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } }, - "@typescript-eslint/eslint-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.1.1.tgz", - "integrity": "sha512-Hoxyt99EA9LMmqo/5PuWWPeWeB3mKyvibfJ1Hy5SfiUpjE8Nqp+5QNd9fOkzL66+fqvIWSIE+Ett16LGMzCGnQ==", + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.1.1", - "@typescript-eslint/scope-manager": "4.1.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" } }, - "@typescript-eslint/experimental-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.1.1.tgz", - "integrity": "sha512-jzYsNciHoa4Z3c1URtmeT/bamYm8Dwfw6vuN3WHIE/BXb1iC4KveAnXDErTAZtPVxTYBaYn3n2gbt6F6D2rm1A==", + "@rollup/plugin-commonjs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", + "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.1.1", - "@typescript-eslint/types": "4.1.1", - "@typescript-eslint/typescript-estree": "4.1.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" } }, - "@typescript-eslint/parser": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.1.1.tgz", - "integrity": "sha512-NLIhmicpKGfJbdXyQBz9j48PA6hq6e+SDOoXy7Ak6bq1ebGqbgG+fR1UIDAuay6OjQdot69c/URu2uLlsP8GQQ==", + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.1.1", - "@typescript-eslint/types": "4.1.1", - "@typescript-eslint/typescript-estree": "4.1.1", - "debug": "^4.1.1" + "@rollup/pluginutils": "^3.0.8" } }, - "@typescript-eslint/scope-manager": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.1.1.tgz", - "integrity": "sha512-0W8TTobCvIIQ2FsrYTffyZGAAFUyIbEHq5EYJb1m7Rpd005jrnOvKOo8ywCLhs/Bm17C+KsrUboBvBAARQVvyA==", + "@rollup/plugin-node-resolve": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", + "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.1.1", - "@typescript-eslint/visitor-keys": "4.1.1" + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.17.0" } }, - "@typescript-eslint/types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.1.1.tgz", - "integrity": "sha512-zrBiqOKYerMTllKcn+BP+i1b7LW/EbMMYytroXMxUTvFPn1smkCu0D7lSAx29fTUO4jnwV0ljSvYQtn2vNrNxA==", - "dev": true + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } }, - "@typescript-eslint/typescript-estree": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.1.1.tgz", - "integrity": "sha512-2AUg5v0liVBsqbGxBphbJ0QbGqSRVaF5qPoTPWcxop+66vMdU1h4CCvHxTC47+Qb+Pr4l2RhXDd41JNpwcQEKw==", + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.1.1", - "@typescript-eslint/visitor-keys": "4.1.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.1.1.tgz", - "integrity": "sha512-/EOOXbA2ferGLG6RmCHEQ0lTTLkOlXYDgblCmQk3tIU7mTPLm4gKhFMeeUSe+bcchTUsKeCk8xcpbop5Zr/8Rw==", + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.1.1", - "eslint-visitor-keys": "^2.0.0" + "type-detect": "4.0.8" } }, - "@webcomponents/custom-elements": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.4.2.tgz", - "integrity": "sha512-bLw2XH9+2NBwmn7BI6WA2oIo2eOfBpl+GjAqkF/qnkZ8kq3HY5tKYTxtKowWALAferTp3wKD8W6FSn5OyK+rtQ==", - "dev": true + "@size-limit/esbuild": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-7.0.8.tgz", + "integrity": "sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==", + "dev": true, + "requires": { + "esbuild": "^0.14.18", + "nanoid": "^3.2.0" + } }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "@size-limit/file": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-7.0.8.tgz", + "integrity": "sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==", + "dev": true, + "requires": { + "semver": "7.3.5" + } }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true + "@size-limit/preset-small-lib": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-7.0.8.tgz", + "integrity": "sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==", + "dev": true, + "requires": { + "@size-limit/esbuild": "7.0.8", + "@size-limit/file": "7.0.8" + } }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "dev": true, "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - } + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/types": "^7.3.0" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", "dev": true }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@types/istanbul-lib-coverage": "*" } }, - "ansi-to-html": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", - "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { - "entities": "^1.1.2" + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@types/jest": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "@types/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", "dev": true }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "@types/node": "*" } }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", + "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/type-utils": "5.17.0", + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "@typescript-eslint/experimental-utils": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", "dev": true, "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" }, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "inherits": "2.0.1" + "eslint-visitor-keys": "^1.1.0" } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "@typescript-eslint/parser": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", + "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "debug": "^4.3.2" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "@typescript-eslint/scope-manager": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" + } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "@typescript-eslint/type-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", + "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } }, - "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "@typescript-eslint/types": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "@typescript-eslint/typescript-estree": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "requires": { - "object.assign": "^4.1.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "@typescript-eslint/utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "@typescript-eslint/visitor-keys": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "@typescript-eslint/types": "5.17.0", + "eslint-visitor-keys": "^3.0.0" } }, - "babylon-walk": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", - "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "babel-runtime": "^6.11.6", - "babel-types": "^6.15.0", - "lodash.clone": "^4.5.0" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true } } }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, - "boolbase": { + "add-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, - "brfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", - "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "quote-stream": "^1.0.1", - "resolve": "^1.1.5", - "static-module": "^2.2.0", - "through2": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "type-fest": "^0.21.3" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "pako": "~1.0.5" - }, - "dependencies": { - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - } + "color-convert": "^2.0.1" } }, - "browserslist": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.3.tgz", - "integrity": "sha512-GcZPC5+YqyPO4SFnz48/B0YaCwS47Q9iPChRGi6t7HhflKBcINzFrJvRfC+jp30sRMKxF+d4EHGs27Z0XP1NaQ==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001131", - "electron-to-chromium": "^1.3.570", - "escalade": "^3.1.0", - "node-releases": "^1.1.61" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", "dev": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" } }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "requires": { - "caller-callsite": "^2.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "safer-buffer": "~2.1.0" } }, - "caniuse-lite": { - "version": "1.0.30001132", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001132.tgz", - "integrity": "sha512-zk5FXbnsmHa0Ktc/NOZJRr+ilXva+2KFJuRiQfnjkxJfV/7DYP5C27lSQF++/veCUzVWE5xecZnSBJjf6fSwJA==", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "asyncro": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", + "integrity": "sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "dev": true + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "babel-jest": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", + "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" }, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-number": { + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "babel-plugin-annotate-pure-calls": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-annotate-pure-calls/-/babel-plugin-annotate-pure-calls-0.4.0.tgz", + "integrity": "sha512-oi4M/PWUJOU9ZyRGoPTfPMqdyMp06jbJAomd3RcyYuzUtBOddv98BqLm96Lucpi2QFoQHkdGQt0ACvw7VzVEQA==", "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "babel-plugin-dev-expression": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.3.tgz", + "integrity": "sha512-rP5LK9QQTzCW61nVVzw88En1oK8t8gTsIeC6E61oelxNsU842yMjF0G1MxhvUpCkxCEIj7sE8/e5ieTheT//uw==", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "object.assign": "^4.1.0" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "babel-plugin-jest-hoist": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", + "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__traverse": "^7.0.6" } }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", "dev": true, "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "dev": true, "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "babel-plugin-polyfill-regenerator": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.0.4.tgz", + "integrity": "sha512-+/uCzO9JTYVZVGCpZpVAQkgPGt2zkR0VYiZvJ4aVoCe4ccgpKvNQqcjzAgQzSsjK64Jhc5hvrCR3l0087BevkA==", "dev": true, "requires": { - "color-name": "1.1.3" + "@babel/helper-define-polyfill-provider": "^0.0.3" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.0.3.tgz", + "integrity": "sha512-dULDd/APiP4JowYDAMosecKOi/1v+UId99qhBGiO3myM29KtAVKS/R3x3OJJNBR0FeYB1BcYb2dCwkhqvxWXXQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/traverse": "^7.11.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "babel-plugin-transform-rename-import": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz", + "integrity": "sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==", "dev": true }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "babel-preset-current-node-syntax": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz", + "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==", "dev": true, "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "babel-preset-jest": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", + "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "babel-plugin-jest-hoist": "^25.5.0", + "babel-preset-current-node-syntax": "^0.1.2" } }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "tweetnacl": "^0.14.3" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "fill-range": "^7.0.1" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "resolve": "1.1.7" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true } } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "fast-json-stable-stringify": "2.x" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "node-int64": "^0.4.0" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "css-modules-loader-core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", - "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.1", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", - "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "caniuse-lite": { + "version": "1.0.30001324", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001324.tgz", + "integrity": "sha512-/eYp1J6zYh1alySQB4uzYFkLmxxI8tk0kxldbNHXp8+v+rdMKdUBNjRLz7T7fz6Iox+1lIdYpc7rq6ZcXfTukg==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", "dev": true, "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "rsvp": "^4.8.4" } }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } }, - "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==", + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", "dev": true }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "is-descriptor": "^0.1.0" } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true } } }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "requires": { - "postcss": "^7.0.0" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" } }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.39" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", - "dev": true } } }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - } + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true }, - "deasync": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.20.tgz", - "integrity": "sha512-E1GI7jMI57hL30OX6Ht/hfQU8DO4AuB9m72WFm4c38GNbUD4Q03//XZaOIHZiY+H1xUaomcot5yk2q/qIZQkGQ==", + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "bindings": "^1.5.0", - "node-addon-api": "^1.7.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "color-name": "~1.1.4" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - } + "delayed-stream": "~1.0.0" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "conventional-changelog": { + "version": "3.1.24", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.24.tgz", + "integrity": "sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" } }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, "requires": { - "path-type": "^4.0.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "q": "^1.5.1" } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", - "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", - "dev": true - }, - "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true - } + "q": "^1.5.1" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "conventional-changelog-conventionalcommits": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", + "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", "dev": true, "requires": { - "webidl-conversions": "^4.0.2" + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" } }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + } + }, + "conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", "dev": true, "requires": { - "domelementtype": "1" + "q": "^1.5.1" } }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "q": "^1.5.1" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", "dev": true, "requires": { - "is-obj": "^2.0.0" + "q": "^1.5.1" } }, - "dotenv": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", "dev": true, "requires": { - "readable-stream": "^2.0.2" + "q": "^1.5.1" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.570", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz", - "integrity": "sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg==", + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" } }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true + "conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "requires": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + } }, - "envinfo": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", - "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", - "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "safe-buffer": "~5.1.1" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } } } }, - "eslint": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz", - "integrity": "sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.1.3", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "browserslist": "^4.19.1", + "semver": "7.0.0" }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } }, - "eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } + "core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true }, - "eslint-plugin-prettier": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", - "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { - "prettier-linter-helpers": "^1.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "cssom": "~0.3.6" }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } } }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "assert-plus": "^1.0.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "ms": "2.1.2" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "estraverse": "^5.2.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true } } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "evp_bytestokey": { + "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "clone": "^1.0.2" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "object-keys": "^1.0.12" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -3844,1621 +3540,1657 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "falafel": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", - "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "foreach": "^2.0.5", - "isarray": "^2.0.1", - "object-keys": "^1.0.6" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "path-type": "^4.0.0" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", "dev": true, "requires": { - "reusify": "^1.0.4" + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "electron-to-chromium": { + "version": "1.4.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", + "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", "dev": true }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "once": "^1.4.0" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "ansi-colors": "^4.1.1" } }, - "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "semver-regex": "^2.0.0" + "is-arrayish": "^0.2.1" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "es-abstract": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", + "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "esbuild": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.30.tgz", + "integrity": "sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.30", + "esbuild-android-arm64": "0.14.30", + "esbuild-darwin-64": "0.14.30", + "esbuild-darwin-arm64": "0.14.30", + "esbuild-freebsd-64": "0.14.30", + "esbuild-freebsd-arm64": "0.14.30", + "esbuild-linux-32": "0.14.30", + "esbuild-linux-64": "0.14.30", + "esbuild-linux-arm": "0.14.30", + "esbuild-linux-arm64": "0.14.30", + "esbuild-linux-mips64le": "0.14.30", + "esbuild-linux-ppc64le": "0.14.30", + "esbuild-linux-riscv64": "0.14.30", + "esbuild-linux-s390x": "0.14.30", + "esbuild-netbsd-64": "0.14.30", + "esbuild-openbsd-64": "0.14.30", + "esbuild-sunos-64": "0.14.30", + "esbuild-windows-32": "0.14.30", + "esbuild-windows-64": "0.14.30", + "esbuild-windows-arm64": "0.14.30" + } + }, + "esbuild-android-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.30.tgz", + "integrity": "sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==", "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "optional": true }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "esbuild-android-arm64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.30.tgz", + "integrity": "sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } + "optional": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "esbuild-darwin-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.30.tgz", + "integrity": "sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg==", + "dev": true, + "optional": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "esbuild-darwin-arm64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.30.tgz", + "integrity": "sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw==", + "dev": true, + "optional": true }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true + "esbuild-freebsd-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.30.tgz", + "integrity": "sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w==", + "dev": true, + "optional": true }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", - "dev": true + "esbuild-freebsd-arm64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.30.tgz", + "integrity": "sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw==", + "dev": true, + "optional": true }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true + "esbuild-linux-32": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.30.tgz", + "integrity": "sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ==", + "dev": true, + "optional": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "esbuild-linux-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.30.tgz", + "integrity": "sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw==", + "dev": true, + "optional": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "esbuild-linux-arm": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.30.tgz", + "integrity": "sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } + "optional": true }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "esbuild-linux-arm64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.30.tgz", + "integrity": "sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "optional": true }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "esbuild-linux-mips64le": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.30.tgz", + "integrity": "sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg==", "dev": true, - "requires": { - "is-glob": "^4.0.1" - } + "optional": true }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true + "esbuild-linux-ppc64le": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.30.tgz", + "integrity": "sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A==", + "dev": true, + "optional": true }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "esbuild-linux-riscv64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.30.tgz", + "integrity": "sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw==", "dev": true, - "requires": { - "type-fest": "^0.8.1" - } + "optional": true }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "esbuild-linux-s390x": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.30.tgz", + "integrity": "sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A==", "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } + "optional": true }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "esbuild-netbsd-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.30.tgz", + "integrity": "sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ==", + "dev": true, + "optional": true }, - "grapheme-breaker": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", - "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", + "esbuild-openbsd-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.30.tgz", + "integrity": "sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA==", "dev": true, - "requires": { - "brfs": "^1.2.0", - "unicode-trie": "^0.3.1" - } + "optional": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "esbuild-sunos-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.30.tgz", + "integrity": "sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw==", + "dev": true, + "optional": true }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "esbuild-windows-32": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.30.tgz", + "integrity": "sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA==", "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } + "optional": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "esbuild-windows-64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.30.tgz", + "integrity": "sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ==", "dev": true, - "requires": { - "function-bind": "^1.1.1" - } + "optional": true }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "esbuild-windows-arm64": { + "version": "0.14.30", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.30.tgz", + "integrity": "sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } + "optional": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" } } } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "eslint": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } } } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", "dev": true, "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "confusing-browser-globals": "^1.0.9" } }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "whatwg-encoding": "^1.0.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "html-tags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz", - "integrity": "sha1-x43mW1Zjqll5id0rerSSANfk25g=", - "dev": true - }, - "htmlnano": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.6.tgz", - "integrity": "sha512-HUY/99maFsWX2LRoGJpZ/8QRLCkyY0UU1El3wgLLFAHQlD3mCxCJJNcWJk5SBqaU49MLhIWVDW6cGBeuemvaPQ==", - "dev": true, - "requires": { - "cssnano": "^4.1.10", - "normalize-html-whitespace": "^1.0.0", - "posthtml": "^0.13.1", - "posthtml-render": "^1.2.2", - "purgecss": "^2.3.0", - "svgo": "^1.3.2", - "terser": "^4.8.0", - "uncss": "^0.17.3" + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "dependencies": { - "posthtml": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.3.tgz", - "integrity": "sha512-5NL2bBc4ihAyoYnY0EAQrFQbJNE1UdvgC1wjYts0hph7jYeU2fa5ki3/9U45ce9V6M1vLMEgUX2NXe/bYL+bCQ==", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "posthtml-parser": "^0.5.0", - "posthtml-render": "^1.2.3" + "ms": "^2.1.1" } }, - "posthtml-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.0.tgz", - "integrity": "sha512-BsZFAqOeX9lkJJPKG2JmGgtm6t++WibU7FeS40FNNGZ1KS2szRSRQ8Wr2JLvikDgAecrQ/9V4sjugTAin2+KVw==", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "htmlparser2": "^3.9.2" + "p-try": "^1.0.0" } }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "p-limit": "^1.1.0" } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", "dev": true, "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "lodash": "^4.17.15" + } + }, + "eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "esutils": "^2.0.2" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "prettier-linter-helpers": "^1.0.0" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "husky": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.0.tgz", - "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^3.2.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" + "eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "eslint-plugin-react-hooks": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", + "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "estraverse": "^5.2.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "is-binary-path": { + "estree-walker": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "is-callable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz", - "integrity": "sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==", + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "expect": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", + "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-styles": "^4.0.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "is-html": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz", - "integrity": "sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "html-tags": "^1.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { - "isobject": "^3.0.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" } }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "reusify": "^1.0.4" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "flat-cache": "^3.0.4" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", - "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.4", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.3", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.5.0", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.2", - "xml-name-validator": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "p-locate": "^5.0.0" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "yocto-queue": "^0.1.0" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "p-limit": "^3.0.2" } } } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "map-cache": "^0.2.2" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "leven": "^3.1.0" + "null-check": "^1.0.0" } }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "requires": { - "p-locate": "^4.1.0" - } + "optional": true }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, "requires": { - "chalk": "^2.0.1" + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } - } - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "requires": { - "vlq": "^0.2.2" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "assert-plus": "^1.0.0" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" } }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + } }, - "merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "meow": "^8.0.0", + "semver": "^6.0.0" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "ini": "^1.3.2" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "mime-db": "1.44.0" + "is-glob": "^4.0.1" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "type-fest": "^0.20.2" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true, "optional": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, - "node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } }, - "node-forge": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", - "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" } }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", - "dev": true - }, - "normalize-html-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz", - "integrity": "sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==", + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { - "boolbase": "~1.0.0" + "has-symbols": "^1.0.2" } }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -5466,232 +5198,2739 @@ } } }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "humanize-duration": { + "version": "3.27.1", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.1.tgz", + "integrity": "sha512-jCVkMl+EaM80rrMrAPl96SGG4NRac53UyI1o/yAzebDntEY6K6/Fj2HOjdPg8omTqIe5Y0wPBai2q5xXrIbarA==", + "dev": true + }, + "husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "isobject": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "isobject": "^3.0.1" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "kind-of": "^3.0.2" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" } } } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { - "ee-first": "1.1.1" + "has-bigints": "^1.0.1" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "wrappy": "1" + "binary-extensions": "^2.0.0" } }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "ci-info": "^2.0.0" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "has": "^1.0.3" } }, - "ora": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "chalk": "^2.3.1", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.1.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^4.0.0", - "wcwidth": "^1.0.1" + "kind-of": "^3.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "is-buffer": "^1.1.5" } } } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "has-tostringtag": "^1.0.0" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", + "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "import-local": "^3.0.2", + "jest-cli": "^25.5.4" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "jest-cli": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz", + "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^25.5.4", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "prompts": "^2.0.1", + "realpath-native": "^2.0.0", + "yargs": "^15.3.1" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz", + "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "execa": "^3.2.0", + "throat": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + } + } + }, + "jest-config": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz", + "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^25.5.4", + "@jest/types": "^25.5.0", + "babel-jest": "^25.5.1", + "chalk": "^3.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^25.5.0", + "jest-environment-node": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-jasmine2": "^25.5.4", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "micromatch": "^4.0.2", + "pretty-format": "^25.5.0", + "realpath-native": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-docblock": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz", + "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz", + "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", + "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "jsdom": "^15.2.1" + } + }, + "jest-environment-node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz", + "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-jasmine2": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", + "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^25.5.0", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "co": "^4.6.0", + "expect": "^25.5.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^25.5.0", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0", + "throat": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-leak-detector": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", + "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", + "dev": true, + "requires": { + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + } + }, + "jest-matcher-utils": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", + "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-resolve": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz", + "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "browser-resolve": "^1.11.3", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.1", + "read-pkg-up": "^7.0.1", + "realpath-native": "^2.0.0", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "jest-resolve-dependencies": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", + "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-snapshot": "^25.5.1" + } + }, + "jest-runner": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz", + "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-docblock": "^25.3.0", + "jest-haste-map": "^25.5.1", + "jest-jasmine2": "^25.5.4", + "jest-leak-detector": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "jest-runtime": "^25.5.4", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-runtime": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz", + "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/globals": "^25.5.2", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz", + "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/prettier": "^1.19.0", + "chalk": "^3.0.0", + "expect": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "make-dir": "^3.0.0", + "natural-compare": "^1.4.0", + "pretty-format": "^25.5.0", + "semver": "^6.3.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.5.0.tgz", + "integrity": "sha512-4r36w9vU8+rdg48hj0Z7TvcSqVP6Ao8dk04grlHQNgduyCB0SqrI0xWIl85ZhXrzYvxQ0N5H+rRLAejkQzEHeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "jest-regex-util": "^25.2.1", + "jest-watcher": "^25.2.4", + "slash": "^3.0.0", + "string-length": "^3.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-watcher": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", + "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "jest-util": "^25.5.0", + "string-length": "^3.1.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "jpjs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jpjs/-/jpjs-1.2.1.tgz", + "integrity": "sha512-GxJWybWU4NV0RNKi6EIqk6IRPOTqd/h+U7sbtyuD7yUISUzV78LdHnq2xkevJsTlz/EImux4sWj+wfMiwKLkiw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", + "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "lint-staged": { + "version": "12.3.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.7.tgz", + "integrity": "sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.3", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^4.0.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.0", + "pidtree": "^0.5.0", + "string-argv": "^0.3.1", + "supports-color": "^9.2.1", + "yaml": "^1.10.2" + }, + "dependencies": { + "supports-color": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", + "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==", + "dev": true + } + } + }, + "listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "nanospinner": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.0.0.tgz", + "integrity": "sha512-14c2r2QQ9xfTmdbqdF51FKCNvww+0ZON9GeEHur+pBdOufoFvxD4CZQRaYWmFrGH3Nuv7PZ/9Q+wsV+hFSp32g==", + "dev": true, + "requires": { + "picocolors": "^1.0.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-notifier": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", + "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.1.1", + "semver": "^6.3.0", + "shellwords": "^0.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "optional": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" } }, "p-try": { @@ -5700,112 +7939,224 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } }, - "parcel-bundler": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz", - "integrity": "sha512-G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==", + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.4.4", - "@babel/generator": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/plugin-transform-flow-strip-types": "^7.4.4", - "@babel/plugin-transform-modules-commonjs": "^7.4.4", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/preset-env": "^7.4.4", - "@babel/runtime": "^7.4.4", - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4", - "@iarna/toml": "^2.2.0", - "@parcel/fs": "^1.11.0", - "@parcel/logger": "^1.11.1", - "@parcel/utils": "^1.11.0", - "@parcel/watcher": "^1.12.1", - "@parcel/workers": "^1.11.0", - "ansi-to-html": "^0.6.4", - "babylon-walk": "^1.0.2", - "browserslist": "^4.1.0", - "chalk": "^2.1.0", - "clone": "^2.1.1", - "command-exists": "^1.2.6", - "commander": "^2.11.0", - "core-js": "^2.6.5", - "cross-spawn": "^6.0.4", - "css-modules-loader-core": "^1.1.0", - "cssnano": "^4.0.0", - "deasync": "^0.1.14", - "dotenv": "^5.0.0", - "dotenv-expand": "^5.1.0", - "envinfo": "^7.3.1", - "fast-glob": "^2.2.2", - "filesize": "^3.6.0", - "get-port": "^3.2.0", - "htmlnano": "^0.2.2", - "is-glob": "^4.0.0", - "is-url": "^1.2.2", - "js-yaml": "^3.10.0", - "json5": "^1.0.1", - "micromatch": "^3.0.4", - "mkdirp": "^0.5.1", - "node-forge": "^0.7.1", - "node-libs-browser": "^2.0.0", - "opn": "^5.1.0", - "postcss": "^7.0.11", - "postcss-value-parser": "^3.3.1", - "posthtml": "^0.11.2", - "posthtml-parser": "^0.4.0", - "posthtml-render": "^1.1.3", - "resolve": "^1.4.0", - "semver": "^5.4.1", - "serialize-to-js": "^3.0.0", - "serve-static": "^1.12.4", - "source-map": "0.6.1", - "terser": "^3.7.3", - "v8-compile-cache": "^2.0.0", - "ws": "^5.1.1" + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", + "integrity": "sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "progress-estimator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/progress-estimator/-/progress-estimator-0.2.2.tgz", + "integrity": "sha512-GF76Ac02MTJD6o2nMNtmtOFjwWCnHcvXyn5HOWPQnEMO8OTLw7LAvNmrwe8LmdsB+eZhwUu9fX/c9iQnBxWaFA==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-spinners": "^1.3.1", + "humanize-duration": "^3.15.3", + "log-update": "^2.3.0" }, "dependencies": { - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "color-convert": "^1.9.0" } }, "chalk": { @@ -5819,122 +8170,254 @@ "supports-color": "^5.3.0" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "restore-cursor": "^2.0.0" } }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "color-name": "1.1.3" } }, - "fill-range": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "ansi-regex": "^3.0.0" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "has-flag": "^3.0.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "pify": "^3.0.0" } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "semver": { @@ -5942,229 +8425,455 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "locate-path": "^2.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "p-try": "^1.0.0" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "isexe": "^2.0.0" + "p-limit": "^1.1.0" } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "callsites": "^3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "picomatch": "^2.2.1" } }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "resolve": "^1.1.6" } }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", - "dev": true + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, - "path-dirname": { + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "dev": true }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "physical-cpu-count": { + "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", - "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { - "find-up": "^4.0.0" + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "semver-compare": "^1.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "postcss": { - "version": "7.0.34", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.34.tgz", - "integrity": "sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "rollup-plugin-sourcemaps": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", + "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.9", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } + } + }, + "rollup-plugin-terser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", + "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^4.0.0", + "terser": "^4.6.2" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" } }, "supports-color": { @@ -6178,1412 +8887,1291 @@ } } }, - "postcss-calc": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz", - "integrity": "sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==", + "rollup-plugin-typescript2": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", + "integrity": "sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==", "dev": true, "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "@rollup/pluginutils": "^3.1.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "8.1.0", + "resolve": "1.17.0", + "tslib": "2.0.1" }, "dependencies": { - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true } } }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } } }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { - "postcss": "^7.0.0" + "queue-microtask": "^1.2.2" } }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "dev": true, "requires": { - "postcss": "^7.0.0" + "tslib": "^2.1.0" } }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, "requires": { - "postcss": "^7.0.0" + "mri": "^1.1.0" } }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" + "ret": "~0.1.10" } }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", "dev": true, "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "pump": "^3.0.0" } }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "remove-trailing-separator": "^1.0.1" } }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "path-key": "^2.0.0" } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "isexe": "^2.0.0" } } } }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "posthtml": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz", - "integrity": "sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==", + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", "dev": true, "requires": { - "posthtml-parser": "^0.4.1", - "posthtml-render": "^1.1.5" + "xmlchars": "^2.1.1" } }, - "posthtml-parser": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz", - "integrity": "sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "htmlparser2": "^3.9.2" + "lru-cache": "^6.0.0" } }, - "posthtml-render": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.3.tgz", - "integrity": "sha512-rGGayND//VwTlsYKNqdILsA7U/XP0WJa6SMcdAEoqc2WRM5QExplGg/h9qbTuHz7mc2PvaXU+6iNxItvr5aHMg==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", - "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { - "fast-diff": "^1.1.2" + "randombytes": "^2.1.0" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "process-nextick-args": { + "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "purgecss": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz", - "integrity": "sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { - "commander": "^5.0.0", - "glob": "^7.0.0", - "postcss": "7.0.32", - "postcss-selector-parser": "^6.0.2" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true - }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-extendable": "^0.1.0" } } } }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "quote-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", - "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, "requires": { - "buffer-equal": "0.0.1", - "minimist": "^1.1.3", - "through2": "^2.0.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "size-limit": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-7.0.8.tgz", + "integrity": "sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==", "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "ci-job-number": "^1.2.2", + "globby": "^11.1.0", + "lilconfig": "^2.0.4", + "mkdirp": "^1.0.4", + "nanospinner": "^1.0.0", + "picocolors": "^1.0.0" } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true + } } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "ms": "2.0.0" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-descriptor": "^0.1.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-extendable": "^0.1.0" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "is-descriptor": "^1.0.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "jsesc": "~0.5.0" + "kind-of": "^3.2.0" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { - "lodash": "^4.17.19" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "rgb-regex": { + "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "glob": "^7.1.3" + "through": "2" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "extend-shallow": "^3.0.0" } }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "requires": { - "ret": "~0.1.10" + "readable-stream": "^3.0.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, "requires": { - "xmlchars": "^2.1.1" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true + "stack-utils": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", + "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "standard-version": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.2.tgz", + "integrity": "sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.24", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.1", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "fs-access": "^1.0.1", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "color-convert": "^1.9.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } } } }, - "serialize-to-js": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.1.tgz", - "integrity": "sha512-F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA==", + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "ansi-regex": "^6.0.1" } } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", "dev": true }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "ansi-regex": "^5.0.1" } }, - "shebang-regex": { + "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } + "min-indent": "^1.0.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "has-flag": "^4.0.0" } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "color-convert": "^1.9.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "color-name": "1.1.3" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "ansi-regex": "^4.1.0" } } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7597,99 +10185,546 @@ } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "is-number": "^7.0.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "punycode": "^2.1.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "ts-jest": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", + "integrity": "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "micromatch": "4.x", + "mkdirp": "0.x", + "semver": "6.x", + "yargs-parser": "18.x" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } } }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "tsdx": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/tsdx/-/tsdx-0.14.1.tgz", + "integrity": "sha512-keHmFdCL2kx5nYFlBdbE3639HQ2v9iGedAFAajobrUTH2wfX0nLPdDhbHv+GHLQZqf0c5ur1XteE8ek/+Eyj5w==", "dev": true, "requires": { - "escodegen": "^1.11.1" + "@babel/core": "^7.4.4", + "@babel/helper-module-imports": "^7.0.0", + "@babel/parser": "^7.11.5", + "@babel/plugin-proposal-class-properties": "^7.4.4", + "@babel/preset-env": "^7.11.0", + "@babel/traverse": "^7.11.5", + "@rollup/plugin-babel": "^5.1.0", + "@rollup/plugin-commonjs": "^11.0.0", + "@rollup/plugin-json": "^4.0.0", + "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-replace": "^2.2.1", + "@types/jest": "^25.2.1", + "@typescript-eslint/eslint-plugin": "^2.12.0", + "@typescript-eslint/parser": "^2.12.0", + "ansi-escapes": "^4.2.1", + "asyncro": "^3.0.0", + "babel-eslint": "^10.0.3", + "babel-plugin-annotate-pure-calls": "^0.4.0", + "babel-plugin-dev-expression": "^0.2.1", + "babel-plugin-macros": "^2.6.1", + "babel-plugin-polyfill-regenerator": "^0.0.4", + "babel-plugin-transform-rename-import": "^2.3.0", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "enquirer": "^2.3.4", + "eslint": "^6.1.0", + "eslint-config-prettier": "^6.0.0", + "eslint-config-react-app": "^5.2.1", + "eslint-plugin-flowtype": "^3.13.0", + "eslint-plugin-import": "^2.18.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-prettier": "^3.1.0", + "eslint-plugin-react": "^7.14.3", + "eslint-plugin-react-hooks": "^2.2.0", + "execa": "^4.0.3", + "fs-extra": "^9.0.0", + "jest": "^25.3.0", + "jest-watch-typeahead": "^0.5.0", + "jpjs": "^1.2.1", + "lodash.merge": "^4.6.2", + "ora": "^4.0.3", + "pascal-case": "^3.1.1", + "prettier": "^1.19.1", + "progress-estimator": "^0.2.2", + "regenerator-runtime": "^0.13.7", + "rollup": "^1.32.1", + "rollup-plugin-sourcemaps": "^0.6.2", + "rollup-plugin-terser": "^5.1.2", + "rollup-plugin-typescript2": "^0.27.3", + "sade": "^1.4.2", + "semver": "^7.1.1", + "shelljs": "^0.8.3", + "tiny-glob": "^0.2.6", + "ts-jest": "^25.3.1", + "tslib": "^1.9.3", + "typescript": "^3.7.3" }, "dependencies": { - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "@typescript-eslint/eslint-plugin": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", + "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.34.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/parser": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", + "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-plugin-prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "pump": "^3.0.0" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "levn": { @@ -7702,6 +10737,15 @@ "type-check": "~0.3.2" } }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -7716,455 +10760,127 @@ "word-wrap": "~1.2.3" } }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "static-module": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", - "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", - "dev": true, - "requires": { - "concat-stream": "~1.6.0", - "convert-source-map": "^1.5.1", - "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", - "falafel": "^2.1.0", - "has": "^1.0.1", - "magic-string": "^0.22.4", - "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", - "quote-stream": "~1.0.2", - "readable-stream": "~2.3.3", - "shallow-copy": "~0.0.1", - "static-eval": "^2.0.0", - "through2": "~2.0.3" - }, - "dependencies": { - "object-inspect": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", - "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "glob": "^7.1.3" } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "shebang-regex": "^1.0.0" } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "terser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.10" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -8189,10 +10905,16 @@ "prelude-ls": "^1.2.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "typedarray": { @@ -8201,75 +10923,68 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", - "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", "dev": true }, - "uncss": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz", - "integrity": "sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==", + "uglify-js": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", + "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", + "dev": true, + "optional": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { - "commander": "^2.20.0", - "glob": "^7.1.4", - "is-absolute-url": "^3.0.1", - "is-html": "^1.1.0", - "jsdom": "^14.1.0", - "lodash": "^4.17.15", - "postcss": "^7.0.17", - "postcss-selector-parser": "6.0.2", - "request": "^2.88.0" - }, - "dependencies": { - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - } + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true }, "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, - "unicode-trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", - "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", - "dev": true, - "requires": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - } - }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -8282,22 +10997,10 @@ "set-value": "^2.0.1" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { + "universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, "unset-value": { @@ -8340,16 +11043,10 @@ } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -8361,86 +11058,18 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -8448,16 +11077,39 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true + "v8-to-istanbul": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } }, "verror": { "version": "1.10.0", @@ -8468,20 +11120,16 @@ "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + } } }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -8502,6 +11150,15 @@ "xml-name-validator": "^3.0.0" } }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -8552,10 +11209,23 @@ "isexe": "^2.0.0" } }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "word-wrap": { @@ -8564,6 +11234,48 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -8577,17 +11289,37 @@ "dev": true, "requires": { "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } } }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -8606,10 +11338,74 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } diff --git a/package.json b/package.json index 4ae6c4d..749ab9a 100644 --- a/package.json +++ b/package.json @@ -2,36 +2,78 @@ "name": "web-digraph", "version": "0.1.1", "description": "A library to create directed graph editor on the web.", + "author": "Hartono Chandra", "repository": { "url": "https://github.com/harchcode/web-digraph" }, "main": "dist/index.js", "types": "dist/index.d.ts", - "keywords": ["graph", "digraph"], + "keywords": [ + "graph", + "digraph" + ], "license": "MIT", + "module": "dist/web-digraph.esm.js", + "typings": "dist/index.d.ts", + "files": [ + "dist", + "src" + ], + "engines": { + "node": ">=12" + }, "scripts": { - "dev:example": "parcel src/example/index.html --port 1234 --hmr-port 1235", - "build:example": "rm -rf dist-example && parcel build src/example/index.html --out-dir dist-example", - "test": "echo \"Error: no test specified\" && exit 1", - "build": "rm -rf dist && tsc src/index.ts --outDir dist --declaration", - "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"", - "lint": "eslint './{src,test}/**/*.{js,ts}'" + "start": "tsdx watch", + "build": "tsdx build", + "test": "tsdx test", + "test:clear": "tsdx test --clearCache", + "lint": "eslint src test", + "lint-staged": "lint-staged", + "prepare": "husky install", + "size": "size-limit", + "analyze": "size-limit --why", + "release": "standard-version", + "generate-docs": "typedoc --out docs src/index.ts" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.1.1", - "@typescript-eslint/parser": "^4.1.1", - "@webcomponents/custom-elements": "^1.4.2", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.11.0", - "eslint-plugin-prettier": "^3.1.4", - "husky": "^4.3.0", - "parcel-bundler": "^1.12.4", - "prettier": "^2.1.2", - "typescript": "^4.0.3" + "@size-limit/preset-small-lib": "^7.0.8", + "@typescript-eslint/eslint-plugin": "^5.17.0", + "@typescript-eslint/parser": "^5.17.0", + "eslint": "^8.12.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "husky": "^7.0.4", + "lint-staged": "^12.3.7", + "prettier": "^2.6.1", + "size-limit": "^7.0.8", + "standard-version": "^9.3.2", + "tsdx": "^0.14.1", + "tslib": "^2.3.1", + "typescript": "^4.6.3" + }, + "lint-staged": { + "{src,test}/**/*.{js,ts}": [ + "eslint" + ] }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" + "size-limit": [ + { + "path": "dist/web-digraph.cjs.production.min.js", + "limit": "10 KB" + }, + { + "path": "dist/web-digraph.esm.js", + "limit": "10 KB" + } + ], + "jest": { + "coverageThreshold": { + "global": { + "branches": 0, + "functions": 0, + "lines": 0, + "statements": 0 + } } } } diff --git a/tsconfig.json b/tsconfig.json index d5a8e74..568b63f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,37 @@ { + // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs + "include": ["src", "types"], "compilerOptions": { - "module": "commonjs", - "target": "es5", + "module": "esnext", + "target": "esnext", + "lib": ["dom", "esnext"], + "importHelpers": true, + // output .d.ts declaration files for consumers "declaration": true, + // output .js.map sourcemap files for consumers + "sourceMap": true, + // match output dir to input dir. e.g. dist/index instead of dist/src/index + "rootDir": "./src", + // stricter type-checking for stronger correctness. Recommended by TS + "strict": true, + // linter checks for common issues + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative + "noUnusedLocals": true, + "noUnusedParameters": true, + // use Node's module resolution algorithm, instead of the legacy TS one + "moduleResolution": "node", + // transpile JSX to React.createElement + "jsx": "react", + // interop between ESM and CJS modules. Recommended by TS + "esModuleInterop": true, + // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS "skipLibCheck": true, - "esModuleInterop": true - }, - "include": ["src/**/*"] + // error out if import and file system have a casing mismatch. Recommended by TS + "forceConsistentCasingInFileNames": true, + // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` + "noEmit": true, + "downlevelIteration": true + } } From 7204fe103a9e32f2f3ad6896aa82995e243fda93 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 2 Apr 2022 21:42:57 +0700 Subject: [PATCH 05/56] remove cache and add to gitignore --- .cache/05/db7a47489528a4520720c6b723d48c.json | 1 - .cache/17/5dc020bbff5329b93b5244c56ccb55.json | 1 - .cache/18/2b115ee70b2bcead4c63e6276c075e.json | 1 - .cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json | 1 - .cache/56/a5e5810e9f1bf24cc69cd25889e30f.json | 1 - .cache/6a/fe7693a37c74e8fe750eea0303096a.json | 1 - .cache/8a/45b276546564a899bc98d01c1485d1.json | 1 - .cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json | 1 - .cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json | 1 - .cache/a8/346376fc3bacab5e9b27a7d40d0396.json | 1 - .cache/b8/64c6455411c25dcfe047430f377131.json | 1 - .cache/c8/311f5b0fe21736d57e08222dbdaf1b.json | 1 - .cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json | 1 - .cache/f5/b28d209f209bcff4b5b54fdda998f3.json | 1 - .cache/fd/e02fd302f16baaafc5facbaaf5d11c.json | 1 - .cache/ff/924b57b58436315cf5fc93aa4d4655.json | 1 - .gitignore | 3 ++- 17 files changed, 2 insertions(+), 17 deletions(-) delete mode 100644 .cache/05/db7a47489528a4520720c6b723d48c.json delete mode 100644 .cache/17/5dc020bbff5329b93b5244c56ccb55.json delete mode 100644 .cache/18/2b115ee70b2bcead4c63e6276c075e.json delete mode 100644 .cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json delete mode 100644 .cache/56/a5e5810e9f1bf24cc69cd25889e30f.json delete mode 100644 .cache/6a/fe7693a37c74e8fe750eea0303096a.json delete mode 100644 .cache/8a/45b276546564a899bc98d01c1485d1.json delete mode 100644 .cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json delete mode 100644 .cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json delete mode 100644 .cache/a8/346376fc3bacab5e9b27a7d40d0396.json delete mode 100644 .cache/b8/64c6455411c25dcfe047430f377131.json delete mode 100644 .cache/c8/311f5b0fe21736d57e08222dbdaf1b.json delete mode 100644 .cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json delete mode 100644 .cache/f5/b28d209f209bcff4b5b54fdda998f3.json delete mode 100644 .cache/fd/e02fd302f16baaafc5facbaaf5d11c.json delete mode 100644 .cache/ff/924b57b58436315cf5fc93aa4d4655.json diff --git a/.cache/05/db7a47489528a4520720c6b723d48c.json b/.cache/05/db7a47489528a4520720c6b723d48c.json deleted file mode 100644 index 3c10523..0000000 --- a/.cache/05/db7a47489528a4520720c6b723d48c.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"nodeTypes.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1601972876654},{"name":"../types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/nodeTypes.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.edgeTypes = exports.nodeTypes = void 0;\n\nvar types_1 = require(\"../types\");\n\nexports.nodeTypes = {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }],\n decision: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }],\n unknown: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -80], [80, 0], [0, 80], [-80, 0]]\n }],\n complex: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }]\n};\nexports.edgeTypes = {\n normal: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -25], [25, 0], [0, 25], [-25, 0]]\n }],\n round: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25\n }],\n double: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }]\n};"},"sourceMaps":{"js":{"mappings":[{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":10,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":7},"generated":{"line":11,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":11,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":11,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":11},"generated":{"line":12,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":12,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":12,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":7},"generated":{"line":13,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":7,"column":9},"generated":{"line":13,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":14,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":14,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":14,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":10},"generated":{"line":15,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":15,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":15,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":11},"generated":{"line":16,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":12,"column":25},"generated":{"line":16,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":16,"column":40}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":11},"generated":{"line":17,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":13,"column":13},"generated":{"line":17,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":17,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":12},"generated":{"line":18,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":18,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":19,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":19,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":19,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":20,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":20,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":20,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":21,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":21,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":12},"generated":{"line":22,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":22,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":15}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":22,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":22,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":23}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":9},"generated":{"line":22,"column":24}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":26}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":22,"column":28}},{"source":"nodeTypes.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":29}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":9},"generated":{"line":22,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":34}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":12},"generated":{"line":22,"column":36}},{"source":"nodeTypes.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":39}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":41}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":22,"column":42}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":22,"column":43}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":45}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":14},"generated":{"line":22,"column":47}},{"source":"nodeTypes.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":48}},{"source":"nodeTypes.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":49}},{"source":"nodeTypes.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":23,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":23,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":23,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":24,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":24,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":24,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":11},"generated":{"line":25,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":30,"column":25},"generated":{"line":25,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":25,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":7},"generated":{"line":26,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":26,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":27,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":27,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":27,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":11},"generated":{"line":28,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":34,"column":25},"generated":{"line":28,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":28,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":7},"generated":{"line":29,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":29,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":30,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":36,"column":13},"generated":{"line":30,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":31,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":31,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":31,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":32,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":39,"column":25},"generated":{"line":32,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":32,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":7},"generated":{"line":33,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":33,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":33,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":11},"generated":{"line":34,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":41,"column":13},"generated":{"line":34,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":35,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":35,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":36,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":36,"column":1}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":37,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":38,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":38,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":38,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":39,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":49,"column":25},"generated":{"line":39,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":39,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":40,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":12}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":13}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":40,"column":14}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":15}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":40,"column":17}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":13},"generated":{"line":40,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":20}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":21}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":23}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":40,"column":24}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":26}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":40,"column":28}},{"source":"nodeTypes.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":29}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":32}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":40,"column":33}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":34}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":40,"column":36}},{"source":"nodeTypes.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":38}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":39}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":41}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":40,"column":42}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":40,"column":43}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":45}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":14},"generated":{"line":40,"column":47}},{"source":"nodeTypes.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":48}},{"source":"nodeTypes.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":49}},{"source":"nodeTypes.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":41,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":41,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":41,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":7},"generated":{"line":42,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":42,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":42,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":11},"generated":{"line":43,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":60,"column":25},"generated":{"line":43,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":43,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":7},"generated":{"line":44,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":61,"column":9},"generated":{"line":44,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":45,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":45,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":45,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":2}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":8},"generated":{"line":46,"column":8}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":46,"column":10}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":46,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":47,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":66,"column":25},"generated":{"line":47,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":47,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":7},"generated":{"line":48,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":48,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":48,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":11},"generated":{"line":49,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":49,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":50,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":50,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":50,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":51,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":18}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":19}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":30}},{"source":"nodeTypes.ts","name":null,"original":{"line":71,"column":25},"generated":{"line":51,"column":31}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":51,"column":37}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":52,"column":5}},{"source":"nodeTypes.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":52,"column":7}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":52,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":4}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":11},"generated":{"line":53,"column":9}},{"source":"nodeTypes.ts","name":null,"original":{"line":73,"column":13},"generated":{"line":53,"column":11}},{"source":"nodeTypes.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":54,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":54,"column":3}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":55,"column":0}},{"source":"nodeTypes.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":55,"column":1}}],"sources":{"nodeTypes.ts":"import { GEShapeTypes, GEShapeName } from \"../types\";\n\nexport const nodeTypes: GEShapeTypes = {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ],\n decision: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }\n ],\n unknown: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -80],\n [80, 0],\n [0, 80],\n [-80, 0]\n ]\n }\n ],\n complex: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }\n ]\n};\n\nexport const edgeTypes: GEShapeTypes = {\n normal: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -25],\n [25, 0],\n [0, 25],\n [-25, 0]\n ]\n }\n ],\n round: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25\n }\n ],\n double: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }\n ]\n};\n"},"lineCount":null}},"error":null,"hash":"497a4137cd0e233456586674549ea60e","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/17/5dc020bbff5329b93b5244c56ccb55.json b/.cache/17/5dc020bbff5329b93b5244c56ccb55.json deleted file mode 100644 index 88be571..0000000 --- a/.cache/17/5dc020bbff5329b93b5244c56ccb55.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"index.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"../index","loc":{"line":10,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/index.ts"},{"name":"./node-types","loc":{"line":11,"column":27},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/example/node-types.ts"},{"name":"./utils","loc":{"line":12,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/example/utils.ts"}],"generated":{"js":"\"use strict\";\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar index_1 = require(\"../index\");\n\nvar node_types_1 = require(\"./node-types\");\n\nvar utils_1 = require(\"./utils\");\n\nvar graphDiv = document.getElementById(\"graph\");\nvar nodeCountSpan = document.getElementById(\"node-count-span\");\nvar edgeCountSpan = document.getElementById(\"edge-count-span\");\nvar zoomSlider = document.getElementById(\"zoom-slider\");\nvar generateTextbox = document.getElementById(\"generate-textbox\");\nvar generateButton = document.getElementById(\"generate-button\");\nvar nodes = [];\nvar edges = [];\nvar lastId = 0;\nvar graphView = new index_1.GEView();\n\nfunction updateNodeCount() {\n nodeCountSpan.innerHTML = nodes.length.toString();\n}\n\nfunction updateEdgeCount() {\n edgeCountSpan.innerHTML = edges.length.toString();\n}\n\nfunction handleCreateNode(x, y) {\n lastId += 1;\n var newNode = {\n id: lastId,\n x: x,\n y: y,\n type: \"empty\",\n text: \"Node ID: \" + lastId\n };\n nodes = __spreadArrays(nodes, [newNode]);\n graphView.setData(nodes, edges);\n updateNodeCount();\n}\n\nfunction handleCreateEdge(sourceNode, targetNode) {\n lastId += 1;\n var newEdge = {\n id: lastId,\n sourceNode: sourceNode,\n targetNode: targetNode,\n type: \"normal\",\n text: lastId.toString()\n };\n edges = __spreadArrays(edges, [newEdge]);\n graphView.setData(nodes, edges);\n updateEdgeCount();\n}\n\nfunction handleDeleteNode(node) {\n nodes = nodes.filter(function (n) {\n return n !== node;\n });\n edges = edges.filter(function (e) {\n return e.sourceNode !== node && e.targetNode !== node;\n });\n graphView.setData(nodes, edges);\n updateNodeCount();\n updateEdgeCount();\n}\n\nfunction handleDeleteEdge(edge) {\n edges = edges.filter(function (e) {\n return e.id !== edge.id;\n });\n graphView.setData(nodes, edges);\n updateEdgeCount();\n}\n\nfunction handleMoveNode(node, newX, newY) {\n node.x = newX;\n node.y = newY;\n}\n\nfunction handleViewZoom() {\n zoomSlider.value = graphView.getScale().toString();\n}\n\ngraphView.setOptions({\n minScale: 0.2,\n maxScale: 3.0,\n nodeTypes: node_types_1.nodeTypes,\n edgeTypes: node_types_1.edgeTypes,\n onViewZoom: handleViewZoom,\n onCreateNode: handleCreateNode,\n onCreateEdge: handleCreateEdge,\n onDeleteNode: handleDeleteNode,\n onDeleteEdge: handleDeleteEdge,\n onMoveNode: handleMoveNode\n});\ngraphView.init(graphDiv);\nwindow.addEventListener(\"resize\", function () {\n graphView.resize(window.innerWidth, window.innerHeight);\n});\nzoomSlider.addEventListener(\"input\", function (e) {\n var target = e.target;\n graphView.zoomTo(Number(target.value));\n});\ngenerateButton.addEventListener(\"click\", function () {\n var value = parseInt(generateTextbox.value, 10);\n var columns = Math.ceil(Math.sqrt(value));\n var r = utils_1.randomize(value, columns);\n lastId = r.lastId;\n nodes = r.nodes;\n edges = r.edges;\n graphView.setData(r.nodes, r.edges);\n updateNodeCount();\n updateEdgeCount();\n});"},"sourceMaps":{"js":{"mappings":[{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":0}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":4}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":11}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":14}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":21}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":22}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":32}},{"source":"index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":21,"column":33}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":0}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":4}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":16}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":19}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":26}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":27}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":41}},{"source":"index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":23,"column":42}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":0}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":4}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":11}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":14}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":21}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":22}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":31}},{"source":"index.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":25,"column":32}},{"source":"index.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":27,"column":0}},{"source":"index.ts","name":null,"original":{"line":5,"column":6},"generated":{"line":27,"column":4}},{"source":"index.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":27,"column":12}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":15}},{"source":"index.ts","name":null,"original":{"line":5,"column":25},"generated":{"line":27,"column":23}},{"source":"index.ts","name":null,"original":{"line":5,"column":26},"generated":{"line":27,"column":24}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":38}},{"source":"index.ts","name":null,"original":{"line":5,"column":41},"generated":{"line":27,"column":39}},{"source":"index.ts","name":null,"original":{"line":5,"column":17},"generated":{"line":27,"column":46}},{"source":"index.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":27,"column":47}},{"source":"index.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":28,"column":0}},{"source":"index.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":28,"column":4}},{"source":"index.ts","name":null,"original":{"line":6,"column":19},"generated":{"line":28,"column":17}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":20}},{"source":"index.ts","name":null,"original":{"line":6,"column":30},"generated":{"line":28,"column":28}},{"source":"index.ts","name":null,"original":{"line":6,"column":31},"generated":{"line":28,"column":29}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":43}},{"source":"index.ts","name":null,"original":{"line":6,"column":46},"generated":{"line":28,"column":44}},{"source":"index.ts","name":null,"original":{"line":6,"column":22},"generated":{"line":28,"column":61}},{"source":"index.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":28,"column":62}},{"source":"index.ts","name":null,"original":{"line":7,"column":0},"generated":{"line":29,"column":0}},{"source":"index.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":29,"column":4}},{"source":"index.ts","name":null,"original":{"line":7,"column":19},"generated":{"line":29,"column":17}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":20}},{"source":"index.ts","name":null,"original":{"line":7,"column":30},"generated":{"line":29,"column":28}},{"source":"index.ts","name":null,"original":{"line":7,"column":31},"generated":{"line":29,"column":29}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":43}},{"source":"index.ts","name":null,"original":{"line":7,"column":46},"generated":{"line":29,"column":44}},{"source":"index.ts","name":null,"original":{"line":7,"column":22},"generated":{"line":29,"column":61}},{"source":"index.ts","name":null,"original":{"line":7,"column":0},"generated":{"line":29,"column":62}},{"source":"index.ts","name":null,"original":{"line":8,"column":0},"generated":{"line":30,"column":0}},{"source":"index.ts","name":null,"original":{"line":8,"column":6},"generated":{"line":30,"column":4}},{"source":"index.ts","name":null,"original":{"line":8,"column":16},"generated":{"line":30,"column":14}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":17}},{"source":"index.ts","name":null,"original":{"line":8,"column":27},"generated":{"line":30,"column":25}},{"source":"index.ts","name":null,"original":{"line":8,"column":28},"generated":{"line":30,"column":26}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":40}},{"source":"index.ts","name":null,"original":{"line":8,"column":43},"generated":{"line":30,"column":41}},{"source":"index.ts","name":null,"original":{"line":8,"column":19},"generated":{"line":30,"column":54}},{"source":"index.ts","name":null,"original":{"line":8,"column":0},"generated":{"line":30,"column":55}},{"source":"index.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":31,"column":0}},{"source":"index.ts","name":null,"original":{"line":9,"column":6},"generated":{"line":31,"column":4}},{"source":"index.ts","name":null,"original":{"line":9,"column":21},"generated":{"line":31,"column":19}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":22}},{"source":"index.ts","name":null,"original":{"line":9,"column":32},"generated":{"line":31,"column":30}},{"source":"index.ts","name":null,"original":{"line":9,"column":33},"generated":{"line":31,"column":31}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":45}},{"source":"index.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":31,"column":46}},{"source":"index.ts","name":null,"original":{"line":9,"column":24},"generated":{"line":31,"column":64}},{"source":"index.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":31,"column":65}},{"source":"index.ts","name":null,"original":{"line":12,"column":0},"generated":{"line":32,"column":0}},{"source":"index.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":32,"column":4}},{"source":"index.ts","name":null,"original":{"line":12,"column":20},"generated":{"line":32,"column":18}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":21}},{"source":"index.ts","name":null,"original":{"line":12,"column":31},"generated":{"line":32,"column":29}},{"source":"index.ts","name":null,"original":{"line":12,"column":32},"generated":{"line":32,"column":30}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":44}},{"source":"index.ts","name":null,"original":{"line":12,"column":47},"generated":{"line":32,"column":45}},{"source":"index.ts","name":null,"original":{"line":12,"column":23},"generated":{"line":32,"column":62}},{"source":"index.ts","name":null,"original":{"line":12,"column":0},"generated":{"line":32,"column":63}},{"source":"index.ts","name":null,"original":{"line":14,"column":0},"generated":{"line":33,"column":0}},{"source":"index.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":33,"column":4}},{"source":"index.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":33,"column":9}},{"source":"index.ts","name":null,"original":{"line":14,"column":22},"generated":{"line":33,"column":12}},{"source":"index.ts","name":null,"original":{"line":14,"column":0},"generated":{"line":33,"column":14}},{"source":"index.ts","name":null,"original":{"line":15,"column":0},"generated":{"line":34,"column":0}},{"source":"index.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":34,"column":4}},{"source":"index.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":34,"column":9}},{"source":"index.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":34,"column":12}},{"source":"index.ts","name":null,"original":{"line":15,"column":0},"generated":{"line":34,"column":14}},{"source":"index.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":35,"column":0}},{"source":"index.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":35,"column":4}},{"source":"index.ts","name":null,"original":{"line":16,"column":10},"generated":{"line":35,"column":10}},{"source":"index.ts","name":null,"original":{"line":16,"column":13},"generated":{"line":35,"column":13}},{"source":"index.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":35,"column":14}},{"source":"index.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":36,"column":0}},{"source":"index.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":36,"column":4}},{"source":"index.ts","name":null,"original":{"line":18,"column":15},"generated":{"line":36,"column":13}},{"source":"index.ts","name":null,"original":{"line":18,"column":18},"generated":{"line":36,"column":16}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":20}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":27}},{"source":"index.ts","name":null,"original":{"line":18,"column":22},"generated":{"line":36,"column":28}},{"source":"index.ts","name":null,"original":{"line":18,"column":18},"generated":{"line":36,"column":34}},{"source":"index.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":36,"column":36}},{"source":"index.ts","name":null,"original":{"line":20,"column":0},"generated":{"line":38,"column":0}},{"source":"index.ts","name":null,"original":{"line":20,"column":9},"generated":{"line":38,"column":9}},{"source":"index.ts","name":null,"original":{"line":20,"column":0},"generated":{"line":38,"column":24}},{"source":"index.ts","name":null,"original":{"line":20,"column":24},"generated":{"line":38,"column":27}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":0}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":2}},{"source":"index.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":39,"column":15}},{"source":"index.ts","name":null,"original":{"line":21,"column":16},"generated":{"line":39,"column":16}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":25}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":28}},{"source":"index.ts","name":null,"original":{"line":21,"column":33},"generated":{"line":39,"column":33}},{"source":"index.ts","name":null,"original":{"line":21,"column":34},"generated":{"line":39,"column":34}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":40}},{"source":"index.ts","name":null,"original":{"line":21,"column":41},"generated":{"line":39,"column":41}},{"source":"index.ts","name":null,"original":{"line":21,"column":28},"generated":{"line":39,"column":49}},{"source":"index.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":39,"column":51}},{"source":"index.ts","name":null,"original":{"line":22,"column":1},"generated":{"line":40,"column":0}},{"source":"index.ts","name":null,"original":{"line":24,"column":0},"generated":{"line":42,"column":0}},{"source":"index.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":42,"column":9}},{"source":"index.ts","name":null,"original":{"line":24,"column":0},"generated":{"line":42,"column":24}},{"source":"index.ts","name":null,"original":{"line":24,"column":24},"generated":{"line":42,"column":27}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":0}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":2}},{"source":"index.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":43,"column":15}},{"source":"index.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":43,"column":16}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":25}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":28}},{"source":"index.ts","name":null,"original":{"line":25,"column":33},"generated":{"line":43,"column":33}},{"source":"index.ts","name":null,"original":{"line":25,"column":34},"generated":{"line":43,"column":34}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":40}},{"source":"index.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":43,"column":41}},{"source":"index.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":43,"column":49}},{"source":"index.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":43,"column":51}},{"source":"index.ts","name":null,"original":{"line":26,"column":1},"generated":{"line":44,"column":0}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":0}},{"source":"index.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":46,"column":9}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":25}},{"source":"index.ts","name":null,"original":{"line":28,"column":26},"generated":{"line":46,"column":26}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":27}},{"source":"index.ts","name":null,"original":{"line":28,"column":37},"generated":{"line":46,"column":29}},{"source":"index.ts","name":null,"original":{"line":28,"column":0},"generated":{"line":46,"column":30}},{"source":"index.ts","name":null,"original":{"line":28,"column":46},"generated":{"line":46,"column":32}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":0}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":2}},{"source":"index.ts","name":null,"original":{"line":29,"column":8},"generated":{"line":47,"column":8}},{"source":"index.ts","name":null,"original":{"line":29,"column":12},"generated":{"line":47,"column":12}},{"source":"index.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":47,"column":13}},{"source":"index.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":48,"column":0}},{"source":"index.ts","name":null,"original":{"line":31,"column":8},"generated":{"line":48,"column":6}},{"source":"index.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":48,"column":13}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":48,"column":16}},{"source":"index.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":49,"column":0}},{"source":"index.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":49,"column":4}},{"source":"index.ts","name":null,"original":{"line":32,"column":6},"generated":{"line":49,"column":6}},{"source":"index.ts","name":null,"original":{"line":32,"column":8},"generated":{"line":49,"column":8}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":49,"column":14}},{"source":"index.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":50,"column":0}},{"source":"index.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":50,"column":4}},{"source":"index.ts","name":null,"original":{"line":33,"column":5},"generated":{"line":50,"column":5}},{"source":"index.ts","name":null,"original":{"line":33,"column":5},"generated":{"line":50,"column":7}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":50,"column":8}},{"source":"index.ts","name":null,"original":{"line":34,"column":4},"generated":{"line":51,"column":0}},{"source":"index.ts","name":null,"original":{"line":34,"column":4},"generated":{"line":51,"column":4}},{"source":"index.ts","name":null,"original":{"line":34,"column":5},"generated":{"line":51,"column":5}},{"source":"index.ts","name":null,"original":{"line":34,"column":5},"generated":{"line":51,"column":7}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":51,"column":8}},{"source":"index.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":52,"column":0}},{"source":"index.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":52,"column":4}},{"source":"index.ts","name":null,"original":{"line":35,"column":8},"generated":{"line":52,"column":8}},{"source":"index.ts","name":null,"original":{"line":35,"column":10},"generated":{"line":52,"column":10}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":52,"column":17}},{"source":"index.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":53,"column":0}},{"source":"index.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":53,"column":4}},{"source":"index.ts","name":null,"original":{"line":36,"column":8},"generated":{"line":53,"column":8}},{"source":"index.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":53,"column":10}},{"source":"index.ts","name":null,"original":{"line":36,"column":22},"generated":{"line":53,"column":24}},{"source":"index.ts","name":null,"original":{"line":31,"column":26},"generated":{"line":54,"column":0}},{"source":"index.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":54,"column":3}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":0}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":2}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":7}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":10}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":24}},{"source":"index.ts","name":null,"original":{"line":39,"column":14},"generated":{"line":55,"column":25}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":30}},{"source":"index.ts","name":null,"original":{"line":39,"column":19},"generated":{"line":55,"column":32}},{"source":"index.ts","name":null,"original":{"line":39,"column":21},"generated":{"line":55,"column":33}},{"source":"index.ts","name":null,"original":{"line":39,"column":19},"generated":{"line":55,"column":40}},{"source":"index.ts","name":null,"original":{"line":39,"column":7},"generated":{"line":55,"column":41}},{"source":"index.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":55,"column":42}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":0}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":2}},{"source":"index.ts","name":null,"original":{"line":40,"column":11},"generated":{"line":56,"column":11}},{"source":"index.ts","name":null,"original":{"line":40,"column":12},"generated":{"line":56,"column":12}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":19}},{"source":"index.ts","name":null,"original":{"line":40,"column":20},"generated":{"line":56,"column":20}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":25}},{"source":"index.ts","name":null,"original":{"line":40,"column":27},"generated":{"line":56,"column":27}},{"source":"index.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":56,"column":32}},{"source":"index.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":57,"column":0}},{"source":"index.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":57,"column":2}},{"source":"index.ts","name":null,"original":{"line":42,"column":17},"generated":{"line":57,"column":17}},{"source":"index.ts","name":null,"original":{"line":43,"column":1},"generated":{"line":58,"column":0}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":0}},{"source":"index.ts","name":null,"original":{"line":45,"column":9},"generated":{"line":60,"column":9}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":25}},{"source":"index.ts","name":null,"original":{"line":45,"column":26},"generated":{"line":60,"column":26}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":36}},{"source":"index.ts","name":null,"original":{"line":45,"column":46},"generated":{"line":60,"column":38}},{"source":"index.ts","name":null,"original":{"line":45,"column":0},"generated":{"line":60,"column":48}},{"source":"index.ts","name":null,"original":{"line":45,"column":64},"generated":{"line":60,"column":50}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":0}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":2}},{"source":"index.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":61,"column":8}},{"source":"index.ts","name":null,"original":{"line":46,"column":12},"generated":{"line":61,"column":12}},{"source":"index.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":61,"column":13}},{"source":"index.ts","name":null,"original":{"line":48,"column":2},"generated":{"line":62,"column":0}},{"source":"index.ts","name":null,"original":{"line":48,"column":8},"generated":{"line":62,"column":6}},{"source":"index.ts","name":null,"original":{"line":48,"column":15},"generated":{"line":62,"column":13}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":62,"column":16}},{"source":"index.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":63,"column":0}},{"source":"index.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":63,"column":4}},{"source":"index.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":63,"column":6}},{"source":"index.ts","name":null,"original":{"line":49,"column":8},"generated":{"line":63,"column":8}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":63,"column":14}},{"source":"index.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":64,"column":0}},{"source":"index.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":64,"column":4}},{"source":"index.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":64,"column":14}},{"source":"index.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":64,"column":16}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":64,"column":26}},{"source":"index.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":65,"column":0}},{"source":"index.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":65,"column":4}},{"source":"index.ts","name":null,"original":{"line":51,"column":14},"generated":{"line":65,"column":14}},{"source":"index.ts","name":null,"original":{"line":51,"column":14},"generated":{"line":65,"column":16}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":65,"column":26}},{"source":"index.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":66,"column":0}},{"source":"index.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":66,"column":4}},{"source":"index.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":66,"column":8}},{"source":"index.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":66,"column":10}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":66,"column":18}},{"source":"index.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":67,"column":0}},{"source":"index.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":67,"column":4}},{"source":"index.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":67,"column":8}},{"source":"index.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":67,"column":10}},{"source":"index.ts","name":null,"original":{"line":53,"column":16},"generated":{"line":67,"column":16}},{"source":"index.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":67,"column":17}},{"source":"index.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":67,"column":25}},{"source":"index.ts","name":null,"original":{"line":48,"column":26},"generated":{"line":68,"column":0}},{"source":"index.ts","name":null,"original":{"line":48,"column":2},"generated":{"line":68,"column":3}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":0}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":2}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":7}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":10}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":24}},{"source":"index.ts","name":null,"original":{"line":56,"column":14},"generated":{"line":69,"column":25}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":30}},{"source":"index.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":69,"column":32}},{"source":"index.ts","name":null,"original":{"line":56,"column":21},"generated":{"line":69,"column":33}},{"source":"index.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":69,"column":40}},{"source":"index.ts","name":null,"original":{"line":56,"column":7},"generated":{"line":69,"column":41}},{"source":"index.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":69,"column":42}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":0}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":2}},{"source":"index.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":70,"column":11}},{"source":"index.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":70,"column":12}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":19}},{"source":"index.ts","name":null,"original":{"line":57,"column":20},"generated":{"line":70,"column":20}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":25}},{"source":"index.ts","name":null,"original":{"line":57,"column":27},"generated":{"line":70,"column":27}},{"source":"index.ts","name":null,"original":{"line":57,"column":2},"generated":{"line":70,"column":32}},{"source":"index.ts","name":null,"original":{"line":59,"column":2},"generated":{"line":71,"column":0}},{"source":"index.ts","name":null,"original":{"line":59,"column":2},"generated":{"line":71,"column":2}},{"source":"index.ts","name":null,"original":{"line":59,"column":17},"generated":{"line":71,"column":17}},{"source":"index.ts","name":null,"original":{"line":60,"column":1},"generated":{"line":72,"column":0}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":0}},{"source":"index.ts","name":null,"original":{"line":62,"column":9},"generated":{"line":74,"column":9}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":25}},{"source":"index.ts","name":null,"original":{"line":62,"column":26},"generated":{"line":74,"column":26}},{"source":"index.ts","name":null,"original":{"line":62,"column":0},"generated":{"line":74,"column":30}},{"source":"index.ts","name":null,"original":{"line":62,"column":38},"generated":{"line":74,"column":32}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":75,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":75,"column":2}},{"source":"index.ts","name":null,"original":{"line":63,"column":7},"generated":{"line":75,"column":7}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":75,"column":10}},{"source":"index.ts","name":null,"original":{"line":63,"column":15},"generated":{"line":75,"column":15}},{"source":"index.ts","name":null,"original":{"line":63,"column":16},"generated":{"line":75,"column":16}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":75,"column":22}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":23}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":33}},{"source":"index.ts","name":null,"original":{"line":63,"column":23},"generated":{"line":75,"column":34}},{"source":"index.ts","name":null,"original":{"line":63,"column":24},"generated":{"line":75,"column":36}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":11}},{"source":"index.ts","name":null,"original":{"line":63,"column":29},"generated":{"line":76,"column":12}},{"source":"index.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":76,"column":17}},{"source":"index.ts","name":null,"original":{"line":63,"column":28},"generated":{"line":76,"column":21}},{"source":"index.ts","name":null,"original":{"line":63,"column":38},"generated":{"line":77,"column":0}},{"source":"index.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":77,"column":3}},{"source":"index.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":77,"column":4}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":78,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":78,"column":2}},{"source":"index.ts","name":null,"original":{"line":64,"column":7},"generated":{"line":78,"column":7}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":78,"column":10}},{"source":"index.ts","name":null,"original":{"line":64,"column":15},"generated":{"line":78,"column":15}},{"source":"index.ts","name":null,"original":{"line":64,"column":16},"generated":{"line":78,"column":16}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":78,"column":22}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":23}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":33}},{"source":"index.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":78,"column":34}},{"source":"index.ts","name":null,"original":{"line":64,"column":24},"generated":{"line":78,"column":36}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":11}},{"source":"index.ts","name":null,"original":{"line":64,"column":29},"generated":{"line":79,"column":12}},{"source":"index.ts","name":null,"original":{"line":64,"column":30},"generated":{"line":79,"column":13}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":23}},{"source":"index.ts","name":null,"original":{"line":64,"column":45},"generated":{"line":79,"column":28}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":32}},{"source":"index.ts","name":null,"original":{"line":64,"column":53},"generated":{"line":79,"column":36}},{"source":"index.ts","name":null,"original":{"line":64,"column":54},"generated":{"line":79,"column":37}},{"source":"index.ts","name":null,"original":{"line":64,"column":55},"generated":{"line":79,"column":38}},{"source":"index.ts","name":null,"original":{"line":64,"column":53},"generated":{"line":79,"column":48}},{"source":"index.ts","name":null,"original":{"line":64,"column":70},"generated":{"line":79,"column":53}},{"source":"index.ts","name":null,"original":{"line":64,"column":28},"generated":{"line":79,"column":57}},{"source":"index.ts","name":null,"original":{"line":64,"column":74},"generated":{"line":80,"column":0}},{"source":"index.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":80,"column":3}},{"source":"index.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":80,"column":4}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":0}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":2}},{"source":"index.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":81,"column":11}},{"source":"index.ts","name":null,"original":{"line":66,"column":12},"generated":{"line":81,"column":12}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":19}},{"source":"index.ts","name":null,"original":{"line":66,"column":20},"generated":{"line":81,"column":20}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":25}},{"source":"index.ts","name":null,"original":{"line":66,"column":27},"generated":{"line":81,"column":27}},{"source":"index.ts","name":null,"original":{"line":66,"column":2},"generated":{"line":81,"column":32}},{"source":"index.ts","name":null,"original":{"line":68,"column":2},"generated":{"line":82,"column":0}},{"source":"index.ts","name":null,"original":{"line":68,"column":2},"generated":{"line":82,"column":2}},{"source":"index.ts","name":null,"original":{"line":68,"column":17},"generated":{"line":82,"column":17}},{"source":"index.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":83,"column":0}},{"source":"index.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":83,"column":2}},{"source":"index.ts","name":null,"original":{"line":69,"column":17},"generated":{"line":83,"column":17}},{"source":"index.ts","name":null,"original":{"line":70,"column":1},"generated":{"line":84,"column":0}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":0}},{"source":"index.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":86,"column":9}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":25}},{"source":"index.ts","name":null,"original":{"line":72,"column":26},"generated":{"line":86,"column":26}},{"source":"index.ts","name":null,"original":{"line":72,"column":0},"generated":{"line":86,"column":30}},{"source":"index.ts","name":null,"original":{"line":72,"column":38},"generated":{"line":86,"column":32}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":87,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":87,"column":2}},{"source":"index.ts","name":null,"original":{"line":73,"column":7},"generated":{"line":87,"column":7}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":87,"column":10}},{"source":"index.ts","name":null,"original":{"line":73,"column":15},"generated":{"line":87,"column":15}},{"source":"index.ts","name":null,"original":{"line":73,"column":16},"generated":{"line":87,"column":16}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":87,"column":22}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":23}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":33}},{"source":"index.ts","name":null,"original":{"line":73,"column":23},"generated":{"line":87,"column":34}},{"source":"index.ts","name":null,"original":{"line":73,"column":24},"generated":{"line":87,"column":36}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":11}},{"source":"index.ts","name":null,"original":{"line":73,"column":29},"generated":{"line":88,"column":12}},{"source":"index.ts","name":null,"original":{"line":73,"column":30},"generated":{"line":88,"column":13}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":15}},{"source":"index.ts","name":null,"original":{"line":73,"column":37},"generated":{"line":88,"column":20}},{"source":"index.ts","name":null,"original":{"line":73,"column":41},"generated":{"line":88,"column":24}},{"source":"index.ts","name":null,"original":{"line":73,"column":42},"generated":{"line":88,"column":25}},{"source":"index.ts","name":null,"original":{"line":73,"column":28},"generated":{"line":88,"column":27}},{"source":"index.ts","name":null,"original":{"line":73,"column":44},"generated":{"line":89,"column":0}},{"source":"index.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":89,"column":3}},{"source":"index.ts","name":null,"original":{"line":73,"column":2},"generated":{"line":89,"column":4}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":0}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":2}},{"source":"index.ts","name":null,"original":{"line":75,"column":11},"generated":{"line":90,"column":11}},{"source":"index.ts","name":null,"original":{"line":75,"column":12},"generated":{"line":90,"column":12}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":19}},{"source":"index.ts","name":null,"original":{"line":75,"column":20},"generated":{"line":90,"column":20}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":25}},{"source":"index.ts","name":null,"original":{"line":75,"column":27},"generated":{"line":90,"column":27}},{"source":"index.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":90,"column":32}},{"source":"index.ts","name":null,"original":{"line":77,"column":2},"generated":{"line":91,"column":0}},{"source":"index.ts","name":null,"original":{"line":77,"column":2},"generated":{"line":91,"column":2}},{"source":"index.ts","name":null,"original":{"line":77,"column":17},"generated":{"line":91,"column":17}},{"source":"index.ts","name":null,"original":{"line":78,"column":1},"generated":{"line":92,"column":0}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":0}},{"source":"index.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":94,"column":9}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":23}},{"source":"index.ts","name":null,"original":{"line":80,"column":24},"generated":{"line":94,"column":24}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":28}},{"source":"index.ts","name":null,"original":{"line":80,"column":38},"generated":{"line":94,"column":30}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":34}},{"source":"index.ts","name":null,"original":{"line":80,"column":52},"generated":{"line":94,"column":36}},{"source":"index.ts","name":null,"original":{"line":80,"column":0},"generated":{"line":94,"column":40}},{"source":"index.ts","name":null,"original":{"line":80,"column":64},"generated":{"line":94,"column":42}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":0}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":2}},{"source":"index.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":95,"column":6}},{"source":"index.ts","name":null,"original":{"line":81,"column":7},"generated":{"line":95,"column":7}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":8}},{"source":"index.ts","name":null,"original":{"line":81,"column":11},"generated":{"line":95,"column":11}},{"source":"index.ts","name":null,"original":{"line":81,"column":2},"generated":{"line":95,"column":15}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":0}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":2}},{"source":"index.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":96,"column":6}},{"source":"index.ts","name":null,"original":{"line":82,"column":7},"generated":{"line":96,"column":7}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":8}},{"source":"index.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":96,"column":11}},{"source":"index.ts","name":null,"original":{"line":82,"column":2},"generated":{"line":96,"column":15}},{"source":"index.ts","name":null,"original":{"line":83,"column":1},"generated":{"line":97,"column":0}},{"source":"index.ts","name":null,"original":{"line":85,"column":0},"generated":{"line":99,"column":0}},{"source":"index.ts","name":null,"original":{"line":85,"column":9},"generated":{"line":99,"column":9}},{"source":"index.ts","name":null,"original":{"line":85,"column":0},"generated":{"line":99,"column":23}},{"source":"index.ts","name":null,"original":{"line":85,"column":23},"generated":{"line":99,"column":26}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":0}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":2}},{"source":"index.ts","name":null,"original":{"line":86,"column":12},"generated":{"line":100,"column":12}},{"source":"index.ts","name":null,"original":{"line":86,"column":13},"generated":{"line":100,"column":13}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":18}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":21}},{"source":"index.ts","name":null,"original":{"line":86,"column":30},"generated":{"line":100,"column":30}},{"source":"index.ts","name":null,"original":{"line":86,"column":31},"generated":{"line":100,"column":31}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":39}},{"source":"index.ts","name":null,"original":{"line":86,"column":42},"generated":{"line":100,"column":42}},{"source":"index.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":100,"column":50}},{"source":"index.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":100,"column":52}},{"source":"index.ts","name":null,"original":{"line":87,"column":1},"generated":{"line":101,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":103,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":103,"column":9}},{"source":"index.ts","name":null,"original":{"line":89,"column":10},"generated":{"line":103,"column":10}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":103,"column":20}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":103,"column":21}},{"source":"index.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":104,"column":0}},{"source":"index.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":104,"column":2}},{"source":"index.ts","name":null,"original":{"line":90,"column":10},"generated":{"line":104,"column":10}},{"source":"index.ts","name":null,"original":{"line":90,"column":12},"generated":{"line":104,"column":12}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":104,"column":15}},{"source":"index.ts","name":null,"original":{"line":91,"column":2},"generated":{"line":105,"column":0}},{"source":"index.ts","name":null,"original":{"line":91,"column":2},"generated":{"line":105,"column":2}},{"source":"index.ts","name":null,"original":{"line":91,"column":10},"generated":{"line":105,"column":10}},{"source":"index.ts","name":null,"original":{"line":91,"column":12},"generated":{"line":105,"column":12}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":105,"column":15}},{"source":"index.ts","name":null,"original":{"line":92,"column":2},"generated":{"line":106,"column":0}},{"source":"index.ts","name":null,"original":{"line":92,"column":2},"generated":{"line":106,"column":2}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":11}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":13}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":25}},{"source":"index.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":106,"column":26}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":106,"column":35}},{"source":"index.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":107,"column":0}},{"source":"index.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":107,"column":2}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":11}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":13}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":25}},{"source":"index.ts","name":null,"original":{"line":93,"column":11},"generated":{"line":107,"column":26}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":107,"column":35}},{"source":"index.ts","name":null,"original":{"line":94,"column":2},"generated":{"line":108,"column":0}},{"source":"index.ts","name":null,"original":{"line":94,"column":2},"generated":{"line":108,"column":2}},{"source":"index.ts","name":null,"original":{"line":94,"column":12},"generated":{"line":108,"column":12}},{"source":"index.ts","name":null,"original":{"line":94,"column":14},"generated":{"line":108,"column":14}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":108,"column":28}},{"source":"index.ts","name":null,"original":{"line":95,"column":2},"generated":{"line":109,"column":0}},{"source":"index.ts","name":null,"original":{"line":95,"column":2},"generated":{"line":109,"column":2}},{"source":"index.ts","name":null,"original":{"line":95,"column":14},"generated":{"line":109,"column":14}},{"source":"index.ts","name":null,"original":{"line":95,"column":16},"generated":{"line":109,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":109,"column":32}},{"source":"index.ts","name":null,"original":{"line":96,"column":2},"generated":{"line":110,"column":0}},{"source":"index.ts","name":null,"original":{"line":96,"column":2},"generated":{"line":110,"column":2}},{"source":"index.ts","name":null,"original":{"line":96,"column":14},"generated":{"line":110,"column":14}},{"source":"index.ts","name":null,"original":{"line":96,"column":16},"generated":{"line":110,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":110,"column":32}},{"source":"index.ts","name":null,"original":{"line":97,"column":2},"generated":{"line":111,"column":0}},{"source":"index.ts","name":null,"original":{"line":97,"column":2},"generated":{"line":111,"column":2}},{"source":"index.ts","name":null,"original":{"line":97,"column":14},"generated":{"line":111,"column":14}},{"source":"index.ts","name":null,"original":{"line":97,"column":16},"generated":{"line":111,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":111,"column":32}},{"source":"index.ts","name":null,"original":{"line":98,"column":2},"generated":{"line":112,"column":0}},{"source":"index.ts","name":null,"original":{"line":98,"column":2},"generated":{"line":112,"column":2}},{"source":"index.ts","name":null,"original":{"line":98,"column":14},"generated":{"line":112,"column":14}},{"source":"index.ts","name":null,"original":{"line":98,"column":16},"generated":{"line":112,"column":16}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":112,"column":32}},{"source":"index.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":113,"column":0}},{"source":"index.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":113,"column":2}},{"source":"index.ts","name":null,"original":{"line":99,"column":12},"generated":{"line":113,"column":12}},{"source":"index.ts","name":null,"original":{"line":99,"column":14},"generated":{"line":113,"column":14}},{"source":"index.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":114,"column":0}},{"source":"index.ts","name":null,"original":{"line":89,"column":0},"generated":{"line":114,"column":1}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":0}},{"source":"index.ts","name":null,"original":{"line":102,"column":9},"generated":{"line":115,"column":9}},{"source":"index.ts","name":null,"original":{"line":102,"column":10},"generated":{"line":115,"column":10}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":14}},{"source":"index.ts","name":null,"original":{"line":102,"column":15},"generated":{"line":115,"column":15}},{"source":"index.ts","name":null,"original":{"line":102,"column":0},"generated":{"line":115,"column":23}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":0}},{"source":"index.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":116,"column":6}},{"source":"index.ts","name":null,"original":{"line":104,"column":7},"generated":{"line":116,"column":7}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":23}},{"source":"index.ts","name":null,"original":{"line":104,"column":24},"generated":{"line":116,"column":24}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":116,"column":32}},{"source":"index.ts","name":null,"original":{"line":104,"column":34},"generated":{"line":116,"column":34}},{"source":"index.ts","name":null,"original":{"line":104,"column":34},"generated":{"line":116,"column":46}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":0}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":2}},{"source":"index.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":117,"column":11}},{"source":"index.ts","name":null,"original":{"line":105,"column":12},"generated":{"line":117,"column":12}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":18}},{"source":"index.ts","name":null,"original":{"line":105,"column":19},"generated":{"line":117,"column":19}},{"source":"index.ts","name":null,"original":{"line":105,"column":25},"generated":{"line":117,"column":25}},{"source":"index.ts","name":null,"original":{"line":105,"column":26},"generated":{"line":117,"column":26}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":36}},{"source":"index.ts","name":null,"original":{"line":105,"column":38},"generated":{"line":117,"column":38}},{"source":"index.ts","name":null,"original":{"line":105,"column":44},"generated":{"line":117,"column":44}},{"source":"index.ts","name":null,"original":{"line":105,"column":45},"generated":{"line":117,"column":45}},{"source":"index.ts","name":null,"original":{"line":105,"column":2},"generated":{"line":117,"column":56}},{"source":"index.ts","name":null,"original":{"line":106,"column":1},"generated":{"line":118,"column":0}},{"source":"index.ts","name":null,"original":{"line":104,"column":0},"generated":{"line":118,"column":1}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":0}},{"source":"index.ts","name":null,"original":{"line":108,"column":10},"generated":{"line":119,"column":10}},{"source":"index.ts","name":null,"original":{"line":108,"column":11},"generated":{"line":119,"column":11}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":27}},{"source":"index.ts","name":null,"original":{"line":108,"column":28},"generated":{"line":119,"column":28}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":119,"column":35}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":37}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":47}},{"source":"index.ts","name":null,"original":{"line":108,"column":37},"generated":{"line":119,"column":48}},{"source":"index.ts","name":null,"original":{"line":108,"column":38},"generated":{"line":119,"column":50}},{"source":"index.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":120,"column":0}},{"source":"index.ts","name":null,"original":{"line":109,"column":8},"generated":{"line":120,"column":6}},{"source":"index.ts","name":null,"original":{"line":109,"column":14},"generated":{"line":120,"column":12}},{"source":"index.ts","name":null,"original":{"line":109,"column":17},"generated":{"line":120,"column":15}},{"source":"index.ts","name":null,"original":{"line":109,"column":18},"generated":{"line":120,"column":16}},{"source":"index.ts","name":null,"original":{"line":109,"column":19},"generated":{"line":120,"column":17}},{"source":"index.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":120,"column":23}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":0}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":2}},{"source":"index.ts","name":null,"original":{"line":111,"column":11},"generated":{"line":121,"column":11}},{"source":"index.ts","name":null,"original":{"line":111,"column":12},"generated":{"line":121,"column":12}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":18}},{"source":"index.ts","name":null,"original":{"line":111,"column":19},"generated":{"line":121,"column":19}},{"source":"index.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":121,"column":25}},{"source":"index.ts","name":null,"original":{"line":111,"column":26},"generated":{"line":121,"column":26}},{"source":"index.ts","name":null,"original":{"line":111,"column":32},"generated":{"line":121,"column":32}},{"source":"index.ts","name":null,"original":{"line":111,"column":33},"generated":{"line":121,"column":33}},{"source":"index.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":121,"column":38}},{"source":"index.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":121,"column":39}},{"source":"index.ts","name":null,"original":{"line":112,"column":1},"generated":{"line":122,"column":0}},{"source":"index.ts","name":null,"original":{"line":108,"column":0},"generated":{"line":122,"column":1}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":0}},{"source":"index.ts","name":null,"original":{"line":114,"column":14},"generated":{"line":123,"column":14}},{"source":"index.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":123,"column":15}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":31}},{"source":"index.ts","name":null,"original":{"line":114,"column":32},"generated":{"line":123,"column":32}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":123,"column":39}},{"source":"index.ts","name":null,"original":{"line":114,"column":41},"generated":{"line":123,"column":41}},{"source":"index.ts","name":null,"original":{"line":114,"column":41},"generated":{"line":123,"column":53}},{"source":"index.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":124,"column":0}},{"source":"index.ts","name":null,"original":{"line":115,"column":8},"generated":{"line":124,"column":6}},{"source":"index.ts","name":null,"original":{"line":115,"column":13},"generated":{"line":124,"column":11}},{"source":"index.ts","name":null,"original":{"line":115,"column":16},"generated":{"line":124,"column":14}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":22}},{"source":"index.ts","name":null,"original":{"line":115,"column":25},"generated":{"line":124,"column":23}},{"source":"index.ts","name":null,"original":{"line":115,"column":40},"generated":{"line":124,"column":38}},{"source":"index.ts","name":null,"original":{"line":115,"column":41},"generated":{"line":124,"column":39}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":44}},{"source":"index.ts","name":null,"original":{"line":115,"column":48},"generated":{"line":124,"column":46}},{"source":"index.ts","name":null,"original":{"line":115,"column":24},"generated":{"line":124,"column":48}},{"source":"index.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":124,"column":49}},{"source":"index.ts","name":null,"original":{"line":116,"column":2},"generated":{"line":125,"column":0}},{"source":"index.ts","name":null,"original":{"line":116,"column":8},"generated":{"line":125,"column":6}},{"source":"index.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":125,"column":13}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":16}},{"source":"index.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":125,"column":20}},{"source":"index.ts","name":null,"original":{"line":116,"column":23},"generated":{"line":125,"column":21}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":25}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":26}},{"source":"index.ts","name":null,"original":{"line":116,"column":32},"generated":{"line":125,"column":30}},{"source":"index.ts","name":null,"original":{"line":116,"column":33},"generated":{"line":125,"column":31}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":35}},{"source":"index.ts","name":null,"original":{"line":116,"column":38},"generated":{"line":125,"column":36}},{"source":"index.ts","name":null,"original":{"line":116,"column":28},"generated":{"line":125,"column":41}},{"source":"index.ts","name":null,"original":{"line":116,"column":18},"generated":{"line":125,"column":42}},{"source":"index.ts","name":null,"original":{"line":116,"column":2},"generated":{"line":125,"column":43}},{"source":"index.ts","name":null,"original":{"line":118,"column":2},"generated":{"line":126,"column":0}},{"source":"index.ts","name":null,"original":{"line":118,"column":8},"generated":{"line":126,"column":6}},{"source":"index.ts","name":null,"original":{"line":118,"column":9},"generated":{"line":126,"column":7}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":10}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":17}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":18}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":27}},{"source":"index.ts","name":null,"original":{"line":118,"column":22},"generated":{"line":126,"column":28}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":33}},{"source":"index.ts","name":null,"original":{"line":118,"column":29},"generated":{"line":126,"column":35}},{"source":"index.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":126,"column":42}},{"source":"index.ts","name":null,"original":{"line":118,"column":2},"generated":{"line":126,"column":43}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":0}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":2}},{"source":"index.ts","name":null,"original":{"line":120,"column":8},"generated":{"line":127,"column":8}},{"source":"index.ts","name":null,"original":{"line":120,"column":11},"generated":{"line":127,"column":11}},{"source":"index.ts","name":null,"original":{"line":120,"column":12},"generated":{"line":127,"column":12}},{"source":"index.ts","name":null,"original":{"line":120,"column":13},"generated":{"line":127,"column":13}},{"source":"index.ts","name":null,"original":{"line":120,"column":2},"generated":{"line":127,"column":19}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":0}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":2}},{"source":"index.ts","name":null,"original":{"line":121,"column":7},"generated":{"line":128,"column":7}},{"source":"index.ts","name":null,"original":{"line":121,"column":10},"generated":{"line":128,"column":10}},{"source":"index.ts","name":null,"original":{"line":121,"column":11},"generated":{"line":128,"column":11}},{"source":"index.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":128,"column":12}},{"source":"index.ts","name":null,"original":{"line":121,"column":2},"generated":{"line":128,"column":17}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":0}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":2}},{"source":"index.ts","name":null,"original":{"line":122,"column":7},"generated":{"line":129,"column":7}},{"source":"index.ts","name":null,"original":{"line":122,"column":10},"generated":{"line":129,"column":10}},{"source":"index.ts","name":null,"original":{"line":122,"column":11},"generated":{"line":129,"column":11}},{"source":"index.ts","name":null,"original":{"line":122,"column":12},"generated":{"line":129,"column":12}},{"source":"index.ts","name":null,"original":{"line":122,"column":2},"generated":{"line":129,"column":17}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":0}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":2}},{"source":"index.ts","name":null,"original":{"line":124,"column":11},"generated":{"line":130,"column":11}},{"source":"index.ts","name":null,"original":{"line":124,"column":12},"generated":{"line":130,"column":12}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":19}},{"source":"index.ts","name":null,"original":{"line":124,"column":20},"generated":{"line":130,"column":20}},{"source":"index.ts","name":null,"original":{"line":124,"column":21},"generated":{"line":130,"column":21}},{"source":"index.ts","name":null,"original":{"line":124,"column":22},"generated":{"line":130,"column":22}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":27}},{"source":"index.ts","name":null,"original":{"line":124,"column":29},"generated":{"line":130,"column":29}},{"source":"index.ts","name":null,"original":{"line":124,"column":30},"generated":{"line":130,"column":30}},{"source":"index.ts","name":null,"original":{"line":124,"column":31},"generated":{"line":130,"column":31}},{"source":"index.ts","name":null,"original":{"line":124,"column":2},"generated":{"line":130,"column":36}},{"source":"index.ts","name":null,"original":{"line":126,"column":2},"generated":{"line":131,"column":0}},{"source":"index.ts","name":null,"original":{"line":126,"column":2},"generated":{"line":131,"column":2}},{"source":"index.ts","name":null,"original":{"line":126,"column":17},"generated":{"line":131,"column":17}},{"source":"index.ts","name":null,"original":{"line":127,"column":2},"generated":{"line":132,"column":0}},{"source":"index.ts","name":null,"original":{"line":127,"column":2},"generated":{"line":132,"column":2}},{"source":"index.ts","name":null,"original":{"line":127,"column":17},"generated":{"line":132,"column":17}},{"source":"index.ts","name":null,"original":{"line":128,"column":1},"generated":{"line":133,"column":0}},{"source":"index.ts","name":null,"original":{"line":114,"column":0},"generated":{"line":133,"column":1}}],"sources":{"index.ts":"import { GEView, GENode, GEEdge } from \"../index\";\nimport { nodeTypes, edgeTypes } from \"./node-types\";\nimport { randomize } from \"./utils\";\n\nconst graphDiv = document.getElementById(\"graph\");\nconst nodeCountSpan = document.getElementById(\"node-count-span\");\nconst edgeCountSpan = document.getElementById(\"edge-count-span\");\nconst zoomSlider = document.getElementById(\"zoom-slider\") as HTMLInputElement;\nconst generateTextbox = document.getElementById(\n \"generate-textbox\"\n) as HTMLInputElement;\nconst generateButton = document.getElementById(\"generate-button\");\n\nlet nodes: GENode[] = [];\nlet edges: GEEdge[] = [];\nlet lastId = 0;\n\nconst graphView = new GEView();\n\nfunction updateNodeCount(): void {\n nodeCountSpan.innerHTML = nodes.length.toString();\n}\n\nfunction updateEdgeCount(): void {\n edgeCountSpan.innerHTML = edges.length.toString();\n}\n\nfunction handleCreateNode(x: number, y: number) {\n lastId += 1;\n\n const newNode: GENode = {\n id: lastId,\n x,\n y,\n type: \"empty\",\n text: `Node ID: ${lastId}`\n };\n\n nodes = [...nodes, newNode];\n graphView.setData(nodes, edges);\n\n updateNodeCount();\n}\n\nfunction handleCreateEdge(sourceNode: GENode, targetNode: GENode) {\n lastId += 1;\n\n const newEdge: GEEdge = {\n id: lastId,\n sourceNode,\n targetNode,\n type: \"normal\",\n text: lastId.toString()\n };\n\n edges = [...edges, newEdge];\n graphView.setData(nodes, edges);\n\n updateEdgeCount();\n}\n\nfunction handleDeleteNode(node: GENode) {\n nodes = nodes.filter(n => n !== node);\n edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node);\n\n graphView.setData(nodes, edges);\n\n updateNodeCount();\n updateEdgeCount();\n}\n\nfunction handleDeleteEdge(edge: GEEdge) {\n edges = edges.filter(e => e.id !== edge.id);\n\n graphView.setData(nodes, edges);\n\n updateEdgeCount();\n}\n\nfunction handleMoveNode(node: GENode, newX: number, newY: number) {\n node.x = newX;\n node.y = newY;\n}\n\nfunction handleViewZoom() {\n zoomSlider.value = graphView.getScale().toString();\n}\n\ngraphView.setOptions({\n minScale: 0.2,\n maxScale: 3.0,\n nodeTypes,\n edgeTypes,\n onViewZoom: handleViewZoom,\n onCreateNode: handleCreateNode,\n onCreateEdge: handleCreateEdge,\n onDeleteNode: handleDeleteNode,\n onDeleteEdge: handleDeleteEdge,\n onMoveNode: handleMoveNode\n});\n\ngraphView.init(graphDiv);\n\nwindow.addEventListener(\"resize\", () => {\n graphView.resize(window.innerWidth, window.innerHeight);\n});\n\nzoomSlider.addEventListener(\"input\", e => {\n const target = e.target as HTMLInputElement;\n\n graphView.zoomTo(Number(target.value));\n});\n\ngenerateButton.addEventListener(\"click\", () => {\n const value = parseInt(generateTextbox.value, 10);\n const columns = Math.ceil(Math.sqrt(value));\n\n const r = randomize(value, columns);\n\n lastId = r.lastId;\n nodes = r.nodes;\n edges = r.edges;\n\n graphView.setData(r.nodes, r.edges);\n\n updateNodeCount();\n updateEdgeCount();\n});\n"},"lineCount":null}},"error":null,"hash":"2a43184b15e135479ea12ab828ee926e","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/18/2b115ee70b2bcead4c63e6276c075e.json b/.cache/18/2b115ee70b2bcead4c63e6276c075e.json deleted file mode 100644 index bb662e7..0000000 --- a/.cache/18/2b115ee70b2bcead4c63e6276c075e.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../event-handler.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEEventHandler = void 0;\n\nvar GEEventHandler =\n/** @class */\nfunction () {\n function GEEventHandler(view, canvas, renderer) {\n var _this = this;\n\n this.handleMouseDown = function (evt) {\n var _a, _b;\n\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n _this.state.isDragging = true;\n\n if (_this.state.selectedNode !== _this.state.hoveredNode || _this.state.selectedEdge !== _this.state.hoveredEdge) {\n _this.state.selectedNode = _this.state.hoveredNode;\n _this.state.selectedEdge = _this.state.hoveredEdge;\n (_b = (_a = _this.state.options).onSelectionChange) === null || _b === void 0 ? void 0 : _b.call(_a, _this.state.selectedNode, _this.state.selectedEdge);\n }\n\n if (_this.state.selectedNode) {\n var node = _this.state.selectedNode;\n\n if (_this.state.isShiftDown) {\n _this.state.isCreatingEdge = true;\n _this.state.dragLineSourceNode = node;\n _this.state.dragLineTargetX = node.x;\n _this.state.dragLineTargetY = node.y;\n } else {\n _this.state.moveNodeX = node.x;\n _this.state.moveNodeY = node.y;\n }\n }\n\n _this.renderer.requestDraw();\n };\n\n this.handleMouseMove = function (evt) {\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (_this.state.isMovingNode()) {\n _this.state.moveNodeX += evt.movementX / _this.state.scale;\n _this.state.moveNodeY += evt.movementY / _this.state.scale;\n } else if (_this.state.isMovingView()) {\n _this.state.translateX += evt.movementX;\n _this.state.translateY += evt.movementY;\n }\n\n _this.renderer.requestDraw();\n\n _this.updateCursorStyle();\n };\n\n this.handleMouseUp = function (evt) {\n var _a, _b, _c, _d, _e, _f;\n\n _this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (_this.state.isCreatingEdge && _this.state.hoveredNode && _this.state.hoveredNode !== _this.state.dragLineSourceNode) {\n var sourceNode = _this.state.dragLineSourceNode;\n var targetNode = _this.state.hoveredNode;\n (_b = (_a = _this.state.options).onCreateEdge) === null || _b === void 0 ? void 0 : _b.call(_a, sourceNode, targetNode, evt);\n } else if (_this.state.isShiftDown && !_this.state.isCreatingEdge && !_this.state.hoveredNode && !_this.state.hoveredEdge) {\n (_d = (_c = _this.state.options).onCreateNode) === null || _d === void 0 ? void 0 : _d.call(_c, _this.state.pointerViewX, _this.state.pointerViewY, evt);\n } else if (_this.state.isMovingNode()) {\n var node = _this.state.selectedNode;\n (_f = (_e = _this.state.options).onMoveNode) === null || _f === void 0 ? void 0 : _f.call(_e, node, _this.state.moveNodeX, _this.state.moveNodeY);\n }\n\n _this.state.isDragging = false;\n _this.state.isCreatingEdge = false;\n\n _this.renderer.requestDraw();\n };\n\n this.updateCursorStyle = function () {\n var options = _this.state.options;\n\n if (_this.state.hoveredNode || _this.state.hoveredEdge) {\n _this.canvas.style.cursor = options.cursorPointer;\n } else if (!_this.state.isShiftDown) {\n _this.canvas.style.cursor = options.cursorGrab;\n } else {\n _this.canvas.style.cursor = options.cursorCrosshair;\n }\n };\n\n this.handleKeyDown = function (evt) {\n var _a, _b, _c, _d;\n\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n _this.state.isShiftDown = true;\n\n _this.updateCursorStyle();\n }\n\n if (evt.key === \"Backspace\" || evt.keyCode === 8 || evt.key === \"Delete\" || evt.keyCode === 46) {\n if (_this.state.selectedNode) {\n var node = _this.state.selectedNode;\n (_b = (_a = _this.state.options).onDeleteNode) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n _this.state.selectedNode = undefined;\n }\n\n if (_this.state.selectedEdge) {\n var edge = _this.state.selectedEdge;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n (_d = (_c = _this.state.options).onDeleteEdge) === null || _d === void 0 ? void 0 : _d.call(_c, edge, source, target);\n _this.state.selectedEdge = undefined;\n }\n\n _this.renderer.requestDraw();\n\n _this.updateCursorStyle();\n }\n };\n\n this.handleKeyUp = function (evt) {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n _this.state.isShiftDown = false;\n\n _this.updateCursorStyle();\n }\n };\n\n this.handleCanvasWheel = function (evt) {\n var _a, _b;\n\n evt.preventDefault();\n\n _this.state.zoomTo(_this.state.scale - evt.deltaY * 0.001, _this.state.pointerViewX, _this.state.pointerViewY);\n\n (_b = (_a = _this.state.options).onViewZoom) === null || _b === void 0 ? void 0 : _b.call(_a);\n\n _this.renderer.requestDraw();\n };\n\n this.state = view;\n this.canvas = canvas;\n this.renderer = renderer;\n }\n\n GEEventHandler.prototype.init = function () {\n this.canvas.addEventListener(\"mousedown\", this.handleMouseDown, {\n passive: true\n });\n window.addEventListener(\"mouseup\", this.handleMouseUp, {\n passive: true\n });\n window.addEventListener(\"mousemove\", this.handleMouseMove, {\n passive: true\n });\n window.addEventListener(\"keydown\", this.handleKeyDown, {\n passive: true\n });\n window.addEventListener(\"keyup\", this.handleKeyUp, {\n passive: true\n });\n this.canvas.addEventListener(\"wheel\", this.handleCanvasWheel, {\n passive: false\n });\n };\n\n GEEventHandler.prototype.destroy = function () {\n this.canvas.removeEventListener(\"mousedown\", this.handleMouseDown);\n window.removeEventListener(\"mouseup\", this.handleMouseUp);\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.removeEventListener(\"keydown\", this.handleKeyDown);\n window.removeEventListener(\"keyup\", this.handleKeyUp);\n this.canvas.removeEventListener(\"wheel\", this.handleCanvasWheel);\n };\n\n return GEEventHandler;\n}();\n\nexports.GEEventHandler = GEEventHandler;"},"sourceMaps":{"js":{"mappings":[{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":8,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":9,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":10,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":10,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":10,"column":4},"generated":{"line":11,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":11,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":12,"column":4},"generated":{"line":11,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":11,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":12,"column":29},"generated":{"line":11,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":12,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":14,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":14,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":14,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":14,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":36},"generated":{"line":14,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":8},"generated":{"line":17,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":9},"generated":{"line":17,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":15},"generated":{"line":17,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":34},"generated":{"line":17,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":37},"generated":{"line":17,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":38},"generated":{"line":17,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":47},"generated":{"line":17,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":50},"generated":{"line":17,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":51},"generated":{"line":17,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":17,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":19,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":9},"generated":{"line":19,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":15},"generated":{"line":19,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":28},"generated":{"line":19,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":19,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":21,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":10},"generated":{"line":21,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":21,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":17},"generated":{"line":21,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":34},"generated":{"line":21,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":38},"generated":{"line":21,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":39},"generated":{"line":21,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":34},"generated":{"line":21,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":45},"generated":{"line":21,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":21,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":10},"generated":{"line":21,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":11},"generated":{"line":21,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":17},"generated":{"line":21,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":21,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":34},"generated":{"line":21,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":38},"generated":{"line":21,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":39},"generated":{"line":21,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":34},"generated":{"line":21,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":50,"column":45},"generated":{"line":21,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":21,"column":118}},{"source":"../event-handler.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":21,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":22,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":11},"generated":{"line":22,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":17},"generated":{"line":22,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":32},"generated":{"line":22,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":36},"generated":{"line":22,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":37},"generated":{"line":22,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":32},"generated":{"line":22,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":43},"generated":{"line":22,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":22,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":23,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":23,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":23,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":32},"generated":{"line":23,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":36},"generated":{"line":23,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":37},"generated":{"line":23,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":32},"generated":{"line":23,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":43},"generated":{"line":23,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":23,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":10},"generated":{"line":24,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":11},"generated":{"line":24,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":17},"generated":{"line":24,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":25},"generated":{"line":24,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":68}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":84}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":105}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":24,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":12},"generated":{"line":24,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":13},"generated":{"line":24,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":24,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":56,"column":19},"generated":{"line":24,"column":121}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":133}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":24,"column":135}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":24,"column":140}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":13},"generated":{"line":24,"column":141}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":24,"column":146}},{"source":"../event-handler.ts","name":null,"original":{"line":57,"column":19},"generated":{"line":24,"column":147}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":42},"generated":{"line":24,"column":159}},{"source":"../event-handler.ts","name":null,"original":{"line":55,"column":6},"generated":{"line":24,"column":160}},{"source":"../event-handler.ts","name":null,"original":{"line":59,"column":5},"generated":{"line":25,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":27,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":8},"generated":{"line":27,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":12},"generated":{"line":27,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":13},"generated":{"line":27,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":8},"generated":{"line":27,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":19},"generated":{"line":27,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":27,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":61,"column":33},"generated":{"line":27,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":28,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":12},"generated":{"line":28,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":16},"generated":{"line":28,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":19},"generated":{"line":28,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":28,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":24},"generated":{"line":28,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":19},"generated":{"line":28,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":30},"generated":{"line":28,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":28,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":30,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":30,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":14},"generated":{"line":30,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":15},"generated":{"line":30,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":30,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":21},"generated":{"line":30,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":30,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":34},"generated":{"line":30,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":12},"generated":{"line":31,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":13},"generated":{"line":31,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":19},"generated":{"line":31,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":36},"generated":{"line":31,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":31,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":12},"generated":{"line":32,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":32,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":19},"generated":{"line":32,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":40},"generated":{"line":32,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":32,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":12},"generated":{"line":33,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":13},"generated":{"line":33,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":19},"generated":{"line":33,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":37},"generated":{"line":33,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":41},"generated":{"line":33,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":42},"generated":{"line":33,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":67,"column":8},"generated":{"line":33,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":12},"generated":{"line":34,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":34,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":19},"generated":{"line":34,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":37},"generated":{"line":34,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":41},"generated":{"line":34,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":42},"generated":{"line":34,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":34,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":69,"column":7},"generated":{"line":35,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":64,"column":6},"generated":{"line":35,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":69,"column":13},"generated":{"line":35,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":12},"generated":{"line":36,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":13},"generated":{"line":36,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":19},"generated":{"line":36,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":31},"generated":{"line":36,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":35},"generated":{"line":36,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":36},"generated":{"line":36,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":70,"column":8},"generated":{"line":36,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":12},"generated":{"line":37,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":37,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":19},"generated":{"line":37,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":37,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":35},"generated":{"line":37,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":36},"generated":{"line":37,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":71,"column":8},"generated":{"line":37,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":38,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":73,"column":5},"generated":{"line":39,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":8},"generated":{"line":41,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":9},"generated":{"line":41,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":18},"generated":{"line":41,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":41,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":76,"column":3},"generated":{"line":42,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":42,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":44,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":20},"generated":{"line":44,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":21},"generated":{"line":44,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":20},"generated":{"line":44,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":36},"generated":{"line":44,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":45,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":9},"generated":{"line":45,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":15},"generated":{"line":45,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":34},"generated":{"line":45,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":37},"generated":{"line":45,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":38},"generated":{"line":45,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":47},"generated":{"line":45,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":50},"generated":{"line":45,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":51},"generated":{"line":45,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":45,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":47,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":12},"generated":{"line":47,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":13},"generated":{"line":47,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":19},"generated":{"line":47,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":8},"generated":{"line":47,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":47,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":35},"generated":{"line":47,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":10},"generated":{"line":48,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":48,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":17},"generated":{"line":48,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":30},"generated":{"line":48,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":33},"generated":{"line":48,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":34},"generated":{"line":48,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":30},"generated":{"line":48,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":46},"generated":{"line":48,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":50},"generated":{"line":48,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":51},"generated":{"line":48,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":46},"generated":{"line":48,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":57},"generated":{"line":48,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":48,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":10},"generated":{"line":49,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":11},"generated":{"line":49,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":17},"generated":{"line":49,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":30},"generated":{"line":49,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":33},"generated":{"line":49,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":34},"generated":{"line":49,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":30},"generated":{"line":49,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":46},"generated":{"line":49,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":50},"generated":{"line":49,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":51},"generated":{"line":49,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":46},"generated":{"line":49,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":57},"generated":{"line":49,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":49,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":5},"generated":{"line":50,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":50,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":50,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":19},"generated":{"line":50,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":20},"generated":{"line":50,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":26},"generated":{"line":50,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":50,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":50,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":84,"column":42},"generated":{"line":50,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":10},"generated":{"line":51,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":11},"generated":{"line":51,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":17},"generated":{"line":51,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":31},"generated":{"line":51,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":34},"generated":{"line":51,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":35},"generated":{"line":51,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":51,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":52,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":11},"generated":{"line":52,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":17},"generated":{"line":52,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":31},"generated":{"line":52,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":34},"generated":{"line":52,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":35},"generated":{"line":52,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":52,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":87,"column":5},"generated":{"line":53,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":8},"generated":{"line":55,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":55,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":18},"generated":{"line":55,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":55,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":8},"generated":{"line":57,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":9},"generated":{"line":57,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":57,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":91,"column":3},"generated":{"line":58,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":78,"column":2},"generated":{"line":58,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":60,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":18},"generated":{"line":60,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":19},"generated":{"line":60,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":18},"generated":{"line":60,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":34},"generated":{"line":60,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":8},"generated":{"line":63,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":63,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":15},"generated":{"line":63,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":34},"generated":{"line":63,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":37},"generated":{"line":63,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":38},"generated":{"line":63,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":47},"generated":{"line":63,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":50},"generated":{"line":63,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":51},"generated":{"line":63,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":63,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":65,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":10},"generated":{"line":65,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":11},"generated":{"line":65,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":17},"generated":{"line":65,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":65,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":10},"generated":{"line":65,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":11},"generated":{"line":65,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":65,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":98,"column":17},"generated":{"line":65,"column":52}},{"source":"../event-handler.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":65,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":10},"generated":{"line":65,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":11},"generated":{"line":65,"column":73}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":17},"generated":{"line":65,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":65,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":33},"generated":{"line":65,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":37},"generated":{"line":65,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":38},"generated":{"line":65,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":33},"generated":{"line":65,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":99,"column":44},"generated":{"line":65,"column":107}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":65,"column":125}},{"source":"../event-handler.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":65,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":66,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":12},"generated":{"line":66,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":22},"generated":{"line":66,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":25},"generated":{"line":66,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":29},"generated":{"line":66,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":30},"generated":{"line":66,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":25},"generated":{"line":66,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":36},"generated":{"line":66,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":66,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":67,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":12},"generated":{"line":67,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":22},"generated":{"line":67,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":67,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":29},"generated":{"line":67,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":30},"generated":{"line":67,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":67,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":36},"generated":{"line":67,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":67,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":10},"generated":{"line":68,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":11},"generated":{"line":68,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":17},"generated":{"line":68,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":25},"generated":{"line":68,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":80}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":83}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":40},"generated":{"line":68,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":52},"generated":{"line":68,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":126}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":64},"generated":{"line":68,"column":128}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":37},"generated":{"line":68,"column":131}},{"source":"../event-handler.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":68,"column":132}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":5},"generated":{"line":69,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":69,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":69,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":10},"generated":{"line":69,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":11},"generated":{"line":69,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":17},"generated":{"line":69,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":6},"generated":{"line":69,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":7},"generated":{"line":69,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":69,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":12},"generated":{"line":69,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":7},"generated":{"line":69,"column":56}},{"source":"../event-handler.ts","name":null,"original":{"line":107,"column":18},"generated":{"line":69,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":6},"generated":{"line":69,"column":75}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":7},"generated":{"line":69,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":11},"generated":{"line":69,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":69,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":7},"generated":{"line":69,"column":87}},{"source":"../event-handler.ts","name":null,"original":{"line":108,"column":18},"generated":{"line":69,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":106,"column":6},"generated":{"line":69,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":6},"generated":{"line":69,"column":103}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":7},"generated":{"line":69,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":11},"generated":{"line":69,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":69,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":7},"generated":{"line":69,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":109,"column":18},"generated":{"line":69,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":69,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":110,"column":6},"generated":{"line":69,"column":129}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":10},"generated":{"line":70,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":11},"generated":{"line":70,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":17},"generated":{"line":70,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":25},"generated":{"line":70,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":74}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":80}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":83}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":8},"generated":{"line":70,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":12},"generated":{"line":70,"column":109}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":13},"generated":{"line":70,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":8},"generated":{"line":70,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":112,"column":19},"generated":{"line":70,"column":116}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":128}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":70,"column":130}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":12},"generated":{"line":70,"column":135}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":13},"generated":{"line":70,"column":136}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":70,"column":141}},{"source":"../event-handler.ts","name":null,"original":{"line":113,"column":19},"generated":{"line":70,"column":142}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":154}},{"source":"../event-handler.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":70,"column":156}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":37},"generated":{"line":70,"column":159}},{"source":"../event-handler.ts","name":null,"original":{"line":111,"column":6},"generated":{"line":70,"column":160}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":5},"generated":{"line":71,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":105,"column":11},"generated":{"line":71,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":11},"generated":{"line":71,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":71,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":20},"generated":{"line":71,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":26},"generated":{"line":71,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":71,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":11},"generated":{"line":71,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":116,"column":42},"generated":{"line":71,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":6},"generated":{"line":72,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":72,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":16},"generated":{"line":72,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":72,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":23},"generated":{"line":72,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":24},"generated":{"line":72,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":72,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":30},"generated":{"line":72,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":117,"column":6},"generated":{"line":72,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":10},"generated":{"line":73,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":11},"generated":{"line":73,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":17},"generated":{"line":73,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":25},"generated":{"line":73,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":72}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":86}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":87}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":92}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":120,"column":8},"generated":{"line":73,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":8},"generated":{"line":73,"column":108}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":73,"column":113}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":13},"generated":{"line":73,"column":114}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":8},"generated":{"line":73,"column":119}},{"source":"../event-handler.ts","name":null,"original":{"line":121,"column":19},"generated":{"line":73,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":129}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":8},"generated":{"line":73,"column":131}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":12},"generated":{"line":73,"column":136}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":13},"generated":{"line":73,"column":137}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":8},"generated":{"line":73,"column":142}},{"source":"../event-handler.ts","name":null,"original":{"line":122,"column":19},"generated":{"line":73,"column":143}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":35},"generated":{"line":73,"column":152}},{"source":"../event-handler.ts","name":null,"original":{"line":119,"column":6},"generated":{"line":73,"column":153}},{"source":"../event-handler.ts","name":null,"original":{"line":124,"column":5},"generated":{"line":74,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":8},"generated":{"line":76,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":9},"generated":{"line":76,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":15},"generated":{"line":76,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":28},"generated":{"line":76,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":76,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":8},"generated":{"line":77,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":9},"generated":{"line":77,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":15},"generated":{"line":77,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":32},"generated":{"line":77,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":127,"column":4},"generated":{"line":77,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":8},"generated":{"line":79,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":9},"generated":{"line":79,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":18},"generated":{"line":79,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":129,"column":4},"generated":{"line":79,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":130,"column":3},"generated":{"line":80,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":93,"column":2},"generated":{"line":80,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":82,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":22},"generated":{"line":82,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":22},"generated":{"line":82,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":19},"generated":{"line":83,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":24},"generated":{"line":83,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":28},"generated":{"line":83,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":29},"generated":{"line":83,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":24},"generated":{"line":83,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":34},"generated":{"line":83,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":133,"column":12},"generated":{"line":83,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":85,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":12},"generated":{"line":85,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":13},"generated":{"line":85,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":19},"generated":{"line":85,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":85,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":34},"generated":{"line":85,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":38},"generated":{"line":85,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":39},"generated":{"line":85,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":34},"generated":{"line":85,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":45},"generated":{"line":85,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":85,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":58},"generated":{"line":85,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":10},"generated":{"line":86,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":11},"generated":{"line":86,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":18},"generated":{"line":86,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":24},"generated":{"line":86,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":33},"generated":{"line":86,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":40},"generated":{"line":86,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":41},"generated":{"line":86,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":136,"column":6},"generated":{"line":86,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":5},"generated":{"line":87,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":87,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":87,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":15},"generated":{"line":87,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":16},"generated":{"line":87,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":20},"generated":{"line":87,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":21},"generated":{"line":87,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":16},"generated":{"line":87,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":27},"generated":{"line":87,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":87,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":40},"generated":{"line":87,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":10},"generated":{"line":88,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":11},"generated":{"line":88,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":18},"generated":{"line":88,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":24},"generated":{"line":88,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":33},"generated":{"line":88,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":40},"generated":{"line":88,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":41},"generated":{"line":88,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":138,"column":6},"generated":{"line":88,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":139,"column":5},"generated":{"line":89,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":137,"column":11},"generated":{"line":89,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":139,"column":11},"generated":{"line":89,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":10},"generated":{"line":90,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":11},"generated":{"line":90,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":18},"generated":{"line":90,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":24},"generated":{"line":90,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":33},"generated":{"line":90,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":40},"generated":{"line":90,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":41},"generated":{"line":90,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":140,"column":6},"generated":{"line":90,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":141,"column":5},"generated":{"line":91,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":142,"column":3},"generated":{"line":92,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":92,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":94,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":94,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":19},"generated":{"line":94,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":94,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":37},"generated":{"line":94,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":97,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":11},"generated":{"line":97,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":12},"generated":{"line":97,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":97,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":97,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":31},"generated":{"line":97,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":34},"generated":{"line":97,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":35},"generated":{"line":97,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":31},"generated":{"line":97,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":47},"generated":{"line":97,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":97,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":145,"column":51},"generated":{"line":97,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":10},"generated":{"line":98,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":11},"generated":{"line":98,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":17},"generated":{"line":98,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":31},"generated":{"line":98,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":146,"column":6},"generated":{"line":98,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":10},"generated":{"line":100,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":11},"generated":{"line":100,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":147,"column":6},"generated":{"line":100,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":148,"column":5},"generated":{"line":101,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":103,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":9},"generated":{"line":103,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":10},"generated":{"line":103,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":18},"generated":{"line":103,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":6},"generated":{"line":103,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":9},"generated":{"line":103,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":10},"generated":{"line":103,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":6},"generated":{"line":103,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":152,"column":22},"generated":{"line":103,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":103,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":9},"generated":{"line":103,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":103,"column":62}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":103,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":153,"column":18},"generated":{"line":103,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":103,"column":78}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":6},"generated":{"line":103,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":9},"generated":{"line":103,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":10},"generated":{"line":103,"column":86}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":6},"generated":{"line":103,"column":93}},{"source":"../event-handler.ts","name":null,"original":{"line":154,"column":22},"generated":{"line":103,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":103,"column":100}},{"source":"../event-handler.ts","name":null,"original":{"line":155,"column":6},"generated":{"line":103,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":6},"generated":{"line":104,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":10},"generated":{"line":104,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":14},"generated":{"line":104,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":15},"generated":{"line":104,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":10},"generated":{"line":104,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":21},"generated":{"line":104,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":6},"generated":{"line":104,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":156,"column":35},"generated":{"line":104,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":8},"generated":{"line":105,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":14},"generated":{"line":105,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":18},"generated":{"line":105,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":21},"generated":{"line":105,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":25},"generated":{"line":105,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":26},"generated":{"line":105,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":21},"generated":{"line":105,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":32},"generated":{"line":105,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":157,"column":8},"generated":{"line":105,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":12},"generated":{"line":106,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":13},"generated":{"line":106,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":19},"generated":{"line":106,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":27},"generated":{"line":106,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":42},"generated":{"line":106,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":39},"generated":{"line":106,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":159,"column":8},"generated":{"line":106,"column":111}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":107,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":13},"generated":{"line":107,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":19},"generated":{"line":107,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":34},"generated":{"line":107,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":160,"column":8},"generated":{"line":107,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":161,"column":7},"generated":{"line":108,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":6},"generated":{"line":110,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":110,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":110,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":15},"generated":{"line":110,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":110,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":21},"generated":{"line":110,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":6},"generated":{"line":110,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":163,"column":35},"generated":{"line":110,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":8},"generated":{"line":111,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":14},"generated":{"line":111,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":18},"generated":{"line":111,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":21},"generated":{"line":111,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":25},"generated":{"line":111,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":26},"generated":{"line":111,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":21},"generated":{"line":111,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":32},"generated":{"line":111,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":164,"column":8},"generated":{"line":111,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":8},"generated":{"line":112,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":14},"generated":{"line":112,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":20},"generated":{"line":112,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":23},"generated":{"line":112,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":27},"generated":{"line":112,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":28},"generated":{"line":112,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":165,"column":8},"generated":{"line":112,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":8},"generated":{"line":113,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":14},"generated":{"line":113,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":20},"generated":{"line":113,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":23},"generated":{"line":113,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":27},"generated":{"line":113,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":28},"generated":{"line":113,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":166,"column":8},"generated":{"line":113,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":12},"generated":{"line":114,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":13},"generated":{"line":114,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":19},"generated":{"line":114,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":27},"generated":{"line":114,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":81}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":82}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":94}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":101}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":104}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":42},"generated":{"line":114,"column":106}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":110}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":48},"generated":{"line":114,"column":112}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":118}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":56},"generated":{"line":114,"column":120}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":39},"generated":{"line":114,"column":126}},{"source":"../event-handler.ts","name":null,"original":{"line":168,"column":8},"generated":{"line":114,"column":127}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":12},"generated":{"line":115,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":13},"generated":{"line":115,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":19},"generated":{"line":115,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":34},"generated":{"line":115,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":169,"column":8},"generated":{"line":115,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":170,"column":7},"generated":{"line":116,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":10},"generated":{"line":118,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":11},"generated":{"line":118,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":20},"generated":{"line":118,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":172,"column":6},"generated":{"line":118,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":10},"generated":{"line":120,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":11},"generated":{"line":120,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":173,"column":6},"generated":{"line":120,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":174,"column":5},"generated":{"line":121,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":175,"column":3},"generated":{"line":122,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":122,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":124,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":124,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":17},"generated":{"line":124,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":124,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":35},"generated":{"line":124,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":125,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":11},"generated":{"line":125,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":12},"generated":{"line":125,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":20},"generated":{"line":125,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":8},"generated":{"line":125,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":31},"generated":{"line":125,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":34},"generated":{"line":125,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":35},"generated":{"line":125,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":31},"generated":{"line":125,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":47},"generated":{"line":125,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":125,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":178,"column":51},"generated":{"line":125,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":10},"generated":{"line":126,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":11},"generated":{"line":126,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":19}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":17},"generated":{"line":126,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":31},"generated":{"line":126,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":179,"column":6},"generated":{"line":126,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":10},"generated":{"line":128,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":11},"generated":{"line":128,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":180,"column":6},"generated":{"line":128,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":181,"column":5},"generated":{"line":129,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":182,"column":3},"generated":{"line":130,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":177,"column":2},"generated":{"line":130,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":132,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":22},"generated":{"line":132,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":23},"generated":{"line":132,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":22},"generated":{"line":132,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":38},"generated":{"line":132,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":7},"generated":{"line":135,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":8},"generated":{"line":135,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":135,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":8},"generated":{"line":137,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":9},"generated":{"line":137,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":15},"generated":{"line":137,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":10},"generated":{"line":137,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":11},"generated":{"line":137,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":17},"generated":{"line":137,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":137,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":25},"generated":{"line":137,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":28},"generated":{"line":137,"column":48}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":29},"generated":{"line":137,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":25},"generated":{"line":137,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":188,"column":38},"generated":{"line":137,"column":58}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":6},"generated":{"line":137,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":10},"generated":{"line":137,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":11},"generated":{"line":137,"column":71}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":6},"generated":{"line":137,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":189,"column":17},"generated":{"line":137,"column":77}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":89}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":6},"generated":{"line":137,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":10},"generated":{"line":137,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":11},"generated":{"line":137,"column":97}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":6},"generated":{"line":137,"column":102}},{"source":"../event-handler.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":137,"column":103}},{"source":"../event-handler.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":137,"column":115}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":8},"generated":{"line":139,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":9},"generated":{"line":139,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":29}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":15},"generated":{"line":139,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":23},"generated":{"line":139,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":65}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":70}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":75}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":76}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":79}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":84}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":85}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":88}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":90}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":91}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":95}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":96}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":33},"generated":{"line":139,"column":98}},{"source":"../event-handler.ts","name":null,"original":{"line":193,"column":4},"generated":{"line":139,"column":99}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":8},"generated":{"line":141,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":9},"generated":{"line":141,"column":12}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":18},"generated":{"line":141,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":195,"column":4},"generated":{"line":141,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":196,"column":3},"generated":{"line":142,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":184,"column":2},"generated":{"line":142,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":144,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":14}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":17},"generated":{"line":144,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":144,"column":21}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":145,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":145,"column":18}},{"source":"../event-handler.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":145,"column":24}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":9},"generated":{"line":146,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":20},"generated":{"line":146,"column":20}},{"source":"../event-handler.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":146,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":17,"column":3},"generated":{"line":147,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":2}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":149,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":9},"generated":{"line":150,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":16},"generated":{"line":150,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":33},"generated":{"line":150,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":46},"generated":{"line":150,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":51},"generated":{"line":150,"column":51}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":150,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":68},"generated":{"line":150,"column":68}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":151,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":151,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":151,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":151,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":68},"generated":{"line":152,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":20,"column":4},"generated":{"line":152,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":10},"generated":{"line":153,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":11},"generated":{"line":153,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":28},"generated":{"line":153,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":39},"generated":{"line":153,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":44},"generated":{"line":153,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":153,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":59},"generated":{"line":153,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":61},"generated":{"line":154,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":61},"generated":{"line":154,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":68},"generated":{"line":154,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":70},"generated":{"line":154,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":59},"generated":{"line":155,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":155,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":156,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":11},"generated":{"line":156,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":28},"generated":{"line":156,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":41},"generated":{"line":156,"column":41}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":46},"generated":{"line":156,"column":46}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":156,"column":61}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":63},"generated":{"line":156,"column":63}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":157,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":157,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":13},"generated":{"line":157,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":157,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":63},"generated":{"line":158,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":24,"column":4},"generated":{"line":158,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":10},"generated":{"line":159,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":11},"generated":{"line":159,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":28},"generated":{"line":159,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":39},"generated":{"line":159,"column":39}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":44},"generated":{"line":159,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":159,"column":57}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":59},"generated":{"line":159,"column":59}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":61},"generated":{"line":160,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":61},"generated":{"line":160,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":68},"generated":{"line":160,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":70},"generated":{"line":160,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":59},"generated":{"line":161,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":27,"column":4},"generated":{"line":161,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":162,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":162,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":28},"generated":{"line":162,"column":28}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":37},"generated":{"line":162,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":42},"generated":{"line":162,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":162,"column":53}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":55},"generated":{"line":162,"column":55}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":57},"generated":{"line":163,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":57},"generated":{"line":163,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":64},"generated":{"line":163,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":66},"generated":{"line":163,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":55},"generated":{"line":164,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":28,"column":4},"generated":{"line":164,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":9},"generated":{"line":165,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":165,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":32}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":33},"generated":{"line":165,"column":33}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":42},"generated":{"line":165,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":47},"generated":{"line":165,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":165,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":66},"generated":{"line":165,"column":66}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":166,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":166,"column":6}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":166,"column":13}},{"source":"../event-handler.ts","name":null,"original":{"line":30,"column":15},"generated":{"line":166,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":66},"generated":{"line":167,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":167,"column":5}},{"source":"../event-handler.ts","name":null,"original":{"line":32,"column":3},"generated":{"line":168,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":168,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":2}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":17}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":26}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":27}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":34}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":37}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":170,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":171,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":16},"generated":{"line":171,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":36},"generated":{"line":171,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":49},"generated":{"line":171,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":54},"generated":{"line":171,"column":54}},{"source":"../event-handler.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":171,"column":69}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":172,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":172,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":31},"generated":{"line":172,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":42},"generated":{"line":172,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":47},"generated":{"line":172,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":172,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":10},"generated":{"line":173,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":11},"generated":{"line":173,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":31},"generated":{"line":173,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":44},"generated":{"line":173,"column":44}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":49},"generated":{"line":173,"column":49}},{"source":"../event-handler.ts","name":null,"original":{"line":37,"column":4},"generated":{"line":173,"column":64}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":10},"generated":{"line":174,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":11},"generated":{"line":174,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":31},"generated":{"line":174,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":42},"generated":{"line":174,"column":42}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":47},"generated":{"line":174,"column":47}},{"source":"../event-handler.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":174,"column":60}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":4}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":10},"generated":{"line":175,"column":10}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":175,"column":11}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":30}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":31},"generated":{"line":175,"column":31}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":38}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":40},"generated":{"line":175,"column":40}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":45},"generated":{"line":175,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":175,"column":56}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":176,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":15}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":16},"generated":{"line":176,"column":16}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":35}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":36},"generated":{"line":176,"column":36}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":43}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":45},"generated":{"line":176,"column":45}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":50},"generated":{"line":176,"column":50}},{"source":"../event-handler.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":176,"column":67}},{"source":"../event-handler.ts","name":null,"original":{"line":41,"column":3},"generated":{"line":177,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":177,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":9}},{"source":"../event-handler.ts","name":null,"original":{"line":197,"column":0},"generated":{"line":179,"column":23}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":1}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":0},"generated":{"line":180,"column":3}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":0}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":7}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":8}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":22}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":25}},{"source":"../event-handler.ts","name":null,"original":{"line":4,"column":13},"generated":{"line":182,"column":39}}],"sources":{"../event-handler.ts":"import { GEState } from \"./state\";\nimport { GEGraphRenderer } from \"./graph-renderer\";\n\nexport class GEEventHandler {\n state: GEState;\n canvas: HTMLCanvasElement;\n renderer: GEGraphRenderer;\n\n constructor(\n view: GEState,\n canvas: HTMLCanvasElement,\n renderer: GEGraphRenderer\n ) {\n this.state = view;\n this.canvas = canvas;\n this.renderer = renderer;\n }\n\n init(): void {\n this.canvas.addEventListener(\"mousedown\", this.handleMouseDown, {\n passive: true\n });\n window.addEventListener(\"mouseup\", this.handleMouseUp, { passive: true });\n window.addEventListener(\"mousemove\", this.handleMouseMove, {\n passive: true\n });\n window.addEventListener(\"keydown\", this.handleKeyDown, { passive: true });\n window.addEventListener(\"keyup\", this.handleKeyUp, { passive: true });\n this.canvas.addEventListener(\"wheel\", this.handleCanvasWheel, {\n passive: false\n });\n }\n\n destroy(): void {\n this.canvas.removeEventListener(\"mousedown\", this.handleMouseDown);\n window.removeEventListener(\"mouseup\", this.handleMouseUp);\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.removeEventListener(\"keydown\", this.handleKeyDown);\n window.removeEventListener(\"keyup\", this.handleKeyUp);\n this.canvas.removeEventListener(\"wheel\", this.handleCanvasWheel);\n }\n\n handleMouseDown = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n this.state.isDragging = true;\n\n if (\n this.state.selectedNode !== this.state.hoveredNode ||\n this.state.selectedEdge !== this.state.hoveredEdge\n ) {\n this.state.selectedNode = this.state.hoveredNode;\n this.state.selectedEdge = this.state.hoveredEdge;\n\n this.state.options.onSelectionChange?.(\n this.state.selectedNode,\n this.state.selectedEdge\n );\n }\n\n if (this.state.selectedNode) {\n const node = this.state.selectedNode;\n\n if (this.state.isShiftDown) {\n this.state.isCreatingEdge = true;\n this.state.dragLineSourceNode = node;\n this.state.dragLineTargetX = node.x;\n this.state.dragLineTargetY = node.y;\n } else {\n this.state.moveNodeX = node.x;\n this.state.moveNodeY = node.y;\n }\n }\n\n this.renderer.requestDraw();\n };\n\n handleMouseMove = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (this.state.isMovingNode()) {\n this.state.moveNodeX += evt.movementX / this.state.scale;\n this.state.moveNodeY += evt.movementY / this.state.scale;\n } else if (this.state.isMovingView()) {\n this.state.translateX += evt.movementX;\n this.state.translateY += evt.movementY;\n }\n\n this.renderer.requestDraw();\n this.updateCursorStyle();\n };\n\n handleMouseUp = (evt: MouseEvent): void => {\n this.state.setPointerPosition(evt.clientX, evt.clientY);\n\n if (\n this.state.isCreatingEdge &&\n this.state.hoveredNode &&\n this.state.hoveredNode !== this.state.dragLineSourceNode\n ) {\n const sourceNode = this.state.dragLineSourceNode;\n const targetNode = this.state.hoveredNode;\n\n this.state.options.onCreateEdge?.(sourceNode, targetNode, evt);\n } else if (\n this.state.isShiftDown &&\n !this.state.isCreatingEdge &&\n !this.state.hoveredNode &&\n !this.state.hoveredEdge\n ) {\n this.state.options.onCreateNode?.(\n this.state.pointerViewX,\n this.state.pointerViewY,\n evt\n );\n } else if (this.state.isMovingNode()) {\n const node = this.state.selectedNode;\n\n this.state.options.onMoveNode?.(\n node,\n this.state.moveNodeX,\n this.state.moveNodeY\n );\n }\n\n this.state.isDragging = false;\n this.state.isCreatingEdge = false;\n\n this.renderer.requestDraw();\n };\n\n updateCursorStyle = (): void => {\n const { options } = this.state;\n\n if (this.state.hoveredNode || this.state.hoveredEdge) {\n this.canvas.style.cursor = options.cursorPointer;\n } else if (!this.state.isShiftDown) {\n this.canvas.style.cursor = options.cursorGrab;\n } else {\n this.canvas.style.cursor = options.cursorCrosshair;\n }\n };\n\n handleKeyDown = (evt: KeyboardEvent): void => {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n this.state.isShiftDown = true;\n this.updateCursorStyle();\n }\n\n if (\n evt.key === \"Backspace\" ||\n evt.keyCode === 8 ||\n evt.key === \"Delete\" ||\n evt.keyCode === 46\n ) {\n if (this.state.selectedNode) {\n const node = this.state.selectedNode;\n\n this.state.options.onDeleteNode?.(node);\n this.state.selectedNode = undefined;\n }\n\n if (this.state.selectedEdge) {\n const edge = this.state.selectedEdge;\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n this.state.options.onDeleteEdge?.(edge, source, target);\n this.state.selectedEdge = undefined;\n }\n\n this.renderer.requestDraw();\n this.updateCursorStyle();\n }\n };\n\n handleKeyUp = (evt: KeyboardEvent): void => {\n if (evt.key === \"Shift\" || evt.keyCode === 16) {\n this.state.isShiftDown = false;\n this.updateCursorStyle();\n }\n };\n\n handleCanvasWheel = (evt: WheelEvent): void => {\n evt.preventDefault();\n\n this.state.zoomTo(\n this.state.scale - evt.deltaY * 0.001,\n this.state.pointerViewX,\n this.state.pointerViewY\n );\n\n this.state.options.onViewZoom?.();\n\n this.renderer.requestDraw();\n };\n}\n"},"lineCount":null}},"error":null,"hash":"ae640e259feaf6fade4342a90bb56047","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json b/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json deleted file mode 100644 index bf2d518..0000000 --- a/.cache/4a/5e6d5f61c1701d7dfe2382d6c75c9f.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../intersections.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.intersectLineCircleCenter = exports.instersectLinePolygonCenter = exports.intersectLineRectCenter = exports.intersect = void 0; // http://paulbourke.net/geometry/pointlineplane/javascript.txt\n\nfunction intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint) {\n // Check if none of the lines are of length 0\n if (x1 === x2 && y1 === y2 || x3 === x4 && y3 === y4) return false;\n var denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); // Lines are parallel\n\n if (denominator === 0) return false;\n var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n var ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; // is the intersection along the segments\n\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; // Return a object with the x and y coordinates of the intersection\n\n outPoint[0] = x1 + ua * (x2 - x1);\n outPoint[1] = y1 + ua * (y2 - y1);\n return true;\n}\n\nexports.intersect = intersect;\n\nfunction intersectLineRectCenter(x1, y1, x2, y2, w, h, outPoint) {\n var wh = w * 0.5;\n var hh = h * 0.5;\n var i1 = intersect(x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh, outPoint);\n if (i1) return true;\n var i2 = intersect(x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh, outPoint);\n if (i2) return true;\n var i3 = intersect(x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh, outPoint);\n if (i3) return true;\n var i4 = intersect(x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh, outPoint);\n if (i4) return true;\n return false;\n}\n\nexports.intersectLineRectCenter = intersectLineRectCenter;\n\nfunction instersectLinePolygonCenter(x1, y1, x2, y2, points, outPoint) {\n var len = points.length;\n\n for (var i = 0; i < len; i++) {\n var nextIndex = (i + 1) % len;\n var x3 = x2 + points[i][0];\n var y3 = y2 + points[i][1];\n var x4 = x2 + points[nextIndex][0];\n var y4 = y2 + points[nextIndex][1];\n var int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint);\n if (int) return true;\n }\n\n return false;\n}\n\nexports.instersectLinePolygonCenter = instersectLinePolygonCenter;\n\nfunction intersectLineCircleCenter(x1, y1, x2, y2, r, outPoint) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n if (dx * dx + dy * dy <= r * r) return false;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad);\n outPoint[0] = x2 - cosr * r;\n outPoint[1] = y2 - sinr * r;\n return true;\n}\n\nexports.intersectLineCircleCenter = intersectLineCircleCenter;"},"sourceMaps":{"js":{"mappings":[{"source":"../intersections.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":6,"column":136}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":16},"generated":{"line":8,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":3,"column":2},"generated":{"line":8,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":8,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":8,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":8,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":7,"column":2},"generated":{"line":8,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":8,"column":2},"generated":{"line":8,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":9,"column":2},"generated":{"line":8,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":8,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":8,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":8,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":8,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":9,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":2},"generated":{"line":10,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":7},"generated":{"line":10,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":10,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":10,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":7},"generated":{"line":10,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":20},"generated":{"line":10,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":22},"generated":{"line":10,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":27},"generated":{"line":10,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":10,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":35},"generated":{"line":10,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":37},"generated":{"line":10,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":42},"generated":{"line":10,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":35},"generated":{"line":10,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":48},"generated":{"line":10,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":50},"generated":{"line":10,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":55},"generated":{"line":10,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":2},"generated":{"line":10,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":60},"generated":{"line":10,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":67},"generated":{"line":10,"column":63}},{"source":"../intersections.ts","name":null,"original":{"line":14,"column":60},"generated":{"line":10,"column":68}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":11,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":8},"generated":{"line":11,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":19},"generated":{"line":11,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":23},"generated":{"line":11,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":11,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":28},"generated":{"line":11,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":35},"generated":{"line":11,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":37},"generated":{"line":11,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":40},"generated":{"line":11,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":22},"generated":{"line":11,"column":40}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":47},"generated":{"line":11,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":49},"generated":{"line":11,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":52},"generated":{"line":11,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":59},"generated":{"line":11,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":61},"generated":{"line":11,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":64},"generated":{"line":11,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":11,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":11,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":11,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":11,"column":67}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":13,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":13,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":17},"generated":{"line":13,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":22},"generated":{"line":13,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":13,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":13,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":32},"generated":{"line":13,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":13,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":14,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":14,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":10},"generated":{"line":14,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":14,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":14,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":17},"generated":{"line":14,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":20},"generated":{"line":14,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":27},"generated":{"line":14,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":29},"generated":{"line":14,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":32},"generated":{"line":14,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":14,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":39},"generated":{"line":14,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":41},"generated":{"line":14,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":44},"generated":{"line":14,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":51},"generated":{"line":14,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":53},"generated":{"line":14,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":56},"generated":{"line":14,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":14,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":14,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":63},"generated":{"line":14,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":14,"column":72}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":2},"generated":{"line":15,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":15,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":10},"generated":{"line":15,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":15,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":15},"generated":{"line":15,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":17},"generated":{"line":15,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":20},"generated":{"line":15,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":27},"generated":{"line":15,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":29},"generated":{"line":15,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":32},"generated":{"line":15,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":14},"generated":{"line":15,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":39},"generated":{"line":15,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":41},"generated":{"line":15,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":44},"generated":{"line":15,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":51},"generated":{"line":15,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":53},"generated":{"line":15,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":56},"generated":{"line":15,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":38},"generated":{"line":15,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":15,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":63},"generated":{"line":15,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":22,"column":2},"generated":{"line":15,"column":72}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":15,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":15,"column":74}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":17,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":8},"generated":{"line":17,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":11},"generated":{"line":17,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":17,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":18},"generated":{"line":17,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":21},"generated":{"line":17,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":26},"generated":{"line":17,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":28},"generated":{"line":17,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":31},"generated":{"line":17,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":6},"generated":{"line":17,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":36},"generated":{"line":17,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":38},"generated":{"line":17,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":17,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":17,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":44},"generated":{"line":17,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":51},"generated":{"line":17,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":25,"column":44},"generated":{"line":17,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":11,"column":28},"generated":{"line":17,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":27,"column":2},"generated":{"line":17,"column":58}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":19,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":19,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":19,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":16},"generated":{"line":19,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":18},"generated":{"line":19,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":21},"generated":{"line":19,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":23},"generated":{"line":19,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":27},"generated":{"line":19,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":29},"generated":{"line":19,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":32},"generated":{"line":19,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":23},"generated":{"line":19,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":19,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":20,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":20,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":20,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":20,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":18},"generated":{"line":20,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":21},"generated":{"line":20,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":20,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":27},"generated":{"line":20,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":29},"generated":{"line":20,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":32},"generated":{"line":20,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":20,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":20,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":21,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":21,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":21,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":32,"column":1},"generated":{"line":22,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":24,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":16},"generated":{"line":26,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":26,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":36,"column":2},"generated":{"line":26,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":37,"column":2},"generated":{"line":26,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":26,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":26,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":26,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":26,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":26,"column":63}},{"source":"../intersections.ts","name":null,"original":{"line":41,"column":28},"generated":{"line":26,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":27,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":27,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":27,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":13},"generated":{"line":27,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":14},"generated":{"line":27,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":17},"generated":{"line":27,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":27,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":28,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":8},"generated":{"line":28,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":28,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":13},"generated":{"line":28,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":14},"generated":{"line":28,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":17},"generated":{"line":28,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":28,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":29,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":8},"generated":{"line":29,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":10},"generated":{"line":29,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":29,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":29,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":29,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":29,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":29,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":29,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":29,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":29,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":29,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":29,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":29,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":6},"generated":{"line":29,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":29,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":29,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":22},"generated":{"line":29,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":29,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":30,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":6},"generated":{"line":30,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":30,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":10},"generated":{"line":30,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":17},"generated":{"line":30,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":58,"column":10},"generated":{"line":30,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":31,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":8},"generated":{"line":31,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":10},"generated":{"line":31,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":31,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":31,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":62,"column":4},"generated":{"line":31,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":63,"column":4},"generated":{"line":31,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":31,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":31,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":6},"generated":{"line":31,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":31,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":31,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":31,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":66,"column":9},"generated":{"line":31,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":4},"generated":{"line":31,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":31,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":31,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":31,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":31,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":31,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":69,"column":4},"generated":{"line":31,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":22},"generated":{"line":31,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":31,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":2},"generated":{"line":32,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":32,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":2},"generated":{"line":32,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":10},"generated":{"line":32,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":17},"generated":{"line":32,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":72,"column":10},"generated":{"line":32,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":2},"generated":{"line":33,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":8},"generated":{"line":33,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":10},"generated":{"line":33,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":13},"generated":{"line":33,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":33,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":33,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":33,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":78,"column":4},"generated":{"line":33,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":33,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":33,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":79,"column":9},"generated":{"line":33,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":4},"generated":{"line":33,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":33,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":33,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":33,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":33,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":81,"column":9},"generated":{"line":33,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":33,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":33,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":82,"column":9},"generated":{"line":33,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":83,"column":4},"generated":{"line":33,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":22},"generated":{"line":33,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":74,"column":2},"generated":{"line":33,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":34,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":34,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":2},"generated":{"line":34,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":34,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":17},"generated":{"line":34,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":86,"column":10},"generated":{"line":34,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":2},"generated":{"line":35,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":8},"generated":{"line":35,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":10},"generated":{"line":35,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":13},"generated":{"line":35,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":89,"column":4},"generated":{"line":35,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":90,"column":4},"generated":{"line":35,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":35,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":92,"column":4},"generated":{"line":35,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":35,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":35,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":35,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":35,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":35,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":35,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":4},"generated":{"line":35,"column":55}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":35,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":95,"column":9},"generated":{"line":35,"column":60}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":35,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":35,"column":66}},{"source":"../intersections.ts","name":null,"original":{"line":96,"column":9},"generated":{"line":35,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":97,"column":4},"generated":{"line":35,"column":73}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":35,"column":81}},{"source":"../intersections.ts","name":null,"original":{"line":88,"column":2},"generated":{"line":35,"column":82}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":2},"generated":{"line":36,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":36,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":2},"generated":{"line":36,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":10},"generated":{"line":36,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":17},"generated":{"line":36,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":100,"column":10},"generated":{"line":36,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":2},"generated":{"line":37,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":9},"generated":{"line":37,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":102,"column":2},"generated":{"line":37,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":103,"column":1},"generated":{"line":38,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":34,"column":0},"generated":{"line":40,"column":57}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":16},"generated":{"line":42,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":42,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":107,"column":2},"generated":{"line":42,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":108,"column":2},"generated":{"line":42,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":42,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":42,"column":53}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":59}},{"source":"../intersections.ts","name":null,"original":{"line":111,"column":2},"generated":{"line":42,"column":61}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":42,"column":69}},{"source":"../intersections.ts","name":null,"original":{"line":111,"column":28},"generated":{"line":42,"column":71}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":2},"generated":{"line":43,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":8},"generated":{"line":43,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":11},"generated":{"line":43,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":14},"generated":{"line":43,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":20},"generated":{"line":43,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":21},"generated":{"line":43,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":113,"column":2},"generated":{"line":43,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":7},"generated":{"line":45,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":11},"generated":{"line":45,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":12},"generated":{"line":45,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":15},"generated":{"line":45,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":18},"generated":{"line":45,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":19},"generated":{"line":45,"column":19}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":22},"generated":{"line":45,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":27},"generated":{"line":45,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":28},"generated":{"line":45,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":2},"generated":{"line":45,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":115,"column":32},"generated":{"line":45,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":46,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":10},"generated":{"line":46,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":46,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":46,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":23},"generated":{"line":46,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":24},"generated":{"line":46,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":27},"generated":{"line":46,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":22},"generated":{"line":46,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":32},"generated":{"line":46,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":46,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":47,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":10},"generated":{"line":47,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":47,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":15},"generated":{"line":47,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":17},"generated":{"line":47,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":26},"generated":{"line":47,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":27},"generated":{"line":47,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":26},"generated":{"line":47,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":30},"generated":{"line":47,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":47,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":47,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":48,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":10},"generated":{"line":48,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":12},"generated":{"line":48,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":15},"generated":{"line":48,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":17},"generated":{"line":48,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":26},"generated":{"line":48,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":27},"generated":{"line":48,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":26},"generated":{"line":48,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":30},"generated":{"line":48,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":20},"generated":{"line":48,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":48,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":49,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":10},"generated":{"line":49,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":12},"generated":{"line":49,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":15},"generated":{"line":49,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":17},"generated":{"line":49,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":26},"generated":{"line":49,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":27},"generated":{"line":49,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":26},"generated":{"line":49,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":38},"generated":{"line":49,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":20},"generated":{"line":49,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":49,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":4},"generated":{"line":50,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":10},"generated":{"line":50,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":12},"generated":{"line":50,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":15},"generated":{"line":50,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":17},"generated":{"line":50,"column":15}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":26},"generated":{"line":50,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":27},"generated":{"line":50,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":26},"generated":{"line":50,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":38},"generated":{"line":50,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":20},"generated":{"line":50,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":121,"column":4},"generated":{"line":50,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":51,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":10},"generated":{"line":51,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":13},"generated":{"line":51,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":16},"generated":{"line":51,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":26},"generated":{"line":51,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":30},"generated":{"line":51,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":34},"generated":{"line":51,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":38},"generated":{"line":51,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":42},"generated":{"line":51,"column":40}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":42}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":46},"generated":{"line":51,"column":44}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":50},"generated":{"line":51,"column":48}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":50}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":54},"generated":{"line":51,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":58},"generated":{"line":51,"column":56}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":25},"generated":{"line":51,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":51,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":4},"generated":{"line":52,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":8},"generated":{"line":52,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":4},"generated":{"line":52,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":13},"generated":{"line":52,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":20},"generated":{"line":52,"column":20}},{"source":"../intersections.ts","name":null,"original":{"line":125,"column":13},"generated":{"line":52,"column":24}},{"source":"../intersections.ts","name":null,"original":{"line":126,"column":3},"generated":{"line":53,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":2},"generated":{"line":55,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":9},"generated":{"line":55,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":128,"column":2},"generated":{"line":55,"column":14}},{"source":"../intersections.ts","name":null,"original":{"line":129,"column":1},"generated":{"line":56,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":38}},{"source":"../intersections.ts","name":null,"original":{"line":105,"column":0},"generated":{"line":58,"column":65}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":16},"generated":{"line":60,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":132,"column":2},"generated":{"line":60,"column":35}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":37}},{"source":"../intersections.ts","name":null,"original":{"line":133,"column":2},"generated":{"line":60,"column":39}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":134,"column":2},"generated":{"line":60,"column":43}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":45}},{"source":"../intersections.ts","name":null,"original":{"line":135,"column":2},"generated":{"line":60,"column":47}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":49}},{"source":"../intersections.ts","name":null,"original":{"line":136,"column":2},"generated":{"line":60,"column":51}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":52}},{"source":"../intersections.ts","name":null,"original":{"line":137,"column":2},"generated":{"line":60,"column":54}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":60,"column":62}},{"source":"../intersections.ts","name":null,"original":{"line":137,"column":28},"generated":{"line":60,"column":64}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":2},"generated":{"line":61,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":8},"generated":{"line":61,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":61,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":13},"generated":{"line":61,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":15},"generated":{"line":61,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":18},"generated":{"line":61,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":139,"column":2},"generated":{"line":61,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":2},"generated":{"line":62,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":8},"generated":{"line":62,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":10},"generated":{"line":62,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":13},"generated":{"line":62,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":15},"generated":{"line":62,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":18},"generated":{"line":62,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":140,"column":2},"generated":{"line":62,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":2},"generated":{"line":63,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":8},"generated":{"line":63,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":11},"generated":{"line":63,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":16},"generated":{"line":63,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":18},"generated":{"line":63,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":21},"generated":{"line":63,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":6},"generated":{"line":63,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":27},"generated":{"line":63,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":28},"generated":{"line":63,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":31},"generated":{"line":63,"column":31}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":2},"generated":{"line":63,"column":32}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":34},"generated":{"line":63,"column":34}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":41},"generated":{"line":63,"column":41}},{"source":"../intersections.ts","name":null,"original":{"line":142,"column":34},"generated":{"line":63,"column":46}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":64,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":8},"generated":{"line":64,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":11},"generated":{"line":64,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":64,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":19},"generated":{"line":64,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":25},"generated":{"line":64,"column":23}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":29},"generated":{"line":64,"column":27}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":14},"generated":{"line":64,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":144,"column":2},"generated":{"line":64,"column":30}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":2},"generated":{"line":65,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":8},"generated":{"line":65,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":12},"generated":{"line":65,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":19},"generated":{"line":65,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":65,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":24},"generated":{"line":65,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":15},"generated":{"line":65,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":145,"column":2},"generated":{"line":65,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":2},"generated":{"line":66,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":66,"column":6}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":12},"generated":{"line":66,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":19},"generated":{"line":66,"column":17}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":20},"generated":{"line":66,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":66,"column":22}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":15},"generated":{"line":66,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":146,"column":2},"generated":{"line":66,"column":26}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":10},"generated":{"line":67,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":11},"generated":{"line":67,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":10},"generated":{"line":67,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":16},"generated":{"line":67,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":18},"generated":{"line":67,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":21},"generated":{"line":67,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":25},"generated":{"line":67,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":28},"generated":{"line":67,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":148,"column":2},"generated":{"line":67,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":2}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":10},"generated":{"line":68,"column":10}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":11},"generated":{"line":68,"column":11}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":10},"generated":{"line":68,"column":12}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":16},"generated":{"line":68,"column":16}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":18},"generated":{"line":68,"column":18}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":21},"generated":{"line":68,"column":21}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":25},"generated":{"line":68,"column":25}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":28},"generated":{"line":68,"column":28}},{"source":"../intersections.ts","name":null,"original":{"line":149,"column":2},"generated":{"line":68,"column":29}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":2},"generated":{"line":69,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":9},"generated":{"line":69,"column":9}},{"source":"../intersections.ts","name":null,"original":{"line":151,"column":2},"generated":{"line":69,"column":13}},{"source":"../intersections.ts","name":null,"original":{"line":152,"column":1},"generated":{"line":70,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":0}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":7}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":8}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":33}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":36}},{"source":"../intersections.ts","name":null,"original":{"line":131,"column":0},"generated":{"line":72,"column":61}}],"sources":{"../intersections.ts":"// http://paulbourke.net/geometry/pointlineplane/javascript.txt\nexport function intersect(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n x4: number,\n y4: number,\n outPoint: [number, number]\n): boolean {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false;\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) return false;\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false;\n\n // Return a object with the x and y coordinates of the intersection\n outPoint[0] = x1 + ua * (x2 - x1);\n outPoint[1] = y1 + ua * (y2 - y1);\n\n return true;\n}\n\nexport function intersectLineRectCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n w: number,\n h: number,\n outPoint: [number, number]\n): boolean {\n const wh = w * 0.5;\n const hh = h * 0.5;\n\n const i1 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 - wh,\n y2 - hh,\n x2 + wh,\n y2 - hh,\n outPoint\n );\n\n if (i1) return true;\n\n const i2 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 + wh,\n y2 - hh,\n x2 + wh,\n y2 + hh,\n outPoint\n );\n\n if (i2) return true;\n\n const i3 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 + wh,\n y2 + hh,\n x2 - wh,\n y2 + hh,\n outPoint\n );\n\n if (i3) return true;\n\n const i4 = intersect(\n x1,\n y1,\n x2,\n y2,\n x2 - wh,\n y2 + hh,\n x2 - wh,\n y2 - hh,\n outPoint\n );\n\n if (i4) return true;\n\n return false;\n}\n\nexport function instersectLinePolygonCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n points: [number, number][],\n outPoint: [number, number]\n): boolean {\n const len = points.length;\n\n for (let i = 0; i < len; i++) {\n const nextIndex = (i + 1) % len;\n\n const x3 = x2 + points[i][0];\n const y3 = y2 + points[i][1];\n const x4 = x2 + points[nextIndex][0];\n const y4 = y2 + points[nextIndex][1];\n\n const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint);\n\n if (int) return true;\n }\n\n return false;\n}\n\nexport function intersectLineCircleCenter(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n r: number,\n outPoint: [number, number]\n): boolean {\n const dx = x2 - x1;\n const dy = y2 - y1;\n\n if (dx * dx + dy * dy <= r * r) return false;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n outPoint[0] = x2 - cosr * r;\n outPoint[1] = y2 - sinr * r;\n\n return true;\n}\n"},"lineCount":null}},"error":null,"hash":"3cf584ec9ff339c1581524a81de018c4","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json b/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json deleted file mode 100644 index 894fd86..0000000 --- a/.cache/56/a5e5810e9f1bf24cc69cd25889e30f.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../types.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEGridType = exports.GEShapeName = void 0;\nvar GEShapeName;\n\n(function (GEShapeName) {\n GEShapeName[GEShapeName[\"CIRCLE\"] = 0] = \"CIRCLE\";\n GEShapeName[GEShapeName[\"RECTANGLE\"] = 1] = \"RECTANGLE\";\n GEShapeName[GEShapeName[\"POLYGON\"] = 2] = \"POLYGON\";\n})(GEShapeName = exports.GEShapeName || (exports.GEShapeName = {}));\n\nvar GEGridType;\n\n(function (GEGridType) {\n GEGridType[GEGridType[\"LINES\"] = 0] = \"LINES\";\n GEGridType[GEGridType[\"DOTS\"] = 1] = \"DOTS\";\n})(GEGridType = exports.GEGridType || (exports.GEGridType = {}));"},"sourceMaps":{"js":{"mappings":[{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":7,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":7,"column":4}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":7,"column":15}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":1}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":9,"column":11}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":9,"column":22}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":9,"column":24}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":0}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":2}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":13}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":14}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":25}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":26}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":34}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":35}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":38}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":39}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":40}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":43}},{"source":"../types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":10,"column":51}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":0}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":2}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":13}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":14}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":25}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":26}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":37}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":38}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":41}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":42}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":43}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":46}},{"source":"../types.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":11,"column":57}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":0}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":2}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":13}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":14}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":25}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":26}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":35}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":36}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":39}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":40}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":41}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":44}},{"source":"../types.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":12,"column":53}},{"source":"../types.ts","name":null,"original":{"line":7,"column":1},"generated":{"line":13,"column":0}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":13,"column":1}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":3}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":13,"column":14}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":17}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":24}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":25}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":36}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":41}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":48}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":49}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":60}},{"source":"../types.ts","name":null,"original":{"line":3,"column":23},"generated":{"line":13,"column":63}},{"source":"../types.ts","name":null,"original":{"line":3,"column":12},"generated":{"line":13,"column":65}},{"source":"../types.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":13,"column":66}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":15,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":15,"column":4}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":15,"column":14}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":1}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":17,"column":11}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":17,"column":21}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":17,"column":23}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":0}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":2}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":12}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":13}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":23}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":24}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":31}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":32}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":35}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":36}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":37}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":40}},{"source":"../types.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":18,"column":47}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":0}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":2}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":12}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":13}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":23}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":24}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":30}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":31}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":34}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":35}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":36}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":39}},{"source":"../types.ts","name":null,"original":{"line":52,"column":2},"generated":{"line":19,"column":45}},{"source":"../types.ts","name":null,"original":{"line":53,"column":1},"generated":{"line":20,"column":0}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":20,"column":1}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":3}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":20,"column":13}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":16}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":23}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":24}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":34}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":39}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":46}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":47}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":57}},{"source":"../types.ts","name":null,"original":{"line":50,"column":22},"generated":{"line":20,"column":60}},{"source":"../types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":20,"column":62}},{"source":"../types.ts","name":null,"original":{"line":50,"column":0},"generated":{"line":20,"column":63}}],"sources":{"../types.ts":"export type Point = [number, number];\n\nexport enum GEShapeName {\n CIRCLE,\n RECTANGLE,\n POLYGON\n}\n\nexport type GECircleShape = {\n shape: GEShapeName.CIRCLE;\n r: number;\n color?: string;\n};\n\nexport type GERectangleShape = {\n shape: GEShapeName.RECTANGLE;\n width: number;\n height: number;\n color?: string;\n};\n\nexport type GEPolygonShape = {\n shape: GEShapeName.POLYGON;\n points: Point[];\n color?: string;\n};\n\nexport type GEShape = GECircleShape | GERectangleShape | GEPolygonShape;\n\nexport type GEShapes = { 0: GEShape } & GEShape[];\n\nexport type GEShapeTypes = Record;\n\nexport type GENode = {\n id: number;\n x: number;\n y: number;\n text: string;\n type: string;\n};\n\nexport type GEEdge = {\n id: number;\n text: string;\n sourceNode: GENode;\n targetNode: GENode;\n type: string;\n};\n\nexport enum GEGridType {\n LINES,\n DOTS\n}\n\nexport type GEViewOptions = {\n edgeArrowLength: number;\n edgeArrowRadian: number;\n backgroundColor: string;\n showGrid: boolean;\n gridType: GEGridType;\n gridColor: string;\n gridLineWidth: number;\n gridGap: number;\n defaultSubShapeColor: string;\n nodeLineWidth: number;\n nodeColor: string;\n nodeSelectedColor: string;\n nodeStrokeColor: string;\n nodeTextColor: string;\n nodeSelectedTextColor: string;\n nodeTextStyle: string;\n edgeLineWidth: number;\n edgeLineColor: string;\n edgeLineSelectedColor: string;\n edgeShapeFillColor: string;\n edgeTextColor: string;\n edgeSelectedTextColor: string;\n edgeTextStyle: string;\n minScale: number;\n maxScale: number;\n cursorGrab: string;\n cursorPointer: string;\n cursorCrosshair: string;\n nodeTypes: GEShapeTypes;\n edgeTypes: GEShapeTypes;\n onViewMoved?: () => void;\n onViewZoom?: () => void;\n onCreateNode?: (x: number, y: number, evt: MouseEvent) => void;\n onMoveNode?: (node: GENode, newX: number, newY: number) => void;\n onDeleteNode?: (node: GENode) => void;\n onCreateEdge?: (\n sourceNode: GENode,\n targetNode: GENode,\n evt: MouseEvent\n ) => void;\n onDeleteEdge?: (edge: GEEdge, sourceNode: GENode, targetNode: GENode) => void;\n onSelectionChange?: (\n selectedNode: GENode | undefined,\n selectedEdge: GEEdge | undefined\n ) => void;\n onHoverChange?: (\n hoveredNode: GENode | undefined,\n hoveredEdge: GEEdge | undefined,\n viewX: number,\n viewY: number,\n canvasX: number,\n canvasY: number,\n clientX: number,\n clientY: number\n ) => void;\n};\n\nexport type GEViewOptionsParams = {\n [T in keyof GEViewOptions]?: GEViewOptions[T];\n};\n"},"lineCount":null}},"error":null,"hash":"0a7cf289fb2c5ab9bd21ab8ab71782a9","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/6a/fe7693a37c74e8fe750eea0303096a.json b/.cache/6a/fe7693a37c74e8fe750eea0303096a.json deleted file mode 100644 index 49f1a19..0000000 --- a/.cache/6a/fe7693a37c74e8fe750eea0303096a.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../graph-view.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./state","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/state.ts"},{"name":"./graph-renderer","loc":{"line":5,"column":31},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts"},{"name":"./event-handler","loc":{"line":6,"column":30},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/event-handler.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEView = void 0;\n\nvar state_1 = require(\"./state\");\n\nvar graph_renderer_1 = require(\"./graph-renderer\");\n\nvar event_handler_1 = require(\"./event-handler\");\n\nvar GEView =\n/** @class */\nfunction () {\n function GEView(options) {\n this.canvas = document.createElement(\"canvas\");\n this._state = new state_1.GEState();\n this._renderer = new graph_renderer_1.GEGraphRenderer(this._state, this.canvas);\n this._eventHandler = new event_handler_1.GEEventHandler(this._state, this.canvas, this._renderer);\n\n if (options) {\n this._state.setOptions(options);\n }\n }\n\n GEView.prototype.getTranslateX = function () {\n return this._state.translateX;\n };\n\n GEView.prototype.getTanslateY = function () {\n return this._state.translateY;\n };\n\n GEView.prototype.getScale = function () {\n return this._state.scale;\n };\n\n GEView.prototype.zoomTo = function (value) {\n var _a = this.canvas,\n width = _a.width,\n height = _a.height;\n var _b = this._state,\n translateX = _b.translateX,\n translateY = _b.translateY,\n scale = _b.scale;\n var centerX = (width * 0.5 - translateX) / scale;\n var centerY = (height * 0.5 - translateY) / scale;\n\n this._state.zoomTo(value, centerX, centerY);\n\n this.requestDraw();\n };\n\n GEView.prototype.init = function (container) {\n container.appendChild(this.canvas);\n this.canvas.textContent = \"Canvas is not supported in your browser.\";\n this.canvas.width = container.clientWidth;\n this.canvas.height = container.clientHeight;\n\n this._state.setBoundingRect(this.canvas);\n\n this._eventHandler.init();\n\n this.requestDraw();\n };\n\n GEView.prototype.destroy = function () {\n this._eventHandler.destroy();\n };\n\n GEView.prototype.requestDraw = function () {\n this._renderer.requestDraw();\n };\n\n GEView.prototype.resize = function (width, height) {\n this.canvas.width = width;\n this.canvas.height = height;\n\n this._state.setBoundingRect(this.canvas);\n\n this.requestDraw();\n };\n\n GEView.prototype.setData = function (nodes, edges) {\n this._state.setData(nodes, edges);\n\n this.requestDraw();\n };\n\n GEView.prototype.setOptions = function (options) {\n this._state.setOptions(options);\n\n this.requestDraw();\n };\n\n GEView.prototype.setSelection = function (node, edge) {\n if (node && edge) return;\n this._state.selectedNode = node;\n this._state.selectedEdge = edge;\n this.requestDraw();\n };\n\n GEView.prototype.setSelectedNode = function (node) {\n this._state.selectedNode = node;\n this._state.selectedEdge = undefined;\n this.requestDraw();\n };\n\n GEView.prototype.getSelectedNode = function () {\n return this._state.selectedNode;\n };\n\n GEView.prototype.setSelectedEdge = function (edge) {\n this._state.selectedNode = undefined;\n this._state.selectedEdge = edge;\n this.requestDraw();\n };\n\n GEView.prototype.getSelectedEdge = function () {\n return this._state.selectedEdge;\n };\n\n return GEView;\n}();\n\nexports.GEView = GEView;"},"sourceMaps":{"js":{"mappings":[{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":10,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":12,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":14,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":15,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":16,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":16,"column":12}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":14},"generated":{"line":17,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":2},"generated":{"line":17,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":13,"column":43},"generated":{"line":17,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":9},"generated":{"line":18,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":26},"generated":{"line":18,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":27},"generated":{"line":18,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":41},"generated":{"line":18,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":18},"generated":{"line":18,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":14,"column":4},"generated":{"line":18,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":9},"generated":{"line":19,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":19,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":22},"generated":{"line":19,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":18},"generated":{"line":19,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":15,"column":4},"generated":{"line":19,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":9},"generated":{"line":20,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":25},"generated":{"line":20,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":57}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":41},"generated":{"line":20,"column":58}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":46},"generated":{"line":20,"column":63}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":69}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":54},"generated":{"line":20,"column":71}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":59},"generated":{"line":20,"column":76}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":21},"generated":{"line":20,"column":82}},{"source":"../graph-view.ts","name":null,"original":{"line":16,"column":4},"generated":{"line":20,"column":83}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":21,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":29},"generated":{"line":21,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":59}},{"source":"../graph-view.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":21,"column":60}},{"source":"../graph-view.ts","name":null,"original":{"line":18,"column":11},"generated":{"line":21,"column":65}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":71}},{"source":"../graph-view.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":73}},{"source":"../graph-view.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":78}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":84}},{"source":"../graph-view.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":21,"column":86}},{"source":"../graph-view.ts","name":null,"original":{"line":20,"column":11},"generated":{"line":21,"column":91}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":25},"generated":{"line":21,"column":100}},{"source":"../graph-view.ts","name":null,"original":{"line":17,"column":4},"generated":{"line":21,"column":101}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":23,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":23,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":23,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":23,"column":17},"generated":{"line":23,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":11},"generated":{"line":24,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":18},"generated":{"line":24,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":29},"generated":{"line":24,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":24,"column":6},"generated":{"line":24,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":25,"column":5},"generated":{"line":25,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":26,"column":3},"generated":{"line":26,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":28,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":29,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":29,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":16},"generated":{"line":29,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":11},"generated":{"line":29,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":23},"generated":{"line":29,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":29,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":30,"column":3},"generated":{"line":30,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":30,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":32,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":33,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":11},"generated":{"line":33,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":16},"generated":{"line":33,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":11},"generated":{"line":33,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":23},"generated":{"line":33,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":33,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":34,"column":3},"generated":{"line":34,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":34,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":36,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":37,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":37,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":16},"generated":{"line":37,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":37,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":23},"generated":{"line":37,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":37,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":37,"column":3},"generated":{"line":38,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":35,"column":2},"generated":{"line":38,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":9},"generated":{"line":40,"column":38}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":40,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":22},"generated":{"line":40,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":30},"generated":{"line":41,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":35},"generated":{"line":41,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":41,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":42,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":12},"generated":{"line":42,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":17},"generated":{"line":42,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":42,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":43,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":19},"generated":{"line":43,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":43,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":43,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":10}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":46},"generated":{"line":44,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":51},"generated":{"line":44,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":44,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":45,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":12},"generated":{"line":45,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":22},"generated":{"line":45,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":45,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":46,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":24},"generated":{"line":46,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":34},"generated":{"line":46,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":46,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":47,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":36},"generated":{"line":47,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":41},"generated":{"line":47,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":47,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":48,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":48,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":17},"generated":{"line":48,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":48,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":48,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":26},"generated":{"line":48,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":29},"generated":{"line":48,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":21},"generated":{"line":48,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":35},"generated":{"line":48,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":20},"generated":{"line":48,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":49},"generated":{"line":48,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":48,"column":52}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":49,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":49,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":17},"generated":{"line":49,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":20},"generated":{"line":49,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":21},"generated":{"line":49,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":27},"generated":{"line":49,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":30},"generated":{"line":49,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":21},"generated":{"line":49,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":36},"generated":{"line":49,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":20},"generated":{"line":49,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":50},"generated":{"line":49,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":44,"column":4},"generated":{"line":49,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":9},"generated":{"line":51,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":16},"generated":{"line":51,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":23},"generated":{"line":51,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":30},"generated":{"line":51,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":51,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":46,"column":4},"generated":{"line":51,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":53,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":9},"generated":{"line":53,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":53,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":49,"column":3},"generated":{"line":54,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":54,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":7},"generated":{"line":56,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":56,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":29},"generated":{"line":56,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":4}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":57,"column":13}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":14},"generated":{"line":57,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":26},"generated":{"line":57,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":31},"generated":{"line":57,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":57,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":58,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":16},"generated":{"line":58,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":30},"generated":{"line":58,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":54,"column":4},"generated":{"line":58,"column":72}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":9},"generated":{"line":59,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":16},"generated":{"line":59,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":24},"generated":{"line":59,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":33},"generated":{"line":59,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":34},"generated":{"line":59,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":55,"column":4},"generated":{"line":59,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":9},"generated":{"line":60,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":16},"generated":{"line":60,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":25},"generated":{"line":60,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":34},"generated":{"line":60,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":35},"generated":{"line":60,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":60,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":62,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":16},"generated":{"line":62,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":32},"generated":{"line":62,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":37},"generated":{"line":62,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":62,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":9},"generated":{"line":64,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":23},"generated":{"line":64,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":64,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":4},"generated":{"line":66,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":9},"generated":{"line":66,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":60,"column":4},"generated":{"line":66,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":61,"column":3},"generated":{"line":67,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":67,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":69,"column":41}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":70,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":23},"generated":{"line":70,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":70,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":65,"column":3},"generated":{"line":71,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":71,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":33}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":73,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":74,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":19},"generated":{"line":74,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":74,"column":30}},{"source":"../graph-view.ts","name":null,"original":{"line":69,"column":3},"generated":{"line":75,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":67,"column":2},"generated":{"line":75,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":9},"generated":{"line":77,"column":38}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":77,"column":45}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":77,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":38},"generated":{"line":77,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":78,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":16},"generated":{"line":78,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":21}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":24},"generated":{"line":78,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":72,"column":4},"generated":{"line":78,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":9},"generated":{"line":79,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":16},"generated":{"line":79,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":25},"generated":{"line":79,"column":25}},{"source":"../graph-view.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":79,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":9},"generated":{"line":81,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":16},"generated":{"line":81,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":32},"generated":{"line":81,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":37},"generated":{"line":81,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":75,"column":4},"generated":{"line":81,"column":43}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":83,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":9},"generated":{"line":83,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":83,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":78,"column":3},"generated":{"line":84,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":71,"column":2},"generated":{"line":84,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":10},"generated":{"line":86,"column":39}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":27},"generated":{"line":86,"column":46}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":86,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":42},"generated":{"line":86,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":9},"generated":{"line":87,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":87,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":24},"generated":{"line":87,"column":24}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":31},"generated":{"line":87,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":81,"column":4},"generated":{"line":87,"column":36}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":89,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":9},"generated":{"line":89,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":82,"column":4},"generated":{"line":89,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":83,"column":3},"generated":{"line":90,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":80,"column":2},"generated":{"line":90,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":29}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":32}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":13},"generated":{"line":92,"column":42}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":92,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":41},"generated":{"line":92,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":9},"generated":{"line":93,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":16},"generated":{"line":93,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":26}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":27},"generated":{"line":93,"column":27}},{"source":"../graph-view.ts","name":null,"original":{"line":86,"column":4},"generated":{"line":93,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":4},"generated":{"line":95,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":9},"generated":{"line":95,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":87,"column":4},"generated":{"line":95,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":88,"column":3},"generated":{"line":96,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":85,"column":2},"generated":{"line":96,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":15},"generated":{"line":98,"column":44}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":48}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":41},"generated":{"line":98,"column":50}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":98,"column":54}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":65},"generated":{"line":98,"column":56}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":99,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":8},"generated":{"line":99,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":12},"generated":{"line":99,"column":12}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":16},"generated":{"line":99,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":4},"generated":{"line":99,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":91,"column":22},"generated":{"line":99,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":100,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":16},"generated":{"line":100,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":31},"generated":{"line":100,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":93,"column":4},"generated":{"line":100,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":9},"generated":{"line":101,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":16},"generated":{"line":101,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":31},"generated":{"line":101,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":94,"column":4},"generated":{"line":101,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":102,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":9},"generated":{"line":102,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":96,"column":4},"generated":{"line":102,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":97,"column":3},"generated":{"line":103,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":90,"column":2},"generated":{"line":103,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":18},"generated":{"line":105,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":105,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":42},"generated":{"line":105,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":9},"generated":{"line":106,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":106,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":31},"generated":{"line":106,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":100,"column":4},"generated":{"line":106,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":9},"generated":{"line":107,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":16},"generated":{"line":107,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":31},"generated":{"line":107,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":101,"column":4},"generated":{"line":107,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":4},"generated":{"line":108,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":9},"generated":{"line":108,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":103,"column":4},"generated":{"line":108,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":104,"column":3},"generated":{"line":109,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":99,"column":2},"generated":{"line":109,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":111,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":4},"generated":{"line":112,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":112,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":16},"generated":{"line":112,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":11},"generated":{"line":112,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":23},"generated":{"line":112,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":107,"column":4},"generated":{"line":112,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":108,"column":3},"generated":{"line":113,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":106,"column":2},"generated":{"line":113,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":18},"generated":{"line":115,"column":47}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":115,"column":51}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":42},"generated":{"line":115,"column":53}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":9},"generated":{"line":116,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":16},"generated":{"line":116,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":31},"generated":{"line":116,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":111,"column":4},"generated":{"line":116,"column":40}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":9},"generated":{"line":117,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":16},"generated":{"line":117,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":28}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":31},"generated":{"line":117,"column":31}},{"source":"../graph-view.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":117,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":4},"generated":{"line":118,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":9},"generated":{"line":118,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":114,"column":4},"generated":{"line":118,"column":20}},{"source":"../graph-view.ts","name":null,"original":{"line":115,"column":3},"generated":{"line":119,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":110,"column":2},"generated":{"line":119,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":2}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":18}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":19}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":34}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":37}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":121,"column":49}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":122,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":11},"generated":{"line":122,"column":11}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":16},"generated":{"line":122,"column":16}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":11},"generated":{"line":122,"column":22}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":23},"generated":{"line":122,"column":23}},{"source":"../graph-view.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":122,"column":35}},{"source":"../graph-view.ts","name":null,"original":{"line":119,"column":3},"generated":{"line":123,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":117,"column":2},"generated":{"line":123,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":9}},{"source":"../graph-view.ts","name":null,"original":{"line":120,"column":0},"generated":{"line":125,"column":15}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":1}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":0},"generated":{"line":126,"column":3}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":0}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":7}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":8}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":14}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":17}},{"source":"../graph-view.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":128,"column":23}}],"sources":{"../graph-view.ts":"import { GEState } from \"./state\";\nimport { GEGraphRenderer } from \"./graph-renderer\";\nimport { GEEventHandler } from \"./event-handler\";\nimport { GENode, GEEdge, GEViewOptionsParams } from \"./types\";\n\nexport class GEView {\n readonly canvas: HTMLCanvasElement;\n\n private _state: GEState;\n private _renderer: GEGraphRenderer;\n private _eventHandler: GEEventHandler;\n\n constructor(options?: GEViewOptionsParams) {\n this.canvas = document.createElement(\"canvas\");\n this._state = new GEState();\n this._renderer = new GEGraphRenderer(this._state, this.canvas);\n this._eventHandler = new GEEventHandler(\n this._state,\n this.canvas,\n this._renderer\n );\n\n if (options) {\n this._state.setOptions(options);\n }\n }\n\n getTranslateX(): number {\n return this._state.translateX;\n }\n\n getTanslateY(): number {\n return this._state.translateY;\n }\n getScale(): number {\n return this._state.scale;\n }\n\n zoomTo(value: number): void {\n const { width, height } = this.canvas;\n const { translateX, translateY, scale } = this._state;\n\n const centerX = (width * 0.5 - translateX) / scale;\n const centerY = (height * 0.5 - translateY) / scale;\n\n this._state.zoomTo(value, centerX, centerY);\n\n this.requestDraw();\n }\n\n init(container: HTMLElement): void {\n container.appendChild(this.canvas);\n\n this.canvas.textContent = \"Canvas is not supported in your browser.\";\n this.canvas.width = container.clientWidth;\n this.canvas.height = container.clientHeight;\n\n this._state.setBoundingRect(this.canvas);\n this._eventHandler.init();\n this.requestDraw();\n }\n\n destroy(): void {\n this._eventHandler.destroy();\n }\n\n requestDraw(): void {\n this._renderer.requestDraw();\n }\n\n resize(width: number, height: number): void {\n this.canvas.width = width;\n this.canvas.height = height;\n\n this._state.setBoundingRect(this.canvas);\n\n this.requestDraw();\n }\n\n setData(nodes: GENode[], edges: GEEdge[]): void {\n this._state.setData(nodes, edges);\n this.requestDraw();\n }\n\n setOptions(options: GEViewOptionsParams): void {\n this._state.setOptions(options);\n this.requestDraw();\n }\n\n setSelection(node: GENode | undefined, edge: GEEdge | undefined): void {\n if (node && edge) return;\n\n this._state.selectedNode = node;\n this._state.selectedEdge = edge;\n\n this.requestDraw();\n }\n\n setSelectedNode(node: GENode | undefined): void {\n this._state.selectedNode = node;\n this._state.selectedEdge = undefined;\n\n this.requestDraw();\n }\n\n getSelectedNode(): GENode | undefined {\n return this._state.selectedNode;\n }\n\n setSelectedEdge(edge: GEEdge | undefined): void {\n this._state.selectedNode = undefined;\n this._state.selectedEdge = edge;\n\n this.requestDraw();\n }\n\n getSelectedEdge(): GEEdge | undefined {\n return this._state.selectedEdge;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"dd9a0a7861c24cb43e5d47448ac030cf","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/8a/45b276546564a899bc98d01c1485d1.json b/.cache/8a/45b276546564a899bc98d01c1485d1.json deleted file mode 100644 index 88db657..0000000 --- a/.cache/8a/45b276546564a899bc98d01c1485d1.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"node-types.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"../types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/example/node-types.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.edgeTypes = exports.nodeTypes = void 0;\n\nvar types_1 = require(\"../types\");\n\nexports.nodeTypes = {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }],\n decision: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }],\n unknown: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -80], [80, 0], [0, 80], [-80, 0]]\n }],\n complex: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }]\n};\nexports.edgeTypes = {\n normal: [{\n shape: types_1.GEShapeName.POLYGON,\n points: [[0, -25], [25, 0], [0, 25], [-25, 0]]\n }],\n round: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25\n }],\n double: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n }, {\n shape: types_1.GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }]\n};"},"sourceMaps":{"js":{"mappings":[{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":10,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":10,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":11,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":7},"generated":{"line":11,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":11,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":11,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":6},"generated":{"line":12,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":11},"generated":{"line":12,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":12,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":12,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":12,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":6},"generated":{"line":13,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":7},"generated":{"line":13,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":7,"column":9},"generated":{"line":13,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":5,"column":4},"generated":{"line":14,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":4,"column":9},"generated":{"line":14,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":14,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":15,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":10},"generated":{"line":15,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":15,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":15,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":6},"generated":{"line":16,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":11},"generated":{"line":16,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":13},"generated":{"line":16,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":12,"column":25},"generated":{"line":16,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":16,"column":40}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":6},"generated":{"line":17,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":11},"generated":{"line":17,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":13,"column":13},"generated":{"line":17,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":17,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":6},"generated":{"line":18,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":12},"generated":{"line":18,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":14,"column":14},"generated":{"line":18,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":11,"column":4},"generated":{"line":19,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":10,"column":12},"generated":{"line":19,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":19,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":20,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":20,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":20,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":20,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":21,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":11},"generated":{"line":21,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":13},"generated":{"line":21,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":19,"column":25},"generated":{"line":21,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":21,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":6},"generated":{"line":22,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":12},"generated":{"line":22,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":22,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":15}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":22,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":13},"generated":{"line":22,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":21,"column":8},"generated":{"line":22,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":23}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":9},"generated":{"line":22,"column":24}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":26}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":22,"column":28}},{"source":"node-types.ts","name":null,"original":{"line":22,"column":8},"generated":{"line":22,"column":29}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":9},"generated":{"line":22,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":34}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":12},"generated":{"line":22,"column":36}},{"source":"node-types.ts","name":null,"original":{"line":23,"column":8},"generated":{"line":22,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":39}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":41}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":9},"generated":{"line":22,"column":42}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":10},"generated":{"line":22,"column":43}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":45}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":14},"generated":{"line":22,"column":47}},{"source":"node-types.ts","name":null,"original":{"line":24,"column":8},"generated":{"line":22,"column":48}},{"source":"node-types.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":22,"column":49}},{"source":"node-types.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":23,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":17,"column":11},"generated":{"line":23,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":23,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":24,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":9},"generated":{"line":24,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":24,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":24,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":6},"generated":{"line":25,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":11},"generated":{"line":25,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":13},"generated":{"line":25,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":30,"column":25},"generated":{"line":25,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":25,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":6},"generated":{"line":26,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":7},"generated":{"line":26,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":26,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":27,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":27,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":27,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":28,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":11},"generated":{"line":28,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":13},"generated":{"line":28,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":34,"column":25},"generated":{"line":28,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":28,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":6},"generated":{"line":29,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":7},"generated":{"line":29,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":29,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":30,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":11},"generated":{"line":30,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":36,"column":13},"generated":{"line":30,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":31,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":31,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":31,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":6},"generated":{"line":32,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":11},"generated":{"line":32,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":13},"generated":{"line":32,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":39,"column":25},"generated":{"line":32,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":32,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":33,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":7},"generated":{"line":33,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":40,"column":9},"generated":{"line":33,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":33,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":34,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":11},"generated":{"line":34,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":41,"column":13},"generated":{"line":34,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":35,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":28,"column":11},"generated":{"line":35,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":39},"generated":{"line":36,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":3,"column":13},"generated":{"line":36,"column":1}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":37,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":37,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":38,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":38,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":38,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":38,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":39,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":11},"generated":{"line":39,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":13},"generated":{"line":39,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":49,"column":25},"generated":{"line":39,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":39,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":40,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":40,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":12}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":13}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":40,"column":14}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":15}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":40,"column":17}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":13},"generated":{"line":40,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":51,"column":8},"generated":{"line":40,"column":20}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":21}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":23}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":9},"generated":{"line":40,"column":24}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":26}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":13},"generated":{"line":40,"column":28}},{"source":"node-types.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":40,"column":29}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":32}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":40,"column":33}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":34}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":40,"column":36}},{"source":"node-types.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":40,"column":38}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":39}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":41}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":9},"generated":{"line":40,"column":42}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":40,"column":43}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":45}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":14},"generated":{"line":40,"column":47}},{"source":"node-types.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":40,"column":48}},{"source":"node-types.ts","name":null,"original":{"line":50,"column":14},"generated":{"line":40,"column":49}},{"source":"node-types.ts","name":null,"original":{"line":48,"column":4},"generated":{"line":41,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":41,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":41,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":2},"generated":{"line":42,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":7},"generated":{"line":42,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":42,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":42,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":43,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":11},"generated":{"line":43,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":13},"generated":{"line":43,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":60,"column":25},"generated":{"line":43,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":43,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":6},"generated":{"line":44,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":7},"generated":{"line":44,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":61,"column":9},"generated":{"line":44,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":45,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":45,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":45,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":46,"column":2}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":8},"generated":{"line":46,"column":8}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":46,"column":10}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":46,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":6},"generated":{"line":47,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":11},"generated":{"line":47,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":13},"generated":{"line":47,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":66,"column":25},"generated":{"line":47,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":47,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":6},"generated":{"line":48,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":7},"generated":{"line":48,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":67,"column":9},"generated":{"line":48,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":48,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":6},"generated":{"line":49,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":11},"generated":{"line":49,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":68,"column":13},"generated":{"line":49,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":50,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":50,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":50,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":51,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":51,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":18}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":19}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":51,"column":30}},{"source":"node-types.ts","name":null,"original":{"line":71,"column":25},"generated":{"line":51,"column":31}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":51,"column":37}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":6},"generated":{"line":52,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":7},"generated":{"line":52,"column":5}},{"source":"node-types.ts","name":null,"original":{"line":72,"column":9},"generated":{"line":52,"column":7}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":52,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":6},"generated":{"line":53,"column":4}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":11},"generated":{"line":53,"column":9}},{"source":"node-types.ts","name":null,"original":{"line":73,"column":13},"generated":{"line":53,"column":11}},{"source":"node-types.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":54,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":54,"column":3}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":39},"generated":{"line":55,"column":0}},{"source":"node-types.ts","name":null,"original":{"line":46,"column":13},"generated":{"line":55,"column":1}}],"sources":{"node-types.ts":"import { GEShapeTypes, GEShapeName } from \"../types\";\n\nexport const nodeTypes: GEShapeTypes = {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ],\n decision: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 150,\n height: 120\n }\n ],\n unknown: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -80],\n [80, 0],\n [0, 80],\n [-80, 0]\n ]\n }\n ],\n complex: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 60,\n color: \"#9AE6B4\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 40,\n color: \"white\"\n }\n ]\n};\n\nexport const edgeTypes: GEShapeTypes = {\n normal: [\n {\n shape: GEShapeName.POLYGON,\n points: [\n [0, -25],\n [25, 0],\n [0, 25],\n [-25, 0]\n ]\n }\n ],\n round: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25\n }\n ],\n double: [\n {\n shape: GEShapeName.CIRCLE,\n r: 25,\n color: \"#E9D8FD\"\n },\n {\n shape: GEShapeName.CIRCLE,\n r: 15,\n color: \"white\"\n }\n ]\n};\n"},"lineCount":null}},"error":null,"hash":"cab0c5681abbb83ede8a394c81b9d6d7","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json b/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json deleted file mode 100644 index 2ab8a54..0000000 --- a/.cache/9e/f5a5ef00b48b5a36d369d70a6d8cc0.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"index.html","dependencies":[{"name":"./index.css","dynamic":true,"resolved":"/Users/hartonochandra/try/web-digraph/src/example/index.css","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.html"},{"name":"./index.ts","dynamic":true,"resolved":"/Users/hartonochandra/try/web-digraph/src/example/index.ts","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.html"}],"generated":{"html":"\n\n\n\n \n \n\n web-digraph example\n \n\n\n\n
\n
\n
\n
\n \n
\n\n
\n \n \n
\n\n
\n
Node count: 0
\n
Edge count: 0
\n
\n
\n
\n
Press and hold shift, and then click on empty place to create a new node.
\n
Press and hold shift, and then click and drag a node to another node to create a new edge.
\n
\n
\n\n \n\n\n"},"sourceMaps":null,"error":null,"hash":"15b8fd597ff59cb8477e0484d654e88b","cacheData":{}} \ No newline at end of file diff --git a/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json b/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json deleted file mode 100644 index c05e9fd..0000000 --- a/.cache/a1/fea774e8ae3d9a731b9b13a3433ddd.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000},{"name":"./bundle-url","loc":{"line":1,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/css-loader.js","resolved":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/bundle-url.js"}],"generated":{"js":"var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n\n newLink.onload = function () {\n link.remove();\n };\n\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\n\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":1,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":0}},{"name":"bundle","generated":{"line":1,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":4}},{"generated":{"line":1,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":10}},{"name":"require","generated":{"line":1,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":13}},{"generated":{"line":1,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":20}},{"generated":{"line":1,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":21}},{"generated":{"line":1,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":20}},{"generated":{"line":1,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"name":"updateLink","generated":{"line":3,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":9}},{"generated":{"line":3,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"name":"link","generated":{"line":3,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":20}},{"generated":{"line":3,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":0}},{"generated":{"line":3,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":3,"column":26}},{"generated":{"line":4,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":2}},{"name":"newLink","generated":{"line":4,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":6}},{"generated":{"line":4,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":13}},{"name":"link","generated":{"line":4,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":16}},{"generated":{"line":4,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":20}},{"name":"cloneNode","generated":{"line":4,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":21}},{"generated":{"line":4,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":16}},{"generated":{"line":4,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":4,"column":2}},{"name":"newLink","generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"name":"newLink","generated":{"line":6,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"generated":{"line":6,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":9}},{"name":"onload","generated":{"line":6,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":10}},{"generated":{"line":6,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"generated":{"line":6,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":19}},{"generated":{"line":6,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":31}},{"name":"link","generated":{"line":7,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"name":"link","generated":{"line":7,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"generated":{"line":7,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":8}},{"name":"remove","generated":{"line":7,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":9}},{"generated":{"line":7,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":6,"column":4}},{"generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":7,"column":3}},{"generated":{"line":8,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":5,"column":2}},{"name":"newLink","generated":{"line":10,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"newLink","generated":{"line":10,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"generated":{"line":10,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":9}},{"name":"href","generated":{"line":10,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":10}},{"generated":{"line":10,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"link","generated":{"line":10,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":21}},{"name":"href","generated":{"line":10,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":22}},{"generated":{"line":10,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"name":"split","generated":{"line":10,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":27}},{"generated":{"line":10,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":33}},{"generated":{"line":10,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":38}},{"generated":{"line":10,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"generated":{"line":10,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":43}},{"generated":{"line":10,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":17}},{"name":"Date","generated":{"line":10,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":49}},{"generated":{"line":10,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":53}},{"name":"now","generated":{"line":10,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":54}},{"generated":{"line":10,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":49}},{"generated":{"line":10,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":8,"column":2}},{"name":"link","generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"link","generated":{"line":11,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"generated":{"line":11,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":6}},{"name":"parentNode","generated":{"line":11,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":7}},{"generated":{"line":11,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"insertBefore","generated":{"line":11,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":18}},{"generated":{"line":11,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"newLink","generated":{"line":11,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":31}},{"generated":{"line":11,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"name":"link","generated":{"line":11,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":40}},{"generated":{"line":11,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":44}},{"name":"nextSibling","generated":{"line":11,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":45}},{"generated":{"line":11,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":9,"column":2}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":10,"column":1}},{"generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":0}},{"name":"cssTimeout","generated":{"line":14,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":4}},{"generated":{"line":14,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":14}},{"generated":{"line":14,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":17}},{"generated":{"line":14,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":12,"column":0}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":0}},{"name":"reloadCSS","generated":{"line":16,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":9}},{"generated":{"line":16,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":0}},{"generated":{"line":16,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":13,"column":21}},{"generated":{"line":17,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":2}},{"name":"cssTimeout","generated":{"line":17,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":6}},{"generated":{"line":17,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":2}},{"generated":{"line":17,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":14,"column":18}},{"generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":15,"column":4}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":16,"column":3}},{"name":"cssTimeout","generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"name":"cssTimeout","generated":{"line":21,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"generated":{"line":21,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":12}},{"name":"setTimeout","generated":{"line":21,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":15}},{"generated":{"line":21,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":21,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":26}},{"generated":{"line":21,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":38}},{"generated":{"line":22,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":4}},{"name":"links","generated":{"line":22,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":8}},{"generated":{"line":22,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":13}},{"name":"document","generated":{"line":22,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":24}},{"name":"querySelectorAll","generated":{"line":22,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":25}},{"generated":{"line":22,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":42}},{"generated":{"line":22,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":16}},{"generated":{"line":22,"column":67},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":19,"column":4}},{"generated":{"line":24,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"generated":{"line":24,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":9}},{"name":"i","generated":{"line":24,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":13}},{"generated":{"line":24,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":14}},{"generated":{"line":24,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":17}},{"generated":{"line":24,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"name":"i","generated":{"line":24,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":20}},{"generated":{"line":24,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":21}},{"name":"links","generated":{"line":24,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":24}},{"generated":{"line":24,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":29}},{"name":"length","generated":{"line":24,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":30}},{"generated":{"line":24,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"name":"i","generated":{"line":24,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":38}},{"generated":{"line":24,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":39}},{"generated":{"line":24,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":4}},{"generated":{"line":24,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":20,"column":43}},{"generated":{"line":25,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":6}},{"name":"bundle","generated":{"line":25,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"generated":{"line":25,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":16}},{"name":"getBaseURL","generated":{"line":25,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":17}},{"generated":{"line":25,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"name":"links","generated":{"line":25,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":28}},{"generated":{"line":25,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":33}},{"name":"i","generated":{"line":25,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":34}},{"generated":{"line":25,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":33}},{"generated":{"line":25,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":28}},{"name":"href","generated":{"line":25,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":37}},{"generated":{"line":25,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":10}},{"name":"bundle","generated":{"line":25,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":47}},{"generated":{"line":25,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":53}},{"name":"getBundleURL","generated":{"line":25,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":54}},{"generated":{"line":25,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":47}},{"generated":{"line":25,"column":68},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":6}},{"generated":{"line":25,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":21,"column":70}},{"name":"updateLink","generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"name":"updateLink","generated":{"line":26,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"generated":{"line":26,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":18}},{"name":"links","generated":{"line":26,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":19}},{"generated":{"line":26,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":24}},{"name":"i","generated":{"line":26,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":25}},{"generated":{"line":26,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":24}},{"generated":{"line":26,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":18}},{"generated":{"line":26,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":22,"column":8}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":23,"column":7}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":24,"column":5}},{"name":"cssTimeout","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"name":"cssTimeout","generated":{"line":30,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"generated":{"line":30,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":14}},{"generated":{"line":30,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":17}},{"generated":{"line":30,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":26,"column":4}},{"generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":27,"column":3}},{"generated":{"line":31,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":31,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":27,"column":5}},{"generated":{"line":31,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":25}},{"generated":{"line":31,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":18,"column":2}},{"generated":{"line":32,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":28,"column":1}},{"name":"module","generated":{"line":34,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}},{"generated":{"line":34,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":6}},{"name":"exports","generated":{"line":34,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":7}},{"generated":{"line":34,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}},{"name":"reloadCSS","generated":{"line":34,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":17}},{"generated":{"line":34,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/css-loader.js","original":{"line":30,"column":0}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/css-loader.js":"var bundle = require('./bundle-url');\n\nfunction updateLink(link) {\n var newLink = link.cloneNode();\n newLink.onload = function () {\n link.remove();\n };\n newLink.href = link.href.split('?')[0] + '?' + Date.now();\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\n\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n if (bundle.getBaseURL(links[i].href) === bundle.getBundleURL()) {\n updateLink(links[i]);\n }\n }\n\n cssTimeout = null;\n }, 50);\n}\n\nmodule.exports = reloadCSS;\n"},"lineCount":null}},"error":null,"hash":"c26039cf4bc605359c22edaec867b189","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json b/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json deleted file mode 100644 index f0c80b3..0000000 --- a/.cache/a8/346376fc3bacab5e9b27a7d40d0396.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../state.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/state.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEState = void 0;\n\nvar types_1 = require(\"./types\");\n\nvar GEState =\n/** @class */\nfunction () {\n function GEState() {\n this.isDragging = false;\n this.isShiftDown = false;\n this.isDrawing = false;\n this.moveNodeX = 0;\n this.moveNodeY = 0; // transform\n\n this.translateX = 0;\n this.translateY = 0;\n this.scale = 1; // pointer position\n\n this.pointerScreenX = 0;\n this.pointerScreenY = 0;\n this.pointerCanvasX = 0;\n this.pointerCanvasY = 0;\n this.pointerViewX = 0;\n this.pointerViewY = 0; // selection\n\n this.selectedNode = undefined;\n this.selectedEdge = undefined;\n this.hoveredNode = undefined;\n this.hoveredEdge = undefined; // drag line when creating edge\n\n this.isCreatingEdge = false;\n this.dragLineSourceNode = undefined;\n this.dragLineTargetX = 0;\n this.dragLineTargetY = 0;\n this.nodes = [];\n this.edges = [];\n this.options = this.getDefaultOptions();\n }\n\n GEState.prototype.isMovingNode = function () {\n return this.isDragging && this.selectedNode && !this.isCreatingEdge;\n };\n\n GEState.prototype.isMovingView = function () {\n return !this.isShiftDown && this.isDragging && !this.selectedNode;\n };\n\n GEState.prototype.setData = function (nodes, edges) {\n this.nodes = nodes;\n this.edges = edges;\n };\n\n GEState.prototype.setOptions = function (options) {\n var _this = this;\n\n Object.keys(options).forEach(function (k) {\n _this.options[k] = options[k];\n });\n };\n\n GEState.prototype.getDefaultOptions = function () {\n return {\n edgeArrowLength: 16,\n edgeArrowRadian: Math.PI / 6,\n backgroundColor: \"#F7FAFC\",\n showGrid: true,\n gridType: types_1.GEGridType.DOTS,\n gridColor: \"#CBD5E0\",\n gridLineWidth: 8,\n gridGap: 64,\n defaultSubShapeColor: \"green\",\n nodeLineWidth: 2,\n nodeColor: \"white\",\n nodeSelectedColor: \"#4299E1\",\n nodeStrokeColor: \"#1A202C\",\n nodeTextColor: \"#1A202C\",\n nodeSelectedTextColor: \"white\",\n nodeTextStyle: \"16px sans-serif\",\n edgeLineWidth: 3,\n edgeLineColor: \"#2B6CB0\",\n edgeLineSelectedColor: \"#4299E1\",\n edgeShapeFillColor: \"white\",\n edgeTextColor: \"#1A202C\",\n edgeSelectedTextColor: \"white\",\n edgeTextStyle: \"16px sans-serif\",\n minScale: 0.2,\n maxScale: 1.8,\n cursorGrab: \"grab\",\n cursorPointer: \"pointer\",\n cursorCrosshair: \"crosshair\",\n nodeTypes: {\n empty: [{\n shape: types_1.GEShapeName.CIRCLE,\n r: 80\n }]\n },\n edgeTypes: {\n empty: [{\n shape: types_1.GEShapeName.RECTANGLE,\n width: 30,\n height: 20\n }]\n }\n };\n };\n\n GEState.prototype.setBoundingRect = function (canvas) {\n this.boundingClientRect = canvas.getBoundingClientRect();\n };\n\n GEState.prototype.setPointerPosition = function (screenX, screenY) {\n this.pointerScreenX = screenX;\n this.pointerScreenY = screenY;\n this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left);\n this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top);\n this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale;\n this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale;\n };\n\n GEState.prototype.zoomTo = function (scale, viewX, viewY) {\n var _a = this.options,\n maxScale = _a.maxScale,\n minScale = _a.minScale;\n var newScale = Math.min(maxScale, Math.max(minScale, scale));\n var deltaScale = newScale - this.scale;\n var offsetX = -(viewX * deltaScale);\n var offsetY = -(viewY * deltaScale);\n this.translateX += offsetX;\n this.translateY += offsetY;\n this.scale += deltaScale;\n };\n\n return GEState;\n}();\n\nexports.GEState = GEState;"},"sourceMaps":{"js":{"mappings":[{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../state.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":4}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":11}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":11,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":12,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":12,"column":12}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":0}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":11}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":18}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":13,"column":21}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":0}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":9}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":19}},{"source":"../state.ts","name":null,"original":{"line":16,"column":15},"generated":{"line":14,"column":22}},{"source":"../state.ts","name":null,"original":{"line":16,"column":2},"generated":{"line":14,"column":27}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":0}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":9}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":20}},{"source":"../state.ts","name":null,"original":{"line":17,"column":16},"generated":{"line":15,"column":23}},{"source":"../state.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":15,"column":28}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":0}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":9}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":18}},{"source":"../state.ts","name":null,"original":{"line":18,"column":14},"generated":{"line":16,"column":21}},{"source":"../state.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":16,"column":26}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":0}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":9}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":18}},{"source":"../state.ts","name":null,"original":{"line":20,"column":14},"generated":{"line":17,"column":21}},{"source":"../state.ts","name":null,"original":{"line":20,"column":2},"generated":{"line":17,"column":22}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":0}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":9}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":18}},{"source":"../state.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":18,"column":21}},{"source":"../state.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":18,"column":22}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":18,"column":23}},{"source":"../state.ts","name":null,"original":{"line":23,"column":2},"generated":{"line":18,"column":24}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":0}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":9}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":19}},{"source":"../state.ts","name":null,"original":{"line":24,"column":15},"generated":{"line":20,"column":22}},{"source":"../state.ts","name":null,"original":{"line":24,"column":2},"generated":{"line":20,"column":23}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":0}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":9}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":19}},{"source":"../state.ts","name":null,"original":{"line":25,"column":15},"generated":{"line":21,"column":22}},{"source":"../state.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":21,"column":23}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":0}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":9}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":14}},{"source":"../state.ts","name":null,"original":{"line":26,"column":10},"generated":{"line":22,"column":17}},{"source":"../state.ts","name":null,"original":{"line":26,"column":2},"generated":{"line":22,"column":18}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":22,"column":19}},{"source":"../state.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":20}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":0}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":9}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":23}},{"source":"../state.ts","name":null,"original":{"line":29,"column":19},"generated":{"line":24,"column":26}},{"source":"../state.ts","name":null,"original":{"line":29,"column":2},"generated":{"line":24,"column":27}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":0}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":9}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":23}},{"source":"../state.ts","name":null,"original":{"line":30,"column":19},"generated":{"line":25,"column":26}},{"source":"../state.ts","name":null,"original":{"line":30,"column":2},"generated":{"line":25,"column":27}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":0}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":9}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":23}},{"source":"../state.ts","name":null,"original":{"line":31,"column":19},"generated":{"line":26,"column":26}},{"source":"../state.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":27}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":0}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":9}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":23}},{"source":"../state.ts","name":null,"original":{"line":32,"column":19},"generated":{"line":27,"column":26}},{"source":"../state.ts","name":null,"original":{"line":32,"column":2},"generated":{"line":27,"column":27}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":0}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":9}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":21}},{"source":"../state.ts","name":null,"original":{"line":33,"column":17},"generated":{"line":28,"column":24}},{"source":"../state.ts","name":null,"original":{"line":33,"column":2},"generated":{"line":28,"column":25}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":0}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":9}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":21}},{"source":"../state.ts","name":null,"original":{"line":34,"column":17},"generated":{"line":29,"column":24}},{"source":"../state.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":29,"column":25}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":29,"column":26}},{"source":"../state.ts","name":null,"original":{"line":37,"column":2},"generated":{"line":29,"column":27}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":0}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":9}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":21}},{"source":"../state.ts","name":null,"original":{"line":38,"column":37},"generated":{"line":31,"column":24}},{"source":"../state.ts","name":null,"original":{"line":38,"column":2},"generated":{"line":31,"column":33}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":0}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":9}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":21}},{"source":"../state.ts","name":null,"original":{"line":39,"column":37},"generated":{"line":32,"column":24}},{"source":"../state.ts","name":null,"original":{"line":39,"column":2},"generated":{"line":32,"column":33}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":0}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":9}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":20}},{"source":"../state.ts","name":null,"original":{"line":40,"column":36},"generated":{"line":33,"column":23}},{"source":"../state.ts","name":null,"original":{"line":40,"column":2},"generated":{"line":33,"column":32}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":0}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":9}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":20}},{"source":"../state.ts","name":null,"original":{"line":41,"column":36},"generated":{"line":34,"column":23}},{"source":"../state.ts","name":null,"original":{"line":41,"column":2},"generated":{"line":34,"column":32}},{"source":"../state.ts","name":null,"original":{"line":49,"column":2},"generated":{"line":34,"column":33}},{"source":"../state.ts","name":null,"original":{"line":43,"column":2},"generated":{"line":34,"column":34}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":0}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":9}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":23}},{"source":"../state.ts","name":null,"original":{"line":44,"column":19},"generated":{"line":36,"column":26}},{"source":"../state.ts","name":null,"original":{"line":44,"column":2},"generated":{"line":36,"column":31}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":0}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":9}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":27}},{"source":"../state.ts","name":null,"original":{"line":45,"column":43},"generated":{"line":37,"column":30}},{"source":"../state.ts","name":null,"original":{"line":45,"column":2},"generated":{"line":37,"column":39}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":0}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":9}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":24}},{"source":"../state.ts","name":null,"original":{"line":46,"column":20},"generated":{"line":38,"column":27}},{"source":"../state.ts","name":null,"original":{"line":46,"column":2},"generated":{"line":38,"column":28}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":0}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":9}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":24}},{"source":"../state.ts","name":null,"original":{"line":47,"column":20},"generated":{"line":39,"column":27}},{"source":"../state.ts","name":null,"original":{"line":47,"column":2},"generated":{"line":39,"column":28}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":0}},{"source":"../state.ts","name":null,"original":{"line":50,"column":9},"generated":{"line":40,"column":9}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":14}},{"source":"../state.ts","name":null,"original":{"line":50,"column":17},"generated":{"line":40,"column":17}},{"source":"../state.ts","name":null,"original":{"line":50,"column":4},"generated":{"line":40,"column":19}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":0}},{"source":"../state.ts","name":null,"original":{"line":51,"column":9},"generated":{"line":41,"column":9}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":14}},{"source":"../state.ts","name":null,"original":{"line":51,"column":17},"generated":{"line":41,"column":17}},{"source":"../state.ts","name":null,"original":{"line":51,"column":4},"generated":{"line":41,"column":19}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":0}},{"source":"../state.ts","name":null,"original":{"line":53,"column":9},"generated":{"line":42,"column":9}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":16}},{"source":"../state.ts","name":null,"original":{"line":53,"column":19},"generated":{"line":42,"column":19}},{"source":"../state.ts","name":null,"original":{"line":53,"column":24},"generated":{"line":42,"column":24}},{"source":"../state.ts","name":null,"original":{"line":53,"column":19},"generated":{"line":42,"column":41}},{"source":"../state.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":42,"column":43}},{"source":"../state.ts","name":null,"original":{"line":54,"column":3},"generated":{"line":43,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":2}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":9}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":10}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":19}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":20}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":32}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":35}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":45,"column":47}},{"source":"../state.ts","name":null,"original":{"line":57,"column":4},"generated":{"line":46,"column":0}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":11}},{"source":"../state.ts","name":null,"original":{"line":57,"column":16},"generated":{"line":46,"column":16}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":26}},{"source":"../state.ts","name":null,"original":{"line":57,"column":30},"generated":{"line":46,"column":30}},{"source":"../state.ts","name":null,"original":{"line":57,"column":35},"generated":{"line":46,"column":35}},{"source":"../state.ts","name":null,"original":{"line":57,"column":11},"generated":{"line":46,"column":47}},{"source":"../state.ts","name":null,"original":{"line":57,"column":51},"generated":{"line":46,"column":51}},{"source":"../state.ts","name":null,"original":{"line":57,"column":52},"generated":{"line":46,"column":52}},{"source":"../state.ts","name":null,"original":{"line":57,"column":57},"generated":{"line":46,"column":57}},{"source":"../state.ts","name":null,"original":{"line":57,"column":4},"generated":{"line":46,"column":71}},{"source":"../state.ts","name":null,"original":{"line":58,"column":3},"generated":{"line":47,"column":0}},{"source":"../state.ts","name":null,"original":{"line":56,"column":2},"generated":{"line":47,"column":3}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":0}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":2}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":9}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":10}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":19}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":20}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":32}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":35}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":49,"column":47}},{"source":"../state.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":50,"column":0}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":11}},{"source":"../state.ts","name":null,"original":{"line":61,"column":12},"generated":{"line":50,"column":12}},{"source":"../state.ts","name":null,"original":{"line":61,"column":17},"generated":{"line":50,"column":17}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":28}},{"source":"../state.ts","name":null,"original":{"line":61,"column":32},"generated":{"line":50,"column":32}},{"source":"../state.ts","name":null,"original":{"line":61,"column":37},"generated":{"line":50,"column":37}},{"source":"../state.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":50,"column":47}},{"source":"../state.ts","name":null,"original":{"line":61,"column":51},"generated":{"line":50,"column":51}},{"source":"../state.ts","name":null,"original":{"line":61,"column":52},"generated":{"line":50,"column":52}},{"source":"../state.ts","name":null,"original":{"line":61,"column":57},"generated":{"line":50,"column":57}},{"source":"../state.ts","name":null,"original":{"line":61,"column":4},"generated":{"line":50,"column":69}},{"source":"../state.ts","name":null,"original":{"line":62,"column":3},"generated":{"line":51,"column":0}},{"source":"../state.ts","name":null,"original":{"line":60,"column":2},"generated":{"line":51,"column":3}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":0}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":2}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":9}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":10}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":19}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":20}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":27}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":30}},{"source":"../state.ts","name":null,"original":{"line":64,"column":10},"generated":{"line":53,"column":40}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":45}},{"source":"../state.ts","name":null,"original":{"line":64,"column":27},"generated":{"line":53,"column":47}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":53,"column":52}},{"source":"../state.ts","name":null,"original":{"line":64,"column":42},"generated":{"line":53,"column":54}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":0}},{"source":"../state.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":54,"column":9}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":14}},{"source":"../state.ts","name":null,"original":{"line":65,"column":17},"generated":{"line":54,"column":17}},{"source":"../state.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":54,"column":22}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":0}},{"source":"../state.ts","name":null,"original":{"line":66,"column":9},"generated":{"line":55,"column":9}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":14}},{"source":"../state.ts","name":null,"original":{"line":66,"column":17},"generated":{"line":55,"column":17}},{"source":"../state.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":55,"column":22}},{"source":"../state.ts","name":null,"original":{"line":67,"column":3},"generated":{"line":56,"column":0}},{"source":"../state.ts","name":null,"original":{"line":64,"column":2},"generated":{"line":56,"column":3}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":2}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":9}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":10}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":19}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":20}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":30}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":33}},{"source":"../state.ts","name":null,"original":{"line":69,"column":13},"generated":{"line":58,"column":43}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":58,"column":50}},{"source":"../state.ts","name":null,"original":{"line":69,"column":41},"generated":{"line":58,"column":52}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":8}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":13}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":16}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":59,"column":20}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":0}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":4}},{"source":"../state.ts","name":null,"original":{"line":70,"column":10},"generated":{"line":61,"column":10}},{"source":"../state.ts","name":null,"original":{"line":70,"column":11},"generated":{"line":61,"column":11}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":15}},{"source":"../state.ts","name":null,"original":{"line":70,"column":16},"generated":{"line":61,"column":16}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":23}},{"source":"../state.ts","name":null,"original":{"line":70,"column":25},"generated":{"line":61,"column":25}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":61,"column":32}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":33}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":43}},{"source":"../state.ts","name":null,"original":{"line":70,"column":33},"generated":{"line":61,"column":44}},{"source":"../state.ts","name":null,"original":{"line":70,"column":34},"generated":{"line":61,"column":46}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":0}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":6}},{"source":"../state.ts","name":null,"original":{"line":71,"column":10},"generated":{"line":62,"column":11}},{"source":"../state.ts","name":null,"original":{"line":71,"column":11},"generated":{"line":62,"column":12}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":19}},{"source":"../state.ts","name":null,"original":{"line":71,"column":19},"generated":{"line":62,"column":20}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":21}},{"source":"../state.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":62,"column":25}},{"source":"../state.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":62,"column":32}},{"source":"../state.ts","name":null,"original":{"line":71,"column":32},"generated":{"line":62,"column":33}},{"source":"../state.ts","name":null,"original":{"line":71,"column":31},"generated":{"line":62,"column":34}},{"source":"../state.ts","name":null,"original":{"line":71,"column":6},"generated":{"line":62,"column":35}},{"source":"../state.ts","name":null,"original":{"line":72,"column":5},"generated":{"line":63,"column":0}},{"source":"../state.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":63,"column":5}},{"source":"../state.ts","name":null,"original":{"line":73,"column":3},"generated":{"line":64,"column":0}},{"source":"../state.ts","name":null,"original":{"line":69,"column":2},"generated":{"line":64,"column":3}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":0}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":2}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":9}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":10}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":19}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":20}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":37}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":40}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":66,"column":52}},{"source":"../state.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":67,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":67,"column":11}},{"source":"../state.ts","name":null,"original":{"line":77,"column":6},"generated":{"line":68,"column":0}},{"source":"../state.ts","name":null,"original":{"line":77,"column":6},"generated":{"line":68,"column":6}},{"source":"../state.ts","name":null,"original":{"line":77,"column":21},"generated":{"line":68,"column":21}},{"source":"../state.ts","name":null,"original":{"line":77,"column":23},"generated":{"line":68,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":68,"column":25}},{"source":"../state.ts","name":null,"original":{"line":78,"column":6},"generated":{"line":69,"column":0}},{"source":"../state.ts","name":null,"original":{"line":78,"column":6},"generated":{"line":69,"column":6}},{"source":"../state.ts","name":null,"original":{"line":78,"column":21},"generated":{"line":69,"column":21}},{"source":"../state.ts","name":null,"original":{"line":78,"column":23},"generated":{"line":69,"column":23}},{"source":"../state.ts","name":null,"original":{"line":78,"column":27},"generated":{"line":69,"column":27}},{"source":"../state.ts","name":null,"original":{"line":78,"column":28},"generated":{"line":69,"column":28}},{"source":"../state.ts","name":null,"original":{"line":78,"column":23},"generated":{"line":69,"column":30}},{"source":"../state.ts","name":null,"original":{"line":78,"column":33},"generated":{"line":69,"column":33}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":69,"column":34}},{"source":"../state.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":70,"column":0}},{"source":"../state.ts","name":null,"original":{"line":79,"column":6},"generated":{"line":70,"column":6}},{"source":"../state.ts","name":null,"original":{"line":79,"column":21},"generated":{"line":70,"column":21}},{"source":"../state.ts","name":null,"original":{"line":79,"column":23},"generated":{"line":70,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":70,"column":32}},{"source":"../state.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":71,"column":0}},{"source":"../state.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":71,"column":6}},{"source":"../state.ts","name":null,"original":{"line":80,"column":14},"generated":{"line":71,"column":14}},{"source":"../state.ts","name":null,"original":{"line":80,"column":16},"generated":{"line":71,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":71,"column":20}},{"source":"../state.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":72,"column":0}},{"source":"../state.ts","name":null,"original":{"line":81,"column":6},"generated":{"line":72,"column":6}},{"source":"../state.ts","name":null,"original":{"line":81,"column":14},"generated":{"line":72,"column":14}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":16}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":23}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":24}},{"source":"../state.ts","name":null,"original":{"line":81,"column":16},"generated":{"line":72,"column":34}},{"source":"../state.ts","name":null,"original":{"line":81,"column":27},"generated":{"line":72,"column":35}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":72,"column":39}},{"source":"../state.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":73,"column":0}},{"source":"../state.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":73,"column":6}},{"source":"../state.ts","name":null,"original":{"line":82,"column":15},"generated":{"line":73,"column":15}},{"source":"../state.ts","name":null,"original":{"line":82,"column":17},"generated":{"line":73,"column":17}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":73,"column":26}},{"source":"../state.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":74,"column":0}},{"source":"../state.ts","name":null,"original":{"line":83,"column":6},"generated":{"line":74,"column":6}},{"source":"../state.ts","name":null,"original":{"line":83,"column":19},"generated":{"line":74,"column":19}},{"source":"../state.ts","name":null,"original":{"line":83,"column":21},"generated":{"line":74,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":74,"column":22}},{"source":"../state.ts","name":null,"original":{"line":84,"column":6},"generated":{"line":75,"column":0}},{"source":"../state.ts","name":null,"original":{"line":84,"column":6},"generated":{"line":75,"column":6}},{"source":"../state.ts","name":null,"original":{"line":84,"column":13},"generated":{"line":75,"column":13}},{"source":"../state.ts","name":null,"original":{"line":84,"column":15},"generated":{"line":75,"column":15}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":75,"column":17}},{"source":"../state.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":76,"column":0}},{"source":"../state.ts","name":null,"original":{"line":85,"column":6},"generated":{"line":76,"column":6}},{"source":"../state.ts","name":null,"original":{"line":85,"column":26},"generated":{"line":76,"column":26}},{"source":"../state.ts","name":null,"original":{"line":85,"column":28},"generated":{"line":76,"column":28}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":76,"column":35}},{"source":"../state.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":77,"column":0}},{"source":"../state.ts","name":null,"original":{"line":86,"column":6},"generated":{"line":77,"column":6}},{"source":"../state.ts","name":null,"original":{"line":86,"column":19},"generated":{"line":77,"column":19}},{"source":"../state.ts","name":null,"original":{"line":86,"column":21},"generated":{"line":77,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":77,"column":22}},{"source":"../state.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":78,"column":0}},{"source":"../state.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":78,"column":6}},{"source":"../state.ts","name":null,"original":{"line":87,"column":15},"generated":{"line":78,"column":15}},{"source":"../state.ts","name":null,"original":{"line":87,"column":17},"generated":{"line":78,"column":17}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":78,"column":24}},{"source":"../state.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":79,"column":0}},{"source":"../state.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":79,"column":6}},{"source":"../state.ts","name":null,"original":{"line":88,"column":23},"generated":{"line":79,"column":23}},{"source":"../state.ts","name":null,"original":{"line":88,"column":25},"generated":{"line":79,"column":25}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":79,"column":34}},{"source":"../state.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":80,"column":0}},{"source":"../state.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":80,"column":6}},{"source":"../state.ts","name":null,"original":{"line":89,"column":21},"generated":{"line":80,"column":21}},{"source":"../state.ts","name":null,"original":{"line":89,"column":23},"generated":{"line":80,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":80,"column":32}},{"source":"../state.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":81,"column":0}},{"source":"../state.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":81,"column":6}},{"source":"../state.ts","name":null,"original":{"line":90,"column":19},"generated":{"line":81,"column":19}},{"source":"../state.ts","name":null,"original":{"line":90,"column":21},"generated":{"line":81,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":81,"column":30}},{"source":"../state.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":82,"column":0}},{"source":"../state.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":82,"column":6}},{"source":"../state.ts","name":null,"original":{"line":91,"column":27},"generated":{"line":82,"column":27}},{"source":"../state.ts","name":null,"original":{"line":91,"column":29},"generated":{"line":82,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":82,"column":36}},{"source":"../state.ts","name":null,"original":{"line":92,"column":6},"generated":{"line":83,"column":0}},{"source":"../state.ts","name":null,"original":{"line":92,"column":6},"generated":{"line":83,"column":6}},{"source":"../state.ts","name":null,"original":{"line":92,"column":19},"generated":{"line":83,"column":19}},{"source":"../state.ts","name":null,"original":{"line":92,"column":21},"generated":{"line":83,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":83,"column":38}},{"source":"../state.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":84,"column":0}},{"source":"../state.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":84,"column":6}},{"source":"../state.ts","name":null,"original":{"line":93,"column":19},"generated":{"line":84,"column":19}},{"source":"../state.ts","name":null,"original":{"line":93,"column":21},"generated":{"line":84,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":84,"column":22}},{"source":"../state.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":85,"column":0}},{"source":"../state.ts","name":null,"original":{"line":94,"column":6},"generated":{"line":85,"column":6}},{"source":"../state.ts","name":null,"original":{"line":94,"column":19},"generated":{"line":85,"column":19}},{"source":"../state.ts","name":null,"original":{"line":94,"column":21},"generated":{"line":85,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":85,"column":30}},{"source":"../state.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":86,"column":0}},{"source":"../state.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":86,"column":6}},{"source":"../state.ts","name":null,"original":{"line":95,"column":27},"generated":{"line":86,"column":27}},{"source":"../state.ts","name":null,"original":{"line":95,"column":29},"generated":{"line":86,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":86,"column":38}},{"source":"../state.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":87,"column":0}},{"source":"../state.ts","name":null,"original":{"line":96,"column":6},"generated":{"line":87,"column":6}},{"source":"../state.ts","name":null,"original":{"line":96,"column":24},"generated":{"line":87,"column":24}},{"source":"../state.ts","name":null,"original":{"line":96,"column":26},"generated":{"line":87,"column":26}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":87,"column":33}},{"source":"../state.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":88,"column":0}},{"source":"../state.ts","name":null,"original":{"line":97,"column":6},"generated":{"line":88,"column":6}},{"source":"../state.ts","name":null,"original":{"line":97,"column":19},"generated":{"line":88,"column":19}},{"source":"../state.ts","name":null,"original":{"line":97,"column":21},"generated":{"line":88,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":88,"column":30}},{"source":"../state.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":89,"column":0}},{"source":"../state.ts","name":null,"original":{"line":98,"column":6},"generated":{"line":89,"column":6}},{"source":"../state.ts","name":null,"original":{"line":98,"column":27},"generated":{"line":89,"column":27}},{"source":"../state.ts","name":null,"original":{"line":98,"column":29},"generated":{"line":89,"column":29}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":89,"column":36}},{"source":"../state.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":90,"column":0}},{"source":"../state.ts","name":null,"original":{"line":99,"column":6},"generated":{"line":90,"column":6}},{"source":"../state.ts","name":null,"original":{"line":99,"column":19},"generated":{"line":90,"column":19}},{"source":"../state.ts","name":null,"original":{"line":99,"column":21},"generated":{"line":90,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":90,"column":38}},{"source":"../state.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":91,"column":0}},{"source":"../state.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":91,"column":6}},{"source":"../state.ts","name":null,"original":{"line":100,"column":14},"generated":{"line":91,"column":14}},{"source":"../state.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":91,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":91,"column":19}},{"source":"../state.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":92,"column":0}},{"source":"../state.ts","name":null,"original":{"line":101,"column":6},"generated":{"line":92,"column":6}},{"source":"../state.ts","name":null,"original":{"line":101,"column":14},"generated":{"line":92,"column":14}},{"source":"../state.ts","name":null,"original":{"line":101,"column":16},"generated":{"line":92,"column":16}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":92,"column":19}},{"source":"../state.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":93,"column":0}},{"source":"../state.ts","name":null,"original":{"line":102,"column":6},"generated":{"line":93,"column":6}},{"source":"../state.ts","name":null,"original":{"line":102,"column":16},"generated":{"line":93,"column":16}},{"source":"../state.ts","name":null,"original":{"line":102,"column":18},"generated":{"line":93,"column":18}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":93,"column":24}},{"source":"../state.ts","name":null,"original":{"line":103,"column":6},"generated":{"line":94,"column":0}},{"source":"../state.ts","name":null,"original":{"line":103,"column":6},"generated":{"line":94,"column":6}},{"source":"../state.ts","name":null,"original":{"line":103,"column":19},"generated":{"line":94,"column":19}},{"source":"../state.ts","name":null,"original":{"line":103,"column":21},"generated":{"line":94,"column":21}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":94,"column":30}},{"source":"../state.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":95,"column":0}},{"source":"../state.ts","name":null,"original":{"line":104,"column":6},"generated":{"line":95,"column":6}},{"source":"../state.ts","name":null,"original":{"line":104,"column":21},"generated":{"line":95,"column":21}},{"source":"../state.ts","name":null,"original":{"line":104,"column":23},"generated":{"line":95,"column":23}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":95,"column":34}},{"source":"../state.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":96,"column":0}},{"source":"../state.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":96,"column":6}},{"source":"../state.ts","name":null,"original":{"line":105,"column":15},"generated":{"line":96,"column":15}},{"source":"../state.ts","name":null,"original":{"line":105,"column":17},"generated":{"line":96,"column":17}},{"source":"../state.ts","name":null,"original":{"line":106,"column":8},"generated":{"line":97,"column":0}},{"source":"../state.ts","name":null,"original":{"line":106,"column":8},"generated":{"line":97,"column":8}},{"source":"../state.ts","name":null,"original":{"line":106,"column":13},"generated":{"line":97,"column":13}},{"source":"../state.ts","name":null,"original":{"line":106,"column":15},"generated":{"line":97,"column":15}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":97,"column":16}},{"source":"../state.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":98,"column":0}},{"source":"../state.ts","name":null,"original":{"line":108,"column":12},"generated":{"line":98,"column":10}},{"source":"../state.ts","name":null,"original":{"line":108,"column":17},"generated":{"line":98,"column":15}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":17}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":24}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":25}},{"source":"../state.ts","name":null,"original":{"line":108,"column":19},"generated":{"line":98,"column":36}},{"source":"../state.ts","name":null,"original":{"line":108,"column":31},"generated":{"line":98,"column":37}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":98,"column":43}},{"source":"../state.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":99,"column":0}},{"source":"../state.ts","name":null,"original":{"line":109,"column":12},"generated":{"line":99,"column":10}},{"source":"../state.ts","name":null,"original":{"line":109,"column":13},"generated":{"line":99,"column":11}},{"source":"../state.ts","name":null,"original":{"line":109,"column":15},"generated":{"line":99,"column":13}},{"source":"../state.ts","name":null,"original":{"line":107,"column":10},"generated":{"line":100,"column":0}},{"source":"../state.ts","name":null,"original":{"line":106,"column":15},"generated":{"line":100,"column":9}},{"source":"../state.ts","name":null,"original":{"line":105,"column":17},"generated":{"line":101,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":101,"column":7}},{"source":"../state.ts","name":null,"original":{"line":113,"column":6},"generated":{"line":102,"column":0}},{"source":"../state.ts","name":null,"original":{"line":113,"column":6},"generated":{"line":102,"column":6}},{"source":"../state.ts","name":null,"original":{"line":113,"column":15},"generated":{"line":102,"column":15}},{"source":"../state.ts","name":null,"original":{"line":113,"column":17},"generated":{"line":102,"column":17}},{"source":"../state.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":103,"column":0}},{"source":"../state.ts","name":null,"original":{"line":114,"column":8},"generated":{"line":103,"column":8}},{"source":"../state.ts","name":null,"original":{"line":114,"column":13},"generated":{"line":103,"column":13}},{"source":"../state.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":103,"column":15}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":103,"column":16}},{"source":"../state.ts","name":null,"original":{"line":116,"column":12},"generated":{"line":104,"column":0}},{"source":"../state.ts","name":null,"original":{"line":116,"column":12},"generated":{"line":104,"column":10}},{"source":"../state.ts","name":null,"original":{"line":116,"column":17},"generated":{"line":104,"column":15}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":17}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":24}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":25}},{"source":"../state.ts","name":null,"original":{"line":116,"column":19},"generated":{"line":104,"column":36}},{"source":"../state.ts","name":null,"original":{"line":116,"column":31},"generated":{"line":104,"column":37}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":104,"column":46}},{"source":"../state.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":105,"column":0}},{"source":"../state.ts","name":null,"original":{"line":117,"column":12},"generated":{"line":105,"column":10}},{"source":"../state.ts","name":null,"original":{"line":117,"column":17},"generated":{"line":105,"column":15}},{"source":"../state.ts","name":null,"original":{"line":117,"column":19},"generated":{"line":105,"column":17}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":105,"column":19}},{"source":"../state.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":106,"column":0}},{"source":"../state.ts","name":null,"original":{"line":118,"column":12},"generated":{"line":106,"column":10}},{"source":"../state.ts","name":null,"original":{"line":118,"column":18},"generated":{"line":106,"column":16}},{"source":"../state.ts","name":null,"original":{"line":118,"column":20},"generated":{"line":106,"column":18}},{"source":"../state.ts","name":null,"original":{"line":115,"column":10},"generated":{"line":107,"column":0}},{"source":"../state.ts","name":null,"original":{"line":114,"column":15},"generated":{"line":107,"column":9}},{"source":"../state.ts","name":null,"original":{"line":113,"column":17},"generated":{"line":108,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":11},"generated":{"line":109,"column":0}},{"source":"../state.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":109,"column":5}},{"source":"../state.ts","name":null,"original":{"line":123,"column":3},"generated":{"line":110,"column":0}},{"source":"../state.ts","name":null,"original":{"line":75,"column":2},"generated":{"line":110,"column":3}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":0}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":2}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":9}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":10}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":19}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":20}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":35}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":38}},{"source":"../state.ts","name":null,"original":{"line":125,"column":18},"generated":{"line":112,"column":48}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":112,"column":54}},{"source":"../state.ts","name":null,"original":{"line":125,"column":43},"generated":{"line":112,"column":56}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":0}},{"source":"../state.ts","name":null,"original":{"line":126,"column":9},"generated":{"line":113,"column":9}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":27}},{"source":"../state.ts","name":null,"original":{"line":126,"column":30},"generated":{"line":113,"column":30}},{"source":"../state.ts","name":null,"original":{"line":126,"column":36},"generated":{"line":113,"column":36}},{"source":"../state.ts","name":null,"original":{"line":126,"column":37},"generated":{"line":113,"column":37}},{"source":"../state.ts","name":null,"original":{"line":126,"column":30},"generated":{"line":113,"column":58}},{"source":"../state.ts","name":null,"original":{"line":126,"column":4},"generated":{"line":113,"column":60}},{"source":"../state.ts","name":null,"original":{"line":127,"column":3},"generated":{"line":114,"column":0}},{"source":"../state.ts","name":null,"original":{"line":125,"column":2},"generated":{"line":114,"column":3}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":0}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":2}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":9}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":10}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":19}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":20}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":38}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":41}},{"source":"../state.ts","name":null,"original":{"line":129,"column":21},"generated":{"line":116,"column":51}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":58}},{"source":"../state.ts","name":null,"original":{"line":129,"column":38},"generated":{"line":116,"column":60}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":116,"column":67}},{"source":"../state.ts","name":null,"original":{"line":129,"column":53},"generated":{"line":116,"column":69}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":0}},{"source":"../state.ts","name":null,"original":{"line":130,"column":9},"generated":{"line":117,"column":9}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":23}},{"source":"../state.ts","name":null,"original":{"line":130,"column":26},"generated":{"line":117,"column":26}},{"source":"../state.ts","name":null,"original":{"line":130,"column":4},"generated":{"line":117,"column":33}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":0}},{"source":"../state.ts","name":null,"original":{"line":131,"column":9},"generated":{"line":118,"column":9}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":23}},{"source":"../state.ts","name":null,"original":{"line":131,"column":26},"generated":{"line":118,"column":26}},{"source":"../state.ts","name":null,"original":{"line":131,"column":4},"generated":{"line":118,"column":33}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":0}},{"source":"../state.ts","name":null,"original":{"line":132,"column":9},"generated":{"line":119,"column":9}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":23}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":26}},{"source":"../state.ts","name":null,"original":{"line":132,"column":30},"generated":{"line":119,"column":30}},{"source":"../state.ts","name":null,"original":{"line":132,"column":31},"generated":{"line":119,"column":31}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":36}},{"source":"../state.ts","name":null,"original":{"line":132,"column":37},"generated":{"line":119,"column":37}},{"source":"../state.ts","name":null,"original":{"line":132,"column":44},"generated":{"line":119,"column":44}},{"source":"../state.ts","name":null,"original":{"line":132,"column":47},"generated":{"line":119,"column":47}},{"source":"../state.ts","name":null,"original":{"line":132,"column":52},"generated":{"line":119,"column":52}},{"source":"../state.ts","name":null,"original":{"line":132,"column":47},"generated":{"line":119,"column":70}},{"source":"../state.ts","name":null,"original":{"line":132,"column":71},"generated":{"line":119,"column":71}},{"source":"../state.ts","name":null,"original":{"line":132,"column":26},"generated":{"line":119,"column":75}},{"source":"../state.ts","name":null,"original":{"line":132,"column":4},"generated":{"line":119,"column":76}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":0}},{"source":"../state.ts","name":null,"original":{"line":133,"column":9},"generated":{"line":120,"column":9}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":23}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":26}},{"source":"../state.ts","name":null,"original":{"line":133,"column":30},"generated":{"line":120,"column":30}},{"source":"../state.ts","name":null,"original":{"line":133,"column":31},"generated":{"line":120,"column":31}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":36}},{"source":"../state.ts","name":null,"original":{"line":133,"column":37},"generated":{"line":120,"column":37}},{"source":"../state.ts","name":null,"original":{"line":133,"column":44},"generated":{"line":120,"column":44}},{"source":"../state.ts","name":null,"original":{"line":133,"column":47},"generated":{"line":120,"column":47}},{"source":"../state.ts","name":null,"original":{"line":133,"column":52},"generated":{"line":120,"column":52}},{"source":"../state.ts","name":null,"original":{"line":133,"column":47},"generated":{"line":120,"column":70}},{"source":"../state.ts","name":null,"original":{"line":133,"column":71},"generated":{"line":120,"column":71}},{"source":"../state.ts","name":null,"original":{"line":133,"column":26},"generated":{"line":120,"column":74}},{"source":"../state.ts","name":null,"original":{"line":133,"column":4},"generated":{"line":120,"column":75}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":0}},{"source":"../state.ts","name":null,"original":{"line":134,"column":9},"generated":{"line":121,"column":9}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":21}},{"source":"../state.ts","name":null,"original":{"line":134,"column":24},"generated":{"line":121,"column":24}},{"source":"../state.ts","name":null,"original":{"line":134,"column":25},"generated":{"line":121,"column":25}},{"source":"../state.ts","name":null,"original":{"line":134,"column":30},"generated":{"line":121,"column":30}},{"source":"../state.ts","name":null,"original":{"line":134,"column":25},"generated":{"line":121,"column":44}},{"source":"../state.ts","name":null,"original":{"line":134,"column":47},"generated":{"line":121,"column":47}},{"source":"../state.ts","name":null,"original":{"line":134,"column":52},"generated":{"line":121,"column":52}},{"source":"../state.ts","name":null,"original":{"line":134,"column":24},"generated":{"line":121,"column":62}},{"source":"../state.ts","name":null,"original":{"line":134,"column":66},"generated":{"line":121,"column":66}},{"source":"../state.ts","name":null,"original":{"line":134,"column":71},"generated":{"line":121,"column":71}},{"source":"../state.ts","name":null,"original":{"line":134,"column":4},"generated":{"line":121,"column":76}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":0}},{"source":"../state.ts","name":null,"original":{"line":135,"column":9},"generated":{"line":122,"column":9}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":21}},{"source":"../state.ts","name":null,"original":{"line":135,"column":24},"generated":{"line":122,"column":24}},{"source":"../state.ts","name":null,"original":{"line":135,"column":25},"generated":{"line":122,"column":25}},{"source":"../state.ts","name":null,"original":{"line":135,"column":30},"generated":{"line":122,"column":30}},{"source":"../state.ts","name":null,"original":{"line":135,"column":25},"generated":{"line":122,"column":44}},{"source":"../state.ts","name":null,"original":{"line":135,"column":47},"generated":{"line":122,"column":47}},{"source":"../state.ts","name":null,"original":{"line":135,"column":52},"generated":{"line":122,"column":52}},{"source":"../state.ts","name":null,"original":{"line":135,"column":24},"generated":{"line":122,"column":62}},{"source":"../state.ts","name":null,"original":{"line":135,"column":66},"generated":{"line":122,"column":66}},{"source":"../state.ts","name":null,"original":{"line":135,"column":71},"generated":{"line":122,"column":71}},{"source":"../state.ts","name":null,"original":{"line":135,"column":4},"generated":{"line":122,"column":76}},{"source":"../state.ts","name":null,"original":{"line":136,"column":3},"generated":{"line":123,"column":0}},{"source":"../state.ts","name":null,"original":{"line":129,"column":2},"generated":{"line":123,"column":3}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":0}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":2}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":9}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":10}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":19}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":20}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":26}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":29}},{"source":"../state.ts","name":null,"original":{"line":138,"column":9},"generated":{"line":125,"column":39}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":44}},{"source":"../state.ts","name":null,"original":{"line":138,"column":24},"generated":{"line":125,"column":46}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":51}},{"source":"../state.ts","name":null,"original":{"line":138,"column":39},"generated":{"line":125,"column":53}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":125,"column":58}},{"source":"../state.ts","name":null,"original":{"line":138,"column":52},"generated":{"line":125,"column":60}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":10}},{"source":"../state.ts","name":null,"original":{"line":139,"column":35},"generated":{"line":126,"column":13}},{"source":"../state.ts","name":null,"original":{"line":139,"column":40},"generated":{"line":126,"column":18}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":126,"column":25}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":127,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":12},"generated":{"line":127,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":16}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":19}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":21}},{"source":"../state.ts","name":null,"original":{"line":139,"column":20},"generated":{"line":127,"column":22}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":127,"column":30}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":128,"column":0}},{"source":"../state.ts","name":null,"original":{"line":139,"column":22},"generated":{"line":128,"column":8}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":16}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":19}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":21}},{"source":"../state.ts","name":null,"original":{"line":139,"column":30},"generated":{"line":128,"column":22}},{"source":"../state.ts","name":null,"original":{"line":139,"column":10},"generated":{"line":128,"column":30}},{"source":"../state.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":129,"column":0}},{"source":"../state.ts","name":null,"original":{"line":141,"column":10},"generated":{"line":129,"column":8}},{"source":"../state.ts","name":null,"original":{"line":141,"column":18},"generated":{"line":129,"column":16}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":19}},{"source":"../state.ts","name":null,"original":{"line":141,"column":25},"generated":{"line":129,"column":23}},{"source":"../state.ts","name":null,"original":{"line":141,"column":26},"generated":{"line":129,"column":24}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":27}},{"source":"../state.ts","name":null,"original":{"line":141,"column":30},"generated":{"line":129,"column":28}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":36}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":38}},{"source":"../state.ts","name":null,"original":{"line":141,"column":44},"generated":{"line":129,"column":42}},{"source":"../state.ts","name":null,"original":{"line":141,"column":45},"generated":{"line":129,"column":43}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":46}},{"source":"../state.ts","name":null,"original":{"line":141,"column":49},"generated":{"line":129,"column":47}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":55}},{"source":"../state.ts","name":null,"original":{"line":141,"column":59},"generated":{"line":129,"column":57}},{"source":"../state.ts","name":null,"original":{"line":141,"column":40},"generated":{"line":129,"column":62}},{"source":"../state.ts","name":null,"original":{"line":141,"column":21},"generated":{"line":129,"column":63}},{"source":"../state.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":129,"column":64}},{"source":"../state.ts","name":null,"original":{"line":143,"column":4},"generated":{"line":130,"column":0}},{"source":"../state.ts","name":null,"original":{"line":143,"column":10},"generated":{"line":130,"column":8}},{"source":"../state.ts","name":null,"original":{"line":143,"column":20},"generated":{"line":130,"column":18}},{"source":"../state.ts","name":null,"original":{"line":143,"column":23},"generated":{"line":130,"column":21}},{"source":"../state.ts","name":null,"original":{"line":143,"column":31},"generated":{"line":130,"column":29}},{"source":"../state.ts","name":null,"original":{"line":143,"column":34},"generated":{"line":130,"column":32}},{"source":"../state.ts","name":null,"original":{"line":143,"column":39},"generated":{"line":130,"column":37}},{"source":"../state.ts","name":null,"original":{"line":143,"column":4},"generated":{"line":130,"column":42}},{"source":"../state.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":131,"column":0}},{"source":"../state.ts","name":null,"original":{"line":144,"column":10},"generated":{"line":131,"column":8}},{"source":"../state.ts","name":null,"original":{"line":144,"column":17},"generated":{"line":131,"column":15}},{"source":"../state.ts","name":null,"original":{"line":144,"column":20},"generated":{"line":131,"column":18}},{"source":"../state.ts","name":null,"original":{"line":144,"column":22},"generated":{"line":131,"column":20}},{"source":"../state.ts","name":null,"original":{"line":144,"column":27},"generated":{"line":131,"column":25}},{"source":"../state.ts","name":null,"original":{"line":144,"column":30},"generated":{"line":131,"column":28}},{"source":"../state.ts","name":null,"original":{"line":144,"column":20},"generated":{"line":131,"column":38}},{"source":"../state.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":131,"column":39}},{"source":"../state.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":132,"column":0}},{"source":"../state.ts","name":null,"original":{"line":145,"column":10},"generated":{"line":132,"column":8}},{"source":"../state.ts","name":null,"original":{"line":145,"column":17},"generated":{"line":132,"column":15}},{"source":"../state.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":132,"column":18}},{"source":"../state.ts","name":null,"original":{"line":145,"column":22},"generated":{"line":132,"column":20}},{"source":"../state.ts","name":null,"original":{"line":145,"column":27},"generated":{"line":132,"column":25}},{"source":"../state.ts","name":null,"original":{"line":145,"column":30},"generated":{"line":132,"column":28}},{"source":"../state.ts","name":null,"original":{"line":145,"column":20},"generated":{"line":132,"column":38}},{"source":"../state.ts","name":null,"original":{"line":145,"column":4},"generated":{"line":132,"column":39}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":0}},{"source":"../state.ts","name":null,"original":{"line":147,"column":9},"generated":{"line":133,"column":9}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":19}},{"source":"../state.ts","name":null,"original":{"line":147,"column":23},"generated":{"line":133,"column":23}},{"source":"../state.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":133,"column":30}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":0}},{"source":"../state.ts","name":null,"original":{"line":148,"column":9},"generated":{"line":134,"column":9}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":19}},{"source":"../state.ts","name":null,"original":{"line":148,"column":23},"generated":{"line":134,"column":23}},{"source":"../state.ts","name":null,"original":{"line":148,"column":4},"generated":{"line":134,"column":30}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":0}},{"source":"../state.ts","name":null,"original":{"line":149,"column":9},"generated":{"line":135,"column":9}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":14}},{"source":"../state.ts","name":null,"original":{"line":149,"column":18},"generated":{"line":135,"column":18}},{"source":"../state.ts","name":null,"original":{"line":149,"column":4},"generated":{"line":135,"column":28}},{"source":"../state.ts","name":null,"original":{"line":150,"column":3},"generated":{"line":136,"column":0}},{"source":"../state.ts","name":null,"original":{"line":138,"column":2},"generated":{"line":136,"column":3}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":0}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":9}},{"source":"../state.ts","name":null,"original":{"line":151,"column":0},"generated":{"line":138,"column":16}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":1}},{"source":"../state.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":139,"column":3}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":0}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":7}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":8}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":15}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":18}},{"source":"../state.ts","name":null,"original":{"line":10,"column":13},"generated":{"line":141,"column":25}}],"sources":{"../state.ts":"import {\n GEViewOptions,\n GEViewOptionsParams,\n GEGridType,\n GEShapeName,\n GENode,\n GEEdge\n} from \"./types\";\n\nexport class GEState {\n nodes: GENode[];\n edges: GEEdge[];\n\n options: GEViewOptions;\n\n isDragging = false;\n isShiftDown = false;\n isDrawing = false;\n\n moveNodeX = 0;\n moveNodeY = 0;\n\n // transform\n translateX = 0;\n translateY = 0;\n scale = 1;\n\n // pointer position\n pointerScreenX = 0;\n pointerScreenY = 0;\n pointerCanvasX = 0;\n pointerCanvasY = 0;\n pointerViewX = 0;\n pointerViewY = 0;\n boundingClientRect: DOMRect;\n\n // selection\n selectedNode: GENode | undefined = undefined;\n selectedEdge: GEEdge | undefined = undefined;\n hoveredNode: GENode | undefined = undefined;\n hoveredEdge: GEEdge | undefined = undefined;\n\n // drag line when creating edge\n isCreatingEdge = false;\n dragLineSourceNode: GENode | undefined = undefined;\n dragLineTargetX = 0;\n dragLineTargetY = 0;\n\n constructor() {\n this.nodes = [];\n this.edges = [];\n\n this.options = this.getDefaultOptions();\n }\n\n isMovingNode(): boolean {\n return this.isDragging && this.selectedNode && !this.isCreatingEdge;\n }\n\n isMovingView(): boolean {\n return !this.isShiftDown && this.isDragging && !this.selectedNode;\n }\n\n setData(nodes: GENode[], edges: GEEdge[]): void {\n this.nodes = nodes;\n this.edges = edges;\n }\n\n setOptions(options: GEViewOptionsParams): void {\n Object.keys(options).forEach(k => {\n this.options[k] = options[k];\n });\n }\n\n getDefaultOptions(): GEViewOptions {\n return {\n edgeArrowLength: 16,\n edgeArrowRadian: Math.PI / 6,\n backgroundColor: \"#F7FAFC\",\n showGrid: true,\n gridType: GEGridType.DOTS,\n gridColor: \"#CBD5E0\",\n gridLineWidth: 8,\n gridGap: 64,\n defaultSubShapeColor: \"green\",\n nodeLineWidth: 2,\n nodeColor: \"white\",\n nodeSelectedColor: \"#4299E1\",\n nodeStrokeColor: \"#1A202C\",\n nodeTextColor: \"#1A202C\",\n nodeSelectedTextColor: \"white\",\n nodeTextStyle: \"16px sans-serif\",\n edgeLineWidth: 3,\n edgeLineColor: \"#2B6CB0\",\n edgeLineSelectedColor: \"#4299E1\",\n edgeShapeFillColor: \"white\",\n edgeTextColor: \"#1A202C\",\n edgeSelectedTextColor: \"white\",\n edgeTextStyle: \"16px sans-serif\",\n minScale: 0.2,\n maxScale: 1.8,\n cursorGrab: \"grab\",\n cursorPointer: \"pointer\",\n cursorCrosshair: \"crosshair\",\n nodeTypes: {\n empty: [\n {\n shape: GEShapeName.CIRCLE,\n r: 80\n }\n ]\n },\n edgeTypes: {\n empty: [\n {\n shape: GEShapeName.RECTANGLE,\n width: 30,\n height: 20\n }\n ]\n }\n };\n }\n\n setBoundingRect(canvas: HTMLCanvasElement): void {\n this.boundingClientRect = canvas.getBoundingClientRect();\n }\n\n setPointerPosition(screenX: number, screenY: number): void {\n this.pointerScreenX = screenX;\n this.pointerScreenY = screenY;\n this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left);\n this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top);\n this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale;\n this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale;\n }\n\n zoomTo(scale: number, viewX: number, viewY: number): void {\n const { maxScale, minScale } = this.options;\n\n const newScale = Math.min(maxScale, Math.max(minScale, scale));\n\n const deltaScale = newScale - this.scale;\n const offsetX = -(viewX * deltaScale);\n const offsetY = -(viewY * deltaScale);\n\n this.translateX += offsetX;\n this.translateY += offsetY;\n this.scale += deltaScale;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"b9f2375965c319540c5c5ba659c5625d","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/b8/64c6455411c25dcfe047430f377131.json b/.cache/b8/64c6455411c25dcfe047430f377131.json deleted file mode 100644 index 75f1d9d..0000000 --- a/.cache/b8/64c6455411c25dcfe047430f377131.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"utils.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.randomize = exports.getRandomIntInclusive = void 0;\n\nfunction getRandomIntInclusive(minF, maxF) {\n var min = Math.ceil(minF);\n var max = Math.floor(maxF);\n return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive\n}\n\nexports.getRandomIntInclusive = getRandomIntInclusive;\n\nfunction randomize(nodeCount, cols) {\n if (nodeCount === void 0) {\n nodeCount = 1000;\n }\n\n if (cols === void 0) {\n cols = 40;\n }\n\n var nodes = [];\n var edges = [];\n var lastId = 0;\n\n for (var i = 0; i < nodeCount; i++) {\n var col = i % cols;\n var row = Math.floor(i / cols);\n var tmp = getRandomIntInclusive(0, 3);\n var nodeType = tmp === 0 ? \"empty\" : tmp === 1 ? \"decision\" : tmp === 2 ? \"unknown\" : \"complex\";\n var tmp2 = getRandomIntInclusive(0, 2);\n var edgeType = tmp2 === 0 ? \"normal\" : tmp2 === 1 ? \"round\" : \"double\";\n lastId++;\n var currNode = {\n id: lastId,\n x: col * 320,\n y: row * 320,\n type: nodeType,\n text: \"Node ID: \" + lastId\n };\n nodes.push(currNode);\n\n if (i > 0) {\n var prevNode = nodes[i - 1];\n lastId++;\n edges.push({\n id: lastId,\n sourceNode: prevNode,\n targetNode: currNode,\n type: edgeType,\n text: lastId.toString()\n });\n }\n }\n\n return {\n nodes: nodes,\n edges: edges,\n lastId: lastId\n };\n}\n\nexports.randomize = randomize;"},"sourceMaps":{"js":{"mappings":[{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":16},"generated":{"line":8,"column":9}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":30}},{"source":"utils.ts","name":null,"original":{"line":3,"column":38},"generated":{"line":8,"column":31}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":35}},{"source":"utils.ts","name":null,"original":{"line":3,"column":52},"generated":{"line":8,"column":37}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":8,"column":41}},{"source":"utils.ts","name":null,"original":{"line":3,"column":64},"generated":{"line":8,"column":43}},{"source":"utils.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":9,"column":0}},{"source":"utils.ts","name":null,"original":{"line":4,"column":8},"generated":{"line":9,"column":6}},{"source":"utils.ts","name":null,"original":{"line":4,"column":11},"generated":{"line":9,"column":9}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":12}},{"source":"utils.ts","name":null,"original":{"line":4,"column":18},"generated":{"line":9,"column":16}},{"source":"utils.ts","name":null,"original":{"line":4,"column":19},"generated":{"line":9,"column":17}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":21}},{"source":"utils.ts","name":null,"original":{"line":4,"column":24},"generated":{"line":9,"column":22}},{"source":"utils.ts","name":null,"original":{"line":4,"column":14},"generated":{"line":9,"column":26}},{"source":"utils.ts","name":null,"original":{"line":4,"column":2},"generated":{"line":9,"column":27}},{"source":"utils.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":10,"column":0}},{"source":"utils.ts","name":null,"original":{"line":5,"column":8},"generated":{"line":10,"column":6}},{"source":"utils.ts","name":null,"original":{"line":5,"column":11},"generated":{"line":10,"column":9}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":12}},{"source":"utils.ts","name":null,"original":{"line":5,"column":18},"generated":{"line":10,"column":16}},{"source":"utils.ts","name":null,"original":{"line":5,"column":19},"generated":{"line":10,"column":17}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":22}},{"source":"utils.ts","name":null,"original":{"line":5,"column":25},"generated":{"line":10,"column":23}},{"source":"utils.ts","name":null,"original":{"line":5,"column":14},"generated":{"line":10,"column":27}},{"source":"utils.ts","name":null,"original":{"line":5,"column":2},"generated":{"line":10,"column":28}},{"source":"utils.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":11,"column":0}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":9}},{"source":"utils.ts","name":null,"original":{"line":6,"column":13},"generated":{"line":11,"column":13}},{"source":"utils.ts","name":null,"original":{"line":6,"column":14},"generated":{"line":11,"column":14}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":19}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":20}},{"source":"utils.ts","name":null,"original":{"line":6,"column":24},"generated":{"line":11,"column":24}},{"source":"utils.ts","name":null,"original":{"line":6,"column":25},"generated":{"line":11,"column":25}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":31}},{"source":"utils.ts","name":null,"original":{"line":6,"column":37},"generated":{"line":11,"column":37}},{"source":"utils.ts","name":null,"original":{"line":6,"column":40},"generated":{"line":11,"column":40}},{"source":"utils.ts","name":null,"original":{"line":6,"column":43},"generated":{"line":11,"column":43}},{"source":"utils.ts","name":null,"original":{"line":6,"column":37},"generated":{"line":11,"column":46}},{"source":"utils.ts","name":null,"original":{"line":6,"column":49},"generated":{"line":11,"column":49}},{"source":"utils.ts","name":null,"original":{"line":6,"column":20},"generated":{"line":11,"column":50}},{"source":"utils.ts","name":null,"original":{"line":6,"column":54},"generated":{"line":11,"column":54}},{"source":"utils.ts","name":null,"original":{"line":6,"column":9},"generated":{"line":11,"column":57}},{"source":"utils.ts","name":null,"original":{"line":6,"column":2},"generated":{"line":11,"column":58}},{"source":"utils.ts","name":null,"original":{"line":3,"column":64},"generated":{"line":11,"column":59}},{"source":"utils.ts","name":null,"original":{"line":6,"column":60},"generated":{"line":11,"column":60}},{"source":"utils.ts","name":null,"original":{"line":7,"column":1},"generated":{"line":12,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":0}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":7}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":8}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":29}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":32}},{"source":"utils.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":14,"column":53}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":16},"generated":{"line":16,"column":9}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":18}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":16,"column":19}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":28}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":16,"column":30}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":16,"column":34}},{"source":"utils.ts","name":null,"original":{"line":11,"column":11},"generated":{"line":16,"column":36}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":0}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":6}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":15}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":20}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":25}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":26}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":17,"column":28}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":0}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":4}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":13}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":16}},{"source":"utils.ts","name":null,"original":{"line":10,"column":2},"generated":{"line":18,"column":20}},{"source":"utils.ts","name":null,"original":{"line":10,"column":18},"generated":{"line":19,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":6}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":10}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":15}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":20}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":21}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":21,"column":23}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":0}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":4}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":8}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":11}},{"source":"utils.ts","name":null,"original":{"line":11,"column":2},"generated":{"line":22,"column":13}},{"source":"utils.ts","name":null,"original":{"line":11,"column":11},"generated":{"line":23,"column":0}},{"source":"utils.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":25,"column":0}},{"source":"utils.ts","name":null,"original":{"line":17,"column":8},"generated":{"line":25,"column":6}},{"source":"utils.ts","name":null,"original":{"line":17,"column":13},"generated":{"line":25,"column":11}},{"source":"utils.ts","name":null,"original":{"line":17,"column":16},"generated":{"line":25,"column":14}},{"source":"utils.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":25,"column":16}},{"source":"utils.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":26,"column":0}},{"source":"utils.ts","name":null,"original":{"line":18,"column":8},"generated":{"line":26,"column":6}},{"source":"utils.ts","name":null,"original":{"line":18,"column":13},"generated":{"line":26,"column":11}},{"source":"utils.ts","name":null,"original":{"line":18,"column":16},"generated":{"line":26,"column":14}},{"source":"utils.ts","name":null,"original":{"line":18,"column":2},"generated":{"line":26,"column":16}},{"source":"utils.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":27,"column":0}},{"source":"utils.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":27,"column":6}},{"source":"utils.ts","name":null,"original":{"line":19,"column":12},"generated":{"line":27,"column":12}},{"source":"utils.ts","name":null,"original":{"line":19,"column":15},"generated":{"line":27,"column":15}},{"source":"utils.ts","name":null,"original":{"line":19,"column":2},"generated":{"line":27,"column":16}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":0}},{"source":"utils.ts","name":null,"original":{"line":21,"column":7},"generated":{"line":29,"column":7}},{"source":"utils.ts","name":null,"original":{"line":21,"column":11},"generated":{"line":29,"column":11}},{"source":"utils.ts","name":null,"original":{"line":21,"column":12},"generated":{"line":29,"column":12}},{"source":"utils.ts","name":null,"original":{"line":21,"column":15},"generated":{"line":29,"column":15}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":16}},{"source":"utils.ts","name":null,"original":{"line":21,"column":18},"generated":{"line":29,"column":18}},{"source":"utils.ts","name":null,"original":{"line":21,"column":19},"generated":{"line":29,"column":19}},{"source":"utils.ts","name":null,"original":{"line":21,"column":22},"generated":{"line":29,"column":22}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":31}},{"source":"utils.ts","name":null,"original":{"line":21,"column":33},"generated":{"line":29,"column":33}},{"source":"utils.ts","name":null,"original":{"line":21,"column":34},"generated":{"line":29,"column":34}},{"source":"utils.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":29,"column":36}},{"source":"utils.ts","name":null,"original":{"line":21,"column":38},"generated":{"line":29,"column":38}},{"source":"utils.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":30,"column":0}},{"source":"utils.ts","name":null,"original":{"line":22,"column":10},"generated":{"line":30,"column":8}},{"source":"utils.ts","name":null,"original":{"line":22,"column":13},"generated":{"line":30,"column":11}},{"source":"utils.ts","name":null,"original":{"line":22,"column":16},"generated":{"line":30,"column":14}},{"source":"utils.ts","name":null,"original":{"line":22,"column":17},"generated":{"line":30,"column":15}},{"source":"utils.ts","name":null,"original":{"line":22,"column":20},"generated":{"line":30,"column":18}},{"source":"utils.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":30,"column":22}},{"source":"utils.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":31,"column":0}},{"source":"utils.ts","name":null,"original":{"line":23,"column":10},"generated":{"line":31,"column":8}},{"source":"utils.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":31,"column":11}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":14}},{"source":"utils.ts","name":null,"original":{"line":23,"column":20},"generated":{"line":31,"column":18}},{"source":"utils.ts","name":null,"original":{"line":23,"column":21},"generated":{"line":31,"column":19}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":24}},{"source":"utils.ts","name":null,"original":{"line":23,"column":27},"generated":{"line":31,"column":25}},{"source":"utils.ts","name":null,"original":{"line":23,"column":28},"generated":{"line":31,"column":26}},{"source":"utils.ts","name":null,"original":{"line":23,"column":31},"generated":{"line":31,"column":29}},{"source":"utils.ts","name":null,"original":{"line":23,"column":16},"generated":{"line":31,"column":33}},{"source":"utils.ts","name":null,"original":{"line":23,"column":4},"generated":{"line":31,"column":34}},{"source":"utils.ts","name":null,"original":{"line":25,"column":4},"generated":{"line":32,"column":0}},{"source":"utils.ts","name":null,"original":{"line":25,"column":10},"generated":{"line":32,"column":8}},{"source":"utils.ts","name":null,"original":{"line":25,"column":13},"generated":{"line":32,"column":11}},{"source":"utils.ts","name":null,"original":{"line":25,"column":16},"generated":{"line":32,"column":14}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":35}},{"source":"utils.ts","name":null,"original":{"line":25,"column":38},"generated":{"line":32,"column":36}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":37}},{"source":"utils.ts","name":null,"original":{"line":25,"column":41},"generated":{"line":32,"column":39}},{"source":"utils.ts","name":null,"original":{"line":25,"column":37},"generated":{"line":32,"column":40}},{"source":"utils.ts","name":null,"original":{"line":25,"column":4},"generated":{"line":32,"column":41}},{"source":"utils.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":33,"column":0}},{"source":"utils.ts","name":null,"original":{"line":26,"column":10},"generated":{"line":33,"column":8}},{"source":"utils.ts","name":null,"original":{"line":26,"column":18},"generated":{"line":33,"column":16}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":19}},{"source":"utils.ts","name":null,"original":{"line":27,"column":9},"generated":{"line":33,"column":22}},{"source":"utils.ts","name":null,"original":{"line":27,"column":14},"generated":{"line":33,"column":27}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":28}},{"source":"utils.ts","name":null,"original":{"line":28,"column":10},"generated":{"line":33,"column":31}},{"source":"utils.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":33,"column":38}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":41}},{"source":"utils.ts","name":null,"original":{"line":29,"column":13},"generated":{"line":33,"column":44}},{"source":"utils.ts","name":null,"original":{"line":29,"column":18},"generated":{"line":33,"column":49}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":50}},{"source":"utils.ts","name":null,"original":{"line":30,"column":10},"generated":{"line":33,"column":53}},{"source":"utils.ts","name":null,"original":{"line":29,"column":10},"generated":{"line":33,"column":63}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":66}},{"source":"utils.ts","name":null,"original":{"line":31,"column":13},"generated":{"line":33,"column":69}},{"source":"utils.ts","name":null,"original":{"line":31,"column":18},"generated":{"line":33,"column":74}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":75}},{"source":"utils.ts","name":null,"original":{"line":32,"column":10},"generated":{"line":33,"column":78}},{"source":"utils.ts","name":null,"original":{"line":31,"column":10},"generated":{"line":33,"column":87}},{"source":"utils.ts","name":null,"original":{"line":33,"column":10},"generated":{"line":33,"column":90}},{"source":"utils.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":33,"column":99}},{"source":"utils.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":34,"column":0}},{"source":"utils.ts","name":null,"original":{"line":35,"column":10},"generated":{"line":34,"column":8}},{"source":"utils.ts","name":null,"original":{"line":35,"column":14},"generated":{"line":34,"column":12}},{"source":"utils.ts","name":null,"original":{"line":35,"column":17},"generated":{"line":34,"column":15}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":36}},{"source":"utils.ts","name":null,"original":{"line":35,"column":39},"generated":{"line":34,"column":37}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":38}},{"source":"utils.ts","name":null,"original":{"line":35,"column":42},"generated":{"line":34,"column":40}},{"source":"utils.ts","name":null,"original":{"line":35,"column":38},"generated":{"line":34,"column":41}},{"source":"utils.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":34,"column":42}},{"source":"utils.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":35,"column":0}},{"source":"utils.ts","name":null,"original":{"line":36,"column":10},"generated":{"line":35,"column":8}},{"source":"utils.ts","name":null,"original":{"line":36,"column":18},"generated":{"line":35,"column":16}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":19}},{"source":"utils.ts","name":null,"original":{"line":36,"column":25},"generated":{"line":35,"column":23}},{"source":"utils.ts","name":null,"original":{"line":36,"column":30},"generated":{"line":35,"column":28}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":29}},{"source":"utils.ts","name":null,"original":{"line":36,"column":34},"generated":{"line":35,"column":32}},{"source":"utils.ts","name":null,"original":{"line":36,"column":21},"generated":{"line":35,"column":40}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":43}},{"source":"utils.ts","name":null,"original":{"line":36,"column":49},"generated":{"line":35,"column":47}},{"source":"utils.ts","name":null,"original":{"line":36,"column":54},"generated":{"line":35,"column":52}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":53}},{"source":"utils.ts","name":null,"original":{"line":36,"column":58},"generated":{"line":35,"column":56}},{"source":"utils.ts","name":null,"original":{"line":36,"column":45},"generated":{"line":35,"column":63}},{"source":"utils.ts","name":null,"original":{"line":36,"column":68},"generated":{"line":35,"column":66}},{"source":"utils.ts","name":null,"original":{"line":36,"column":4},"generated":{"line":35,"column":74}},{"source":"utils.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":36,"column":0}},{"source":"utils.ts","name":null,"original":{"line":38,"column":4},"generated":{"line":36,"column":4}},{"source":"utils.ts","name":null,"original":{"line":38,"column":10},"generated":{"line":36,"column":10}},{"source":"utils.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":37,"column":0}},{"source":"utils.ts","name":null,"original":{"line":39,"column":10},"generated":{"line":37,"column":8}},{"source":"utils.ts","name":null,"original":{"line":39,"column":18},"generated":{"line":37,"column":16}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":37,"column":19}},{"source":"utils.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":38,"column":0}},{"source":"utils.ts","name":null,"original":{"line":40,"column":6},"generated":{"line":38,"column":6}},{"source":"utils.ts","name":null,"original":{"line":40,"column":8},"generated":{"line":38,"column":8}},{"source":"utils.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":38,"column":10}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":38,"column":16}},{"source":"utils.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":39,"column":0}},{"source":"utils.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":39,"column":6}},{"source":"utils.ts","name":null,"original":{"line":41,"column":7},"generated":{"line":39,"column":7}},{"source":"utils.ts","name":null,"original":{"line":41,"column":9},"generated":{"line":39,"column":9}},{"source":"utils.ts","name":null,"original":{"line":41,"column":12},"generated":{"line":39,"column":12}},{"source":"utils.ts","name":null,"original":{"line":41,"column":15},"generated":{"line":39,"column":15}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":39,"column":18}},{"source":"utils.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":40,"column":0}},{"source":"utils.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":40,"column":6}},{"source":"utils.ts","name":null,"original":{"line":42,"column":7},"generated":{"line":40,"column":7}},{"source":"utils.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":40,"column":9}},{"source":"utils.ts","name":null,"original":{"line":42,"column":12},"generated":{"line":40,"column":12}},{"source":"utils.ts","name":null,"original":{"line":42,"column":15},"generated":{"line":40,"column":15}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":40,"column":18}},{"source":"utils.ts","name":null,"original":{"line":43,"column":6},"generated":{"line":41,"column":0}},{"source":"utils.ts","name":null,"original":{"line":43,"column":6},"generated":{"line":41,"column":6}},{"source":"utils.ts","name":null,"original":{"line":43,"column":10},"generated":{"line":41,"column":10}},{"source":"utils.ts","name":null,"original":{"line":43,"column":12},"generated":{"line":41,"column":12}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":41,"column":20}},{"source":"utils.ts","name":null,"original":{"line":44,"column":6},"generated":{"line":42,"column":0}},{"source":"utils.ts","name":null,"original":{"line":44,"column":6},"generated":{"line":42,"column":6}},{"source":"utils.ts","name":null,"original":{"line":44,"column":10},"generated":{"line":42,"column":10}},{"source":"utils.ts","name":null,"original":{"line":44,"column":12},"generated":{"line":42,"column":12}},{"source":"utils.ts","name":null,"original":{"line":44,"column":24},"generated":{"line":42,"column":26}},{"source":"utils.ts","name":null,"original":{"line":39,"column":29},"generated":{"line":43,"column":0}},{"source":"utils.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":43,"column":5}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":0}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":4}},{"source":"utils.ts","name":null,"original":{"line":47,"column":9},"generated":{"line":44,"column":9}},{"source":"utils.ts","name":null,"original":{"line":47,"column":10},"generated":{"line":44,"column":10}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":14}},{"source":"utils.ts","name":null,"original":{"line":47,"column":15},"generated":{"line":44,"column":15}},{"source":"utils.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":44,"column":23}},{"source":"utils.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":46,"column":0}},{"source":"utils.ts","name":null,"original":{"line":49,"column":8},"generated":{"line":46,"column":8}},{"source":"utils.ts","name":null,"original":{"line":49,"column":9},"generated":{"line":46,"column":9}},{"source":"utils.ts","name":null,"original":{"line":49,"column":12},"generated":{"line":46,"column":12}},{"source":"utils.ts","name":null,"original":{"line":49,"column":4},"generated":{"line":46,"column":13}},{"source":"utils.ts","name":null,"original":{"line":49,"column":15},"generated":{"line":46,"column":15}},{"source":"utils.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":47,"column":0}},{"source":"utils.ts","name":null,"original":{"line":50,"column":12},"generated":{"line":47,"column":10}},{"source":"utils.ts","name":null,"original":{"line":50,"column":20},"generated":{"line":47,"column":18}},{"source":"utils.ts","name":null,"original":{"line":50,"column":23},"generated":{"line":47,"column":21}},{"source":"utils.ts","name":null,"original":{"line":50,"column":28},"generated":{"line":47,"column":26}},{"source":"utils.ts","name":null,"original":{"line":50,"column":29},"generated":{"line":47,"column":27}},{"source":"utils.ts","name":null,"original":{"line":50,"column":30},"generated":{"line":47,"column":28}},{"source":"utils.ts","name":null,"original":{"line":50,"column":33},"generated":{"line":47,"column":31}},{"source":"utils.ts","name":null,"original":{"line":50,"column":28},"generated":{"line":47,"column":32}},{"source":"utils.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":47,"column":33}},{"source":"utils.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":48,"column":0}},{"source":"utils.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":48,"column":6}},{"source":"utils.ts","name":null,"original":{"line":52,"column":12},"generated":{"line":48,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":0}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":6}},{"source":"utils.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":49,"column":11}},{"source":"utils.ts","name":null,"original":{"line":53,"column":12},"generated":{"line":49,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":49,"column":16}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":49,"column":17}},{"source":"utils.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":50,"column":0}},{"source":"utils.ts","name":null,"original":{"line":54,"column":8},"generated":{"line":50,"column":8}},{"source":"utils.ts","name":null,"original":{"line":54,"column":10},"generated":{"line":50,"column":10}},{"source":"utils.ts","name":null,"original":{"line":54,"column":12},"generated":{"line":50,"column":12}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":50,"column":18}},{"source":"utils.ts","name":null,"original":{"line":55,"column":8},"generated":{"line":51,"column":0}},{"source":"utils.ts","name":null,"original":{"line":55,"column":8},"generated":{"line":51,"column":8}},{"source":"utils.ts","name":null,"original":{"line":55,"column":18},"generated":{"line":51,"column":18}},{"source":"utils.ts","name":null,"original":{"line":55,"column":20},"generated":{"line":51,"column":20}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":51,"column":28}},{"source":"utils.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":52,"column":0}},{"source":"utils.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":52,"column":8}},{"source":"utils.ts","name":null,"original":{"line":56,"column":18},"generated":{"line":52,"column":18}},{"source":"utils.ts","name":null,"original":{"line":56,"column":20},"generated":{"line":52,"column":20}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":52,"column":28}},{"source":"utils.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":53,"column":0}},{"source":"utils.ts","name":null,"original":{"line":57,"column":8},"generated":{"line":53,"column":8}},{"source":"utils.ts","name":null,"original":{"line":57,"column":12},"generated":{"line":53,"column":12}},{"source":"utils.ts","name":null,"original":{"line":57,"column":14},"generated":{"line":53,"column":14}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":53,"column":22}},{"source":"utils.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":54,"column":0}},{"source":"utils.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":54,"column":8}},{"source":"utils.ts","name":null,"original":{"line":58,"column":12},"generated":{"line":54,"column":12}},{"source":"utils.ts","name":null,"original":{"line":58,"column":14},"generated":{"line":54,"column":14}},{"source":"utils.ts","name":null,"original":{"line":58,"column":20},"generated":{"line":54,"column":20}},{"source":"utils.ts","name":null,"original":{"line":58,"column":21},"generated":{"line":54,"column":21}},{"source":"utils.ts","name":null,"original":{"line":58,"column":14},"generated":{"line":54,"column":29}},{"source":"utils.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":55,"column":0}},{"source":"utils.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":55,"column":7}},{"source":"utils.ts","name":null,"original":{"line":60,"column":5},"generated":{"line":56,"column":0}},{"source":"utils.ts","name":null,"original":{"line":61,"column":3},"generated":{"line":57,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":59,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":59,"column":9}},{"source":"utils.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":60,"column":0}},{"source":"utils.ts","name":null,"original":{"line":64,"column":4},"generated":{"line":60,"column":4}},{"source":"utils.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":60,"column":9}},{"source":"utils.ts","name":null,"original":{"line":64,"column":9},"generated":{"line":60,"column":11}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":60,"column":16}},{"source":"utils.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":61,"column":0}},{"source":"utils.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":61,"column":4}},{"source":"utils.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":61,"column":9}},{"source":"utils.ts","name":null,"original":{"line":65,"column":9},"generated":{"line":61,"column":11}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":61,"column":16}},{"source":"utils.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":62,"column":0}},{"source":"utils.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":62,"column":4}},{"source":"utils.ts","name":null,"original":{"line":66,"column":10},"generated":{"line":62,"column":10}},{"source":"utils.ts","name":null,"original":{"line":66,"column":10},"generated":{"line":62,"column":12}},{"source":"utils.ts","name":null,"original":{"line":63,"column":9},"generated":{"line":63,"column":0}},{"source":"utils.ts","name":null,"original":{"line":63,"column":2},"generated":{"line":63,"column":3}},{"source":"utils.ts","name":null,"original":{"line":68,"column":1},"generated":{"line":64,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":0}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":7}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":8}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":17}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":20}},{"source":"utils.ts","name":null,"original":{"line":9,"column":0},"generated":{"line":66,"column":29}}],"sources":{"utils.ts":"import { GENode, GEEdge } from \"../types\";\n\nexport function getRandomIntInclusive(minF: number, maxF: number): number {\n const min = Math.ceil(minF);\n const max = Math.floor(maxF);\n return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive\n}\n\nexport function randomize(\n nodeCount = 1000,\n cols = 40\n): {\n nodes: GENode[];\n edges: GEEdge[];\n lastId: number;\n} {\n const nodes = [];\n const edges = [];\n let lastId = 0;\n\n for (let i = 0; i < nodeCount; i++) {\n const col = i % cols;\n const row = Math.floor(i / cols);\n\n const tmp = getRandomIntInclusive(0, 3);\n const nodeType =\n tmp === 0\n ? \"empty\"\n : tmp === 1\n ? \"decision\"\n : tmp === 2\n ? \"unknown\"\n : \"complex\";\n\n const tmp2 = getRandomIntInclusive(0, 2);\n const edgeType = tmp2 === 0 ? \"normal\" : tmp2 === 1 ? \"round\" : \"double\";\n\n lastId++;\n const currNode: GENode = {\n id: lastId,\n x: col * 320,\n y: row * 320,\n type: nodeType,\n text: `Node ID: ${lastId}`\n };\n\n nodes.push(currNode);\n\n if (i > 0) {\n const prevNode = nodes[i - 1];\n\n lastId++;\n edges.push({\n id: lastId,\n sourceNode: prevNode,\n targetNode: currNode,\n type: edgeType,\n text: lastId.toString()\n });\n }\n }\n\n return {\n nodes,\n edges,\n lastId\n };\n}\n"},"lineCount":null}},"error":null,"hash":"4e87e157c594cd4ebda5bc0211927edb","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json b/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json deleted file mode 100644 index 93a01e2..0000000 --- a/.cache/c8/311f5b0fe21736d57e08222dbdaf1b.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557863421},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000}],"generated":{"js":"var global = arguments[3];\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\nvar parent = module.bundle.parent;\n\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = \"\" || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + \"1235\" + '/');\n\n ws.onmessage = function (event) {\n checkedAssets = {};\n assetsToAccept = [];\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function (asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n\n if (didAccept) {\n handled = true;\n }\n }\n }); // Enable HMR for CSS by default.\n\n handled = handled || data.assets.every(function (asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) {\n // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n\n ws.onclose = function () {\n location.reload();\n };\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n removeErrorOverlay();\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID; // html encode message and stack trace\n\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n overlay.innerHTML = '
' + 'ERROR' + '🚨' + '
' + message.innerHTML + '
' + '
' + stackTrace.innerHTML + '
' + '
';\n return overlay;\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id);\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n cached = bundle.cache[id];\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n\n return true;\n }\n}"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":2,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":0}},{"name":"OVERLAY_ID","generated":{"line":2,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":4}},{"generated":{"line":2,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":14}},{"generated":{"line":2,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":17}},{"generated":{"line":2,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":0}},{"name":"OldModule","generated":{"line":3,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":4}},{"generated":{"line":3,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":13}},{"name":"module","generated":{"line":3,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":16}},{"generated":{"line":3,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":22}},{"name":"bundle","generated":{"line":3,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":23}},{"generated":{"line":3,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":16}},{"name":"Module","generated":{"line":3,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":30}},{"generated":{"line":3,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":3,"column":0}},{"generated":{"line":5,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"name":"Module","generated":{"line":5,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":9}},{"generated":{"line":5,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"name":"moduleName","generated":{"line":5,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":16}},{"generated":{"line":5,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":0}},{"generated":{"line":5,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":5,"column":28}},{"name":"OldModule","generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"name":"OldModule","generated":{"line":6,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":6,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":11}},{"name":"call","generated":{"line":6,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":12}},{"generated":{"line":6,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":6,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":17}},{"generated":{"line":6,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"name":"moduleName","generated":{"line":6,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":23}},{"generated":{"line":6,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":6,"column":2}},{"generated":{"line":7,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"name":"hot","generated":{"line":7,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":7}},{"generated":{"line":7,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"generated":{"line":7,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"data","generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":4}},{"name":"data","generated":{"line":8,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":4}},{"generated":{"line":8,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":8}},{"name":"module","generated":{"line":8,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":10}},{"generated":{"line":8,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":16}},{"name":"bundle","generated":{"line":8,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":17}},{"generated":{"line":8,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":10}},{"name":"hotData","generated":{"line":8,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":8,"column":24}},{"generated":{"line":8,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"_acceptCallbacks","generated":{"line":9,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":4}},{"name":"_acceptCallbacks","generated":{"line":9,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":4}},{"generated":{"line":9,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":20}},{"generated":{"line":9,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":9,"column":22}},{"generated":{"line":9,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"_disposeCallbacks","generated":{"line":10,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":4}},{"name":"_disposeCallbacks","generated":{"line":10,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":4}},{"generated":{"line":10,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":21}},{"generated":{"line":10,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":10,"column":23}},{"generated":{"line":10,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"accept","generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":4}},{"name":"accept","generated":{"line":11,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":4}},{"generated":{"line":11,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":10}},{"generated":{"line":11,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":12}},{"name":"fn","generated":{"line":11,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":22}},{"generated":{"line":11,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":12}},{"generated":{"line":11,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":11,"column":26}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"_acceptCallbacks","generated":{"line":12,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":11}},{"generated":{"line":12,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"push","generated":{"line":12,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":28}},{"generated":{"line":12,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"name":"fn","generated":{"line":12,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":33}},{"generated":{"line":12,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":35}},{"generated":{"line":12,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":39}},{"generated":{"line":12,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":51}},{"generated":{"line":12,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":53}},{"generated":{"line":12,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":12,"column":6}},{"generated":{"line":13,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":13,"column":5}},{"generated":{"line":13,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"name":"dispose","generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":4}},{"name":"dispose","generated":{"line":14,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":4}},{"generated":{"line":14,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":11}},{"generated":{"line":14,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":13}},{"name":"fn","generated":{"line":14,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":23}},{"generated":{"line":14,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":13}},{"generated":{"line":14,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":14,"column":27}},{"generated":{"line":15,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"_disposeCallbacks","generated":{"line":15,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":11}},{"generated":{"line":15,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"push","generated":{"line":15,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":29}},{"generated":{"line":15,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"name":"fn","generated":{"line":15,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":34}},{"generated":{"line":15,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":15,"column":6}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":16,"column":5}},{"generated":{"line":17,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":13}},{"generated":{"line":17,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":7,"column":2}},{"name":"module","generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"name":"module","generated":{"line":18,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":18,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":8}},{"name":"bundle","generated":{"line":18,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":9}},{"generated":{"line":18,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"name":"hotData","generated":{"line":18,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":16}},{"generated":{"line":18,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":18,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":26}},{"generated":{"line":18,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":19,"column":2}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":20,"column":1}},{"name":"module","generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"generated":{"line":21,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":6}},{"name":"bundle","generated":{"line":21,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":7}},{"generated":{"line":21,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"name":"Module","generated":{"line":21,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":14}},{"generated":{"line":21,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"name":"Module","generated":{"line":21,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":23}},{"generated":{"line":21,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":22,"column":0}},{"generated":{"line":22,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"name":"checkedAssets","generated":{"line":22,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":4}},{"generated":{"line":22,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"name":"assetsToAccept","generated":{"line":22,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":19}},{"generated":{"line":22,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":23,"column":0}},{"generated":{"line":23,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":0}},{"name":"parent","generated":{"line":23,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":4}},{"generated":{"line":23,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":10}},{"name":"module","generated":{"line":23,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":13}},{"generated":{"line":23,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":19}},{"name":"bundle","generated":{"line":23,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":20}},{"generated":{"line":23,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":13}},{"name":"parent","generated":{"line":23,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":27}},{"generated":{"line":23,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":25,"column":0}},{"generated":{"line":25,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":0}},{"generated":{"line":25,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":4}},{"generated":{"line":25,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":5}},{"name":"parent","generated":{"line":25,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":6}},{"generated":{"line":25,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":5}},{"generated":{"line":25,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":16}},{"name":"parent","generated":{"line":25,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":17}},{"generated":{"line":25,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":23}},{"name":"isParcelRequire","generated":{"line":25,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":24}},{"generated":{"line":25,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":4}},{"generated":{"line":25,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":44}},{"name":"WebSocket","generated":{"line":25,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":51}},{"generated":{"line":25,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":44}},{"generated":{"line":25,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":65}},{"generated":{"line":25,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":0}},{"generated":{"line":25,"column":78},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":26,"column":78}},{"generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":2}},{"name":"hostname","generated":{"line":26,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":6}},{"generated":{"line":26,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":14}},{"generated":{"line":26,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":17}},{"name":"location","generated":{"line":26,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":45}},{"generated":{"line":26,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":53}},{"name":"hostname","generated":{"line":26,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":54}},{"generated":{"line":26,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":27,"column":2}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":2}},{"name":"protocol","generated":{"line":27,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":6}},{"generated":{"line":27,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":14}},{"name":"location","generated":{"line":27,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":25}},{"name":"protocol","generated":{"line":27,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":26}},{"generated":{"line":27,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":39}},{"generated":{"line":27,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":50}},{"generated":{"line":27,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":17}},{"generated":{"line":27,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":58}},{"generated":{"line":27,"column":62},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":28,"column":2}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":2}},{"name":"ws","generated":{"line":28,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":6}},{"generated":{"line":28,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":8}},{"generated":{"line":28,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"name":"WebSocket","generated":{"line":28,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":15}},{"generated":{"line":28,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"name":"protocol","generated":{"line":28,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":33}},{"generated":{"line":28,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":36}},{"generated":{"line":28,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"name":"hostname","generated":{"line":28,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":44}},{"generated":{"line":28,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":55}},{"generated":{"line":28,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":25}},{"generated":{"line":28,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":84}},{"generated":{"line":28,"column":73},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":11}},{"generated":{"line":28,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":29,"column":2}},{"name":"ws","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"name":"ws","generated":{"line":30,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":30,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":4}},{"name":"onmessage","generated":{"line":30,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":5}},{"generated":{"line":30,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":30,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":17}},{"name":"event","generated":{"line":30,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":26}},{"generated":{"line":30,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":17}},{"generated":{"line":30,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":33}},{"name":"checkedAssets","generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"name":"checkedAssets","generated":{"line":31,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"generated":{"line":31,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":17}},{"generated":{"line":31,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":20}},{"generated":{"line":31,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":31,"column":4}},{"name":"assetsToAccept","generated":{"line":32,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"name":"assetsToAccept","generated":{"line":32,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"generated":{"line":32,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":18}},{"generated":{"line":32,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":21}},{"generated":{"line":32,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":32,"column":4}},{"generated":{"line":33,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":4}},{"name":"data","generated":{"line":33,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":8}},{"generated":{"line":33,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":12}},{"name":"JSON","generated":{"line":33,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"generated":{"line":33,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":19}},{"name":"parse","generated":{"line":33,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":20}},{"generated":{"line":33,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"name":"event","generated":{"line":33,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":26}},{"generated":{"line":33,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":31}},{"name":"data","generated":{"line":33,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":32}},{"generated":{"line":33,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":15}},{"generated":{"line":33,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":34,"column":4}},{"generated":{"line":35,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":4}},{"name":"data","generated":{"line":35,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":8}},{"generated":{"line":35,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":12}},{"name":"type","generated":{"line":35,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":13}},{"generated":{"line":35,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":8}},{"generated":{"line":35,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":22}},{"generated":{"line":35,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":4}},{"generated":{"line":35,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":32}},{"generated":{"line":36,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":6}},{"name":"handled","generated":{"line":36,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":10}},{"generated":{"line":36,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":17}},{"generated":{"line":36,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":20}},{"generated":{"line":36,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":37,"column":6}},{"name":"data","generated":{"line":37,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"name":"data","generated":{"line":37,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":37,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":10}},{"name":"assets","generated":{"line":37,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":11}},{"generated":{"line":37,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"name":"forEach","generated":{"line":37,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":18}},{"generated":{"line":37,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":37,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":26}},{"name":"asset","generated":{"line":37,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":35}},{"generated":{"line":37,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":26}},{"generated":{"line":37,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":42}},{"generated":{"line":38,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":8}},{"generated":{"line":38,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":12}},{"name":"asset","generated":{"line":38,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":13}},{"generated":{"line":38,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":18}},{"name":"isNew","generated":{"line":38,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":19}},{"generated":{"line":38,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":8}},{"generated":{"line":38,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":39,"column":26}},{"generated":{"line":39,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":10}},{"name":"didAccept","generated":{"line":39,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":14}},{"generated":{"line":39,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":23}},{"name":"hmrAcceptCheck","generated":{"line":39,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":26}},{"generated":{"line":39,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"name":"global","generated":{"line":39,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":41}},{"generated":{"line":39,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":47}},{"name":"parcelRequire","generated":{"line":39,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":48}},{"generated":{"line":39,"column":61},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"name":"asset","generated":{"line":39,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":63}},{"generated":{"line":39,"column":68},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":68}},{"name":"id","generated":{"line":39,"column":69},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":69}},{"generated":{"line":39,"column":71},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":40}},{"generated":{"line":39,"column":72},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":40,"column":10}},{"generated":{"line":41,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":10}},{"name":"didAccept","generated":{"line":41,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":14}},{"generated":{"line":41,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":10}},{"generated":{"line":41,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":41,"column":25}},{"name":"handled","generated":{"line":42,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"name":"handled","generated":{"line":42,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"generated":{"line":42,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":19}},{"generated":{"line":42,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":22}},{"generated":{"line":42,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":42,"column":12}},{"generated":{"line":43,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":43,"column":11}},{"generated":{"line":44,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":44,"column":9}},{"generated":{"line":45,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":45,"column":7}},{"generated":{"line":45,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":38,"column":6}},{"generated":{"line":45,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":36,"column":32}},{"generated":{"line":45,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":47,"column":6}},{"name":"handled","generated":{"line":47,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"name":"handled","generated":{"line":47,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"generated":{"line":47,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":13}},{"name":"handled","generated":{"line":47,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":16}},{"generated":{"line":47,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":23}},{"name":"data","generated":{"line":47,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":47,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":31}},{"name":"assets","generated":{"line":47,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":32}},{"generated":{"line":47,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"name":"every","generated":{"line":47,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":39}},{"generated":{"line":47,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":47,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":45}},{"name":"asset","generated":{"line":47,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":54}},{"generated":{"line":47,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":45}},{"generated":{"line":47,"column":62},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":61}},{"generated":{"line":48,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":8}},{"name":"asset","generated":{"line":48,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"generated":{"line":48,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":20}},{"name":"type","generated":{"line":48,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":21}},{"generated":{"line":48,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"generated":{"line":48,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":30}},{"generated":{"line":48,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":15}},{"name":"asset","generated":{"line":48,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":39}},{"generated":{"line":48,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":44}},{"name":"generated","generated":{"line":48,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":45}},{"generated":{"line":48,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":39}},{"name":"js","generated":{"line":48,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":55}},{"generated":{"line":48,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":49,"column":8}},{"generated":{"line":49,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":50,"column":7}},{"generated":{"line":49,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":27}},{"generated":{"line":49,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":48,"column":6}},{"generated":{"line":51,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"name":"handled","generated":{"line":51,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":10}},{"generated":{"line":51,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"generated":{"line":51,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":19}},{"name":"console","generated":{"line":52,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"name":"console","generated":{"line":52,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"generated":{"line":52,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":15}},{"name":"clear","generated":{"line":52,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":16}},{"generated":{"line":52,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":53,"column":8}},{"name":"data","generated":{"line":53,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"data","generated":{"line":53,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"generated":{"line":53,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":12}},{"name":"assets","generated":{"line":53,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":13}},{"generated":{"line":53,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"forEach","generated":{"line":53,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":20}},{"generated":{"line":53,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"generated":{"line":53,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":28}},{"name":"asset","generated":{"line":53,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":38}},{"generated":{"line":53,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":28}},{"generated":{"line":53,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":45}},{"name":"hmrApply","generated":{"line":54,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"name":"hmrApply","generated":{"line":54,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"generated":{"line":54,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"name":"global","generated":{"line":54,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":19}},{"generated":{"line":54,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":25}},{"name":"parcelRequire","generated":{"line":54,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":26}},{"generated":{"line":54,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"name":"asset","generated":{"line":54,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":41}},{"generated":{"line":54,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":18}},{"generated":{"line":54,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":56,"column":10}},{"generated":{"line":55,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":57,"column":9}},{"generated":{"line":55,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":55,"column":8}},{"name":"assetsToAccept","generated":{"line":56,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"name":"assetsToAccept","generated":{"line":56,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":56,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":22}},{"name":"forEach","generated":{"line":56,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":23}},{"generated":{"line":56,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":56,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":31}},{"name":"v","generated":{"line":56,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":41}},{"generated":{"line":56,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":31}},{"generated":{"line":56,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":44}},{"name":"hmrAcceptRun","generated":{"line":57,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"name":"hmrAcceptRun","generated":{"line":57,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"generated":{"line":57,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"name":"v","generated":{"line":57,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":23}},{"generated":{"line":57,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":24}},{"generated":{"line":57,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":25}},{"generated":{"line":57,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":24}},{"generated":{"line":57,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"name":"v","generated":{"line":57,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":29}},{"generated":{"line":57,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":30}},{"generated":{"line":57,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":31}},{"generated":{"line":57,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":30}},{"generated":{"line":57,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":22}},{"generated":{"line":57,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":60,"column":10}},{"generated":{"line":58,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":61,"column":9}},{"generated":{"line":58,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":59,"column":8}},{"generated":{"line":59,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":7}},{"generated":{"line":59,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":52,"column":6}},{"generated":{"line":59,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":13}},{"name":"location","generated":{"line":59,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":17}},{"generated":{"line":59,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":25}},{"name":"reload","generated":{"line":59,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":26}},{"generated":{"line":59,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":13}},{"generated":{"line":59,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":34}},{"generated":{"line":60,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":62,"column":36}},{"name":"location","generated":{"line":61,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"name":"location","generated":{"line":61,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"generated":{"line":61,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":16}},{"name":"reload","generated":{"line":61,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":17}},{"generated":{"line":61,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":63,"column":8}},{"generated":{"line":62,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":64,"column":7}},{"generated":{"line":63,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":65,"column":5}},{"generated":{"line":65,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":4}},{"name":"data","generated":{"line":65,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":8}},{"generated":{"line":65,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":12}},{"name":"type","generated":{"line":65,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":13}},{"generated":{"line":65,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":8}},{"generated":{"line":65,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":22}},{"generated":{"line":65,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":4}},{"generated":{"line":65,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":67,"column":32}},{"name":"ws","generated":{"line":66,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"name":"ws","generated":{"line":66,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"generated":{"line":66,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":8}},{"name":"close","generated":{"line":66,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":9}},{"generated":{"line":66,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":68,"column":6}},{"name":"ws","generated":{"line":68,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"name":"ws","generated":{"line":68,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":68,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":8}},{"name":"onclose","generated":{"line":68,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":9}},{"generated":{"line":68,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":68,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":19}},{"generated":{"line":68,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":31}},{"name":"location","generated":{"line":69,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"name":"location","generated":{"line":69,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"generated":{"line":69,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":16}},{"name":"reload","generated":{"line":69,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":17}},{"generated":{"line":69,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":70,"column":8}},{"generated":{"line":70,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":71,"column":7}},{"generated":{"line":70,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":69,"column":6}},{"generated":{"line":71,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":72,"column":5}},{"generated":{"line":73,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":4}},{"name":"data","generated":{"line":73,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":8}},{"generated":{"line":73,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":12}},{"name":"type","generated":{"line":73,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":13}},{"generated":{"line":73,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":8}},{"generated":{"line":73,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":22}},{"generated":{"line":73,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":4}},{"generated":{"line":73,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":74,"column":40}},{"name":"console","generated":{"line":74,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"name":"console","generated":{"line":74,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"generated":{"line":74,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":13}},{"name":"log","generated":{"line":74,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":14}},{"generated":{"line":74,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"generated":{"line":74,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":18}},{"generated":{"line":74,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":75,"column":6}},{"name":"removeErrorOverlay","generated":{"line":75,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":6}},{"name":"removeErrorOverlay","generated":{"line":75,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":6}},{"generated":{"line":75,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":77,"column":24}},{"generated":{"line":76,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":78,"column":5}},{"generated":{"line":78,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":4}},{"name":"data","generated":{"line":78,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":8}},{"generated":{"line":78,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":12}},{"name":"type","generated":{"line":78,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":13}},{"generated":{"line":78,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":8}},{"generated":{"line":78,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":22}},{"generated":{"line":78,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":4}},{"generated":{"line":78,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":80,"column":31}},{"name":"console","generated":{"line":79,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"name":"console","generated":{"line":79,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"generated":{"line":79,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":13}},{"name":"error","generated":{"line":79,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":14}},{"generated":{"line":79,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"generated":{"line":79,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"name":"data","generated":{"line":79,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":38}},{"generated":{"line":79,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":42}},{"name":"error","generated":{"line":79,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":43}},{"generated":{"line":79,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":38}},{"name":"message","generated":{"line":79,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":49}},{"generated":{"line":79,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"generated":{"line":79,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":59}},{"generated":{"line":79,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":20}},{"name":"data","generated":{"line":79,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":66}},{"generated":{"line":79,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":70}},{"name":"error","generated":{"line":79,"column":71},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":71}},{"generated":{"line":79,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":66}},{"name":"stack","generated":{"line":79,"column":77},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":77}},{"generated":{"line":79,"column":82},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":81,"column":6}},{"name":"removeErrorOverlay","generated":{"line":80,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":6}},{"name":"removeErrorOverlay","generated":{"line":80,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":6}},{"generated":{"line":80,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":83,"column":24}},{"generated":{"line":81,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":6}},{"name":"overlay","generated":{"line":81,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":10}},{"generated":{"line":81,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":17}},{"name":"createErrorOverlay","generated":{"line":81,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":20}},{"generated":{"line":81,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":38}},{"name":"data","generated":{"line":81,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":39}},{"generated":{"line":81,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":38}},{"generated":{"line":81,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":85,"column":6}},{"name":"document","generated":{"line":82,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"document","generated":{"line":82,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"generated":{"line":82,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":14}},{"name":"body","generated":{"line":82,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":15}},{"generated":{"line":82,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"appendChild","generated":{"line":82,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":20}},{"generated":{"line":82,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"name":"overlay","generated":{"line":82,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":32}},{"generated":{"line":82,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":86,"column":6}},{"generated":{"line":83,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":87,"column":5}},{"generated":{"line":84,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":88,"column":3}},{"generated":{"line":84,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":30,"column":2}},{"generated":{"line":85,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":89,"column":1}},{"generated":{"line":87,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":0}},{"name":"removeErrorOverlay","generated":{"line":87,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":9}},{"generated":{"line":87,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":0}},{"generated":{"line":87,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":91,"column":30}},{"generated":{"line":88,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":2}},{"name":"overlay","generated":{"line":88,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":6}},{"generated":{"line":88,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":13}},{"name":"document","generated":{"line":88,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"generated":{"line":88,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":24}},{"name":"getElementById","generated":{"line":88,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":25}},{"generated":{"line":88,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"name":"OVERLAY_ID","generated":{"line":88,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":40}},{"generated":{"line":88,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":16}},{"generated":{"line":88,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":92,"column":2}},{"generated":{"line":90,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":2}},{"name":"overlay","generated":{"line":90,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":6}},{"generated":{"line":90,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":2}},{"generated":{"line":90,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":93,"column":15}},{"name":"overlay","generated":{"line":91,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"name":"overlay","generated":{"line":91,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"generated":{"line":91,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":11}},{"name":"remove","generated":{"line":91,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":12}},{"generated":{"line":91,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":94,"column":4}},{"generated":{"line":92,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":95,"column":3}},{"generated":{"line":93,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":96,"column":1}},{"generated":{"line":95,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"name":"createErrorOverlay","generated":{"line":95,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":9}},{"generated":{"line":95,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"name":"data","generated":{"line":95,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":28}},{"generated":{"line":95,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":0}},{"generated":{"line":95,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":34}},{"generated":{"line":96,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":2}},{"name":"overlay","generated":{"line":96,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":6}},{"generated":{"line":96,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":13}},{"name":"document","generated":{"line":96,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":24}},{"name":"createElement","generated":{"line":96,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":25}},{"generated":{"line":96,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":39}},{"generated":{"line":96,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":16}},{"generated":{"line":96,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":99,"column":2}},{"name":"overlay","generated":{"line":97,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"name":"overlay","generated":{"line":97,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"generated":{"line":97,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":9}},{"name":"id","generated":{"line":97,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":10}},{"generated":{"line":97,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"name":"OVERLAY_ID","generated":{"line":97,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":15}},{"generated":{"line":97,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":100,"column":2}},{"generated":{"line":97,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":98,"column":34}},{"generated":{"line":97,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":102,"column":2}},{"generated":{"line":99,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":2}},{"name":"message","generated":{"line":99,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":6}},{"generated":{"line":99,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":13}},{"name":"document","generated":{"line":99,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":24}},{"name":"createElement","generated":{"line":99,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":25}},{"generated":{"line":99,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":39}},{"generated":{"line":99,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":16}},{"generated":{"line":99,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":103,"column":2}},{"generated":{"line":100,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":2}},{"name":"stackTrace","generated":{"line":100,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":6}},{"generated":{"line":100,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":16}},{"name":"document","generated":{"line":100,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":27}},{"name":"createElement","generated":{"line":100,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":28}},{"generated":{"line":100,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":42}},{"generated":{"line":100,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":19}},{"generated":{"line":100,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":104,"column":2}},{"name":"message","generated":{"line":101,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"message","generated":{"line":101,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"generated":{"line":101,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":9}},{"name":"innerText","generated":{"line":101,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":10}},{"generated":{"line":101,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"data","generated":{"line":101,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":22}},{"generated":{"line":101,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":26}},{"name":"error","generated":{"line":101,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":27}},{"generated":{"line":101,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":22}},{"name":"message","generated":{"line":101,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":33}},{"generated":{"line":101,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":105,"column":2}},{"name":"stackTrace","generated":{"line":102,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"stackTrace","generated":{"line":102,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"generated":{"line":102,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":12}},{"name":"innerText","generated":{"line":102,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":13}},{"generated":{"line":102,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"data","generated":{"line":102,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":25}},{"generated":{"line":102,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":29}},{"name":"error","generated":{"line":102,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":30}},{"generated":{"line":102,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":25}},{"name":"stack","generated":{"line":102,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":36}},{"generated":{"line":102,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":106,"column":2}},{"name":"overlay","generated":{"line":103,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"name":"overlay","generated":{"line":103,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":103,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":9}},{"name":"innerHTML","generated":{"line":103,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":10}},{"generated":{"line":103,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":103,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":241},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":110,"column":6}},{"generated":{"line":103,"column":324},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":327},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":111,"column":6}},{"generated":{"line":103,"column":400},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":403},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":6}},{"generated":{"line":103,"column":472},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"name":"message","generated":{"line":103,"column":475},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":78}},{"generated":{"line":103,"column":482},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":85}},{"name":"innerHTML","generated":{"line":103,"column":483},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":86}},{"generated":{"line":103,"column":492},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":495},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":112,"column":98}},{"generated":{"line":103,"column":503},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":506},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":6}},{"generated":{"line":103,"column":513},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"name":"stackTrace","generated":{"line":103,"column":516},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":16}},{"generated":{"line":103,"column":526},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":26}},{"name":"innerHTML","generated":{"line":103,"column":527},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":27}},{"generated":{"line":103,"column":536},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":539},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":113,"column":39}},{"generated":{"line":103,"column":547},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":109,"column":4}},{"generated":{"line":103,"column":550},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":114,"column":4}},{"generated":{"line":103,"column":558},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":108,"column":2}},{"generated":{"line":104,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":2}},{"name":"overlay","generated":{"line":104,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":9}},{"generated":{"line":104,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":117,"column":2}},{"generated":{"line":105,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":119,"column":1}},{"generated":{"line":107,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"getParents","generated":{"line":107,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":9}},{"generated":{"line":107,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"bundle","generated":{"line":107,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":20}},{"generated":{"line":107,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"name":"id","generated":{"line":107,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":28}},{"generated":{"line":107,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":0}},{"generated":{"line":107,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":121,"column":32}},{"generated":{"line":108,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":2}},{"name":"modules","generated":{"line":108,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":6}},{"generated":{"line":108,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":13}},{"name":"bundle","generated":{"line":108,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":16}},{"generated":{"line":108,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":22}},{"name":"modules","generated":{"line":108,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":23}},{"generated":{"line":108,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":122,"column":2}},{"generated":{"line":110,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":2}},{"generated":{"line":110,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":6}},{"name":"modules","generated":{"line":110,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":7}},{"generated":{"line":110,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":2}},{"generated":{"line":110,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":123,"column":16}},{"generated":{"line":111,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":4}},{"generated":{"line":111,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":11}},{"generated":{"line":111,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":124,"column":4}},{"generated":{"line":112,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":125,"column":3}},{"generated":{"line":114,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":2}},{"name":"parents","generated":{"line":114,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":6}},{"generated":{"line":114,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":13}},{"generated":{"line":114,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":16}},{"generated":{"line":114,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":127,"column":2}},{"generated":{"line":115,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"k","generated":{"line":115,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":6}},{"generated":{"line":115,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"d","generated":{"line":115,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":9}},{"generated":{"line":115,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"name":"dep","generated":{"line":115,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":12}},{"generated":{"line":115,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":128,"column":2}},{"generated":{"line":117,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"name":"k","generated":{"line":117,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":7}},{"generated":{"line":117,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"name":"modules","generated":{"line":117,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":12}},{"generated":{"line":117,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":2}},{"generated":{"line":117,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":130,"column":21}},{"generated":{"line":118,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"name":"d","generated":{"line":118,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":9}},{"generated":{"line":118,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"name":"modules","generated":{"line":118,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":21}},{"name":"k","generated":{"line":118,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":22}},{"generated":{"line":118,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":21}},{"generated":{"line":118,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":25}},{"generated":{"line":118,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":14}},{"generated":{"line":118,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":4}},{"generated":{"line":118,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":131,"column":29}},{"name":"dep","generated":{"line":119,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"name":"dep","generated":{"line":119,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"generated":{"line":119,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":9}},{"name":"modules","generated":{"line":119,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":19}},{"name":"k","generated":{"line":119,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":20}},{"generated":{"line":119,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":19}},{"generated":{"line":119,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":23}},{"generated":{"line":119,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"name":"d","generated":{"line":119,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":26}},{"generated":{"line":119,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":12}},{"generated":{"line":119,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":132,"column":6}},{"generated":{"line":121,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":6}},{"name":"dep","generated":{"line":121,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":10}},{"generated":{"line":121,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":13}},{"name":"id","generated":{"line":121,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":18}},{"generated":{"line":121,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":10}},{"name":"Array","generated":{"line":121,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"generated":{"line":121,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":30}},{"name":"isArray","generated":{"line":121,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":31}},{"generated":{"line":121,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"name":"dep","generated":{"line":121,"column":38},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":39}},{"generated":{"line":121,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":25}},{"name":"dep","generated":{"line":121,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":47}},{"generated":{"line":121,"column":49},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":50}},{"name":"dep","generated":{"line":121,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":51}},{"generated":{"line":121,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":54}},{"name":"length","generated":{"line":121,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":55}},{"generated":{"line":121,"column":60},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":51}},{"generated":{"line":121,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":64}},{"generated":{"line":121,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":50}},{"generated":{"line":121,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":47}},{"name":"id","generated":{"line":121,"column":70},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":71}},{"generated":{"line":121,"column":72},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":6}},{"generated":{"line":121,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":133,"column":76}},{"name":"parents","generated":{"line":122,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"name":"parents","generated":{"line":122,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"generated":{"line":122,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":15}},{"name":"push","generated":{"line":122,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":16}},{"generated":{"line":122,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"name":"k","generated":{"line":122,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":21}},{"generated":{"line":122,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":134,"column":8}},{"generated":{"line":123,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":135,"column":7}},{"generated":{"line":124,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":136,"column":5}},{"generated":{"line":125,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":137,"column":3}},{"generated":{"line":127,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":2}},{"name":"bundle","generated":{"line":127,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":6}},{"generated":{"line":127,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":12}},{"name":"parent","generated":{"line":127,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":13}},{"generated":{"line":127,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":2}},{"generated":{"line":127,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":139,"column":21}},{"name":"parents","generated":{"line":128,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"name":"parents","generated":{"line":128,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"generated":{"line":128,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":11}},{"name":"parents","generated":{"line":128,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"generated":{"line":128,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":21}},{"name":"concat","generated":{"line":128,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":22}},{"generated":{"line":128,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"name":"getParents","generated":{"line":128,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":29}},{"generated":{"line":128,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"name":"bundle","generated":{"line":128,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":40}},{"generated":{"line":128,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":46}},{"name":"parent","generated":{"line":128,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":47}},{"generated":{"line":128,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"name":"id","generated":{"line":128,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":55}},{"generated":{"line":128,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":39}},{"generated":{"line":128,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":14}},{"generated":{"line":128,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":140,"column":4}},{"generated":{"line":129,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":141,"column":3}},{"generated":{"line":131,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":2}},{"name":"parents","generated":{"line":131,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":9}},{"generated":{"line":131,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":143,"column":2}},{"generated":{"line":132,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":144,"column":1}},{"generated":{"line":134,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"hmrApply","generated":{"line":134,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":9}},{"generated":{"line":134,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"bundle","generated":{"line":134,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":18}},{"generated":{"line":134,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"name":"asset","generated":{"line":134,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":26}},{"generated":{"line":134,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":0}},{"generated":{"line":134,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":146,"column":33}},{"generated":{"line":135,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":2}},{"name":"modules","generated":{"line":135,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":6}},{"generated":{"line":135,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":13}},{"name":"bundle","generated":{"line":135,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":16}},{"generated":{"line":135,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":22}},{"name":"modules","generated":{"line":135,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":23}},{"generated":{"line":135,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":147,"column":2}},{"generated":{"line":137,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":2}},{"generated":{"line":137,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":6}},{"name":"modules","generated":{"line":137,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":7}},{"generated":{"line":137,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":2}},{"generated":{"line":137,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":148,"column":16}},{"generated":{"line":138,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":149,"column":4}},{"generated":{"line":139,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":150,"column":3}},{"generated":{"line":141,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"name":"modules","generated":{"line":141,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":6}},{"generated":{"line":141,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":13}},{"name":"asset","generated":{"line":141,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":14}},{"generated":{"line":141,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":19}},{"name":"id","generated":{"line":141,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":20}},{"generated":{"line":141,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":13}},{"generated":{"line":141,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":6}},{"generated":{"line":141,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":27}},{"name":"bundle","generated":{"line":141,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":28}},{"generated":{"line":141,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":34}},{"name":"parent","generated":{"line":141,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":35}},{"generated":{"line":141,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"generated":{"line":141,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":43}},{"generated":{"line":142,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":4}},{"name":"fn","generated":{"line":142,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":8}},{"generated":{"line":142,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":10}},{"generated":{"line":142,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"name":"Function","generated":{"line":142,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":17}},{"generated":{"line":142,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":26}},{"generated":{"line":142,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":37}},{"generated":{"line":142,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":47},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":47}},{"generated":{"line":142,"column":56},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"name":"asset","generated":{"line":142,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":58}},{"generated":{"line":142,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":63}},{"name":"generated","generated":{"line":142,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":64}},{"generated":{"line":142,"column":73},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":58}},{"name":"js","generated":{"line":142,"column":74},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":74}},{"generated":{"line":142,"column":76},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":13}},{"generated":{"line":142,"column":77},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":153,"column":4}},{"name":"asset","generated":{"line":143,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"name":"asset","generated":{"line":143,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"generated":{"line":143,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":9}},{"name":"isNew","generated":{"line":143,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":10}},{"generated":{"line":143,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"generated":{"line":143,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":18}},{"name":"modules","generated":{"line":143,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":19}},{"generated":{"line":143,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":26}},{"name":"asset","generated":{"line":143,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":27}},{"generated":{"line":143,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":32}},{"name":"id","generated":{"line":143,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":33}},{"generated":{"line":143,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":26}},{"generated":{"line":143,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":154,"column":4}},{"name":"modules","generated":{"line":144,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"name":"modules","generated":{"line":144,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":144,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":11}},{"name":"asset","generated":{"line":144,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":12}},{"generated":{"line":144,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":17}},{"name":"id","generated":{"line":144,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":18}},{"generated":{"line":144,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":11}},{"generated":{"line":144,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":144,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"name":"fn","generated":{"line":144,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":25}},{"generated":{"line":144,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"name":"asset","generated":{"line":144,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":29}},{"generated":{"line":144,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":34}},{"name":"deps","generated":{"line":144,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":35}},{"generated":{"line":144,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":24}},{"generated":{"line":144,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":155,"column":4}},{"generated":{"line":145,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":3}},{"generated":{"line":145,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":152,"column":2}},{"generated":{"line":145,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":9}},{"name":"bundle","generated":{"line":145,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":13}},{"generated":{"line":145,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":19}},{"name":"parent","generated":{"line":145,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":20}},{"generated":{"line":145,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":9}},{"generated":{"line":145,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":156,"column":28}},{"name":"hmrApply","generated":{"line":146,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"name":"hmrApply","generated":{"line":146,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"generated":{"line":146,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"name":"bundle","generated":{"line":146,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":13}},{"generated":{"line":146,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":19}},{"name":"parent","generated":{"line":146,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":20}},{"generated":{"line":146,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"name":"asset","generated":{"line":146,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":28}},{"generated":{"line":146,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":12}},{"generated":{"line":146,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":157,"column":4}},{"generated":{"line":147,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":158,"column":3}},{"generated":{"line":148,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":159,"column":1}},{"generated":{"line":150,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"hmrAcceptCheck","generated":{"line":150,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":9}},{"generated":{"line":150,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"bundle","generated":{"line":150,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":24}},{"generated":{"line":150,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"name":"id","generated":{"line":150,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":32}},{"generated":{"line":150,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":0}},{"generated":{"line":150,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":161,"column":36}},{"generated":{"line":151,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":2}},{"name":"modules","generated":{"line":151,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":6}},{"generated":{"line":151,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":13}},{"name":"bundle","generated":{"line":151,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":16}},{"generated":{"line":151,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":22}},{"name":"modules","generated":{"line":151,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":23}},{"generated":{"line":151,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":162,"column":2}},{"generated":{"line":153,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":2}},{"generated":{"line":153,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":6}},{"name":"modules","generated":{"line":153,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":7}},{"generated":{"line":153,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":2}},{"generated":{"line":153,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":163,"column":16}},{"generated":{"line":154,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":164,"column":4}},{"generated":{"line":155,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":165,"column":3}},{"generated":{"line":157,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":2}},{"generated":{"line":157,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":6}},{"name":"modules","generated":{"line":157,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":7}},{"generated":{"line":157,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":14}},{"name":"id","generated":{"line":157,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":15}},{"generated":{"line":157,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":14}},{"generated":{"line":157,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":6}},{"name":"bundle","generated":{"line":157,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":22}},{"generated":{"line":157,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":28}},{"name":"parent","generated":{"line":157,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":29}},{"generated":{"line":157,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":2}},{"generated":{"line":157,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":167,"column":37}},{"generated":{"line":158,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":4}},{"name":"hmrAcceptCheck","generated":{"line":158,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":11}},{"generated":{"line":158,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"name":"bundle","generated":{"line":158,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":26}},{"generated":{"line":158,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":32}},{"name":"parent","generated":{"line":158,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":33}},{"generated":{"line":158,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"name":"id","generated":{"line":158,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":41}},{"generated":{"line":158,"column":43},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":25}},{"generated":{"line":158,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":168,"column":4}},{"generated":{"line":159,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":169,"column":3}},{"generated":{"line":161,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":2}},{"name":"checkedAssets","generated":{"line":161,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":6}},{"generated":{"line":161,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":19}},{"name":"id","generated":{"line":161,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":20}},{"generated":{"line":161,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":19}},{"generated":{"line":161,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":2}},{"generated":{"line":161,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":171,"column":25}},{"generated":{"line":162,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":172,"column":4}},{"generated":{"line":163,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":173,"column":3}},{"name":"checkedAssets","generated":{"line":165,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"name":"checkedAssets","generated":{"line":165,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":165,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":15}},{"name":"id","generated":{"line":165,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":16}},{"generated":{"line":165,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":15}},{"generated":{"line":165,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":165,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":22}},{"generated":{"line":165,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":174,"column":2}},{"generated":{"line":166,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":2}},{"name":"cached","generated":{"line":166,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":6}},{"generated":{"line":166,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":12}},{"name":"bundle","generated":{"line":166,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"generated":{"line":166,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":21}},{"name":"cache","generated":{"line":166,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":22}},{"generated":{"line":166,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"name":"id","generated":{"line":166,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":28}},{"generated":{"line":166,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":15}},{"generated":{"line":166,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":176,"column":2}},{"name":"assetsToAccept","generated":{"line":167,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"name":"assetsToAccept","generated":{"line":167,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":167,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":16}},{"name":"push","generated":{"line":167,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":17}},{"generated":{"line":167,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":167,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"name":"bundle","generated":{"line":167,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":23}},{"generated":{"line":167,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"name":"id","generated":{"line":167,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":31}},{"generated":{"line":167,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":22}},{"generated":{"line":167,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":178,"column":2}},{"generated":{"line":169,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":2}},{"name":"cached","generated":{"line":169,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":6}},{"generated":{"line":169,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":12}},{"name":"cached","generated":{"line":169,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":16}},{"generated":{"line":169,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":22}},{"name":"hot","generated":{"line":169,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":23}},{"generated":{"line":169,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":6}},{"name":"cached","generated":{"line":169,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"generated":{"line":169,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":36}},{"name":"hot","generated":{"line":169,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":37}},{"generated":{"line":169,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"name":"_acceptCallbacks","generated":{"line":169,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":41}},{"generated":{"line":169,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":30}},{"name":"length","generated":{"line":169,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":58}},{"generated":{"line":169,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":2}},{"generated":{"line":169,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":180,"column":66}},{"generated":{"line":170,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":4}},{"generated":{"line":170,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":11}},{"generated":{"line":170,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":181,"column":4}},{"generated":{"line":171,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":182,"column":3}},{"generated":{"line":173,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":2}},{"name":"getParents","generated":{"line":173,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":173,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"name":"global","generated":{"line":173,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":20}},{"generated":{"line":173,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":26}},{"name":"parcelRequire","generated":{"line":173,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":27}},{"generated":{"line":173,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"name":"id","generated":{"line":173,"column":42},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":42}},{"generated":{"line":173,"column":44},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":19}},{"generated":{"line":173,"column":45},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"name":"some","generated":{"line":173,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":46}},{"generated":{"line":173,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":173,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":51}},{"name":"id","generated":{"line":173,"column":61},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":61}},{"generated":{"line":173,"column":63},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":51}},{"generated":{"line":173,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":65}},{"generated":{"line":174,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":4}},{"name":"hmrAcceptCheck","generated":{"line":174,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":11}},{"generated":{"line":174,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"name":"global","generated":{"line":174,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":26}},{"generated":{"line":174,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":32}},{"name":"parcelRequire","generated":{"line":174,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":33}},{"generated":{"line":174,"column":46},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"name":"id","generated":{"line":174,"column":48},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":48}},{"generated":{"line":174,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":25}},{"generated":{"line":174,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":185,"column":4}},{"generated":{"line":175,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":186,"column":3}},{"generated":{"line":175,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":9}},{"generated":{"line":175,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":184,"column":2}},{"generated":{"line":176,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":187,"column":1}},{"generated":{"line":178,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"hmrAcceptRun","generated":{"line":178,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":9}},{"generated":{"line":178,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"bundle","generated":{"line":178,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":22}},{"generated":{"line":178,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"name":"id","generated":{"line":178,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":30}},{"generated":{"line":178,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":0}},{"generated":{"line":178,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":189,"column":34}},{"generated":{"line":179,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":2}},{"name":"cached","generated":{"line":179,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":6}},{"generated":{"line":179,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":12}},{"name":"bundle","generated":{"line":179,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"generated":{"line":179,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":21}},{"name":"cache","generated":{"line":179,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":22}},{"generated":{"line":179,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"name":"id","generated":{"line":179,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":28}},{"generated":{"line":179,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":15}},{"generated":{"line":179,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":190,"column":2}},{"name":"bundle","generated":{"line":180,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"name":"bundle","generated":{"line":180,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":180,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":8}},{"name":"hotData","generated":{"line":180,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":9}},{"generated":{"line":180,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":180,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":19}},{"generated":{"line":180,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":191,"column":2}},{"generated":{"line":182,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":2}},{"name":"cached","generated":{"line":182,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":6}},{"generated":{"line":182,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":2}},{"generated":{"line":182,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":192,"column":14}},{"name":"cached","generated":{"line":183,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"cached","generated":{"line":183,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"generated":{"line":183,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":10}},{"name":"hot","generated":{"line":183,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":11}},{"generated":{"line":183,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"data","generated":{"line":183,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":15}},{"generated":{"line":183,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"name":"bundle","generated":{"line":183,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":22}},{"generated":{"line":183,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":28}},{"name":"hotData","generated":{"line":183,"column":29},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":29}},{"generated":{"line":183,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":193,"column":4}},{"generated":{"line":184,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":194,"column":3}},{"generated":{"line":186,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":2}},{"name":"cached","generated":{"line":186,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":6}},{"generated":{"line":186,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":12}},{"name":"cached","generated":{"line":186,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":16}},{"generated":{"line":186,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":22}},{"name":"hot","generated":{"line":186,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":23}},{"generated":{"line":186,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":6}},{"name":"cached","generated":{"line":186,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"generated":{"line":186,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":36}},{"name":"hot","generated":{"line":186,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":37}},{"generated":{"line":186,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"name":"_disposeCallbacks","generated":{"line":186,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":41}},{"generated":{"line":186,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":30}},{"name":"length","generated":{"line":186,"column":59},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":59}},{"generated":{"line":186,"column":65},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":2}},{"generated":{"line":186,"column":67},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":196,"column":67}},{"name":"cached","generated":{"line":187,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"cached","generated":{"line":187,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":187,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":10}},{"name":"hot","generated":{"line":187,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":11}},{"generated":{"line":187,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"_disposeCallbacks","generated":{"line":187,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":15}},{"generated":{"line":187,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"name":"forEach","generated":{"line":187,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":33}},{"generated":{"line":187,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":187,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":41}},{"name":"cb","generated":{"line":187,"column":51},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":51}},{"generated":{"line":187,"column":53},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":41}},{"generated":{"line":187,"column":55},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":55}},{"name":"cb","generated":{"line":188,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"name":"cb","generated":{"line":188,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"generated":{"line":188,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":8}},{"name":"bundle","generated":{"line":188,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":9}},{"generated":{"line":188,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":15}},{"name":"hotData","generated":{"line":188,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":16}},{"generated":{"line":188,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":8}},{"generated":{"line":188,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":198,"column":6}},{"generated":{"line":189,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":199,"column":5}},{"generated":{"line":189,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":197,"column":4}},{"generated":{"line":190,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":200,"column":3}},{"generated":{"line":192,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":2}},{"name":"bundle","generated":{"line":192,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"generated":{"line":192,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":15}},{"name":"cache","generated":{"line":192,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":16}},{"generated":{"line":192,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"name":"id","generated":{"line":192,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":22}},{"generated":{"line":192,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":9}},{"generated":{"line":192,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":202,"column":2}},{"name":"bundle","generated":{"line":193,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"name":"bundle","generated":{"line":193,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"generated":{"line":193,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":8}},{"name":"id","generated":{"line":193,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":9}},{"generated":{"line":193,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":8}},{"generated":{"line":193,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":203,"column":2}},{"name":"cached","generated":{"line":194,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"name":"cached","generated":{"line":194,"column":2},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"generated":{"line":194,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":8}},{"name":"bundle","generated":{"line":194,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"generated":{"line":194,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":17}},{"name":"cache","generated":{"line":194,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":18}},{"generated":{"line":194,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"name":"id","generated":{"line":194,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":24}},{"generated":{"line":194,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":11}},{"generated":{"line":194,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":205,"column":2}},{"generated":{"line":196,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":2}},{"name":"cached","generated":{"line":196,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":6}},{"generated":{"line":196,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":12}},{"name":"cached","generated":{"line":196,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":16}},{"generated":{"line":196,"column":22},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":22}},{"name":"hot","generated":{"line":196,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":23}},{"generated":{"line":196,"column":26},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":6}},{"name":"cached","generated":{"line":196,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"generated":{"line":196,"column":36},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":36}},{"name":"hot","generated":{"line":196,"column":37},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":37}},{"generated":{"line":196,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"name":"_acceptCallbacks","generated":{"line":196,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":41}},{"generated":{"line":196,"column":57},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":30}},{"name":"length","generated":{"line":196,"column":58},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":58}},{"generated":{"line":196,"column":64},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":2}},{"generated":{"line":196,"column":66},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":206,"column":66}},{"name":"cached","generated":{"line":197,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"cached","generated":{"line":197,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":197,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":10}},{"name":"hot","generated":{"line":197,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":11}},{"generated":{"line":197,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"_acceptCallbacks","generated":{"line":197,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":15}},{"generated":{"line":197,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"name":"forEach","generated":{"line":197,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":32}},{"generated":{"line":197,"column":39},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":197,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":40}},{"name":"cb","generated":{"line":197,"column":50},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":50}},{"generated":{"line":197,"column":52},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":40}},{"generated":{"line":197,"column":54},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":54}},{"name":"cb","generated":{"line":198,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":6}},{"name":"cb","generated":{"line":198,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":6}},{"generated":{"line":198,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":208,"column":8}},{"generated":{"line":199,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":209,"column":5}},{"generated":{"line":199,"column":5},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":207,"column":4}},{"generated":{"line":201,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":4}},{"generated":{"line":201,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":11}},{"generated":{"line":201,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":210,"column":4}},{"generated":{"line":202,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":211,"column":3}},{"generated":{"line":203,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","original":{"line":212,"column":1}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":"var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '
' +\n 'ERROR' +\n '🚨' +\n '
' + message.innerHTML + '
' +\n '
' + stackTrace.innerHTML + '
' +\n '
'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"},"lineCount":null}},"error":null,"hash":"b1c5ce68fcef9e7211775bd160e78081","cacheData":{"env":{"HMR_HOSTNAME":"","HMR_PORT":"1235"}}} \ No newline at end of file diff --git a/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json b/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json deleted file mode 100644 index ac703ae..0000000 --- a/.cache/cb/46aaae2ec4eb4903b6aab5a5519ab2.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"index.css","dependencies":[{"name":"_css_loader","parent":"/Users/hartonochandra/try/web-digraph/src/example/index.css","resolved":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/builtins/css-loader.js"},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945}],"generated":{"css":"html, body {\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n font-family: sans-serif;\n font-size: 16px;\n}\n\n#graph {\n width: 100%;\n height: 100%;\n}\n\n#container {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n#hints {\n position: absolute;\n bottom: 0;\n left: 0;\n margin: 1em;\n font-size: 0.9em;\n color: #718096\n}\n\n#buttons {\n position: absolute;\n top: 0;\n left: 0;\n margin: 1em;\n}\n\n.generate-input {\n margin-top: 1em;\n}\n\n#generate-textbox {\n padding: 0.5em;\n width: 7.5em;\n text-align: right;\n}\n\nbutton {\n padding: 0.5em;\n cursor: pointer;\n}\n\n.zoom-input {\n}\n\n.info {\n margin-top: 1em;\n}\n","js":"var reloadCSS = require('_css_loader');\n\nmodule.hot.dispose(reloadCSS);\nmodule.hot.accept(reloadCSS);"},"sourceMaps":{"css":{"mappings":[{"source":"index.css","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"index.css","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"index.css","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"index.css","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"index.css","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"index.css","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"index.css","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"index.css","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"index.css","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"index.css","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"index.css","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"index.css","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"index.css","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"index.css","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"index.css","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"index.css","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"index.css","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"index.css","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"index.css","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"index.css","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"index.css","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"index.css","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"index.css","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"index.css","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"index.css","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"index.css","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"index.css","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"index.css","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"index.css","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"index.css","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"index.css","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"index.css","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"index.css","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"index.css","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"index.css","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"index.css","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"index.css","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"index.css","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"index.css","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"index.css","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"index.css","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"index.css","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"index.css","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"index.css","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"index.css","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"index.css","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"index.css","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"index.css","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"index.css","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"index.css","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"index.css","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"index.css","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"index.css","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"index.css","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"index.css","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"index.css","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"index.css","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"index.css","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"index.css","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"index.css","original":{"line":60,"column":0},"generated":{"line":60,"column":0}}],"sources":{"index.css":"html, body {\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n font-family: sans-serif;\n font-size: 16px;\n}\n\n#graph {\n width: 100%;\n height: 100%;\n}\n\n#container {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n#hints {\n position: absolute;\n bottom: 0;\n left: 0;\n margin: 1em;\n font-size: 0.9em;\n color: #718096\n}\n\n#buttons {\n position: absolute;\n top: 0;\n left: 0;\n margin: 1em;\n}\n\n.generate-input {\n margin-top: 1em;\n}\n\n#generate-textbox {\n padding: 0.5em;\n width: 7.5em;\n text-align: right;\n}\n\nbutton {\n padding: 0.5em;\n cursor: pointer;\n}\n\n.zoom-input {\n}\n\n.info {\n margin-top: 1em;\n}\n"},"lineCount":60}},"error":null,"hash":"17c84d91c7ca8bb43df861b6e75aa626","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json b/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json deleted file mode 100644 index 3aca91c..0000000 --- a/.cache/f5/b28d209f209bcff4b5b54fdda998f3.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../index.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":13,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/src/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"},{"name":"./graph-view","loc":{"line":14,"column":21},"parent":"/Users/hartonochandra/try/web-digraph/src/index.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/graph-view.ts"}],"generated":{"js":"\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__exportStar(require(\"./types\"), exports);\n\n__exportStar(require(\"./graph-view\"), exports);"},"sourceMaps":{"js":{"mappings":[{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":0}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":12}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":13}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":20}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":21}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":30}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":31}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":33}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":40}},{"source":"../index.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":26,"column":41}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":0}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":12}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":13}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":20}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":21}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":35}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":36}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":38}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":45}},{"source":"../index.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":28,"column":46}}],"sources":{"../index.ts":"export * from \"./types\";\nexport * from \"./graph-view\";\n"},"lineCount":null}},"error":null,"hash":"cb441cac2e626f28d068193c7314af96","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json b/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json deleted file mode 100644 index ad165f4..0000000 --- a/.cache/fd/e02fd302f16baaafc5facbaaf5d11c.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../graph-renderer.ts","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/tsconfig.json","includedInParent":true,"mtime":1601972734618},{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"./types","loc":{"line":4,"column":22},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/types.ts"},{"name":"./intersections","loc":{"line":5,"column":30},"parent":"/Users/hartonochandra/try/web-digraph/src/graph-renderer.ts","resolved":"/Users/hartonochandra/try/web-digraph/src/intersections.ts"}],"generated":{"js":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GEGraphRenderer = void 0;\n\nvar types_1 = require(\"./types\");\n\nvar intersections_1 = require(\"./intersections\");\n\nvar TEXT_ALIGN = \"center\";\nvar TEXT_BASELINE = \"middle\";\nvar LINE_CAP_ROUND = \"round\";\nvar LINE_CAP_SQUARE = \"square\";\nvar tmpPoint = [0, 0];\n\nvar GEGraphRenderer =\n/** @class */\nfunction () {\n function GEGraphRenderer(view, canvas) {\n var _this = this;\n\n this.draw = function () {\n _this.state.isDrawing = false;\n\n _this.drawBackground();\n\n _this.ctx.transform(_this.state.scale, 0, 0, _this.state.scale, _this.state.translateX, _this.state.translateY);\n\n _this.drawGraph();\n\n _this.ctx.resetTransform();\n };\n\n this.shapePath = function (x, y, shape) {\n var ctx = _this.ctx;\n\n if (shape.shape === types_1.GEShapeName.CIRCLE) {\n ctx.arc(x, y, shape.r, 0, Math.PI * 2);\n } else if (shape.shape === types_1.GEShapeName.RECTANGLE) {\n ctx.rect(x - shape.width * 0.5, y - shape.height * 0.5, shape.width, shape.height);\n } else {\n ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n for (var i = 1; i < shape.points.length; i++) {\n ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]);\n }\n\n ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]);\n ctx.closePath();\n }\n };\n\n this.getInstersectionPoint = function (sourceX, sourceY, targetX, targetY, shape) {\n if (shape.shape === types_1.GEShapeName.CIRCLE) {\n var int = intersections_1.intersectLineCircleCenter(sourceX, sourceY, targetX, targetY, shape.r, tmpPoint);\n if (int) return tmpPoint;\n } else if (shape.shape === types_1.GEShapeName.RECTANGLE) {\n var int = intersections_1.intersectLineRectCenter(sourceX, sourceY, targetX, targetY, shape.width, shape.height, tmpPoint);\n if (int) return tmpPoint;\n } else {\n var int = intersections_1.instersectLinePolygonCenter(sourceX, sourceY, targetX, targetY, shape.points, tmpPoint);\n if (int) return tmpPoint;\n }\n\n return [targetX, targetY];\n };\n\n this.drawSubShapes = function (shapes, x, y) {\n var ctx = _this.ctx;\n var options = _this.state.options;\n if (shapes.length <= 1) return;\n\n for (var i = 1; i < shapes.length; i++) {\n var sh = shapes[i];\n ctx.beginPath();\n\n _this.shapePath(x, y, sh);\n\n ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor;\n ctx.fill();\n }\n };\n\n this.drawSelectedShape = function (shape, x, y, color) {\n var ctx = _this.ctx;\n ctx.beginPath();\n\n _this.shapePath(x, y, shape);\n\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.8;\n ctx.fill();\n ctx.globalAlpha = 1.0;\n };\n\n this.drawNode = function (node) {\n if (_this.isNodeOutOfView(node)) return;\n var ctx = _this.ctx;\n var _a = _this.state,\n pointerCanvasX = _a.pointerCanvasX,\n pointerCanvasY = _a.pointerCanvasY,\n options = _a.options,\n moveNodeX = _a.moveNodeX,\n moveNodeY = _a.moveNodeY,\n selectedNode = _a.selectedNode;\n var isMovingNode = _this.state.isMovingNode() && selectedNode === node;\n var x = isMovingNode ? moveNodeX : node.x;\n var y = isMovingNode ? moveNodeY : node.y;\n var shapes = options.nodeTypes[node.type];\n ctx.strokeStyle = options.nodeStrokeColor;\n ctx.lineWidth = options.nodeLineWidth;\n ctx.beginPath();\n\n _this.shapePath(x, y, shapes[0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredNode = node;\n }\n\n var selected = node === _this.state.selectedNode;\n var hovered = node === _this.state.hoveredNode;\n ctx.strokeStyle = selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor;\n ctx.fillStyle = shapes[0].color || options.nodeColor;\n ctx.fill();\n ctx.stroke();\n\n _this.drawSubShapes(shapes, x, y);\n\n if (selected) {\n _this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.nodeSelectedTextColor;\n } else {\n ctx.fillStyle = options.nodeTextColor;\n }\n\n ctx.font = options.nodeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(node.text, x, y);\n };\n\n this.drawEdge = function (edge) {\n if (_this.isEdgeOutOfView(edge)) return;\n var ctx = _this.ctx;\n var _a = _this.state,\n pointerCanvasX = _a.pointerCanvasX,\n pointerCanvasY = _a.pointerCanvasY,\n options = _a.options,\n selectedNode = _a.selectedNode,\n moveNodeX = _a.moveNodeX,\n moveNodeY = _a.moveNodeY;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n var isMovingSourceNode = _this.state.isMovingNode() && source === selectedNode;\n var sourceX = isMovingSourceNode ? moveNodeX : source.x;\n var sourceY = isMovingSourceNode ? moveNodeY : source.y;\n var isMovingTargetNode = _this.state.isMovingNode() && target === selectedNode;\n var targetX = isMovingTargetNode ? moveNodeX : target.x;\n var targetY = isMovingTargetNode ? moveNodeY : target.y;\n var dx = targetX - sourceX;\n var dy = targetY - sourceY;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad); // calculate the start and end points of the line\n\n var _b = _this.getInstersectionPoint(targetX, targetY, sourceX, sourceY, options.nodeTypes[source.type][0]),\n startX = _b[0],\n startY = _b[1];\n\n var _c = _this.getInstersectionPoint(sourceX, sourceY, targetX, targetY, options.nodeTypes[target.type][0]),\n endX0 = _c[0],\n endY0 = _c[1];\n\n var endX = endX0 - cosr * 3;\n var endY = endY0 - sinr * 3;\n var edgeLineOffset = options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n var lineEndX = endX - cosr * edgeLineOffset;\n var lineEndY = endY - sinr * edgeLineOffset;\n ctx.lineWidth = options.edgeLineWidth;\n var midX = (startX + endX) * 0.5;\n var midY = (startY + endY) * 0.5; // this is just to check if the rect is hovered\n\n ctx.beginPath();\n\n _this.shapePath(midX, midY, options.edgeTypes[edge.type][0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredEdge = edge;\n }\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian));\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian));\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)) {\n _this.state.hoveredEdge = edge;\n }\n\n var selected = edge === _this.state.selectedEdge;\n var hovered = edge === _this.state.hoveredEdge;\n var shapes = options.edgeTypes[edge.type];\n\n if (selected || hovered) {\n ctx.strokeStyle = options.edgeLineSelectedColor;\n ctx.fillStyle = options.edgeLineSelectedColor;\n } else {\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n }\n\n ctx.stroke();\n ctx.fill();\n ctx.beginPath();\n\n _this.shapePath(midX, midY, shapes[0]);\n\n ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor;\n ctx.fill();\n ctx.stroke();\n\n _this.drawSubShapes(shapes, midX, midY);\n\n if (selected) {\n _this.drawSelectedShape(shapes[0], midX, midY, options.edgeLineSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.edgeSelectedTextColor;\n } else {\n ctx.fillStyle = options.edgeTextColor;\n }\n\n ctx.font = options.edgeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(edge.text, midX, midY);\n };\n\n this.state = view;\n this.canvas = canvas;\n this.ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n\n GEGraphRenderer.prototype.requestDraw = function () {\n if (!this.state.isDrawing) {\n requestAnimationFrame(this.draw);\n }\n\n this.state.isDrawing = true;\n };\n\n GEGraphRenderer.prototype.drawBackground = function () {\n var _a = this,\n canvas = _a.canvas,\n ctx = _a.ctx;\n\n var _b = this.state,\n translateX = _b.translateX,\n translateY = _b.translateY,\n scale = _b.scale,\n options = _b.options;\n ctx.fillStyle = options.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (!options.showGrid) return;\n var lw = options.gridLineWidth * scale;\n var gap = options.gridGap * scale;\n var offsetX = translateX % gap - lw;\n var offsetY = translateY % gap - lw;\n ctx.strokeStyle = options.gridColor;\n ctx.lineWidth = lw;\n\n if (options.gridType === types_1.GEGridType.DOTS) {\n ctx.beginPath();\n\n for (var i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, offsetY);\n ctx.lineTo(i, canvas.height + lw);\n }\n\n ctx.lineCap = LINE_CAP_ROUND;\n ctx.setLineDash([0, gap]);\n ctx.stroke();\n ctx.setLineDash([0]);\n ctx.lineCap = LINE_CAP_SQUARE;\n } else {\n ctx.beginPath();\n\n for (var i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, 0);\n ctx.lineTo(i, canvas.height);\n }\n\n for (var i = offsetY; i < canvas.height + lw; i += gap) {\n ctx.moveTo(0, i);\n ctx.lineTo(canvas.width, i);\n }\n\n ctx.stroke();\n }\n };\n\n GEGraphRenderer.prototype.drawGraph = function () {\n var _a;\n\n var _b = this.state,\n nodes = _b.nodes,\n edges = _b.edges,\n options = _b.options;\n var prevhoveredNode = this.state.hoveredNode;\n var prevhoveredEdge = this.state.hoveredEdge;\n this.state.hoveredNode = undefined;\n this.state.hoveredEdge = undefined;\n edges.forEach(this.drawEdge);\n this.drawDragLine();\n nodes.forEach(this.drawNode); // This event is done here because we are using canvas to check hover.\n // Please let me know if there is a better way.\n\n if (!this.state.isMovingNode() && !this.state.isMovingView() && (this.state.hoveredNode !== prevhoveredNode || this.state.hoveredEdge !== prevhoveredEdge)) {\n (_a = options.onHoverChange) === null || _a === void 0 ? void 0 : _a.call(options, this.state.hoveredNode, this.state.hoveredEdge, this.state.pointerViewX, this.state.pointerViewY, this.state.pointerCanvasX, this.state.pointerCanvasY, this.state.pointerScreenX, this.state.pointerScreenY);\n }\n };\n\n GEGraphRenderer.prototype.getShapeBound = function (shapes) {\n var shape = shapes[0];\n if (shape.shape === types_1.GEShapeName.CIRCLE) return shape.r;\n if (shape.shape === types_1.GEShapeName.RECTANGLE) return Math.max(shape.width, shape.height);\n var r = 0;\n shape.points.forEach(function (p) {\n r = Math.max(r, Math.max(p[0], p[1]));\n });\n return r;\n };\n\n GEGraphRenderer.prototype.isNodeOutOfView = function (node) {\n var canvas = this.canvas;\n var _a = this.state,\n translateX = _a.translateX,\n translateY = _a.translateY,\n scale = _a.scale,\n options = _a.options;\n var r = this.getShapeBound(options.nodeTypes[node.type]);\n return (node.x + r) * scale + translateX < 0 || (node.y + r) * scale + translateY < 0 || (node.x - r) * scale + translateX > canvas.width || (node.y - r) * scale + translateY > canvas.height;\n };\n\n GEGraphRenderer.prototype.isEdgeOutOfView = function (edge) {\n var canvas = this.canvas;\n var _a = this.state,\n translateX = _a.translateX,\n translateY = _a.translateY,\n scale = _a.scale,\n options = _a.options;\n var source = edge.sourceNode;\n var target = edge.targetNode;\n var sourceX = source.x * scale + translateX;\n var sourceY = source.y * scale + translateY;\n var targetX = target.x * scale + translateX;\n var targetY = target.y * scale + translateY;\n var r = this.getShapeBound(options.edgeTypes[edge.type]);\n return sourceX < -r && targetX < -r || sourceY < -r && targetY < -r || sourceX > canvas.width + r && targetX > canvas.width + r || sourceY > canvas.height + r && targetY > canvas.height + r;\n };\n\n GEGraphRenderer.prototype.drawDragLine = function () {\n if (!this.state.isCreatingEdge) return;\n var ctx = this.ctx;\n var _a = this.state,\n pointerViewX = _a.pointerViewX,\n pointerViewY = _a.pointerViewY,\n options = _a.options;\n var targetX = pointerViewX;\n var targetY = pointerViewY;\n var source = this.state.dragLineSourceNode;\n var dx = targetX - source.x;\n var dy = targetY - source.y;\n var rad = Math.atan2(dy, dx);\n var sinr = Math.sin(rad);\n var cosr = Math.cos(rad); // calculate the start and end points of the line\n\n var startX = source.x;\n var startY = source.y;\n var endX = targetX - cosr * 3;\n var endY = targetY - sinr * 3;\n var edgeLineOffset = options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n var lineEndX = targetX - cosr * edgeLineOffset;\n var lineEndY = targetY - sinr * edgeLineOffset;\n ctx.lineWidth = options.edgeLineWidth;\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian));\n ctx.lineTo(endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian));\n ctx.lineTo(endX, endY);\n ctx.closePath();\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n ctx.stroke();\n ctx.fill();\n };\n\n return GEGraphRenderer;\n}();\n\nexports.GEGraphRenderer = GEGraphRenderer;"},"sourceMaps":{"js":{"mappings":[{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":1,"column":0},"generated":{"line":8,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":10,"column":0},"generated":{"line":10,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":12,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":6},"generated":{"line":12,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":16},"generated":{"line":12,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":19},"generated":{"line":12,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":16,"column":0},"generated":{"line":12,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":0},"generated":{"line":13,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":6},"generated":{"line":13,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":19},"generated":{"line":13,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":22},"generated":{"line":13,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":17,"column":0},"generated":{"line":13,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":14,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":6},"generated":{"line":14,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":20},"generated":{"line":14,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":23},"generated":{"line":14,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":18,"column":0},"generated":{"line":14,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":0},"generated":{"line":15,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":6},"generated":{"line":15,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":21},"generated":{"line":15,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":24},"generated":{"line":15,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":19,"column":0},"generated":{"line":15,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":0},"generated":{"line":16,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":6},"generated":{"line":16,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":14},"generated":{"line":16,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":36},"generated":{"line":16,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":39},"generated":{"line":16,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":35},"generated":{"line":16,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":21,"column":0},"generated":{"line":16,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":18,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":19,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":20,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":20,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":14},"generated":{"line":21,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":29},"generated":{"line":21,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":21,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":54},"generated":{"line":21,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":28,"column":2},"generated":{"line":22,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":24,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":24,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":9},"generated":{"line":24,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":25,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":9},"generated":{"line":25,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":15},"generated":{"line":25,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":27},"generated":{"line":25,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":43,"column":4},"generated":{"line":25,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":8},"generated":{"line":27,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":9},"generated":{"line":27,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":45,"column":4},"generated":{"line":27,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":8},"generated":{"line":29,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":9},"generated":{"line":29,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":13},"generated":{"line":29,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":6},"generated":{"line":29,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":10},"generated":{"line":29,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":11},"generated":{"line":29,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":6},"generated":{"line":29,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":48,"column":17},"generated":{"line":29,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":49,"column":6},"generated":{"line":29,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":50,"column":6},"generated":{"line":29,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":10},"generated":{"line":29,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":11},"generated":{"line":29,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":6},"generated":{"line":29,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":51,"column":17},"generated":{"line":29,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":10},"generated":{"line":29,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":11},"generated":{"line":29,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":6},"generated":{"line":29,"column":81}},{"source":"../graph-renderer.ts","name":null,"original":{"line":52,"column":17},"generated":{"line":29,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":10},"generated":{"line":29,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":11},"generated":{"line":29,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":6},"generated":{"line":29,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":53,"column":17},"generated":{"line":29,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":47,"column":4},"generated":{"line":29,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":8},"generated":{"line":31,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":9},"generated":{"line":31,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":56,"column":4},"generated":{"line":31,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":8},"generated":{"line":33,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":9},"generated":{"line":33,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":13},"generated":{"line":33,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":33,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":59,"column":3},"generated":{"line":34,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":42,"column":2},"generated":{"line":34,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":36,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":15},"generated":{"line":36,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":26},"generated":{"line":36,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":37},"generated":{"line":36,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":14},"generated":{"line":36,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":51},"generated":{"line":36,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":15},"generated":{"line":37,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":20},"generated":{"line":37,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":24},"generated":{"line":37,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":24},"generated":{"line":37,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":196,"column":12},"generated":{"line":37,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":39,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":8},"generated":{"line":39,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":13},"generated":{"line":39,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":14},"generated":{"line":39,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":8},"generated":{"line":39,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":24},"generated":{"line":39,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":36},"generated":{"line":39,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":39,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":44},"generated":{"line":39,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":9},"generated":{"line":40,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":10},"generated":{"line":40,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":14},"generated":{"line":40,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":17},"generated":{"line":40,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":20},"generated":{"line":40,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":25},"generated":{"line":40,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":26},"generated":{"line":40,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":29},"generated":{"line":40,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":32},"generated":{"line":40,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":36},"generated":{"line":40,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":37},"generated":{"line":40,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":32},"generated":{"line":40,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":42},"generated":{"line":40,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":199,"column":6},"generated":{"line":40,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":5},"generated":{"line":41,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":198,"column":4},"generated":{"line":41,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":41,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":15},"generated":{"line":41,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":20},"generated":{"line":41,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":21},"generated":{"line":41,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":15},"generated":{"line":41,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":31},"generated":{"line":41,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":43},"generated":{"line":41,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":41,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":54},"generated":{"line":41,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":9},"generated":{"line":42,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":10},"generated":{"line":42,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":8},"generated":{"line":42,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":9},"generated":{"line":42,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":12},"generated":{"line":42,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":17},"generated":{"line":42,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":18},"generated":{"line":42,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":12},"generated":{"line":42,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":202,"column":26},"generated":{"line":42,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":8},"generated":{"line":42,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":9},"generated":{"line":42,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":12},"generated":{"line":42,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":17},"generated":{"line":42,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":18},"generated":{"line":42,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":12},"generated":{"line":42,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":203,"column":27},"generated":{"line":42,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":8},"generated":{"line":42,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":13},"generated":{"line":42,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":204,"column":14},"generated":{"line":42,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":8},"generated":{"line":42,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":13},"generated":{"line":42,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":205,"column":14},"generated":{"line":42,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":201,"column":6},"generated":{"line":42,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":207,"column":5},"generated":{"line":43,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":200,"column":11},"generated":{"line":43,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":207,"column":11},"generated":{"line":43,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":9},"generated":{"line":44,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":10},"generated":{"line":44,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":17},"generated":{"line":44,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":18},"generated":{"line":44,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":26},"generated":{"line":44,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":27},"generated":{"line":44,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":34},"generated":{"line":44,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":37},"generated":{"line":44,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":21},"generated":{"line":44,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":41},"generated":{"line":44,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":42},"generated":{"line":44,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":50},"generated":{"line":44,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":51},"generated":{"line":44,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":58},"generated":{"line":44,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":61},"generated":{"line":44,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":45},"generated":{"line":44,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":208,"column":6},"generated":{"line":44,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":11},"generated":{"line":46,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":15},"generated":{"line":46,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":16},"generated":{"line":46,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":19},"generated":{"line":46,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":22},"generated":{"line":46,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":23},"generated":{"line":46,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":26},"generated":{"line":46,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":31},"generated":{"line":46,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":32},"generated":{"line":46,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":26},"generated":{"line":46,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":39},"generated":{"line":46,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":47},"generated":{"line":46,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":48},"generated":{"line":46,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":6},"generated":{"line":46,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":210,"column":52},"generated":{"line":46,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":11},"generated":{"line":47,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":12},"generated":{"line":47,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":19},"generated":{"line":47,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":20},"generated":{"line":47,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":28},"generated":{"line":47,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":29},"generated":{"line":47,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":36},"generated":{"line":47,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":39},"generated":{"line":47,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":23},"generated":{"line":47,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":43},"generated":{"line":47,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":44},"generated":{"line":47,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":52},"generated":{"line":47,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":53},"generated":{"line":47,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":60},"generated":{"line":47,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":63},"generated":{"line":47,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":47},"generated":{"line":47,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":211,"column":8},"generated":{"line":47,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":212,"column":7},"generated":{"line":48,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":9},"generated":{"line":50,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":10},"generated":{"line":50,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":17},"generated":{"line":50,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":18},"generated":{"line":50,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":26},"generated":{"line":50,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":27},"generated":{"line":50,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":34},"generated":{"line":50,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":37},"generated":{"line":50,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":21},"generated":{"line":50,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":41},"generated":{"line":50,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":42},"generated":{"line":50,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":50},"generated":{"line":50,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":51},"generated":{"line":50,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":58},"generated":{"line":50,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":61},"generated":{"line":50,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":45},"generated":{"line":50,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":214,"column":6},"generated":{"line":50,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":9},"generated":{"line":51,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":10},"generated":{"line":51,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":216,"column":6},"generated":{"line":51,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":217,"column":5},"generated":{"line":52,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":218,"column":3},"generated":{"line":53,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":195,"column":2},"generated":{"line":53,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":55,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":272,"column":4},"generated":{"line":55,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":273,"column":4},"generated":{"line":55,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":274,"column":4},"generated":{"line":55,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":275,"column":4},"generated":{"line":55,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":276,"column":4},"generated":{"line":55,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":26},"generated":{"line":55,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":276,"column":18},"generated":{"line":55,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":56,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":8},"generated":{"line":56,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":13},"generated":{"line":56,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":14},"generated":{"line":56,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":8},"generated":{"line":56,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":24},"generated":{"line":56,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":36},"generated":{"line":56,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":56,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":44},"generated":{"line":56,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":6},"generated":{"line":57,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":12},"generated":{"line":57,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":15},"generated":{"line":57,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":280,"column":8},"generated":{"line":57,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":281,"column":8},"generated":{"line":57,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":282,"column":8},"generated":{"line":57,"column":78}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":283,"column":8},"generated":{"line":57,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":8},"generated":{"line":57,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":13},"generated":{"line":57,"column":101}},{"source":"../graph-renderer.ts","name":null,"original":{"line":284,"column":14},"generated":{"line":57,"column":102}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":285,"column":8},"generated":{"line":57,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":18},"generated":{"line":57,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":279,"column":6},"generated":{"line":57,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":6},"generated":{"line":58,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":10},"generated":{"line":58,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":6},"generated":{"line":58,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":15},"generated":{"line":58,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":22},"generated":{"line":58,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":288,"column":15},"generated":{"line":58,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":5},"generated":{"line":59,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":278,"column":4},"generated":{"line":59,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":59,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":15},"generated":{"line":59,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":20},"generated":{"line":59,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":21},"generated":{"line":59,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":15},"generated":{"line":59,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":31},"generated":{"line":59,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":43},"generated":{"line":59,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":59,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":54},"generated":{"line":59,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":6},"generated":{"line":60,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":12},"generated":{"line":60,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":15},"generated":{"line":60,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":291,"column":8},"generated":{"line":60,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":292,"column":8},"generated":{"line":60,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":293,"column":8},"generated":{"line":60,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":294,"column":8},"generated":{"line":60,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":8},"generated":{"line":60,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":13},"generated":{"line":60,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":295,"column":14},"generated":{"line":60,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":8},"generated":{"line":60,"column":107}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":13},"generated":{"line":60,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":296,"column":14},"generated":{"line":60,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":297,"column":8},"generated":{"line":60,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":18},"generated":{"line":60,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":290,"column":6},"generated":{"line":60,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":6},"generated":{"line":61,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":10},"generated":{"line":61,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":6},"generated":{"line":61,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":15},"generated":{"line":61,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":22},"generated":{"line":61,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":300,"column":15},"generated":{"line":61,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":301,"column":5},"generated":{"line":62,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":289,"column":11},"generated":{"line":62,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":301,"column":11},"generated":{"line":62,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":6},"generated":{"line":63,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":12},"generated":{"line":63,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":15},"generated":{"line":63,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":303,"column":8},"generated":{"line":63,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":304,"column":8},"generated":{"line":63,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":78}},{"source":"../graph-renderer.ts","name":null,"original":{"line":305,"column":8},"generated":{"line":63,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":306,"column":8},"generated":{"line":63,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":8},"generated":{"line":63,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":13},"generated":{"line":63,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":307,"column":14},"generated":{"line":63,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":308,"column":8},"generated":{"line":63,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":18},"generated":{"line":63,"column":120}},{"source":"../graph-renderer.ts","name":null,"original":{"line":302,"column":6},"generated":{"line":63,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":6},"generated":{"line":64,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":10},"generated":{"line":64,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":6},"generated":{"line":64,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":15},"generated":{"line":64,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":22},"generated":{"line":64,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":311,"column":15},"generated":{"line":64,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":312,"column":5},"generated":{"line":65,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":4},"generated":{"line":67,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":12},"generated":{"line":67,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":21},"generated":{"line":67,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":11},"generated":{"line":67,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":314,"column":4},"generated":{"line":67,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":315,"column":3},"generated":{"line":68,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":271,"column":2},"generated":{"line":68,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":70,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":19},"generated":{"line":70,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":37},"generated":{"line":70,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":48},"generated":{"line":70,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":18},"generated":{"line":70,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":57},"generated":{"line":70,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":15},"generated":{"line":71,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":20},"generated":{"line":71,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":24},"generated":{"line":71,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":24},"generated":{"line":71,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":318,"column":12},"generated":{"line":71,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":19},"generated":{"line":72,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":24},"generated":{"line":72,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":28},"generated":{"line":72,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":29},"generated":{"line":72,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":24},"generated":{"line":72,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":34},"generated":{"line":72,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":319,"column":12},"generated":{"line":72,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":4},"generated":{"line":73,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":8},"generated":{"line":73,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":14},"generated":{"line":73,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":15},"generated":{"line":73,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":8},"generated":{"line":73,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":25},"generated":{"line":73,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":4},"generated":{"line":73,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":321,"column":28},"generated":{"line":73,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":9},"generated":{"line":75,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":13},"generated":{"line":75,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":14},"generated":{"line":75,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":17},"generated":{"line":75,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":20},"generated":{"line":75,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":21},"generated":{"line":75,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":24},"generated":{"line":75,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":30},"generated":{"line":75,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":31},"generated":{"line":75,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":39},"generated":{"line":75,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":40},"generated":{"line":75,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":4},"generated":{"line":75,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":323,"column":44},"generated":{"line":75,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":6},"generated":{"line":76,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":12},"generated":{"line":76,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":14},"generated":{"line":76,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":17},"generated":{"line":76,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":23},"generated":{"line":76,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":24},"generated":{"line":76,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":23},"generated":{"line":76,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":324,"column":6},"generated":{"line":76,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":9},"generated":{"line":77,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":10},"generated":{"line":77,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":326,"column":6},"generated":{"line":77,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":10},"generated":{"line":79,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":11},"generated":{"line":79,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":21},"generated":{"line":79,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":24},"generated":{"line":79,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":27},"generated":{"line":79,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":327,"column":6},"generated":{"line":79,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":9},"generated":{"line":81,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":10},"generated":{"line":81,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":24},"generated":{"line":81,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":25},"generated":{"line":81,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":33},"generated":{"line":81,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":35},"generated":{"line":81,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":36},"generated":{"line":81,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":22},"generated":{"line":81,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":44},"generated":{"line":81,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":51},"generated":{"line":81,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":52},"generated":{"line":81,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":329,"column":6},"generated":{"line":81,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":9},"generated":{"line":82,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":10},"generated":{"line":82,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":330,"column":6},"generated":{"line":82,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":331,"column":5},"generated":{"line":83,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":332,"column":3},"generated":{"line":84,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":317,"column":2},"generated":{"line":84,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":86,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":335,"column":4},"generated":{"line":86,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":336,"column":4},"generated":{"line":86,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":337,"column":4},"generated":{"line":86,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":338,"column":4},"generated":{"line":86,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":22},"generated":{"line":86,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":338,"column":17},"generated":{"line":86,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":15},"generated":{"line":87,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":20},"generated":{"line":87,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":24},"generated":{"line":87,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":24},"generated":{"line":87,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":340,"column":12},"generated":{"line":87,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":7},"generated":{"line":88,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":8},"generated":{"line":88,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":342,"column":4},"generated":{"line":88,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":8},"generated":{"line":90,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":9},"generated":{"line":90,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":19},"generated":{"line":90,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":22},"generated":{"line":90,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":25},"generated":{"line":90,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":343,"column":4},"generated":{"line":90,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":7},"generated":{"line":92,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":8},"generated":{"line":92,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":20},"generated":{"line":92,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":344,"column":4},"generated":{"line":92,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":7},"generated":{"line":93,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":8},"generated":{"line":93,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":22},"generated":{"line":93,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":345,"column":4},"generated":{"line":93,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":7},"generated":{"line":94,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":8},"generated":{"line":94,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":346,"column":4},"generated":{"line":94,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":7},"generated":{"line":95,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":8},"generated":{"line":95,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":22},"generated":{"line":95,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":347,"column":4},"generated":{"line":95,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":348,"column":3},"generated":{"line":96,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":334,"column":2},"generated":{"line":96,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":98,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":13},"generated":{"line":98,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":14},"generated":{"line":98,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":13},"generated":{"line":98,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":26},"generated":{"line":98,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":4},"generated":{"line":99,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":12},"generated":{"line":99,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":13},"generated":{"line":99,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":29},"generated":{"line":99,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":8},"generated":{"line":99,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":4},"generated":{"line":99,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":351,"column":36},"generated":{"line":99,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":15},"generated":{"line":100,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":20},"generated":{"line":100,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":24},"generated":{"line":100,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":24},"generated":{"line":100,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":353,"column":12},"generated":{"line":100,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":8},"generated":{"line":101,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":12},"generated":{"line":101,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":361,"column":13},"generated":{"line":101,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":101,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":102,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":6},"generated":{"line":102,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":355,"column":20},"generated":{"line":102,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":102,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":103,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":6},"generated":{"line":103,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":356,"column":20},"generated":{"line":103,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":103,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":104,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":6},"generated":{"line":104,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":357,"column":13},"generated":{"line":104,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":104,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":105,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":6},"generated":{"line":105,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":358,"column":15},"generated":{"line":105,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":105,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":106,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":6},"generated":{"line":106,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":359,"column":15},"generated":{"line":106,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":106,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":107,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":6},"generated":{"line":107,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":360,"column":18},"generated":{"line":107,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":354,"column":10},"generated":{"line":107,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":4},"generated":{"line":108,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":10},"generated":{"line":108,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":22},"generated":{"line":108,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":29},"generated":{"line":108,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":30},"generated":{"line":108,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":36},"generated":{"line":108,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":25},"generated":{"line":108,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":54},"generated":{"line":108,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":66},"generated":{"line":108,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":71},"generated":{"line":108,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":363,"column":4},"generated":{"line":108,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":4},"generated":{"line":109,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":10},"generated":{"line":109,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":11},"generated":{"line":109,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":14},"generated":{"line":109,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":26},"generated":{"line":109,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":29},"generated":{"line":109,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":26},"generated":{"line":109,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":41},"generated":{"line":109,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":45},"generated":{"line":109,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":46},"generated":{"line":109,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":364,"column":4},"generated":{"line":109,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":4},"generated":{"line":110,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":10},"generated":{"line":110,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":11},"generated":{"line":110,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":14},"generated":{"line":110,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":26},"generated":{"line":110,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":29},"generated":{"line":110,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":26},"generated":{"line":110,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":41},"generated":{"line":110,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":45},"generated":{"line":110,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":46},"generated":{"line":110,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":365,"column":4},"generated":{"line":110,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":4},"generated":{"line":111,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":10},"generated":{"line":111,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":16},"generated":{"line":111,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":26},"generated":{"line":111,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":27},"generated":{"line":111,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":37},"generated":{"line":111,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":41},"generated":{"line":111,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":42},"generated":{"line":111,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":19},"generated":{"line":111,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":367,"column":4},"generated":{"line":111,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":7},"generated":{"line":112,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":8},"generated":{"line":112,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":22},"generated":{"line":112,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":29},"generated":{"line":112,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":30},"generated":{"line":112,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":369,"column":4},"generated":{"line":112,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":7},"generated":{"line":113,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":8},"generated":{"line":113,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":20},"generated":{"line":113,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":27},"generated":{"line":113,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":28},"generated":{"line":113,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":370,"column":4},"generated":{"line":113,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":7},"generated":{"line":114,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":8},"generated":{"line":114,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":372,"column":4},"generated":{"line":114,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":8},"generated":{"line":116,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":9},"generated":{"line":116,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":19},"generated":{"line":116,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":22},"generated":{"line":116,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":25},"generated":{"line":116,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":31},"generated":{"line":116,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":32},"generated":{"line":116,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":31},"generated":{"line":116,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":373,"column":4},"generated":{"line":116,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":4},"generated":{"line":118,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":11},"generated":{"line":118,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":12},"generated":{"line":118,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":26},"generated":{"line":118,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":42},"generated":{"line":118,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":8},"generated":{"line":118,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":4},"generated":{"line":118,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":375,"column":59},"generated":{"line":118,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":10},"generated":{"line":119,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":11},"generated":{"line":119,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":17},"generated":{"line":119,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":31},"generated":{"line":119,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":376,"column":6},"generated":{"line":119,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":377,"column":5},"generated":{"line":120,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":4},"generated":{"line":122,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":10},"generated":{"line":122,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":18},"generated":{"line":122,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":21},"generated":{"line":122,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":25},"generated":{"line":122,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":30},"generated":{"line":122,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":34},"generated":{"line":122,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":35},"generated":{"line":122,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":30},"generated":{"line":122,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":41},"generated":{"line":122,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":379,"column":4},"generated":{"line":122,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":4},"generated":{"line":123,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":10},"generated":{"line":123,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":17},"generated":{"line":123,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":20},"generated":{"line":123,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":24},"generated":{"line":123,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":29},"generated":{"line":123,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":33},"generated":{"line":123,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":34},"generated":{"line":123,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":29},"generated":{"line":123,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":40},"generated":{"line":123,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":380,"column":4},"generated":{"line":123,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":7},"generated":{"line":124,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":8},"generated":{"line":124,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":14},"generated":{"line":124,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":18},"generated":{"line":124,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":28},"generated":{"line":124,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":35},"generated":{"line":124,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":36},"generated":{"line":124,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":6},"generated":{"line":124,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":56},"generated":{"line":124,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":63},"generated":{"line":124,"column":81}},{"source":"../graph-renderer.ts","name":null,"original":{"line":383,"column":64},"generated":{"line":124,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":382,"column":4},"generated":{"line":124,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":7},"generated":{"line":125,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":8},"generated":{"line":125,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":26},"generated":{"line":125,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":27},"generated":{"line":125,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":26},"generated":{"line":125,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":30},"generated":{"line":125,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":20},"generated":{"line":125,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":39},"generated":{"line":125,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":46},"generated":{"line":125,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":47},"generated":{"line":125,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":384,"column":4},"generated":{"line":125,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":7},"generated":{"line":126,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":8},"generated":{"line":126,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":386,"column":4},"generated":{"line":126,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":7},"generated":{"line":127,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":8},"generated":{"line":127,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":387,"column":4},"generated":{"line":127,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":8},"generated":{"line":129,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":9},"generated":{"line":129,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":23},"generated":{"line":129,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":31},"generated":{"line":129,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":34},"generated":{"line":129,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":389,"column":4},"generated":{"line":129,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":4},"generated":{"line":131,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":8},"generated":{"line":131,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":4},"generated":{"line":131,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":391,"column":18},"generated":{"line":131,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":10},"generated":{"line":132,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":11},"generated":{"line":132,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":29},"generated":{"line":132,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":35},"generated":{"line":132,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":36},"generated":{"line":132,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":35},"generated":{"line":132,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":40},"generated":{"line":132,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":43},"generated":{"line":132,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":46},"generated":{"line":132,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":53},"generated":{"line":132,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":54},"generated":{"line":132,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":392,"column":6},"generated":{"line":132,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":393,"column":5},"generated":{"line":133,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":135,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":8},"generated":{"line":135,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":135,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":18},"generated":{"line":135,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":9},"generated":{"line":136,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":10},"generated":{"line":136,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":22},"generated":{"line":136,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":29},"generated":{"line":136,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":30},"generated":{"line":136,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":396,"column":6},"generated":{"line":136,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":397,"column":5},"generated":{"line":137,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":395,"column":4},"generated":{"line":137,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":397,"column":11},"generated":{"line":137,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":9},"generated":{"line":138,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":10},"generated":{"line":138,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":22},"generated":{"line":138,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":29},"generated":{"line":138,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":30},"generated":{"line":138,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":398,"column":6},"generated":{"line":138,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":399,"column":5},"generated":{"line":139,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":7},"generated":{"line":141,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":8},"generated":{"line":141,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":15},"generated":{"line":141,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":22},"generated":{"line":141,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":23},"generated":{"line":141,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":401,"column":4},"generated":{"line":141,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":7},"generated":{"line":142,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":8},"generated":{"line":142,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":20},"generated":{"line":142,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":402,"column":4},"generated":{"line":142,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":7},"generated":{"line":143,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":8},"generated":{"line":143,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":23},"generated":{"line":143,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":403,"column":4},"generated":{"line":143,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":7},"generated":{"line":144,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":8},"generated":{"line":144,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":17},"generated":{"line":144,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":21},"generated":{"line":144,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":22},"generated":{"line":144,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":28},"generated":{"line":144,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":31},"generated":{"line":144,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":405,"column":4},"generated":{"line":144,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":406,"column":3},"generated":{"line":145,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":350,"column":2},"generated":{"line":145,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":147,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":13},"generated":{"line":147,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":14},"generated":{"line":147,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":13},"generated":{"line":147,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":147,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":4},"generated":{"line":148,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":12},"generated":{"line":148,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":13},"generated":{"line":148,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":29},"generated":{"line":148,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":8},"generated":{"line":148,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":4},"generated":{"line":148,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":409,"column":36},"generated":{"line":148,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":15},"generated":{"line":149,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":20},"generated":{"line":149,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":24},"generated":{"line":149,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":24},"generated":{"line":149,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":411,"column":12},"generated":{"line":149,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":8},"generated":{"line":150,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":12},"generated":{"line":150,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":419,"column":13},"generated":{"line":150,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":150,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":151,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":6},"generated":{"line":151,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":413,"column":20},"generated":{"line":151,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":151,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":152,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":6},"generated":{"line":152,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":414,"column":20},"generated":{"line":152,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":152,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":153,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":6},"generated":{"line":153,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":415,"column":13},"generated":{"line":153,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":153,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":154,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":6},"generated":{"line":154,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":416,"column":18},"generated":{"line":154,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":154,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":155,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":6},"generated":{"line":155,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":417,"column":15},"generated":{"line":155,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":155,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":156,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":6},"generated":{"line":156,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":418,"column":15},"generated":{"line":156,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":412,"column":10},"generated":{"line":156,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":4},"generated":{"line":157,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":10},"generated":{"line":157,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":16},"generated":{"line":157,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":19},"generated":{"line":157,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":23},"generated":{"line":157,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":24},"generated":{"line":157,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":421,"column":4},"generated":{"line":157,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":4},"generated":{"line":158,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":10},"generated":{"line":158,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":16},"generated":{"line":158,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":19},"generated":{"line":158,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":23},"generated":{"line":158,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":24},"generated":{"line":158,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":422,"column":4},"generated":{"line":158,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":4},"generated":{"line":159,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":10},"generated":{"line":159,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":28},"generated":{"line":159,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":10},"generated":{"line":159,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":11},"generated":{"line":159,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":17},"generated":{"line":159,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":6},"generated":{"line":159,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":35},"generated":{"line":159,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":41},"generated":{"line":159,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":425,"column":46},"generated":{"line":159,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":424,"column":4},"generated":{"line":159,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":4},"generated":{"line":160,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":10},"generated":{"line":160,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":17},"generated":{"line":160,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":20},"generated":{"line":160,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":38},"generated":{"line":160,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":41},"generated":{"line":160,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":38},"generated":{"line":160,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":53},"generated":{"line":160,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":59},"generated":{"line":160,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":60},"generated":{"line":160,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":427,"column":4},"generated":{"line":160,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":4},"generated":{"line":161,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":10},"generated":{"line":161,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":17},"generated":{"line":161,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":20},"generated":{"line":161,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":38},"generated":{"line":161,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":41},"generated":{"line":161,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":38},"generated":{"line":161,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":53},"generated":{"line":161,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":59},"generated":{"line":161,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":60},"generated":{"line":161,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":428,"column":4},"generated":{"line":161,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":4},"generated":{"line":162,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":10},"generated":{"line":162,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":28},"generated":{"line":162,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":10},"generated":{"line":162,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":11},"generated":{"line":162,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":17},"generated":{"line":162,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":6},"generated":{"line":162,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":35},"generated":{"line":162,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":41},"generated":{"line":162,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":431,"column":46},"generated":{"line":162,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":430,"column":4},"generated":{"line":162,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":4},"generated":{"line":163,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":10},"generated":{"line":163,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":17},"generated":{"line":163,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":20},"generated":{"line":163,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":38},"generated":{"line":163,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":41},"generated":{"line":163,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":38},"generated":{"line":163,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":53},"generated":{"line":163,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":59},"generated":{"line":163,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":60},"generated":{"line":163,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":433,"column":4},"generated":{"line":163,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":4},"generated":{"line":164,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":10},"generated":{"line":164,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":17},"generated":{"line":164,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":20},"generated":{"line":164,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":38},"generated":{"line":164,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":41},"generated":{"line":164,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":38},"generated":{"line":164,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":53},"generated":{"line":164,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":59},"generated":{"line":164,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":60},"generated":{"line":164,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":434,"column":4},"generated":{"line":164,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":4},"generated":{"line":165,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":10},"generated":{"line":165,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":12},"generated":{"line":165,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":15},"generated":{"line":165,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":22},"generated":{"line":165,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":25},"generated":{"line":165,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":436,"column":4},"generated":{"line":165,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":4},"generated":{"line":166,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":10},"generated":{"line":166,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":12},"generated":{"line":166,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":15},"generated":{"line":166,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":22},"generated":{"line":166,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":25},"generated":{"line":166,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":437,"column":4},"generated":{"line":166,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":4},"generated":{"line":167,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":10},"generated":{"line":167,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":13},"generated":{"line":167,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":20},"generated":{"line":167,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":21},"generated":{"line":167,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":27},"generated":{"line":167,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":31},"generated":{"line":167,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":16},"generated":{"line":167,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":439,"column":4},"generated":{"line":167,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":4},"generated":{"line":168,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":10},"generated":{"line":168,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":14},"generated":{"line":168,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":21},"generated":{"line":168,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":22},"generated":{"line":168,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":26},"generated":{"line":168,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":17},"generated":{"line":168,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":440,"column":4},"generated":{"line":168,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":4},"generated":{"line":169,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":10},"generated":{"line":169,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":14},"generated":{"line":169,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":21},"generated":{"line":169,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":22},"generated":{"line":169,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":26},"generated":{"line":169,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":17},"generated":{"line":169,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":441,"column":4},"generated":{"line":169,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":169,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":443,"column":4},"generated":{"line":169,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":33},"generated":{"line":171,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":34},"generated":{"line":171,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":445,"column":6},"generated":{"line":171,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":446,"column":6},"generated":{"line":171,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":447,"column":6},"generated":{"line":171,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":448,"column":6},"generated":{"line":171,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":13},"generated":{"line":171,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":14},"generated":{"line":171,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":24},"generated":{"line":171,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":30},"generated":{"line":171,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":31},"generated":{"line":171,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":37},"generated":{"line":171,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":449,"column":6},"generated":{"line":171,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":29},"generated":{"line":171,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":171,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":172,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":11},"generated":{"line":172,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":17},"generated":{"line":172,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":172,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":173,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":19},"generated":{"line":173,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":25},"generated":{"line":173,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":444,"column":10},"generated":{"line":173,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":31},"generated":{"line":175,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":32},"generated":{"line":175,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":452,"column":6},"generated":{"line":175,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":453,"column":6},"generated":{"line":175,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":454,"column":6},"generated":{"line":175,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":455,"column":6},"generated":{"line":175,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":13},"generated":{"line":175,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":14},"generated":{"line":175,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":24},"generated":{"line":175,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":30},"generated":{"line":175,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":31},"generated":{"line":175,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":37},"generated":{"line":175,"column":110}},{"source":"../graph-renderer.ts","name":null,"original":{"line":456,"column":6},"generated":{"line":175,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":27},"generated":{"line":175,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":175,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":176,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":11},"generated":{"line":176,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":16},"generated":{"line":176,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":176,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":177,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":18},"generated":{"line":177,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":23},"generated":{"line":177,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":451,"column":10},"generated":{"line":177,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":4},"generated":{"line":179,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":10},"generated":{"line":179,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":14},"generated":{"line":179,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":17},"generated":{"line":179,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":22},"generated":{"line":179,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":25},"generated":{"line":179,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":29},"generated":{"line":179,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":32},"generated":{"line":179,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":459,"column":4},"generated":{"line":179,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":4},"generated":{"line":180,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":10},"generated":{"line":180,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":14},"generated":{"line":180,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":17},"generated":{"line":180,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":22},"generated":{"line":180,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":25},"generated":{"line":180,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":29},"generated":{"line":180,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":32},"generated":{"line":180,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":460,"column":4},"generated":{"line":180,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":4},"generated":{"line":181,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":10},"generated":{"line":181,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":24},"generated":{"line":181,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":6},"generated":{"line":181,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":13},"generated":{"line":181,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":14},"generated":{"line":181,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":6},"generated":{"line":181,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":36},"generated":{"line":181,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":37},"generated":{"line":181,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":41},"generated":{"line":181,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":48},"generated":{"line":181,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":49},"generated":{"line":181,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":462,"column":32},"generated":{"line":181,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":461,"column":4},"generated":{"line":181,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":4},"generated":{"line":182,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":10},"generated":{"line":182,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":18},"generated":{"line":182,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":21},"generated":{"line":182,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":25},"generated":{"line":182,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":28},"generated":{"line":182,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":32},"generated":{"line":182,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":35},"generated":{"line":182,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":463,"column":4},"generated":{"line":182,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":4},"generated":{"line":183,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":10},"generated":{"line":183,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":18},"generated":{"line":183,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":21},"generated":{"line":183,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":25},"generated":{"line":183,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":28},"generated":{"line":183,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":32},"generated":{"line":183,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":35},"generated":{"line":183,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":464,"column":4},"generated":{"line":183,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":7},"generated":{"line":184,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":8},"generated":{"line":184,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":20},"generated":{"line":184,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":27},"generated":{"line":184,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":28},"generated":{"line":184,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":466,"column":4},"generated":{"line":184,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":4},"generated":{"line":185,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":10},"generated":{"line":185,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":14},"generated":{"line":185,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":17},"generated":{"line":185,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":18},"generated":{"line":185,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":24},"generated":{"line":185,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":27},"generated":{"line":185,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":17},"generated":{"line":185,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":35},"generated":{"line":185,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":468,"column":4},"generated":{"line":185,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":4},"generated":{"line":186,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":10},"generated":{"line":186,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":14},"generated":{"line":186,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":17},"generated":{"line":186,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":18},"generated":{"line":186,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":24},"generated":{"line":186,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":27},"generated":{"line":186,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":17},"generated":{"line":186,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":35},"generated":{"line":186,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":469,"column":4},"generated":{"line":186,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":26},"generated":{"line":186,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":471,"column":4},"generated":{"line":186,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":7},"generated":{"line":188,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":8},"generated":{"line":188,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":472,"column":4},"generated":{"line":188,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":8},"generated":{"line":190,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":9},"generated":{"line":190,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":19},"generated":{"line":190,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":25},"generated":{"line":190,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":38},"generated":{"line":190,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":39},"generated":{"line":190,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":49},"generated":{"line":190,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":53},"generated":{"line":190,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":54},"generated":{"line":190,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":60},"generated":{"line":190,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":31},"generated":{"line":190,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":473,"column":4},"generated":{"line":190,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":475,"column":4},"generated":{"line":192,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":9},"generated":{"line":192,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":10},"generated":{"line":192,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":24},"generated":{"line":192,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":40},"generated":{"line":192,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":476,"column":6},"generated":{"line":192,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":9},"generated":{"line":192,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":10},"generated":{"line":192,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":26},"generated":{"line":192,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":42},"generated":{"line":192,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":477,"column":6},"generated":{"line":192,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":475,"column":4},"generated":{"line":192,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":478,"column":6},"generated":{"line":192,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":10},"generated":{"line":193,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":11},"generated":{"line":193,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":17},"generated":{"line":193,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":31},"generated":{"line":193,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":479,"column":6},"generated":{"line":193,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":480,"column":5},"generated":{"line":194,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":7},"generated":{"line":196,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":8},"generated":{"line":196,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":482,"column":4},"generated":{"line":196,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":7},"generated":{"line":197,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":8},"generated":{"line":197,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":15},"generated":{"line":197,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":23},"generated":{"line":197,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":483,"column":4},"generated":{"line":197,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":7},"generated":{"line":198,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":8},"generated":{"line":198,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":15},"generated":{"line":198,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":25},"generated":{"line":198,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":484,"column":4},"generated":{"line":198,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":7},"generated":{"line":199,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":8},"generated":{"line":199,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":15},"generated":{"line":199,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":21},"generated":{"line":199,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":485,"column":4},"generated":{"line":199,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":7},"generated":{"line":200,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":8},"generated":{"line":200,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":6},"generated":{"line":200,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":10},"generated":{"line":200,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":13},"generated":{"line":200,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":20},"generated":{"line":200,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":21},"generated":{"line":200,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":13},"generated":{"line":200,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":43},"generated":{"line":200,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":44},"generated":{"line":200,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":48},"generated":{"line":200,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":51},"generated":{"line":200,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":54},"generated":{"line":200,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":61},"generated":{"line":200,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":62},"generated":{"line":200,"column":73}},{"source":"../graph-renderer.ts","name":null,"original":{"line":487,"column":39},"generated":{"line":200,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":6},"generated":{"line":200,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":10},"generated":{"line":200,"column":95}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":13},"generated":{"line":200,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":20},"generated":{"line":200,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":21},"generated":{"line":200,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":13},"generated":{"line":200,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":43},"generated":{"line":200,"column":128}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":44},"generated":{"line":200,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":132}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":48},"generated":{"line":200,"column":133}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":51},"generated":{"line":200,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":54},"generated":{"line":200,"column":139}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":61},"generated":{"line":200,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":62},"generated":{"line":200,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":488,"column":39},"generated":{"line":200,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":486,"column":4},"generated":{"line":200,"column":163}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":7},"generated":{"line":201,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":8},"generated":{"line":201,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":6},"generated":{"line":201,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":10},"generated":{"line":201,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":13},"generated":{"line":201,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":20},"generated":{"line":201,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":21},"generated":{"line":201,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":13},"generated":{"line":201,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":43},"generated":{"line":201,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":44},"generated":{"line":201,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":48},"generated":{"line":201,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":51},"generated":{"line":201,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":54},"generated":{"line":201,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":61},"generated":{"line":201,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":62},"generated":{"line":201,"column":73}},{"source":"../graph-renderer.ts","name":null,"original":{"line":491,"column":39},"generated":{"line":201,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":6},"generated":{"line":201,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":10},"generated":{"line":201,"column":95}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":13},"generated":{"line":201,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":20},"generated":{"line":201,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":21},"generated":{"line":201,"column":106}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":13},"generated":{"line":201,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":43},"generated":{"line":201,"column":128}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":44},"generated":{"line":201,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":132}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":48},"generated":{"line":201,"column":133}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":51},"generated":{"line":201,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":54},"generated":{"line":201,"column":139}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":61},"generated":{"line":201,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":62},"generated":{"line":201,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":492,"column":39},"generated":{"line":201,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":490,"column":4},"generated":{"line":201,"column":163}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":7},"generated":{"line":202,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":8},"generated":{"line":202,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":15},"generated":{"line":202,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":21},"generated":{"line":202,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":494,"column":4},"generated":{"line":202,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":7},"generated":{"line":203,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":8},"generated":{"line":203,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":495,"column":4},"generated":{"line":203,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":497,"column":4},"generated":{"line":205,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":9},"generated":{"line":205,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":10},"generated":{"line":205,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":24},"generated":{"line":205,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":40},"generated":{"line":205,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":498,"column":6},"generated":{"line":205,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":9},"generated":{"line":205,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":10},"generated":{"line":205,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":26},"generated":{"line":205,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":42},"generated":{"line":205,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":499,"column":6},"generated":{"line":205,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":497,"column":4},"generated":{"line":205,"column":114}},{"source":"../graph-renderer.ts","name":null,"original":{"line":500,"column":6},"generated":{"line":205,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":10},"generated":{"line":206,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":11},"generated":{"line":206,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":17},"generated":{"line":206,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":31},"generated":{"line":206,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":501,"column":6},"generated":{"line":206,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":502,"column":5},"generated":{"line":207,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":4},"generated":{"line":209,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":10},"generated":{"line":209,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":18},"generated":{"line":209,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":21},"generated":{"line":209,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":25},"generated":{"line":209,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":30},"generated":{"line":209,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":34},"generated":{"line":209,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":35},"generated":{"line":209,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":30},"generated":{"line":209,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":41},"generated":{"line":209,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":504,"column":4},"generated":{"line":209,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":4},"generated":{"line":210,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":10},"generated":{"line":210,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":17},"generated":{"line":210,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":20},"generated":{"line":210,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":24},"generated":{"line":210,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":29},"generated":{"line":210,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":33},"generated":{"line":210,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":34},"generated":{"line":210,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":29},"generated":{"line":210,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":40},"generated":{"line":210,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":505,"column":4},"generated":{"line":210,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":4},"generated":{"line":211,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":10},"generated":{"line":211,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":16},"generated":{"line":211,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":26},"generated":{"line":211,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":27},"generated":{"line":211,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":37},"generated":{"line":211,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":41},"generated":{"line":211,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":42},"generated":{"line":211,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":19},"generated":{"line":211,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":506,"column":4},"generated":{"line":211,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":213,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":8},"generated":{"line":213,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":16},"generated":{"line":213,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":20},"generated":{"line":213,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":213,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":29},"generated":{"line":213,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":9},"generated":{"line":214,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":10},"generated":{"line":214,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":24},"generated":{"line":214,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":31},"generated":{"line":214,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":32},"generated":{"line":214,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":509,"column":6},"generated":{"line":214,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":9},"generated":{"line":215,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":10},"generated":{"line":215,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":22},"generated":{"line":215,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":29},"generated":{"line":215,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":30},"generated":{"line":215,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":510,"column":6},"generated":{"line":215,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":511,"column":5},"generated":{"line":216,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":508,"column":4},"generated":{"line":216,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":511,"column":11},"generated":{"line":216,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":9},"generated":{"line":217,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":10},"generated":{"line":217,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":24},"generated":{"line":217,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":31},"generated":{"line":217,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":32},"generated":{"line":217,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":512,"column":6},"generated":{"line":217,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":9},"generated":{"line":218,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":10},"generated":{"line":218,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":22},"generated":{"line":218,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":29},"generated":{"line":218,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":30},"generated":{"line":218,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":513,"column":6},"generated":{"line":218,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":514,"column":5},"generated":{"line":219,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":7},"generated":{"line":221,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":8},"generated":{"line":221,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":516,"column":4},"generated":{"line":221,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":7},"generated":{"line":222,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":8},"generated":{"line":222,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":517,"column":4},"generated":{"line":222,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":7},"generated":{"line":223,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":8},"generated":{"line":223,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":519,"column":4},"generated":{"line":223,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":8},"generated":{"line":225,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":9},"generated":{"line":225,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":19},"generated":{"line":225,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":25},"generated":{"line":225,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":31},"generated":{"line":225,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":37},"generated":{"line":225,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":38},"generated":{"line":225,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":37},"generated":{"line":225,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":520,"column":4},"generated":{"line":225,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":7},"generated":{"line":227,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":8},"generated":{"line":227,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":26},"generated":{"line":227,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":27},"generated":{"line":227,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":26},"generated":{"line":227,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":30},"generated":{"line":227,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":20},"generated":{"line":227,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":39},"generated":{"line":227,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":46},"generated":{"line":227,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":47},"generated":{"line":227,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":522,"column":4},"generated":{"line":227,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":7},"generated":{"line":228,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":8},"generated":{"line":228,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":524,"column":4},"generated":{"line":228,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":7},"generated":{"line":229,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":8},"generated":{"line":229,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":525,"column":4},"generated":{"line":229,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":8},"generated":{"line":231,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":9},"generated":{"line":231,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":23},"generated":{"line":231,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":31},"generated":{"line":231,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":37},"generated":{"line":231,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":527,"column":4},"generated":{"line":231,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":4},"generated":{"line":233,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":8},"generated":{"line":233,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":4},"generated":{"line":233,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":529,"column":18},"generated":{"line":233,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":10},"generated":{"line":234,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":11},"generated":{"line":234,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":8},"generated":{"line":234,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":14},"generated":{"line":234,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":15},"generated":{"line":234,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":531,"column":14},"generated":{"line":234,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":532,"column":8},"generated":{"line":234,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":533,"column":8},"generated":{"line":234,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":8},"generated":{"line":234,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":15},"generated":{"line":234,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":534,"column":16},"generated":{"line":234,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":530,"column":6},"generated":{"line":234,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":536,"column":5},"generated":{"line":235,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":237,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":8},"generated":{"line":237,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":237,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":18},"generated":{"line":237,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":9},"generated":{"line":238,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":10},"generated":{"line":238,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":22},"generated":{"line":238,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":29},"generated":{"line":238,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":30},"generated":{"line":238,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":539,"column":6},"generated":{"line":238,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":540,"column":5},"generated":{"line":239,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":538,"column":4},"generated":{"line":239,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":540,"column":11},"generated":{"line":239,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":9},"generated":{"line":240,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":10},"generated":{"line":240,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":22},"generated":{"line":240,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":29},"generated":{"line":240,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":30},"generated":{"line":240,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":541,"column":6},"generated":{"line":240,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":542,"column":5},"generated":{"line":241,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":7},"generated":{"line":243,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":8},"generated":{"line":243,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":15},"generated":{"line":243,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":22},"generated":{"line":243,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":23},"generated":{"line":243,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":543,"column":4},"generated":{"line":243,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":7},"generated":{"line":244,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":8},"generated":{"line":244,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":20},"generated":{"line":244,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":544,"column":4},"generated":{"line":244,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":7},"generated":{"line":245,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":8},"generated":{"line":245,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":23},"generated":{"line":245,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":545,"column":4},"generated":{"line":245,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":7},"generated":{"line":246,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":8},"generated":{"line":246,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":17},"generated":{"line":246,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":21},"generated":{"line":246,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":22},"generated":{"line":246,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":28},"generated":{"line":246,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":34},"generated":{"line":246,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":546,"column":4},"generated":{"line":246,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":547,"column":3},"generated":{"line":247,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":408,"column":2},"generated":{"line":247,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":9},"generated":{"line":249,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":17},"generated":{"line":249,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":29,"column":4},"generated":{"line":249,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":9},"generated":{"line":250,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":18},"generated":{"line":250,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":30,"column":4},"generated":{"line":250,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":251,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":9},"generated":{"line":251,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":251,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":21},"generated":{"line":251,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":22},"generated":{"line":251,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":33},"generated":{"line":251,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":251,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":39},"generated":{"line":251,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":41},"generated":{"line":252,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":41},"generated":{"line":252,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":46},"generated":{"line":252,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":48},"generated":{"line":252,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":39},"generated":{"line":253,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":15},"generated":{"line":253,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":31,"column":4},"generated":{"line":253,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":32,"column":3},"generated":{"line":254,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":256,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":257,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":8},"generated":{"line":257,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":257,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":14},"generated":{"line":257,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":9},"generated":{"line":257,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":20},"generated":{"line":257,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":4},"generated":{"line":257,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":35,"column":31},"generated":{"line":257,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":27},"generated":{"line":258,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":28},"generated":{"line":258,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":33},"generated":{"line":258,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":27},"generated":{"line":258,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":36,"column":6},"generated":{"line":258,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":37,"column":5},"generated":{"line":259,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":9},"generated":{"line":261,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":15},"generated":{"line":261,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":27},"generated":{"line":261,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":261,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":40,"column":3},"generated":{"line":262,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":34,"column":2},"generated":{"line":262,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":264,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":28},"generated":{"line":265,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":265,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":266,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":12},"generated":{"line":266,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":18},"generated":{"line":266,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":266,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":267,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":20},"generated":{"line":267,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":23},"generated":{"line":267,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":62,"column":10},"generated":{"line":267,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":55},"generated":{"line":269,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":60},"generated":{"line":269,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":269,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":270,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":12},"generated":{"line":270,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":22},"generated":{"line":270,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":270,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":271,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":24},"generated":{"line":271,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":271,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":271,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":272,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":36},"generated":{"line":272,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":41},"generated":{"line":272,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":272,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":273,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":43},"generated":{"line":273,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":50},"generated":{"line":273,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":63,"column":10},"generated":{"line":273,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":7},"generated":{"line":274,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":8},"generated":{"line":274,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":20},"generated":{"line":274,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":27},"generated":{"line":274,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":28},"generated":{"line":274,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":65,"column":4},"generated":{"line":274,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":7},"generated":{"line":275,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":8},"generated":{"line":275,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":17},"generated":{"line":275,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":20},"generated":{"line":275,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":23},"generated":{"line":275,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":29},"generated":{"line":275,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":30},"generated":{"line":275,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":37},"generated":{"line":275,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":43},"generated":{"line":275,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":44},"generated":{"line":275,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":66,"column":4},"generated":{"line":275,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":276,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":8},"generated":{"line":276,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":9},"generated":{"line":276,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":16},"generated":{"line":276,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":17},"generated":{"line":276,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":4},"generated":{"line":276,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":68,"column":27},"generated":{"line":276,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":277,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":10},"generated":{"line":277,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":12},"generated":{"line":277,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":15},"generated":{"line":277,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":22},"generated":{"line":277,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":23},"generated":{"line":277,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":15},"generated":{"line":277,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":39},"generated":{"line":277,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":70,"column":4},"generated":{"line":277,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":4},"generated":{"line":278,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":10},"generated":{"line":278,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":13},"generated":{"line":278,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":16},"generated":{"line":278,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":23},"generated":{"line":278,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":24},"generated":{"line":278,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":16},"generated":{"line":278,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":34},"generated":{"line":278,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":71,"column":4},"generated":{"line":278,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":279,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":10},"generated":{"line":279,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":17},"generated":{"line":279,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":21},"generated":{"line":279,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":31},"generated":{"line":279,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":34},"generated":{"line":279,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":20},"generated":{"line":279,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":41},"generated":{"line":279,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":73,"column":4},"generated":{"line":279,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":4},"generated":{"line":280,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":10},"generated":{"line":280,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":17},"generated":{"line":280,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":21},"generated":{"line":280,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":31},"generated":{"line":280,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":34},"generated":{"line":280,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":20},"generated":{"line":280,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":41},"generated":{"line":280,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":74,"column":4},"generated":{"line":280,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":7},"generated":{"line":281,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":8},"generated":{"line":281,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":22},"generated":{"line":281,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":29},"generated":{"line":281,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":30},"generated":{"line":281,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":76,"column":4},"generated":{"line":281,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":7},"generated":{"line":282,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":8},"generated":{"line":282,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":20},"generated":{"line":282,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":77,"column":4},"generated":{"line":282,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":284,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":284,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":15},"generated":{"line":284,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":16},"generated":{"line":284,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":8},"generated":{"line":284,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":29},"generated":{"line":284,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":40},"generated":{"line":284,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":284,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":46},"generated":{"line":284,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":9},"generated":{"line":285,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":10},"generated":{"line":285,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":80,"column":6},"generated":{"line":285,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":11},"generated":{"line":287,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":15},"generated":{"line":287,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":16},"generated":{"line":287,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":19},"generated":{"line":287,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":28},"generated":{"line":287,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":29},"generated":{"line":287,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":32},"generated":{"line":287,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":38},"generated":{"line":287,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":39},"generated":{"line":287,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":32},"generated":{"line":287,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":47},"generated":{"line":287,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":51},"generated":{"line":287,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":52},"generated":{"line":287,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":56},"generated":{"line":287,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":6},"generated":{"line":287,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":82,"column":61},"generated":{"line":287,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":11},"generated":{"line":288,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":12},"generated":{"line":288,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":19},"generated":{"line":288,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":22},"generated":{"line":288,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":83,"column":8},"generated":{"line":288,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":11},"generated":{"line":289,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":12},"generated":{"line":289,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":19},"generated":{"line":289,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":22},"generated":{"line":289,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":28},"generated":{"line":289,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":29},"generated":{"line":289,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":22},"generated":{"line":289,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":38},"generated":{"line":289,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":84,"column":8},"generated":{"line":289,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":85,"column":7},"generated":{"line":290,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":9},"generated":{"line":292,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":10},"generated":{"line":292,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":20},"generated":{"line":292,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":87,"column":6},"generated":{"line":292,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":9},"generated":{"line":293,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":10},"generated":{"line":293,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":23},"generated":{"line":293,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":26},"generated":{"line":293,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":22},"generated":{"line":293,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":88,"column":6},"generated":{"line":293,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":9},"generated":{"line":294,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":10},"generated":{"line":294,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":89,"column":6},"generated":{"line":294,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":9},"generated":{"line":295,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":10},"generated":{"line":295,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":22},"generated":{"line":295,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":23},"generated":{"line":295,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":22},"generated":{"line":295,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":90,"column":6},"generated":{"line":295,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":9},"generated":{"line":296,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":10},"generated":{"line":296,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":20},"generated":{"line":296,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":91,"column":6},"generated":{"line":296,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":92,"column":5},"generated":{"line":297,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":79,"column":4},"generated":{"line":297,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":92,"column":11},"generated":{"line":297,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":9},"generated":{"line":298,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":10},"generated":{"line":298,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":93,"column":6},"generated":{"line":298,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":11},"generated":{"line":300,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":15},"generated":{"line":300,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":16},"generated":{"line":300,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":19},"generated":{"line":300,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":28},"generated":{"line":300,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":29},"generated":{"line":300,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":32},"generated":{"line":300,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":38},"generated":{"line":300,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":39},"generated":{"line":300,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":32},"generated":{"line":300,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":47},"generated":{"line":300,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":51},"generated":{"line":300,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":52},"generated":{"line":300,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":56},"generated":{"line":300,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":6},"generated":{"line":300,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":95,"column":61},"generated":{"line":300,"column":61}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":11},"generated":{"line":301,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":12},"generated":{"line":301,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":19},"generated":{"line":301,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":22},"generated":{"line":301,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":96,"column":8},"generated":{"line":301,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":11},"generated":{"line":302,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":12},"generated":{"line":302,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":19},"generated":{"line":302,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":22},"generated":{"line":302,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":28},"generated":{"line":302,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":29},"generated":{"line":302,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":97,"column":8},"generated":{"line":302,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":98,"column":7},"generated":{"line":303,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":11},"generated":{"line":305,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":15},"generated":{"line":305,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":16},"generated":{"line":305,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":19},"generated":{"line":305,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":28},"generated":{"line":305,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":29},"generated":{"line":305,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":32},"generated":{"line":305,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":38},"generated":{"line":305,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":39},"generated":{"line":305,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":32},"generated":{"line":305,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":48},"generated":{"line":305,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":52},"generated":{"line":305,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":53},"generated":{"line":305,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":57},"generated":{"line":305,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":6},"generated":{"line":305,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":100,"column":62},"generated":{"line":305,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":11},"generated":{"line":306,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":12},"generated":{"line":306,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":19},"generated":{"line":306,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":22},"generated":{"line":306,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":101,"column":8},"generated":{"line":306,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":11},"generated":{"line":307,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":12},"generated":{"line":307,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":19},"generated":{"line":307,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":25},"generated":{"line":307,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":26},"generated":{"line":307,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":33},"generated":{"line":307,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":102,"column":8},"generated":{"line":307,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":103,"column":7},"generated":{"line":308,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":9},"generated":{"line":310,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":10},"generated":{"line":310,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":105,"column":6},"generated":{"line":310,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":106,"column":5},"generated":{"line":311,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":107,"column":3},"generated":{"line":312,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":61,"column":2},"generated":{"line":312,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":314,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":38},"generated":{"line":317,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":43},"generated":{"line":317,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":317,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":318,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":12},"generated":{"line":318,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":17},"generated":{"line":318,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":318,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":319,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":19},"generated":{"line":319,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":24},"generated":{"line":319,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":319,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":320,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":26},"generated":{"line":320,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":33},"generated":{"line":320,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":110,"column":10},"generated":{"line":320,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":321,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":10},"generated":{"line":321,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":25},"generated":{"line":321,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":28},"generated":{"line":321,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":33},"generated":{"line":321,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":28},"generated":{"line":321,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":39},"generated":{"line":321,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":112,"column":4},"generated":{"line":321,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":4},"generated":{"line":322,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":10},"generated":{"line":322,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":25},"generated":{"line":322,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":28},"generated":{"line":322,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":33},"generated":{"line":322,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":28},"generated":{"line":322,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":39},"generated":{"line":322,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":113,"column":4},"generated":{"line":322,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":9},"generated":{"line":323,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":15},"generated":{"line":323,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":29},"generated":{"line":323,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":115,"column":4},"generated":{"line":323,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":9},"generated":{"line":324,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":15},"generated":{"line":324,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":29},"generated":{"line":324,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":116,"column":4},"generated":{"line":324,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":9},"generated":{"line":325,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":10},"generated":{"line":325,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":18},"generated":{"line":325,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":23},"generated":{"line":325,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":118,"column":4},"generated":{"line":325,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":326,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":9},"generated":{"line":326,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":119,"column":4},"generated":{"line":326,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":9},"generated":{"line":327,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":10},"generated":{"line":327,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":18},"generated":{"line":327,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":23},"generated":{"line":327,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":120,"column":4},"generated":{"line":327,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":327,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":122,"column":4},"generated":{"line":327,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":123,"column":4},"generated":{"line":328,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":124,"column":4},"generated":{"line":330,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":12},"generated":{"line":330,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":18},"generated":{"line":330,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":7},"generated":{"line":330,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":6},"generated":{"line":330,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":12},"generated":{"line":330,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":18},"generated":{"line":330,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":126,"column":7},"generated":{"line":330,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":12},"generated":{"line":330,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":18},"generated":{"line":330,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":34},"generated":{"line":330,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":127,"column":7},"generated":{"line":330,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":115}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":13},"generated":{"line":330,"column":120}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":125}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":19},"generated":{"line":330,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":8},"generated":{"line":330,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":128,"column":35},"generated":{"line":330,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":125,"column":6},"generated":{"line":330,"column":157}},{"source":"../graph-renderer.ts","name":null,"original":{"line":124,"column":4},"generated":{"line":330,"column":158}},{"source":"../graph-renderer.ts","name":null,"original":{"line":129,"column":6},"generated":{"line":330,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":13},"generated":{"line":331,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":14},"generated":{"line":331,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":74}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":79}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":80}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":8},"generated":{"line":331,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":13},"generated":{"line":331,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":8},"generated":{"line":331,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":131,"column":19},"generated":{"line":331,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":111}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":8},"generated":{"line":331,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":13},"generated":{"line":331,"column":118}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":8},"generated":{"line":331,"column":123}},{"source":"../graph-renderer.ts","name":null,"original":{"line":132,"column":19},"generated":{"line":331,"column":124}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":8},"generated":{"line":331,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":13},"generated":{"line":331,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":8},"generated":{"line":331,"column":147}},{"source":"../graph-renderer.ts","name":null,"original":{"line":133,"column":19},"generated":{"line":331,"column":148}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":8},"generated":{"line":331,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":13},"generated":{"line":331,"column":167}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":8},"generated":{"line":331,"column":172}},{"source":"../graph-renderer.ts","name":null,"original":{"line":134,"column":19},"generated":{"line":331,"column":173}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":185}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":331,"column":187}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":13},"generated":{"line":331,"column":192}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":8},"generated":{"line":331,"column":197}},{"source":"../graph-renderer.ts","name":null,"original":{"line":135,"column":19},"generated":{"line":331,"column":198}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":212}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":8},"generated":{"line":331,"column":214}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":13},"generated":{"line":331,"column":219}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":8},"generated":{"line":331,"column":224}},{"source":"../graph-renderer.ts","name":null,"original":{"line":136,"column":19},"generated":{"line":331,"column":225}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":239}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":8},"generated":{"line":331,"column":241}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":13},"generated":{"line":331,"column":246}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":8},"generated":{"line":331,"column":251}},{"source":"../graph-renderer.ts","name":null,"original":{"line":137,"column":19},"generated":{"line":331,"column":252}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":266}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":8},"generated":{"line":331,"column":268}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":13},"generated":{"line":331,"column":273}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":8},"generated":{"line":331,"column":278}},{"source":"../graph-renderer.ts","name":null,"original":{"line":138,"column":19},"generated":{"line":331,"column":279}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":27},"generated":{"line":331,"column":293}},{"source":"../graph-renderer.ts","name":null,"original":{"line":130,"column":6},"generated":{"line":331,"column":294}},{"source":"../graph-renderer.ts","name":null,"original":{"line":140,"column":5},"generated":{"line":332,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":141,"column":3},"generated":{"line":333,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":109,"column":2},"generated":{"line":333,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":16},"generated":{"line":335,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":335,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":32},"generated":{"line":335,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":336,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":10},"generated":{"line":336,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":15},"generated":{"line":336,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":18},"generated":{"line":336,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":24},"generated":{"line":336,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":25},"generated":{"line":336,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":24},"generated":{"line":336,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":144,"column":4},"generated":{"line":336,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":4},"generated":{"line":337,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":337,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":13},"generated":{"line":337,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":14},"generated":{"line":337,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":8},"generated":{"line":337,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":24},"generated":{"line":337,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":36},"generated":{"line":337,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":4},"generated":{"line":337,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":44},"generated":{"line":337,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":51},"generated":{"line":337,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":56},"generated":{"line":337,"column":64}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":57},"generated":{"line":337,"column":65}},{"source":"../graph-renderer.ts","name":null,"original":{"line":146,"column":44},"generated":{"line":337,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":338,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":8},"generated":{"line":338,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":13},"generated":{"line":338,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":14},"generated":{"line":338,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":8},"generated":{"line":338,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":24},"generated":{"line":338,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":36},"generated":{"line":338,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":338,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":6},"generated":{"line":338,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":17},"generated":{"line":338,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":18},"generated":{"line":338,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":22},"generated":{"line":338,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":27},"generated":{"line":338,"column":76}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":28},"generated":{"line":338,"column":77}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":35},"generated":{"line":338,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":40},"generated":{"line":338,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":41},"generated":{"line":338,"column":90}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":13},"generated":{"line":338,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":148,"column":6},"generated":{"line":338,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":339,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":8},"generated":{"line":339,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":9},"generated":{"line":339,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":12},"generated":{"line":339,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":150,"column":4},"generated":{"line":339,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":9},"generated":{"line":340,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":10},"generated":{"line":340,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":17},"generated":{"line":340,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":340,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":25},"generated":{"line":340,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":26},"generated":{"line":340,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":6}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":7},"generated":{"line":341,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":14},"generated":{"line":341,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":15},"generated":{"line":341,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":19},"generated":{"line":341,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":26},"generated":{"line":341,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":27},"generated":{"line":341,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":31},"generated":{"line":341,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":32},"generated":{"line":341,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":33},"generated":{"line":341,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":32},"generated":{"line":341,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":35}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":37},"generated":{"line":341,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":38},"generated":{"line":341,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":39},"generated":{"line":341,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":38},"generated":{"line":341,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":22},"generated":{"line":341,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":10},"generated":{"line":341,"column":42}},{"source":"../graph-renderer.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":341,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":154,"column":5},"generated":{"line":342,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":152,"column":4},"generated":{"line":342,"column":5}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":4},"generated":{"line":343,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":11},"generated":{"line":343,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":156,"column":4},"generated":{"line":343,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":157,"column":3},"generated":{"line":344,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":143,"column":2},"generated":{"line":344,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":18},"generated":{"line":346,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":346,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":30},"generated":{"line":346,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":18},"generated":{"line":347,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":23},"generated":{"line":347,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":27},"generated":{"line":347,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":160,"column":12},"generated":{"line":347,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":55},"generated":{"line":348,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":60},"generated":{"line":348,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":348,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":349,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":12},"generated":{"line":349,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":22},"generated":{"line":349,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":349,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":350,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":24},"generated":{"line":350,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":34},"generated":{"line":350,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":350,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":351,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":36},"generated":{"line":351,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":41},"generated":{"line":351,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":351,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":352,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":43},"generated":{"line":352,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":50},"generated":{"line":352,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":161,"column":10},"generated":{"line":352,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":4},"generated":{"line":353,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":10},"generated":{"line":353,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":11},"generated":{"line":353,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":19},"generated":{"line":353,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":40},"generated":{"line":353,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":41},"generated":{"line":353,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":51},"generated":{"line":353,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":55},"generated":{"line":353,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":56},"generated":{"line":353,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":33},"generated":{"line":353,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":14},"generated":{"line":353,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":163,"column":4},"generated":{"line":353,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":165,"column":4},"generated":{"line":354,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":7},"generated":{"line":354,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":11},"generated":{"line":354,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":12},"generated":{"line":354,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":7},"generated":{"line":354,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":16},"generated":{"line":354,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":21},"generated":{"line":354,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":29},"generated":{"line":354,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":44}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":42},"generated":{"line":354,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":7},"generated":{"line":354,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":11},"generated":{"line":354,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":12},"generated":{"line":354,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":7},"generated":{"line":354,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":16},"generated":{"line":354,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":21},"generated":{"line":354,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":72}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":29},"generated":{"line":354,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":6},"generated":{"line":354,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":167,"column":42},"generated":{"line":354,"column":88}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":7},"generated":{"line":354,"column":94}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":11},"generated":{"line":354,"column":98}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":12},"generated":{"line":354,"column":99}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":7},"generated":{"line":354,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":16},"generated":{"line":354,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":21},"generated":{"line":354,"column":108}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":113}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":29},"generated":{"line":354,"column":116}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":6},"generated":{"line":354,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":42},"generated":{"line":354,"column":129}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":48},"generated":{"line":354,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":168,"column":49},"generated":{"line":354,"column":136}},{"source":"../graph-renderer.ts","name":null,"original":{"line":166,"column":6},"generated":{"line":354,"column":141}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":7},"generated":{"line":354,"column":146}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":11},"generated":{"line":354,"column":150}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":12},"generated":{"line":354,"column":151}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":7},"generated":{"line":354,"column":152}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":16},"generated":{"line":354,"column":155}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":156}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":21},"generated":{"line":354,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":165}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":29},"generated":{"line":354,"column":168}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":6},"generated":{"line":354,"column":178}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":42},"generated":{"line":354,"column":181}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":48},"generated":{"line":354,"column":187}},{"source":"../graph-renderer.ts","name":null,"original":{"line":169,"column":49},"generated":{"line":354,"column":188}},{"source":"../graph-renderer.ts","name":null,"original":{"line":165,"column":4},"generated":{"line":354,"column":194}},{"source":"../graph-renderer.ts","name":null,"original":{"line":171,"column":3},"generated":{"line":355,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":159,"column":2},"generated":{"line":355,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":18},"generated":{"line":357,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":357,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":30},"generated":{"line":357,"column":62}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":18},"generated":{"line":358,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":23},"generated":{"line":358,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":27},"generated":{"line":358,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":174,"column":12},"generated":{"line":358,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":55},"generated":{"line":359,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":60},"generated":{"line":359,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":359,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":360,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":12},"generated":{"line":360,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":22},"generated":{"line":360,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":360,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":361,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":24},"generated":{"line":361,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":34},"generated":{"line":361,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":361,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":362,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":36},"generated":{"line":362,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":41},"generated":{"line":362,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":362,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":363,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":43},"generated":{"line":363,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":50},"generated":{"line":363,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":175,"column":10},"generated":{"line":363,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":4},"generated":{"line":364,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":10},"generated":{"line":364,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":16},"generated":{"line":364,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":19},"generated":{"line":364,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":23},"generated":{"line":364,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":24},"generated":{"line":364,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":177,"column":4},"generated":{"line":364,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":365,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":10},"generated":{"line":365,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":16},"generated":{"line":365,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":19},"generated":{"line":365,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":23},"generated":{"line":365,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":24},"generated":{"line":365,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":178,"column":4},"generated":{"line":365,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":4},"generated":{"line":366,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":10},"generated":{"line":366,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":17},"generated":{"line":366,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":26},"generated":{"line":366,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":27},"generated":{"line":366,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":31},"generated":{"line":366,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":20},"generated":{"line":366,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":39},"generated":{"line":366,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":180,"column":4},"generated":{"line":366,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":4},"generated":{"line":367,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":10},"generated":{"line":367,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":17},"generated":{"line":367,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":26},"generated":{"line":367,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":27},"generated":{"line":367,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":31},"generated":{"line":367,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":20},"generated":{"line":367,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":39},"generated":{"line":367,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":181,"column":4},"generated":{"line":367,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":4},"generated":{"line":368,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":10},"generated":{"line":368,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":17},"generated":{"line":368,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":26},"generated":{"line":368,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":27},"generated":{"line":368,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":31},"generated":{"line":368,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":20},"generated":{"line":368,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":39},"generated":{"line":368,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":182,"column":4},"generated":{"line":368,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":4},"generated":{"line":369,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":10},"generated":{"line":369,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":17},"generated":{"line":369,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":26},"generated":{"line":369,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":27},"generated":{"line":369,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":31},"generated":{"line":369,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":20},"generated":{"line":369,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":39},"generated":{"line":369,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":183,"column":4},"generated":{"line":369,"column":47}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":370,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":10},"generated":{"line":370,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":11},"generated":{"line":370,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":19},"generated":{"line":370,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":40},"generated":{"line":370,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":41},"generated":{"line":370,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":51},"generated":{"line":370,"column":49}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":55},"generated":{"line":370,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":56},"generated":{"line":370,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":33},"generated":{"line":370,"column":58}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":14},"generated":{"line":370,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":185,"column":4},"generated":{"line":370,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":371,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":7},"generated":{"line":371,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":14},"generated":{"line":371,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":17},"generated":{"line":371,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":18},"generated":{"line":371,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":7},"generated":{"line":371,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":23},"generated":{"line":371,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":30},"generated":{"line":371,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":33},"generated":{"line":371,"column":37}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":34},"generated":{"line":371,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":39}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":7},"generated":{"line":371,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":14},"generated":{"line":371,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":17},"generated":{"line":371,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":18},"generated":{"line":371,"column":54}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":7},"generated":{"line":371,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":23},"generated":{"line":371,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":30},"generated":{"line":371,"column":66}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":33},"generated":{"line":371,"column":69}},{"source":"../graph-renderer.ts","name":null,"original":{"line":189,"column":34},"generated":{"line":371,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":7},"generated":{"line":371,"column":75}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":14},"generated":{"line":371,"column":82}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":371,"column":85}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":23},"generated":{"line":371,"column":91}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":24},"generated":{"line":371,"column":92}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":17},"generated":{"line":371,"column":97}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":32},"generated":{"line":371,"column":100}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":7},"generated":{"line":371,"column":101}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":37},"generated":{"line":371,"column":105}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":44},"generated":{"line":371,"column":112}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":47},"generated":{"line":371,"column":115}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":53},"generated":{"line":371,"column":121}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":54},"generated":{"line":371,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":47},"generated":{"line":371,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":190,"column":62},"generated":{"line":371,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":188,"column":6},"generated":{"line":371,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":7},"generated":{"line":371,"column":135}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":14},"generated":{"line":371,"column":142}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":17},"generated":{"line":371,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":23},"generated":{"line":371,"column":151}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":24},"generated":{"line":371,"column":152}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":17},"generated":{"line":371,"column":158}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":33},"generated":{"line":371,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":7},"generated":{"line":371,"column":162}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":38},"generated":{"line":371,"column":166}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":45},"generated":{"line":371,"column":173}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":48},"generated":{"line":371,"column":176}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":54},"generated":{"line":371,"column":182}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":55},"generated":{"line":371,"column":183}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":48},"generated":{"line":371,"column":189}},{"source":"../graph-renderer.ts","name":null,"original":{"line":191,"column":64},"generated":{"line":371,"column":192}},{"source":"../graph-renderer.ts","name":null,"original":{"line":187,"column":4},"generated":{"line":371,"column":193}},{"source":"../graph-renderer.ts","name":null,"original":{"line":193,"column":3},"generated":{"line":372,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":173,"column":2},"generated":{"line":372,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":2}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":40}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":374,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":4},"generated":{"line":375,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":8},"generated":{"line":375,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":9},"generated":{"line":375,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":14},"generated":{"line":375,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":9},"generated":{"line":375,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":20},"generated":{"line":375,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":4},"generated":{"line":375,"column":34}},{"source":"../graph-renderer.ts","name":null,"original":{"line":221,"column":36},"generated":{"line":375,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":15},"generated":{"line":376,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":20},"generated":{"line":376,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":24},"generated":{"line":376,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":223,"column":12},"generated":{"line":376,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":52},"generated":{"line":377,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":57},"generated":{"line":377,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":377,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":378,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":12},"generated":{"line":378,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":24},"generated":{"line":378,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":378,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":379,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":26},"generated":{"line":379,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":38},"generated":{"line":379,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":379,"column":38}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":380,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":40},"generated":{"line":380,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":47},"generated":{"line":380,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":224,"column":10},"generated":{"line":380,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":4},"generated":{"line":381,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":10},"generated":{"line":381,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":17},"generated":{"line":381,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":20},"generated":{"line":381,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":226,"column":4},"generated":{"line":381,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":4},"generated":{"line":382,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":10},"generated":{"line":382,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":17},"generated":{"line":382,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":20},"generated":{"line":382,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":227,"column":4},"generated":{"line":382,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":4},"generated":{"line":383,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":10},"generated":{"line":383,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":16},"generated":{"line":383,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":19},"generated":{"line":383,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":24},"generated":{"line":383,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":19},"generated":{"line":383,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":30},"generated":{"line":383,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":229,"column":4},"generated":{"line":383,"column":46}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":4},"generated":{"line":384,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":10},"generated":{"line":384,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":12},"generated":{"line":384,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":15},"generated":{"line":384,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":22},"generated":{"line":384,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":25},"generated":{"line":384,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":31},"generated":{"line":384,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":32},"generated":{"line":384,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":230,"column":4},"generated":{"line":384,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":4},"generated":{"line":385,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":10},"generated":{"line":385,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":12},"generated":{"line":385,"column":10}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":15},"generated":{"line":385,"column":13}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":22},"generated":{"line":385,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":25},"generated":{"line":385,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":31},"generated":{"line":385,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":32},"generated":{"line":385,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":231,"column":4},"generated":{"line":385,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":4},"generated":{"line":386,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":10},"generated":{"line":386,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":13},"generated":{"line":386,"column":11}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":20},"generated":{"line":386,"column":18}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":21},"generated":{"line":386,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":27},"generated":{"line":386,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":31},"generated":{"line":386,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":16},"generated":{"line":386,"column":31}},{"source":"../graph-renderer.ts","name":null,"original":{"line":233,"column":4},"generated":{"line":386,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":4},"generated":{"line":387,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":10},"generated":{"line":387,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":14},"generated":{"line":387,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":21},"generated":{"line":387,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":22},"generated":{"line":387,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":26},"generated":{"line":387,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":17},"generated":{"line":387,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":234,"column":4},"generated":{"line":387,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":4},"generated":{"line":388,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":10},"generated":{"line":388,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":14},"generated":{"line":388,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":21},"generated":{"line":388,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":22},"generated":{"line":388,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":26},"generated":{"line":388,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":17},"generated":{"line":388,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":235,"column":4},"generated":{"line":388,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":388,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":237,"column":4},"generated":{"line":388,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":4},"generated":{"line":390,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":10},"generated":{"line":390,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":16},"generated":{"line":390,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":19},"generated":{"line":390,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":25},"generated":{"line":390,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":26},"generated":{"line":390,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":238,"column":4},"generated":{"line":390,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":4},"generated":{"line":391,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":10},"generated":{"line":391,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":16},"generated":{"line":391,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":19},"generated":{"line":391,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":25},"generated":{"line":391,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":26},"generated":{"line":391,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":239,"column":4},"generated":{"line":391,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":4},"generated":{"line":392,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":10},"generated":{"line":392,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":14},"generated":{"line":392,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":17},"generated":{"line":392,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":24},"generated":{"line":392,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":27},"generated":{"line":392,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":31},"generated":{"line":392,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":34},"generated":{"line":392,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":240,"column":4},"generated":{"line":392,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":4},"generated":{"line":393,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":10},"generated":{"line":393,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":14},"generated":{"line":393,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":17},"generated":{"line":393,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":24},"generated":{"line":393,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":27},"generated":{"line":393,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":31},"generated":{"line":393,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":34},"generated":{"line":393,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":241,"column":4},"generated":{"line":393,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":4},"generated":{"line":394,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":10},"generated":{"line":394,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":24},"generated":{"line":394,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":6},"generated":{"line":394,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":13},"generated":{"line":394,"column":32}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":14},"generated":{"line":394,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":6},"generated":{"line":394,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":51}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":36},"generated":{"line":394,"column":55}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":37},"generated":{"line":394,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":59}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":41},"generated":{"line":394,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":48},"generated":{"line":394,"column":67}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":49},"generated":{"line":394,"column":68}},{"source":"../graph-renderer.ts","name":null,"original":{"line":243,"column":32},"generated":{"line":394,"column":83}},{"source":"../graph-renderer.ts","name":null,"original":{"line":242,"column":4},"generated":{"line":394,"column":84}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":4},"generated":{"line":395,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":10},"generated":{"line":395,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":18},"generated":{"line":395,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":21},"generated":{"line":395,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":28},"generated":{"line":395,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":31},"generated":{"line":395,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":35},"generated":{"line":395,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":38},"generated":{"line":395,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":244,"column":4},"generated":{"line":395,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":4},"generated":{"line":396,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":10},"generated":{"line":396,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":18},"generated":{"line":396,"column":16}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":21},"generated":{"line":396,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":28},"generated":{"line":396,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":31},"generated":{"line":396,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":35},"generated":{"line":396,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":38},"generated":{"line":396,"column":36}},{"source":"../graph-renderer.ts","name":null,"original":{"line":245,"column":4},"generated":{"line":396,"column":50}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":7},"generated":{"line":397,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":8},"generated":{"line":397,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":20},"generated":{"line":397,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":27},"generated":{"line":397,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":28},"generated":{"line":397,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":247,"column":4},"generated":{"line":397,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":7},"generated":{"line":398,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":8},"generated":{"line":398,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":249,"column":4},"generated":{"line":398,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":7},"generated":{"line":399,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":8},"generated":{"line":399,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":15},"generated":{"line":399,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":23},"generated":{"line":399,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":250,"column":4},"generated":{"line":399,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":7},"generated":{"line":400,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":8},"generated":{"line":400,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":15},"generated":{"line":400,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":25},"generated":{"line":400,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":251,"column":4},"generated":{"line":400,"column":33}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":7},"generated":{"line":401,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":8},"generated":{"line":401,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":15},"generated":{"line":401,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":21},"generated":{"line":401,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":252,"column":4},"generated":{"line":401,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":7},"generated":{"line":402,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":8},"generated":{"line":402,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":6},"generated":{"line":402,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":10},"generated":{"line":402,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":13},"generated":{"line":402,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":20},"generated":{"line":402,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":21},"generated":{"line":402,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":13},"generated":{"line":402,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":43},"generated":{"line":402,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":44},"generated":{"line":402,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":48},"generated":{"line":402,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":51},"generated":{"line":402,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":54},"generated":{"line":402,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":61},"generated":{"line":402,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":62},"generated":{"line":402,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":254,"column":39},"generated":{"line":402,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":6},"generated":{"line":402,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":10},"generated":{"line":402,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":13},"generated":{"line":402,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":20},"generated":{"line":402,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":21},"generated":{"line":402,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":13},"generated":{"line":402,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":43},"generated":{"line":402,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":44},"generated":{"line":402,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":48},"generated":{"line":402,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":51},"generated":{"line":402,"column":134}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":54},"generated":{"line":402,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":61},"generated":{"line":402,"column":144}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":62},"generated":{"line":402,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":255,"column":39},"generated":{"line":402,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":253,"column":4},"generated":{"line":402,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":7},"generated":{"line":403,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":8},"generated":{"line":403,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":6},"generated":{"line":403,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":10},"generated":{"line":403,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":13},"generated":{"line":403,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":20},"generated":{"line":403,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":21},"generated":{"line":403,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":13},"generated":{"line":403,"column":45}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":48}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":43},"generated":{"line":403,"column":52}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":44},"generated":{"line":403,"column":53}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":56}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":48},"generated":{"line":403,"column":57}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":51},"generated":{"line":403,"column":60}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":54},"generated":{"line":403,"column":63}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":61},"generated":{"line":403,"column":70}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":62},"generated":{"line":403,"column":71}},{"source":"../graph-renderer.ts","name":null,"original":{"line":258,"column":39},"generated":{"line":403,"column":86}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":87}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":6},"generated":{"line":403,"column":89}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":10},"generated":{"line":403,"column":93}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":13},"generated":{"line":403,"column":96}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":20},"generated":{"line":403,"column":103}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":21},"generated":{"line":403,"column":104}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":13},"generated":{"line":403,"column":119}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":122}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":43},"generated":{"line":403,"column":126}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":44},"generated":{"line":403,"column":127}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":130}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":48},"generated":{"line":403,"column":131}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":51},"generated":{"line":403,"column":134}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":54},"generated":{"line":403,"column":137}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":61},"generated":{"line":403,"column":144}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":62},"generated":{"line":403,"column":145}},{"source":"../graph-renderer.ts","name":null,"original":{"line":259,"column":39},"generated":{"line":403,"column":160}},{"source":"../graph-renderer.ts","name":null,"original":{"line":257,"column":4},"generated":{"line":403,"column":161}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":7},"generated":{"line":404,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":8},"generated":{"line":404,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":15},"generated":{"line":404,"column":15}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":21},"generated":{"line":404,"column":21}},{"source":"../graph-renderer.ts","name":null,"original":{"line":261,"column":4},"generated":{"line":404,"column":25}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":7},"generated":{"line":405,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":8},"generated":{"line":405,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":262,"column":4},"generated":{"line":405,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":7},"generated":{"line":406,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":8},"generated":{"line":406,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":19}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":22},"generated":{"line":406,"column":22}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":29},"generated":{"line":406,"column":29}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":30},"generated":{"line":406,"column":30}},{"source":"../graph-renderer.ts","name":null,"original":{"line":264,"column":4},"generated":{"line":406,"column":43}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":7},"generated":{"line":407,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":8},"generated":{"line":407,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":17}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":20},"generated":{"line":407,"column":20}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":27},"generated":{"line":407,"column":27}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":28},"generated":{"line":407,"column":28}},{"source":"../graph-renderer.ts","name":null,"original":{"line":265,"column":4},"generated":{"line":407,"column":41}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":7},"generated":{"line":408,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":8},"generated":{"line":408,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":267,"column":4},"generated":{"line":408,"column":14}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":4}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":7},"generated":{"line":409,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":8},"generated":{"line":409,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":268,"column":4},"generated":{"line":409,"column":12}},{"source":"../graph-renderer.ts","name":null,"original":{"line":269,"column":3},"generated":{"line":410,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":220,"column":2},"generated":{"line":410,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":9}},{"source":"../graph-renderer.ts","name":null,"original":{"line":548,"column":0},"generated":{"line":412,"column":24}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":1}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":0},"generated":{"line":413,"column":3}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":0}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":7}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":8}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":23}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":26}},{"source":"../graph-renderer.ts","name":null,"original":{"line":23,"column":13},"generated":{"line":415,"column":41}}],"sources":{"../graph-renderer.ts":"import {\n GENode,\n GEEdge,\n GEGridType,\n GEShapes,\n GEShape,\n GEShapeName\n} from \"./types\";\nimport { GEState } from \"./state\";\nimport {\n intersectLineCircleCenter,\n intersectLineRectCenter,\n instersectLinePolygonCenter\n} from \"./intersections\";\n\nconst TEXT_ALIGN = \"center\";\nconst TEXT_BASELINE = \"middle\";\nconst LINE_CAP_ROUND = \"round\";\nconst LINE_CAP_SQUARE = \"square\";\n\nconst tmpPoint: [number, number] = [0, 0];\n\nexport class GEGraphRenderer {\n state: GEState;\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n\n constructor(view: GEState, canvas: HTMLCanvasElement) {\n this.state = view;\n this.canvas = canvas;\n this.ctx = canvas.getContext(\"2d\", { alpha: false });\n }\n\n requestDraw(): void {\n if (!this.state.isDrawing) {\n requestAnimationFrame(this.draw);\n }\n\n this.state.isDrawing = true;\n }\n\n draw = (): void => {\n this.state.isDrawing = false;\n\n this.drawBackground();\n\n this.ctx.transform(\n this.state.scale,\n 0,\n 0,\n this.state.scale,\n this.state.translateX,\n this.state.translateY\n );\n\n this.drawGraph();\n\n this.ctx.resetTransform();\n };\n\n drawBackground(): void {\n const { canvas, ctx } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n if (!options.showGrid) return;\n\n const lw = options.gridLineWidth * scale;\n const gap = options.gridGap * scale;\n\n const offsetX = (translateX % gap) - lw;\n const offsetY = (translateY % gap) - lw;\n\n ctx.strokeStyle = options.gridColor;\n ctx.lineWidth = lw;\n\n if (options.gridType === GEGridType.DOTS) {\n ctx.beginPath();\n\n for (let i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, offsetY);\n ctx.lineTo(i, canvas.height + lw);\n }\n\n ctx.lineCap = LINE_CAP_ROUND;\n ctx.setLineDash([0, gap]);\n ctx.stroke();\n ctx.setLineDash([0]);\n ctx.lineCap = LINE_CAP_SQUARE;\n } else {\n ctx.beginPath();\n\n for (let i = offsetX; i < canvas.width + lw; i += gap) {\n ctx.moveTo(i, 0);\n ctx.lineTo(i, canvas.height);\n }\n\n for (let i = offsetY; i < canvas.height + lw; i += gap) {\n ctx.moveTo(0, i);\n ctx.lineTo(canvas.width, i);\n }\n\n ctx.stroke();\n }\n }\n\n drawGraph(): void {\n const { nodes, edges, options } = this.state;\n\n const prevhoveredNode = this.state.hoveredNode;\n const prevhoveredEdge = this.state.hoveredEdge;\n\n this.state.hoveredNode = undefined;\n this.state.hoveredEdge = undefined;\n\n edges.forEach(this.drawEdge);\n this.drawDragLine();\n nodes.forEach(this.drawNode);\n\n // This event is done here because we are using canvas to check hover.\n // Please let me know if there is a better way.\n if (\n !this.state.isMovingNode() &&\n !this.state.isMovingView() &&\n (this.state.hoveredNode !== prevhoveredNode ||\n this.state.hoveredEdge !== prevhoveredEdge)\n ) {\n options.onHoverChange?.(\n this.state.hoveredNode,\n this.state.hoveredEdge,\n this.state.pointerViewX,\n this.state.pointerViewY,\n this.state.pointerCanvasX,\n this.state.pointerCanvasY,\n this.state.pointerScreenX,\n this.state.pointerScreenY\n );\n }\n }\n\n getShapeBound(shapes: GEShapes): number {\n const shape = shapes[0];\n\n if (shape.shape === GEShapeName.CIRCLE) return shape.r;\n if (shape.shape === GEShapeName.RECTANGLE)\n return Math.max(shape.width, shape.height);\n\n let r = 0;\n\n shape.points.forEach(p => {\n r = Math.max(r, Math.max(p[0], p[1]));\n });\n\n return r;\n }\n\n isNodeOutOfView(node: GENode): boolean {\n const { canvas } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n const r = this.getShapeBound(options.nodeTypes[node.type]);\n\n return (\n (node.x + r) * scale + translateX < 0 ||\n (node.y + r) * scale + translateY < 0 ||\n (node.x - r) * scale + translateX > canvas.width ||\n (node.y - r) * scale + translateY > canvas.height\n );\n }\n\n isEdgeOutOfView(edge: GEEdge): boolean {\n const { canvas } = this;\n const { translateX, translateY, scale, options } = this.state;\n\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n const sourceX = source.x * scale + translateX;\n const sourceY = source.y * scale + translateY;\n const targetX = target.x * scale + translateX;\n const targetY = target.y * scale + translateY;\n\n const r = this.getShapeBound(options.edgeTypes[edge.type]);\n\n return (\n (sourceX < -r && targetX < -r) ||\n (sourceY < -r && targetY < -r) ||\n (sourceX > canvas.width + r && targetX > canvas.width + r) ||\n (sourceY > canvas.height + r && targetY > canvas.height + r)\n );\n }\n\n shapePath = (x: number, y: number, shape: GEShape): void => {\n const { ctx } = this;\n\n if (shape.shape === GEShapeName.CIRCLE) {\n ctx.arc(x, y, shape.r, 0, Math.PI * 2);\n } else if (shape.shape === GEShapeName.RECTANGLE) {\n ctx.rect(\n x - shape.width * 0.5,\n y - shape.height * 0.5,\n shape.width,\n shape.height\n );\n } else {\n ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n for (let i = 1; i < shape.points.length; i++) {\n ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]);\n }\n\n ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]);\n\n ctx.closePath();\n }\n };\n\n drawDragLine(): void {\n if (!this.state.isCreatingEdge) return;\n\n const { ctx } = this;\n const { pointerViewX, pointerViewY, options } = this.state;\n\n const targetX = pointerViewX;\n const targetY = pointerViewY;\n\n const source = this.state.dragLineSourceNode;\n const dx = targetX - source.x;\n const dy = targetY - source.y;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n // calculate the start and end points of the line\n const startX = source.x;\n const startY = source.y;\n const endX = targetX - cosr * 3;\n const endY = targetY - sinr * 3;\n const edgeLineOffset =\n options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n const lineEndX = targetX - cosr * edgeLineOffset;\n const lineEndY = targetY - sinr * edgeLineOffset;\n\n ctx.lineWidth = options.edgeLineWidth;\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian)\n );\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian)\n );\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n\n ctx.stroke();\n ctx.fill();\n }\n\n getInstersectionPoint = (\n sourceX: number,\n sourceY: number,\n targetX: number,\n targetY: number,\n shape: GEShape\n ): [number, number] => {\n if (shape.shape === GEShapeName.CIRCLE) {\n const int = intersectLineCircleCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.r,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n } else if (shape.shape === GEShapeName.RECTANGLE) {\n const int = intersectLineRectCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.width,\n shape.height,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n } else {\n const int = instersectLinePolygonCenter(\n sourceX,\n sourceY,\n targetX,\n targetY,\n shape.points,\n tmpPoint\n );\n\n if (int) return tmpPoint;\n }\n\n return [targetX, targetY];\n };\n\n drawSubShapes = (shapes: GEShapes, x: number, y: number): void => {\n const { ctx } = this;\n const { options } = this.state;\n\n if (shapes.length <= 1) return;\n\n for (let i = 1; i < shapes.length; i++) {\n const sh = shapes[i];\n\n ctx.beginPath();\n this.shapePath(x, y, sh);\n\n ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor;\n ctx.fill();\n }\n };\n\n drawSelectedShape = (\n shape: GEShape,\n x: number,\n y: number,\n color: string\n ): void => {\n const { ctx } = this;\n\n ctx.beginPath();\n this.shapePath(x, y, shape);\n ctx.fillStyle = color;\n ctx.globalAlpha = 0.8;\n ctx.fill();\n ctx.globalAlpha = 1.0;\n };\n\n drawNode = (node: GENode): void => {\n if (this.isNodeOutOfView(node)) return;\n\n const { ctx } = this;\n const {\n pointerCanvasX,\n pointerCanvasY,\n options,\n moveNodeX,\n moveNodeY,\n selectedNode\n } = this.state;\n\n const isMovingNode = this.state.isMovingNode() && selectedNode === node;\n const x = isMovingNode ? moveNodeX : node.x;\n const y = isMovingNode ? moveNodeY : node.y;\n\n const shapes = options.nodeTypes[node.type];\n\n ctx.strokeStyle = options.nodeStrokeColor;\n ctx.lineWidth = options.nodeLineWidth;\n\n ctx.beginPath();\n this.shapePath(x, y, shapes[0]);\n\n if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) {\n this.state.hoveredNode = node;\n }\n\n const selected = node === this.state.selectedNode;\n const hovered = node === this.state.hoveredNode;\n\n ctx.strokeStyle =\n selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor;\n ctx.fillStyle = shapes[0].color || options.nodeColor;\n\n ctx.fill();\n ctx.stroke();\n\n this.drawSubShapes(shapes, x, y);\n\n if (selected) {\n this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor);\n }\n\n if (selected) {\n ctx.fillStyle = options.nodeSelectedTextColor;\n } else {\n ctx.fillStyle = options.nodeTextColor;\n }\n\n ctx.font = options.nodeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n\n ctx.fillText(node.text, x, y);\n };\n\n drawEdge = (edge: GEEdge): void => {\n if (this.isEdgeOutOfView(edge)) return;\n\n const { ctx } = this;\n const {\n pointerCanvasX,\n pointerCanvasY,\n options,\n selectedNode,\n moveNodeX,\n moveNodeY\n } = this.state;\n\n const source = edge.sourceNode;\n const target = edge.targetNode;\n\n const isMovingSourceNode =\n this.state.isMovingNode() && source === selectedNode;\n\n const sourceX = isMovingSourceNode ? moveNodeX : source.x;\n const sourceY = isMovingSourceNode ? moveNodeY : source.y;\n\n const isMovingTargetNode =\n this.state.isMovingNode() && target === selectedNode;\n\n const targetX = isMovingTargetNode ? moveNodeX : target.x;\n const targetY = isMovingTargetNode ? moveNodeY : target.y;\n\n const dx = targetX - sourceX;\n const dy = targetY - sourceY;\n\n const rad = Math.atan2(dy, dx);\n const sinr = Math.sin(rad);\n const cosr = Math.cos(rad);\n\n // calculate the start and end points of the line\n const [startX, startY] = this.getInstersectionPoint(\n targetX,\n targetY,\n sourceX,\n sourceY,\n options.nodeTypes[source.type][0]\n );\n const [endX0, endY0] = this.getInstersectionPoint(\n sourceX,\n sourceY,\n targetX,\n targetY,\n options.nodeTypes[target.type][0]\n );\n\n const endX = endX0 - cosr * 3;\n const endY = endY0 - sinr * 3;\n const edgeLineOffset =\n options.edgeArrowLength * Math.cos(options.edgeArrowRadian);\n const lineEndX = endX - cosr * edgeLineOffset;\n const lineEndY = endY - sinr * edgeLineOffset;\n\n ctx.lineWidth = options.edgeLineWidth;\n\n const midX = (startX + endX) * 0.5;\n const midY = (startY + endY) * 0.5;\n\n // this is just to check if the rect is hovered\n ctx.beginPath();\n this.shapePath(midX, midY, options.edgeTypes[edge.type][0]);\n\n if (\n ctx.isPointInPath(pointerCanvasX, pointerCanvasY) ||\n ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)\n ) {\n this.state.hoveredEdge = edge;\n }\n\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(lineEndX, lineEndY);\n ctx.moveTo(endX, endY);\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian)\n );\n ctx.lineTo(\n endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian),\n endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian)\n );\n ctx.lineTo(endX, endY);\n ctx.closePath();\n\n if (\n ctx.isPointInPath(pointerCanvasX, pointerCanvasY) ||\n ctx.isPointInStroke(pointerCanvasX, pointerCanvasY)\n ) {\n this.state.hoveredEdge = edge;\n }\n\n const selected = edge === this.state.selectedEdge;\n const hovered = edge === this.state.hoveredEdge;\n const shapes = options.edgeTypes[edge.type];\n\n if (selected || hovered) {\n ctx.strokeStyle = options.edgeLineSelectedColor;\n ctx.fillStyle = options.edgeLineSelectedColor;\n } else {\n ctx.strokeStyle = options.edgeLineColor;\n ctx.fillStyle = options.edgeLineColor;\n }\n\n ctx.stroke();\n ctx.fill();\n\n ctx.beginPath();\n this.shapePath(midX, midY, shapes[0]);\n\n ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor;\n\n ctx.fill();\n ctx.stroke();\n\n this.drawSubShapes(shapes, midX, midY);\n\n if (selected) {\n this.drawSelectedShape(\n shapes[0],\n midX,\n midY,\n options.edgeLineSelectedColor\n );\n }\n\n if (selected) {\n ctx.fillStyle = options.edgeSelectedTextColor;\n } else {\n ctx.fillStyle = options.edgeTextColor;\n }\n ctx.font = options.edgeTextStyle;\n ctx.textAlign = TEXT_ALIGN;\n ctx.textBaseline = TEXT_BASELINE;\n ctx.fillText(edge.text, midX, midY);\n };\n}\n"},"lineCount":null}},"error":null,"hash":"6e8cb052b4f82ded399e7fbb18f91580","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.cache/ff/924b57b58436315cf5fc93aa4d4655.json b/.cache/ff/924b57b58436315cf5fc93aa4d4655.json deleted file mode 100644 index 83bc5a8..0000000 --- a/.cache/ff/924b57b58436315cf5fc93aa4d4655.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","dependencies":[{"name":"/Users/hartonochandra/try/web-digraph/package.json","includedInParent":true,"mtime":1602557913945},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/package.json","includedInParent":true,"mtime":1600499232685},{"name":"/Users/hartonochandra/try/web-digraph/node_modules/parcel-bundler/src/.babelrc","includedInParent":true,"mtime":499162500000}],"generated":{"js":"var bundleURL = null;\n\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error();\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;"},"sourceMaps":{"js":{"mappings":[{"generated":{"line":1,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":0}},{"name":"bundleURL","generated":{"line":1,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":4}},{"generated":{"line":1,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":13}},{"generated":{"line":1,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":16}},{"generated":{"line":1,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":1,"column":0}},{"generated":{"line":3,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":0}},{"name":"getBundleURLCached","generated":{"line":3,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":9}},{"generated":{"line":3,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":0}},{"generated":{"line":3,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":2,"column":30}},{"generated":{"line":4,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":2}},{"generated":{"line":4,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":6}},{"name":"bundleURL","generated":{"line":4,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":7}},{"generated":{"line":4,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":2}},{"generated":{"line":4,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":3,"column":18}},{"name":"bundleURL","generated":{"line":5,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"name":"bundleURL","generated":{"line":5,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"generated":{"line":5,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":13}},{"name":"getBundleURL","generated":{"line":5,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":16}},{"generated":{"line":5,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":28}},{"generated":{"line":5,"column":30},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":4,"column":4}},{"generated":{"line":6,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":5,"column":3}},{"generated":{"line":8,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":2}},{"name":"bundleURL","generated":{"line":8,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":9}},{"generated":{"line":8,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":7,"column":2}},{"generated":{"line":9,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":8,"column":1}},{"generated":{"line":11,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":0}},{"name":"getBundleURL","generated":{"line":11,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":9}},{"generated":{"line":11,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":0}},{"generated":{"line":11,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":10,"column":24}},{"generated":{"line":12,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":11,"column":2}},{"generated":{"line":13,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":2}},{"generated":{"line":13,"column":6},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":6}},{"generated":{"line":14,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":4}},{"generated":{"line":14,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":10}},{"name":"Error","generated":{"line":14,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":14}},{"generated":{"line":14,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":10}},{"generated":{"line":14,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":13,"column":4}},{"generated":{"line":15,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":3}},{"generated":{"line":15,"column":3},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":12,"column":2}},{"generated":{"line":15,"column":4},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":4}},{"name":"err","generated":{"line":15,"column":11},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":11}},{"generated":{"line":15,"column":14},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":4}},{"generated":{"line":15,"column":16},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":14,"column":16}},{"generated":{"line":16,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":4}},{"name":"matches","generated":{"line":16,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":8}},{"generated":{"line":16,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":15}},{"generated":{"line":16,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":19}},{"name":"err","generated":{"line":16,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":24}},{"generated":{"line":16,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":27}},{"name":"stack","generated":{"line":16,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":28}},{"generated":{"line":16,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"name":"match","generated":{"line":16,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":35}},{"generated":{"line":16,"column":40},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":41}},{"generated":{"line":16,"column":104},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":18}},{"generated":{"line":16,"column":105},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":15,"column":4}},{"generated":{"line":18,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":4}},{"name":"matches","generated":{"line":18,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":8}},{"generated":{"line":18,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":4}},{"generated":{"line":18,"column":17},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":16,"column":17}},{"generated":{"line":19,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":6}},{"name":"getBaseURL","generated":{"line":19,"column":13},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":13}},{"generated":{"line":19,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":23}},{"name":"matches","generated":{"line":19,"column":24},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":24}},{"generated":{"line":19,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":31}},{"generated":{"line":19,"column":32},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":32}},{"generated":{"line":19,"column":33},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":31}},{"generated":{"line":19,"column":34},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":23}},{"generated":{"line":19,"column":35},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":17,"column":6}},{"generated":{"line":20,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":18,"column":5}},{"generated":{"line":21,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":19,"column":3}},{"generated":{"line":23,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":2}},{"generated":{"line":23,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":9}},{"generated":{"line":23,"column":12},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":21,"column":2}},{"generated":{"line":24,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":22,"column":1}},{"generated":{"line":26,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"name":"getBaseURL","generated":{"line":26,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":9}},{"generated":{"line":26,"column":19},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"name":"url","generated":{"line":26,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":20}},{"generated":{"line":26,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":0}},{"generated":{"line":26,"column":25},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":24,"column":25}},{"generated":{"line":27,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":2}},{"generated":{"line":27,"column":9},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":10},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":10}},{"name":"url","generated":{"line":27,"column":15},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":15}},{"generated":{"line":27,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"name":"replace","generated":{"line":27,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":20}},{"generated":{"line":27,"column":27},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":28},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":28}},{"generated":{"line":27,"column":98},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":100},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":100}},{"generated":{"line":27,"column":104},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":9}},{"generated":{"line":27,"column":108},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":108}},{"generated":{"line":27,"column":111},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":25,"column":2}},{"generated":{"line":28,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":26,"column":1}},{"name":"exports","generated":{"line":30,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"generated":{"line":30,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":7}},{"name":"getBundleURL","generated":{"line":30,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":8}},{"generated":{"line":30,"column":20},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"name":"getBundleURLCached","generated":{"line":30,"column":23},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":23}},{"generated":{"line":30,"column":41},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":28,"column":0}},{"name":"exports","generated":{"line":31,"column":0},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}},{"generated":{"line":31,"column":7},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":7}},{"name":"getBaseURL","generated":{"line":31,"column":8},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":8}},{"generated":{"line":31,"column":18},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}},{"name":"getBaseURL","generated":{"line":31,"column":21},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":21}},{"generated":{"line":31,"column":31},"source":"../../node_modules/parcel-bundler/src/builtins/bundle-url.js","original":{"line":29,"column":0}}],"sources":{"../../node_modules/parcel-bundler/src/builtins/bundle-url.js":"var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)\\/[^/]+$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n"},"lineCount":null}},"error":null,"hash":"a5ff7569d8532d9c686dfdf18e9f1ffa","cacheData":{"env":{}}} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8043296..751d046 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ dist-ssr *.local *.log coverage -docs \ No newline at end of file +docs +.cache \ No newline at end of file From 2dacfe82cb929ae55e69507eb61d530afa73664e Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 6 Apr 2022 22:34:44 +0700 Subject: [PATCH 06/56] initial, draw background --- .vscode/settings.json | 3 +- {src/example => example}/index.css | 0 example/index.html | 75 +++ example/index.ts | 127 ++++ {src/example => example}/node-types.ts | 2 +- example/old/event-handler.ts | 197 ++++++ example/old/graph-renderer.ts | 548 ++++++++++++++++ example/old/graph-view-old.ts | 120 ++++ example/old/index.ts | 2 + example/old/intersections.ts | 152 +++++ example/old/old-example/index.css | 59 ++ example/old/old-example/index.html | 96 +++ .../old/old-example}/index.ts | 2 +- example/old/old-example/node-types.ts | 76 +++ .../old/old-example}/utils.ts | 2 +- example/old/state.ts | 151 +++++ example/old/types.ts | 115 ++++ example/tsconfig.json | 31 + example/utils.ts | 68 ++ package-lock.json | 41 ++ package.json | 7 +- src/event-handler.ts | 249 +++----- src/example/index.html | 38 -- src/graph-renderer.ts | 585 ++---------------- src/graph-state.ts | 3 + src/graph-view-old.ts | 120 ++++ src/graph-view.ts | 177 +++--- src/index.ts | 2 +- src/types.ts | 32 + src/utils.ts | 45 ++ vite.config.js | 13 + 31 files changed, 2327 insertions(+), 811 deletions(-) rename {src/example => example}/index.css (100%) create mode 100644 example/index.html create mode 100644 example/index.ts rename {src/example => example}/node-types.ts (94%) create mode 100644 example/old/event-handler.ts create mode 100644 example/old/graph-renderer.ts create mode 100644 example/old/graph-view-old.ts create mode 100644 example/old/index.ts create mode 100644 example/old/intersections.ts create mode 100644 example/old/old-example/index.css create mode 100644 example/old/old-example/index.html rename {src/example => example/old/old-example}/index.ts (98%) create mode 100644 example/old/old-example/node-types.ts rename {src/example => example/old/old-example}/utils.ts (96%) create mode 100644 example/old/state.ts create mode 100644 example/old/types.ts create mode 100644 example/tsconfig.json create mode 100644 example/utils.ts delete mode 100644 src/example/index.html create mode 100644 src/graph-state.ts create mode 100644 src/graph-view-old.ts create mode 100644 src/utils.ts create mode 100644 vite.config.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 222d7e5..57b1053 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,6 @@ "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, - "eslint.validate": ["javascript", "typescript"] + "eslint.validate": ["javascript", "typescript"], + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/src/example/index.css b/example/index.css similarity index 100% rename from src/example/index.css rename to example/index.css diff --git a/example/index.html b/example/index.html new file mode 100644 index 0000000..4de6d49 --- /dev/null +++ b/example/index.html @@ -0,0 +1,75 @@ + + + + + + + + + web-digraph example + + + + + +
+
+ +
+
+ +
+ +
+ + + +
+ +
+
+ Node count: + 0 +
+ +
+ Edge count: + 0 +
+
+
+ +
+
+ Press and hold shift, and then click on empty place to create a new + node. +
+ +
+ Press and hold shift, and then click and drag a node to another node + to create a new edge. +
+
+
+ + + + diff --git a/example/index.ts b/example/index.ts new file mode 100644 index 0000000..53ee79c --- /dev/null +++ b/example/index.ts @@ -0,0 +1,127 @@ +import { randomize } from "./utils"; +import { + GraphNode, + GraphEdge, + GraphView, + initDefaultGraphEvents, + createGraphView +} from "../src"; + +const graphDiv = document.getElementById("graph") as HTMLDivElement; +const nodeCountSpan = document.getElementById("node-count-span"); +const edgeCountSpan = document.getElementById("edge-count-span"); +const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; +const generateTextbox = document.getElementById( + "generate-textbox" +) as HTMLInputElement; +const generateButton = document.getElementById("generate-button"); + +const nodes: GraphNode[] = []; +const edges: GraphEdge[] = []; +const lastId = 0; + +const graphView = createGraphView(graphDiv); +initDefaultGraphEvents(graphView); + +// graphView.requestDraw(); + +// function updateNodeCount(): void { +// if (!nodeCountSpan) return; + +// nodeCountSpan.innerHTML = nodes.length.toString(); +// } + +// function updateEdgeCount(): void { +// if (!edgeCountSpan) return; + +// edgeCountSpan.innerHTML = edges.length.toString(); +// } + +// function handleCreateNode(x: number, y: number) { +// lastId += 1; + +// const newNode: GENode = { +// id: lastId, +// x, +// y, +// type: "empty", +// text: `Node ID: ${lastId}` +// }; + +// nodes = [...nodes, newNode]; +// graphView.setData(nodes, edges); + +// updateNodeCount(); +// } + +// function handleCreateEdge(sourceNode: GENode, targetNode: GENode) { +// lastId += 1; + +// const newEdge: GEEdge = { +// id: lastId, +// sourceNode, +// targetNode, +// type: "normal", +// text: lastId.toString() +// }; + +// edges = [...edges, newEdge]; +// graphView.setData(nodes, edges); + +// updateEdgeCount(); +// } + +// function handleDeleteNode(node: GENode) { +// nodes = nodes.filter(n => n !== node); +// edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node); + +// graphView.setData(nodes, edges); + +// updateNodeCount(); +// updateEdgeCount(); +// } + +// function handleDeleteEdge(edge: GEEdge) { +// edges = edges.filter(e => e.id !== edge.id); + +// graphView.setData(nodes, edges); + +// updateEdgeCount(); +// } + +// function handleMoveNode(node: GENode, newX: number, newY: number) { +// node.x = newX; +// node.y = newY; +// } + +// function handleViewZoom() { +// zoomSlider.value = graphView.getScale().toString(); +// } + +// window.addEventListener("resize", () => { +// graphView.resize(window.innerWidth, window.innerHeight); +// }); + +// zoomSlider.addEventListener("input", e => { +// const target = e.target as HTMLInputElement; + +// graphView.zoomTo(Number(target.value)); +// }); + +// if (generateButton) { +// generateButton.addEventListener("click", () => { +// const value = parseInt(generateTextbox.value, 10); +// const columns = Math.ceil(Math.sqrt(value)); + +// const r = randomize(value, columns); + +// lastId = r.lastId; +// nodes = r.nodes; +// edges = r.edges; + +// graphView.setData(r.nodes, r.edges); + +// updateNodeCount(); +// updateEdgeCount(); +// }); +// } diff --git a/src/example/node-types.ts b/example/node-types.ts similarity index 94% rename from src/example/node-types.ts rename to example/node-types.ts index f432095..fe2d324 100644 --- a/src/example/node-types.ts +++ b/example/node-types.ts @@ -1,4 +1,4 @@ -import { GEShapeTypes, GEShapeName } from "../types"; +import { GEShapeTypes, GEShapeName } from "../src/types"; export const nodeTypes: GEShapeTypes = { empty: [ diff --git a/example/old/event-handler.ts b/example/old/event-handler.ts new file mode 100644 index 0000000..b92d1b1 --- /dev/null +++ b/example/old/event-handler.ts @@ -0,0 +1,197 @@ +import { GEState } from "./state"; +import { GEGraphRenderer } from "./graph-renderer"; + +export class GEEventHandler { + state: GEState; + canvas: HTMLCanvasElement; + renderer: GEGraphRenderer; + + constructor( + view: GEState, + canvas: HTMLCanvasElement, + renderer: GEGraphRenderer + ) { + this.state = view; + this.canvas = canvas; + this.renderer = renderer; + } + + init(): void { + this.canvas.addEventListener("mousedown", this.handleMouseDown, { + passive: true + }); + window.addEventListener("mouseup", this.handleMouseUp, { passive: true }); + window.addEventListener("mousemove", this.handleMouseMove, { + passive: true + }); + window.addEventListener("keydown", this.handleKeyDown, { passive: true }); + window.addEventListener("keyup", this.handleKeyUp, { passive: true }); + this.canvas.addEventListener("wheel", this.handleCanvasWheel, { + passive: false + }); + } + + destroy(): void { + this.canvas.removeEventListener("mousedown", this.handleMouseDown); + window.removeEventListener("mouseup", this.handleMouseUp); + window.removeEventListener("mousemove", this.handleMouseMove); + window.removeEventListener("keydown", this.handleKeyDown); + window.removeEventListener("keyup", this.handleKeyUp); + this.canvas.removeEventListener("wheel", this.handleCanvasWheel); + } + + handleMouseDown = (evt: MouseEvent): void => { + this.state.setPointerPosition(evt.clientX, evt.clientY); + + this.state.isDragging = true; + + if ( + this.state.selectedNode !== this.state.hoveredNode || + this.state.selectedEdge !== this.state.hoveredEdge + ) { + this.state.selectedNode = this.state.hoveredNode; + this.state.selectedEdge = this.state.hoveredEdge; + + this.state.options.onSelectionChange?.( + this.state.selectedNode, + this.state.selectedEdge + ); + } + + if (this.state.selectedNode) { + const node = this.state.selectedNode; + + if (this.state.isShiftDown) { + this.state.isCreatingEdge = true; + this.state.dragLineSourceNode = node; + this.state.dragLineTargetX = node.x; + this.state.dragLineTargetY = node.y; + } else { + this.state.moveNodeX = node.x; + this.state.moveNodeY = node.y; + } + } + + this.renderer.requestDraw(); + }; + + handleMouseMove = (evt: MouseEvent): void => { + this.state.setPointerPosition(evt.clientX, evt.clientY); + + if (this.state.isMovingNode()) { + this.state.moveNodeX += evt.movementX / this.state.scale; + this.state.moveNodeY += evt.movementY / this.state.scale; + } else if (this.state.isMovingView()) { + this.state.translateX += evt.movementX; + this.state.translateY += evt.movementY; + } + + this.renderer.requestDraw(); + this.updateCursorStyle(); + }; + + handleMouseUp = (evt: MouseEvent): void => { + this.state.setPointerPosition(evt.clientX, evt.clientY); + + if ( + this.state.isCreatingEdge && + this.state.hoveredNode && + this.state.hoveredNode !== this.state.dragLineSourceNode + ) { + const sourceNode = this.state.dragLineSourceNode; + const targetNode = this.state.hoveredNode; + + this.state.options.onCreateEdge?.(sourceNode, targetNode, evt); + } else if ( + this.state.isShiftDown && + !this.state.isCreatingEdge && + !this.state.hoveredNode && + !this.state.hoveredEdge + ) { + this.state.options.onCreateNode?.( + this.state.pointerViewX, + this.state.pointerViewY, + evt + ); + } else if (this.state.isMovingNode()) { + const node = this.state.selectedNode; + + this.state.options.onMoveNode?.( + node, + this.state.moveNodeX, + this.state.moveNodeY + ); + } + + this.state.isDragging = false; + this.state.isCreatingEdge = false; + + this.renderer.requestDraw(); + }; + + updateCursorStyle = (): void => { + const { options } = this.state; + + if (this.state.hoveredNode || this.state.hoveredEdge) { + this.canvas.style.cursor = options.cursorPointer; + } else if (!this.state.isShiftDown) { + this.canvas.style.cursor = options.cursorGrab; + } else { + this.canvas.style.cursor = options.cursorCrosshair; + } + }; + + handleKeyDown = (evt: KeyboardEvent): void => { + if (evt.key === "Shift" || evt.keyCode === 16) { + this.state.isShiftDown = true; + this.updateCursorStyle(); + } + + if ( + evt.key === "Backspace" || + evt.keyCode === 8 || + evt.key === "Delete" || + evt.keyCode === 46 + ) { + if (this.state.selectedNode) { + const node = this.state.selectedNode; + + this.state.options.onDeleteNode?.(node); + this.state.selectedNode = undefined; + } + + if (this.state.selectedEdge) { + const edge = this.state.selectedEdge; + const source = edge.sourceNode; + const target = edge.targetNode; + + this.state.options.onDeleteEdge?.(edge, source, target); + this.state.selectedEdge = undefined; + } + + this.renderer.requestDraw(); + this.updateCursorStyle(); + } + }; + + handleKeyUp = (evt: KeyboardEvent): void => { + if (evt.key === "Shift" || evt.keyCode === 16) { + this.state.isShiftDown = false; + this.updateCursorStyle(); + } + }; + + handleCanvasWheel = (evt: WheelEvent): void => { + evt.preventDefault(); + + this.state.zoomTo( + this.state.scale - evt.deltaY * 0.001, + this.state.pointerViewX, + this.state.pointerViewY + ); + + this.state.options.onViewZoom?.(); + + this.renderer.requestDraw(); + }; +} diff --git a/example/old/graph-renderer.ts b/example/old/graph-renderer.ts new file mode 100644 index 0000000..93940a3 --- /dev/null +++ b/example/old/graph-renderer.ts @@ -0,0 +1,548 @@ +import { + GENode, + GEEdge, + GEGridType, + GEShapes, + GEShape, + GEShapeName +} from "./types"; +import { GEState } from "./state"; +import { + intersectLineCircleCenter, + intersectLineRectCenter, + instersectLinePolygonCenter +} from "./intersections"; + +const TEXT_ALIGN = "center"; +const TEXT_BASELINE = "middle"; +const LINE_CAP_ROUND = "round"; +const LINE_CAP_SQUARE = "square"; + +const tmpPoint: [number, number] = [0, 0]; + +export class GEGraphRenderer { + state: GEState; + canvas: HTMLCanvasElement; + ctx: CanvasRenderingContext2D; + + constructor(view: GEState, canvas: HTMLCanvasElement) { + this.state = view; + this.canvas = canvas; + this.ctx = canvas.getContext("2d", { alpha: false }); + } + + requestDraw(): void { + if (!this.state.isDrawing) { + requestAnimationFrame(this.draw); + } + + this.state.isDrawing = true; + } + + draw = (): void => { + this.state.isDrawing = false; + + this.drawBackground(); + + this.ctx.transform( + this.state.scale, + 0, + 0, + this.state.scale, + this.state.translateX, + this.state.translateY + ); + + this.drawGraph(); + + this.ctx.resetTransform(); + }; + + drawBackground(): void { + const { canvas, ctx } = this; + const { translateX, translateY, scale, options } = this.state; + + ctx.fillStyle = options.backgroundColor; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + if (!options.showGrid) return; + + const lw = options.gridLineWidth * scale; + const gap = options.gridGap * scale; + + const offsetX = (translateX % gap) - lw; + const offsetY = (translateY % gap) - lw; + + ctx.strokeStyle = options.gridColor; + ctx.lineWidth = lw; + + if (options.gridType === GEGridType.DOTS) { + ctx.beginPath(); + + for (let i = offsetX; i < canvas.width + lw; i += gap) { + ctx.moveTo(i, offsetY); + ctx.lineTo(i, canvas.height + lw); + } + + ctx.lineCap = LINE_CAP_ROUND; + ctx.setLineDash([0, gap]); + ctx.stroke(); + ctx.setLineDash([0]); + ctx.lineCap = LINE_CAP_SQUARE; + } else { + ctx.beginPath(); + + for (let i = offsetX; i < canvas.width + lw; i += gap) { + ctx.moveTo(i, 0); + ctx.lineTo(i, canvas.height); + } + + for (let i = offsetY; i < canvas.height + lw; i += gap) { + ctx.moveTo(0, i); + ctx.lineTo(canvas.width, i); + } + + ctx.stroke(); + } + } + + drawGraph(): void { + const { nodes, edges, options } = this.state; + + const prevhoveredNode = this.state.hoveredNode; + const prevhoveredEdge = this.state.hoveredEdge; + + this.state.hoveredNode = undefined; + this.state.hoveredEdge = undefined; + + edges.forEach(this.drawEdge); + this.drawDragLine(); + nodes.forEach(this.drawNode); + + // This event is done here because we are using canvas to check hover. + // Please let me know if there is a better way. + if ( + !this.state.isMovingNode() && + !this.state.isMovingView() && + (this.state.hoveredNode !== prevhoveredNode || + this.state.hoveredEdge !== prevhoveredEdge) + ) { + options.onHoverChange?.( + this.state.hoveredNode, + this.state.hoveredEdge, + this.state.pointerViewX, + this.state.pointerViewY, + this.state.pointerCanvasX, + this.state.pointerCanvasY, + this.state.pointerScreenX, + this.state.pointerScreenY + ); + } + } + + getShapeBound(shapes: GEShapes): number { + const shape = shapes[0]; + + if (shape.shape === GEShapeName.CIRCLE) return shape.r; + if (shape.shape === GEShapeName.RECTANGLE) + return Math.max(shape.width, shape.height); + + let r = 0; + + shape.points.forEach(p => { + r = Math.max(r, Math.max(p[0], p[1])); + }); + + return r; + } + + isNodeOutOfView(node: GENode): boolean { + const { canvas } = this; + const { translateX, translateY, scale, options } = this.state; + + const r = this.getShapeBound(options.nodeTypes[node.type]); + + return ( + (node.x + r) * scale + translateX < 0 || + (node.y + r) * scale + translateY < 0 || + (node.x - r) * scale + translateX > canvas.width || + (node.y - r) * scale + translateY > canvas.height + ); + } + + isEdgeOutOfView(edge: GEEdge): boolean { + const { canvas } = this; + const { translateX, translateY, scale, options } = this.state; + + const source = edge.sourceNode; + const target = edge.targetNode; + + const sourceX = source.x * scale + translateX; + const sourceY = source.y * scale + translateY; + const targetX = target.x * scale + translateX; + const targetY = target.y * scale + translateY; + + const r = this.getShapeBound(options.edgeTypes[edge.type]); + + return ( + (sourceX < -r && targetX < -r) || + (sourceY < -r && targetY < -r) || + (sourceX > canvas.width + r && targetX > canvas.width + r) || + (sourceY > canvas.height + r && targetY > canvas.height + r) + ); + } + + shapePath = (x: number, y: number, shape: GEShape): void => { + const { ctx } = this; + + if (shape.shape === GEShapeName.CIRCLE) { + ctx.arc(x, y, shape.r, 0, Math.PI * 2); + } else if (shape.shape === GEShapeName.RECTANGLE) { + ctx.rect( + x - shape.width * 0.5, + y - shape.height * 0.5, + shape.width, + shape.height + ); + } else { + ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]); + + for (let i = 1; i < shape.points.length; i++) { + ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]); + } + + ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]); + + ctx.closePath(); + } + }; + + drawDragLine(): void { + if (!this.state.isCreatingEdge) return; + + const { ctx } = this; + const { pointerViewX, pointerViewY, options } = this.state; + + const targetX = pointerViewX; + const targetY = pointerViewY; + + const source = this.state.dragLineSourceNode; + const dx = targetX - source.x; + const dy = targetY - source.y; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + // calculate the start and end points of the line + const startX = source.x; + const startY = source.y; + const endX = targetX - cosr * 3; + const endY = targetY - sinr * 3; + const edgeLineOffset = + options.edgeArrowLength * Math.cos(options.edgeArrowRadian); + const lineEndX = targetX - cosr * edgeLineOffset; + const lineEndY = targetY - sinr * edgeLineOffset; + + ctx.lineWidth = options.edgeLineWidth; + + ctx.beginPath(); + ctx.moveTo(startX, startY); + ctx.lineTo(lineEndX, lineEndY); + ctx.moveTo(endX, endY); + ctx.lineTo( + endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), + endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) + ); + ctx.lineTo( + endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), + endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) + ); + ctx.lineTo(endX, endY); + ctx.closePath(); + + ctx.strokeStyle = options.edgeLineColor; + ctx.fillStyle = options.edgeLineColor; + + ctx.stroke(); + ctx.fill(); + } + + getInstersectionPoint = ( + sourceX: number, + sourceY: number, + targetX: number, + targetY: number, + shape: GEShape + ): [number, number] => { + if (shape.shape === GEShapeName.CIRCLE) { + const int = intersectLineCircleCenter( + sourceX, + sourceY, + targetX, + targetY, + shape.r, + tmpPoint + ); + + if (int) return tmpPoint; + } else if (shape.shape === GEShapeName.RECTANGLE) { + const int = intersectLineRectCenter( + sourceX, + sourceY, + targetX, + targetY, + shape.width, + shape.height, + tmpPoint + ); + + if (int) return tmpPoint; + } else { + const int = instersectLinePolygonCenter( + sourceX, + sourceY, + targetX, + targetY, + shape.points, + tmpPoint + ); + + if (int) return tmpPoint; + } + + return [targetX, targetY]; + }; + + drawSubShapes = (shapes: GEShapes, x: number, y: number): void => { + const { ctx } = this; + const { options } = this.state; + + if (shapes.length <= 1) return; + + for (let i = 1; i < shapes.length; i++) { + const sh = shapes[i]; + + ctx.beginPath(); + this.shapePath(x, y, sh); + + ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor; + ctx.fill(); + } + }; + + drawSelectedShape = ( + shape: GEShape, + x: number, + y: number, + color: string + ): void => { + const { ctx } = this; + + ctx.beginPath(); + this.shapePath(x, y, shape); + ctx.fillStyle = color; + ctx.globalAlpha = 0.8; + ctx.fill(); + ctx.globalAlpha = 1.0; + }; + + drawNode = (node: GENode): void => { + if (this.isNodeOutOfView(node)) return; + + const { ctx } = this; + const { + pointerCanvasX, + pointerCanvasY, + options, + moveNodeX, + moveNodeY, + selectedNode + } = this.state; + + const isMovingNode = this.state.isMovingNode() && selectedNode === node; + const x = isMovingNode ? moveNodeX : node.x; + const y = isMovingNode ? moveNodeY : node.y; + + const shapes = options.nodeTypes[node.type]; + + ctx.strokeStyle = options.nodeStrokeColor; + ctx.lineWidth = options.nodeLineWidth; + + ctx.beginPath(); + this.shapePath(x, y, shapes[0]); + + if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) { + this.state.hoveredNode = node; + } + + const selected = node === this.state.selectedNode; + const hovered = node === this.state.hoveredNode; + + ctx.strokeStyle = + selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor; + ctx.fillStyle = shapes[0].color || options.nodeColor; + + ctx.fill(); + ctx.stroke(); + + this.drawSubShapes(shapes, x, y); + + if (selected) { + this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor); + } + + if (selected) { + ctx.fillStyle = options.nodeSelectedTextColor; + } else { + ctx.fillStyle = options.nodeTextColor; + } + + ctx.font = options.nodeTextStyle; + ctx.textAlign = TEXT_ALIGN; + ctx.textBaseline = TEXT_BASELINE; + + ctx.fillText(node.text, x, y); + }; + + drawEdge = (edge: GEEdge): void => { + if (this.isEdgeOutOfView(edge)) return; + + const { ctx } = this; + const { + pointerCanvasX, + pointerCanvasY, + options, + selectedNode, + moveNodeX, + moveNodeY + } = this.state; + + const source = edge.sourceNode; + const target = edge.targetNode; + + const isMovingSourceNode = + this.state.isMovingNode() && source === selectedNode; + + const sourceX = isMovingSourceNode ? moveNodeX : source.x; + const sourceY = isMovingSourceNode ? moveNodeY : source.y; + + const isMovingTargetNode = + this.state.isMovingNode() && target === selectedNode; + + const targetX = isMovingTargetNode ? moveNodeX : target.x; + const targetY = isMovingTargetNode ? moveNodeY : target.y; + + const dx = targetX - sourceX; + const dy = targetY - sourceY; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + // calculate the start and end points of the line + const [startX, startY] = this.getInstersectionPoint( + targetX, + targetY, + sourceX, + sourceY, + options.nodeTypes[source.type][0] + ); + const [endX0, endY0] = this.getInstersectionPoint( + sourceX, + sourceY, + targetX, + targetY, + options.nodeTypes[target.type][0] + ); + + const endX = endX0 - cosr * 3; + const endY = endY0 - sinr * 3; + const edgeLineOffset = + options.edgeArrowLength * Math.cos(options.edgeArrowRadian); + const lineEndX = endX - cosr * edgeLineOffset; + const lineEndY = endY - sinr * edgeLineOffset; + + ctx.lineWidth = options.edgeLineWidth; + + const midX = (startX + endX) * 0.5; + const midY = (startY + endY) * 0.5; + + // this is just to check if the rect is hovered + ctx.beginPath(); + this.shapePath(midX, midY, options.edgeTypes[edge.type][0]); + + if ( + ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || + ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) + ) { + this.state.hoveredEdge = edge; + } + + ctx.beginPath(); + ctx.moveTo(startX, startY); + ctx.lineTo(lineEndX, lineEndY); + ctx.moveTo(endX, endY); + ctx.lineTo( + endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), + endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) + ); + ctx.lineTo( + endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), + endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) + ); + ctx.lineTo(endX, endY); + ctx.closePath(); + + if ( + ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || + ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) + ) { + this.state.hoveredEdge = edge; + } + + const selected = edge === this.state.selectedEdge; + const hovered = edge === this.state.hoveredEdge; + const shapes = options.edgeTypes[edge.type]; + + if (selected || hovered) { + ctx.strokeStyle = options.edgeLineSelectedColor; + ctx.fillStyle = options.edgeLineSelectedColor; + } else { + ctx.strokeStyle = options.edgeLineColor; + ctx.fillStyle = options.edgeLineColor; + } + + ctx.stroke(); + ctx.fill(); + + ctx.beginPath(); + this.shapePath(midX, midY, shapes[0]); + + ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor; + + ctx.fill(); + ctx.stroke(); + + this.drawSubShapes(shapes, midX, midY); + + if (selected) { + this.drawSelectedShape( + shapes[0], + midX, + midY, + options.edgeLineSelectedColor + ); + } + + if (selected) { + ctx.fillStyle = options.edgeSelectedTextColor; + } else { + ctx.fillStyle = options.edgeTextColor; + } + ctx.font = options.edgeTextStyle; + ctx.textAlign = TEXT_ALIGN; + ctx.textBaseline = TEXT_BASELINE; + ctx.fillText(edge.text, midX, midY); + }; +} diff --git a/example/old/graph-view-old.ts b/example/old/graph-view-old.ts new file mode 100644 index 0000000..ea6b5ff --- /dev/null +++ b/example/old/graph-view-old.ts @@ -0,0 +1,120 @@ +import { GEState } from "./state"; +import { GEGraphRenderer } from "./graph-renderer"; +import { GEEventHandler } from "./event-handler"; +import { GENode, GEEdge, GEViewOptionsParams } from "./types"; + +export class GEView { + readonly canvas: HTMLCanvasElement; + + private _state: GEState; + private _renderer: GEGraphRenderer; + private _eventHandler: GEEventHandler; + + constructor(options?: GEViewOptionsParams) { + this.canvas = document.createElement("canvas"); + this._state = new GEState(); + this._renderer = new GEGraphRenderer(this._state, this.canvas); + this._eventHandler = new GEEventHandler( + this._state, + this.canvas, + this._renderer + ); + + if (options) { + this._state.setOptions(options); + } + } + + getTranslateX(): number { + return this._state.translateX; + } + + getTanslateY(): number { + return this._state.translateY; + } + getScale(): number { + return this._state.scale; + } + + zoomTo(value: number): void { + const { width, height } = this.canvas; + const { translateX, translateY, scale } = this._state; + + const centerX = (width * 0.5 - translateX) / scale; + const centerY = (height * 0.5 - translateY) / scale; + + this._state.zoomTo(value, centerX, centerY); + + this.requestDraw(); + } + + init(container: HTMLElement): void { + container.appendChild(this.canvas); + + this.canvas.textContent = "Canvas is not supported in your browser."; + this.canvas.width = container.clientWidth; + this.canvas.height = container.clientHeight; + + this._state.setBoundingRect(this.canvas); + this._eventHandler.init(); + this.requestDraw(); + } + + destroy(): void { + this._eventHandler.destroy(); + } + + requestDraw(): void { + this._renderer.requestDraw(); + } + + resize(width: number, height: number): void { + this.canvas.width = width; + this.canvas.height = height; + + this._state.setBoundingRect(this.canvas); + + this.requestDraw(); + } + + setData(nodes: GENode[], edges: GEEdge[]): void { + this._state.setData(nodes, edges); + this.requestDraw(); + } + + setOptions(options: GEViewOptionsParams): void { + this._state.setOptions(options); + this.requestDraw(); + } + + setSelection(node: GENode | undefined, edge: GEEdge | undefined): void { + if (node && edge) return; + + this._state.selectedNode = node; + this._state.selectedEdge = edge; + + this.requestDraw(); + } + + setSelectedNode(node: GENode | undefined): void { + this._state.selectedNode = node; + this._state.selectedEdge = undefined; + + this.requestDraw(); + } + + getSelectedNode(): GENode | undefined { + return this._state.selectedNode; + } + + setSelectedEdge(edge: GEEdge | undefined): void { + this._state.selectedNode = undefined; + this._state.selectedEdge = edge; + + this.requestDraw(); + } + + getSelectedEdge(): GEEdge | undefined { + return this._state.selectedEdge; + } +} diff --git a/example/old/index.ts b/example/old/index.ts new file mode 100644 index 0000000..2c40899 --- /dev/null +++ b/example/old/index.ts @@ -0,0 +1,2 @@ +export * from "./types"; +export * from "./graph-view-old"; diff --git a/example/old/intersections.ts b/example/old/intersections.ts new file mode 100644 index 0000000..02fa7ab --- /dev/null +++ b/example/old/intersections.ts @@ -0,0 +1,152 @@ +// http://paulbourke.net/geometry/pointlineplane/javascript.txt +export function intersect( + x1: number, + y1: number, + x2: number, + y2: number, + x3: number, + y3: number, + x4: number, + y4: number, + outPoint: [number, number] +): boolean { + // Check if none of the lines are of length 0 + if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; + + const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); + + // Lines are parallel + if (denominator === 0) return false; + + const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; + const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; + + // is the intersection along the segments + if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; + + // Return a object with the x and y coordinates of the intersection + outPoint[0] = x1 + ua * (x2 - x1); + outPoint[1] = y1 + ua * (y2 - y1); + + return true; +} + +export function intersectLineRectCenter( + x1: number, + y1: number, + x2: number, + y2: number, + w: number, + h: number, + outPoint: [number, number] +): boolean { + const wh = w * 0.5; + const hh = h * 0.5; + + const i1 = intersect( + x1, + y1, + x2, + y2, + x2 - wh, + y2 - hh, + x2 + wh, + y2 - hh, + outPoint + ); + + if (i1) return true; + + const i2 = intersect( + x1, + y1, + x2, + y2, + x2 + wh, + y2 - hh, + x2 + wh, + y2 + hh, + outPoint + ); + + if (i2) return true; + + const i3 = intersect( + x1, + y1, + x2, + y2, + x2 + wh, + y2 + hh, + x2 - wh, + y2 + hh, + outPoint + ); + + if (i3) return true; + + const i4 = intersect( + x1, + y1, + x2, + y2, + x2 - wh, + y2 + hh, + x2 - wh, + y2 - hh, + outPoint + ); + + if (i4) return true; + + return false; +} + +export function instersectLinePolygonCenter( + x1: number, + y1: number, + x2: number, + y2: number, + points: [number, number][], + outPoint: [number, number] +): boolean { + const len = points.length; + + for (let i = 0; i < len; i++) { + const nextIndex = (i + 1) % len; + + const x3 = x2 + points[i][0]; + const y3 = y2 + points[i][1]; + const x4 = x2 + points[nextIndex][0]; + const y4 = y2 + points[nextIndex][1]; + + const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint); + + if (int) return true; + } + + return false; +} + +export function intersectLineCircleCenter( + x1: number, + y1: number, + x2: number, + y2: number, + r: number, + outPoint: [number, number] +): boolean { + const dx = x2 - x1; + const dy = y2 - y1; + + if (dx * dx + dy * dy <= r * r) return false; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + outPoint[0] = x2 - cosr * r; + outPoint[1] = y2 - sinr * r; + + return true; +} diff --git a/example/old/old-example/index.css b/example/old/old-example/index.css new file mode 100644 index 0000000..b6aad5a --- /dev/null +++ b/example/old/old-example/index.css @@ -0,0 +1,59 @@ +html, body { + width: 100%; + height: 100%; + + margin: 0; + padding: 0; + + font-family: sans-serif; + font-size: 16px; +} + +#graph { + width: 100%; + height: 100%; +} + +#container { + width: 100%; + height: 100%; + position: relative; +} + +#hints { + position: absolute; + bottom: 0; + left: 0; + margin: 1em; + font-size: 0.9em; + color: #718096 +} + +#buttons { + position: absolute; + top: 0; + left: 0; + margin: 1em; +} + +.generate-input { + margin-top: 1em; +} + +#generate-textbox { + padding: 0.5em; + width: 7.5em; + text-align: right; +} + +button { + padding: 0.5em; + cursor: pointer; +} + +.zoom-input { +} + +.info { + margin-top: 1em; +} diff --git a/example/old/old-example/index.html b/example/old/old-example/index.html new file mode 100644 index 0000000..6bc6b54 --- /dev/null +++ b/example/old/old-example/index.html @@ -0,0 +1,96 @@ + + + + + + + + + + + web-digraph example + + + + + + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + + + +
+ +
+ +
+ Node count: + 0 + +
+ +
+ Edge count: + 0 + +
+ +
+ +
+ +
+ +
+ Press and hold shift, and then click on empty place to create a new node. + +
+ +
+ Press and hold shift, and then click and drag a node to another node to + create a new edge. +
+ +
+ +
+ + + + + + + diff --git a/src/example/index.ts b/example/old/old-example/index.ts similarity index 98% rename from src/example/index.ts rename to example/old/old-example/index.ts index 8acfe69..64999ce 100644 --- a/src/example/index.ts +++ b/example/old/old-example/index.ts @@ -1,4 +1,4 @@ -import { GEView, GENode, GEEdge } from "../index"; +import { GEView, GENode, GEEdge } from "../src/index"; import { nodeTypes, edgeTypes } from "./node-types"; import { randomize } from "./utils"; diff --git a/example/old/old-example/node-types.ts b/example/old/old-example/node-types.ts new file mode 100644 index 0000000..fe2d324 --- /dev/null +++ b/example/old/old-example/node-types.ts @@ -0,0 +1,76 @@ +import { GEShapeTypes, GEShapeName } from "../src/types"; + +export const nodeTypes: GEShapeTypes = { + empty: [ + { + shape: GEShapeName.CIRCLE, + r: 80 + } + ], + decision: [ + { + shape: GEShapeName.RECTANGLE, + width: 150, + height: 120 + } + ], + unknown: [ + { + shape: GEShapeName.POLYGON, + points: [ + [0, -80], + [80, 0], + [0, 80], + [-80, 0] + ] + } + ], + complex: [ + { + shape: GEShapeName.CIRCLE, + r: 80 + }, + { + shape: GEShapeName.CIRCLE, + r: 60, + color: "#9AE6B4" + }, + { + shape: GEShapeName.CIRCLE, + r: 40, + color: "white" + } + ] +}; + +export const edgeTypes: GEShapeTypes = { + normal: [ + { + shape: GEShapeName.POLYGON, + points: [ + [0, -25], + [25, 0], + [0, 25], + [-25, 0] + ] + } + ], + round: [ + { + shape: GEShapeName.CIRCLE, + r: 25 + } + ], + double: [ + { + shape: GEShapeName.CIRCLE, + r: 25, + color: "#E9D8FD" + }, + { + shape: GEShapeName.CIRCLE, + r: 15, + color: "white" + } + ] +}; diff --git a/src/example/utils.ts b/example/old/old-example/utils.ts similarity index 96% rename from src/example/utils.ts rename to example/old/old-example/utils.ts index 9c41a78..57fcc64 100644 --- a/src/example/utils.ts +++ b/example/old/old-example/utils.ts @@ -1,4 +1,4 @@ -import { GENode, GEEdge } from "../types"; +import { GENode, GEEdge } from "../src/types"; export function getRandomIntInclusive(minF: number, maxF: number): number { const min = Math.ceil(minF); diff --git a/example/old/state.ts b/example/old/state.ts new file mode 100644 index 0000000..02e06bc --- /dev/null +++ b/example/old/state.ts @@ -0,0 +1,151 @@ +import { + GEViewOptions, + GEViewOptionsParams, + GEGridType, + GEShapeName, + GENode, + GEEdge +} from "./types"; + +export class GEState { + nodes: GENode[]; + edges: GEEdge[]; + + options: GEViewOptions; + + isDragging = false; + isShiftDown = false; + isDrawing = false; + + moveNodeX = 0; + moveNodeY = 0; + + // transform + translateX = 0; + translateY = 0; + scale = 1; + + // pointer position + pointerScreenX = 0; + pointerScreenY = 0; + pointerCanvasX = 0; + pointerCanvasY = 0; + pointerViewX = 0; + pointerViewY = 0; + boundingClientRect: DOMRect; + + // selection + selectedNode: GENode | undefined = undefined; + selectedEdge: GEEdge | undefined = undefined; + hoveredNode: GENode | undefined = undefined; + hoveredEdge: GEEdge | undefined = undefined; + + // drag line when creating edge + isCreatingEdge = false; + dragLineSourceNode: GENode | undefined = undefined; + dragLineTargetX = 0; + dragLineTargetY = 0; + + constructor() { + this.nodes = []; + this.edges = []; + + this.options = this.getDefaultOptions(); + } + + isMovingNode(): boolean { + return this.isDragging && this.selectedNode && !this.isCreatingEdge; + } + + isMovingView(): boolean { + return !this.isShiftDown && this.isDragging && !this.selectedNode; + } + + setData(nodes: GENode[], edges: GEEdge[]): void { + this.nodes = nodes; + this.edges = edges; + } + + setOptions(options: GEViewOptionsParams): void { + Object.keys(options).forEach(k => { + this.options[k] = options[k]; + }); + } + + getDefaultOptions(): GEViewOptions { + return { + edgeArrowLength: 16, + edgeArrowRadian: Math.PI / 6, + backgroundColor: "#F7FAFC", + showGrid: true, + gridType: GEGridType.DOTS, + gridColor: "#CBD5E0", + gridLineWidth: 8, + gridGap: 64, + defaultSubShapeColor: "green", + nodeLineWidth: 2, + nodeColor: "white", + nodeSelectedColor: "#4299E1", + nodeStrokeColor: "#1A202C", + nodeTextColor: "#1A202C", + nodeSelectedTextColor: "white", + nodeTextStyle: "16px sans-serif", + edgeLineWidth: 3, + edgeLineColor: "#2B6CB0", + edgeLineSelectedColor: "#4299E1", + edgeShapeFillColor: "white", + edgeTextColor: "#1A202C", + edgeSelectedTextColor: "white", + edgeTextStyle: "16px sans-serif", + minScale: 0.2, + maxScale: 1.8, + cursorGrab: "grab", + cursorPointer: "pointer", + cursorCrosshair: "crosshair", + nodeTypes: { + empty: [ + { + shape: GEShapeName.CIRCLE, + r: 80 + } + ] + }, + edgeTypes: { + empty: [ + { + shape: GEShapeName.RECTANGLE, + width: 30, + height: 20 + } + ] + } + }; + } + + setBoundingRect(canvas: HTMLCanvasElement): void { + this.boundingClientRect = canvas.getBoundingClientRect(); + } + + setPointerPosition(screenX: number, screenY: number): void { + this.pointerScreenX = screenX; + this.pointerScreenY = screenY; + this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left); + this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top); + this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale; + this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale; + } + + zoomTo(scale: number, viewX: number, viewY: number): void { + const { maxScale, minScale } = this.options; + + const newScale = Math.min(maxScale, Math.max(minScale, scale)); + + const deltaScale = newScale - this.scale; + const offsetX = -(viewX * deltaScale); + const offsetY = -(viewY * deltaScale); + + this.translateX += offsetX; + this.translateY += offsetY; + this.scale += deltaScale; + } +} diff --git a/example/old/types.ts b/example/old/types.ts new file mode 100644 index 0000000..d7ff422 --- /dev/null +++ b/example/old/types.ts @@ -0,0 +1,115 @@ +export type Point = [number, number]; + +export enum GEShapeName { + CIRCLE, + RECTANGLE, + POLYGON +} + +export type GECircleShape = { + shape: GEShapeName.CIRCLE; + r: number; + color?: string; +}; + +export type GERectangleShape = { + shape: GEShapeName.RECTANGLE; + width: number; + height: number; + color?: string; +}; + +export type GEPolygonShape = { + shape: GEShapeName.POLYGON; + points: Point[]; + color?: string; +}; + +export type GEShape = GECircleShape | GERectangleShape | GEPolygonShape; + +export type GEShapes = { 0: GEShape } & GEShape[]; + +export type GEShapeTypes = Record; + +export type GENode = { + id: number; + x: number; + y: number; + text: string; + type: string; +}; + +export type GEEdge = { + id: number; + text: string; + sourceNode: GENode; + targetNode: GENode; + type: string; +}; + +export enum GEGridType { + LINES, + DOTS +} + +export type GEViewOptions = { + edgeArrowLength: number; + edgeArrowRadian: number; + backgroundColor: string; + showGrid: boolean; + gridType: GEGridType; + gridColor: string; + gridLineWidth: number; + gridGap: number; + defaultSubShapeColor: string; + nodeLineWidth: number; + nodeColor: string; + nodeSelectedColor: string; + nodeStrokeColor: string; + nodeTextColor: string; + nodeSelectedTextColor: string; + nodeTextStyle: string; + edgeLineWidth: number; + edgeLineColor: string; + edgeLineSelectedColor: string; + edgeShapeFillColor: string; + edgeTextColor: string; + edgeSelectedTextColor: string; + edgeTextStyle: string; + minScale: number; + maxScale: number; + cursorGrab: string; + cursorPointer: string; + cursorCrosshair: string; + nodeTypes: GEShapeTypes; + edgeTypes: GEShapeTypes; + onViewMoved?: () => void; + onViewZoom?: () => void; + onCreateNode?: (x: number, y: number, evt: MouseEvent) => void; + onMoveNode?: (node: GENode, newX: number, newY: number) => void; + onDeleteNode?: (node: GENode) => void; + onCreateEdge?: ( + sourceNode: GENode, + targetNode: GENode, + evt: MouseEvent + ) => void; + onDeleteEdge?: (edge: GEEdge, sourceNode: GENode, targetNode: GENode) => void; + onSelectionChange?: ( + selectedNode: GENode | undefined, + selectedEdge: GEEdge | undefined + ) => void; + onHoverChange?: ( + hoveredNode: GENode | undefined, + hoveredEdge: GEEdge | undefined, + viewX: number, + viewY: number, + canvasX: number, + canvasY: number, + clientX: number, + clientY: number + ) => void; +}; + +export type GEViewOptionsParams = { + [T in keyof GEViewOptions]?: GEViewOptions[T]; +}; diff --git a/example/tsconfig.json b/example/tsconfig.json new file mode 100644 index 0000000..5a3c8d9 --- /dev/null +++ b/example/tsconfig.json @@ -0,0 +1,31 @@ +{ + // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs + "compilerOptions": { + "module": "esnext", + "target": "esnext", + "lib": ["dom", "esnext"], + // output .js.map sourcemap files for consumers + "sourceMap": true, + // stricter type-checking for stronger correctness. Recommended by TS + "strict": true, + // linter checks for common issues + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative + "noUnusedLocals": true, + "noUnusedParameters": true, + // use Node's module resolution algorithm, instead of the legacy TS one + "moduleResolution": "node", + // transpile JSX to React.createElement + "jsx": "react", + // interop between ESM and CJS modules. Recommended by TS + "esModuleInterop": true, + // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS + "skipLibCheck": true, + // error out if import and file system have a casing mismatch. Recommended by TS + "forceConsistentCasingInFileNames": true, + // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` + "noEmit": true, + "downlevelIteration": true + } +} diff --git a/example/utils.ts b/example/utils.ts new file mode 100644 index 0000000..57fcc64 --- /dev/null +++ b/example/utils.ts @@ -0,0 +1,68 @@ +import { GENode, GEEdge } from "../src/types"; + +export function getRandomIntInclusive(minF: number, maxF: number): number { + const min = Math.ceil(minF); + const max = Math.floor(maxF); + return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive +} + +export function randomize( + nodeCount = 1000, + cols = 40 +): { + nodes: GENode[]; + edges: GEEdge[]; + lastId: number; +} { + const nodes = []; + const edges = []; + let lastId = 0; + + for (let i = 0; i < nodeCount; i++) { + const col = i % cols; + const row = Math.floor(i / cols); + + const tmp = getRandomIntInclusive(0, 3); + const nodeType = + tmp === 0 + ? "empty" + : tmp === 1 + ? "decision" + : tmp === 2 + ? "unknown" + : "complex"; + + const tmp2 = getRandomIntInclusive(0, 2); + const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; + + lastId++; + const currNode: GENode = { + id: lastId, + x: col * 320, + y: row * 320, + type: nodeType, + text: `Node ID: ${lastId}` + }; + + nodes.push(currNode); + + if (i > 0) { + const prevNode = nodes[i - 1]; + + lastId++; + edges.push({ + id: lastId, + sourceNode: prevNode, + targetNode: currNode, + type: edgeType, + text: lastId.toString() + }); + } + } + + return { + nodes, + edges, + lastId + }; +} diff --git a/package-lock.json b/package-lock.json index 88cef60..a97cf05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8081,6 +8081,17 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "dev": true, + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9535,6 +9546,12 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -11130,6 +11147,30 @@ } } }, + "vite": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz", + "integrity": "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==", + "dev": true, + "requires": { + "esbuild": "^0.14.27", + "fsevents": "~2.3.2", + "postcss": "^8.4.12", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + }, + "dependencies": { + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + } + } + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/package.json b/package.json index 749ab9a..0723b32 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,9 @@ "size": "size-limit", "analyze": "size-limit --why", "release": "standard-version", - "generate-docs": "typedoc --out docs src/index.ts" + "example:dev": "vite", + "example:build": "tsc && vite build", + "example:preview:": "vite preview" }, "devDependencies": { "@size-limit/preset-small-lib": "^7.0.8", @@ -49,7 +51,8 @@ "standard-version": "^9.3.2", "tsdx": "^0.14.1", "tslib": "^2.3.1", - "typescript": "^4.6.3" + "typescript": "^4.6.3", + "vite": "^2.9.1" }, "lint-staged": { "{src,test}/**/*.{js,ts}": [ diff --git a/src/event-handler.ts b/src/event-handler.ts index b92d1b1..856567d 100644 --- a/src/event-handler.ts +++ b/src/event-handler.ts @@ -1,197 +1,114 @@ -import { GEState } from "./state"; -import { GEGraphRenderer } from "./graph-renderer"; - -export class GEEventHandler { - state: GEState; - canvas: HTMLCanvasElement; - renderer: GEGraphRenderer; - - constructor( - view: GEState, - canvas: HTMLCanvasElement, - renderer: GEGraphRenderer - ) { - this.state = view; - this.canvas = canvas; - this.renderer = renderer; - } +import { GraphEdge, GraphNode, GraphView } from "./graph-view"; - init(): void { - this.canvas.addEventListener("mousedown", this.handleMouseDown, { - passive: true - }); - window.addEventListener("mouseup", this.handleMouseUp, { passive: true }); - window.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); - window.addEventListener("keydown", this.handleKeyDown, { passive: true }); - window.addEventListener("keyup", this.handleKeyUp, { passive: true }); - this.canvas.addEventListener("wheel", this.handleCanvasWheel, { - passive: false - }); - } +export class DefaultGraphEventHandler< + Node extends GraphNode, + Edge extends GraphEdge +> { + readonly view: GraphView; - destroy(): void { - this.canvas.removeEventListener("mousedown", this.handleMouseDown); - window.removeEventListener("mouseup", this.handleMouseUp); - window.removeEventListener("mousemove", this.handleMouseMove); - window.removeEventListener("keydown", this.handleKeyDown); - window.removeEventListener("keyup", this.handleKeyUp); - this.canvas.removeEventListener("wheel", this.handleCanvasWheel); + private isDragging = false; + private isShiftDown = false; + private pos: [number, number] = [0, 0]; + + constructor(view: GraphView) { + this.view = view; } - handleMouseDown = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); + isMovingView = () => { + return ( + this.isDragging && + !this.isShiftDown && + !this.view.hoveredNode && + !this.view.hoveredEdge && + !this.view.isCreatingEdge + ); + }; - this.state.isDragging = true; + handleMouseDown = (e: MouseEvent) => { + const { view } = this; - if ( - this.state.selectedNode !== this.state.hoveredNode || - this.state.selectedEdge !== this.state.hoveredEdge - ) { - this.state.selectedNode = this.state.hoveredNode; - this.state.selectedEdge = this.state.hoveredEdge; + this.isDragging = true; - this.state.options.onSelectionChange?.( - this.state.selectedNode, - this.state.selectedEdge - ); - } + view.requestDraw(); + }; - if (this.state.selectedNode) { - const node = this.state.selectedNode; - - if (this.state.isShiftDown) { - this.state.isCreatingEdge = true; - this.state.dragLineSourceNode = node; - this.state.dragLineTargetX = node.x; - this.state.dragLineTargetY = node.y; - } else { - this.state.moveNodeX = node.x; - this.state.moveNodeY = node.y; - } - } + handleMouseUp = (e: MouseEvent) => { + const { view } = this; + + this.isDragging = false; - this.renderer.requestDraw(); + view.requestDraw(); }; - handleMouseMove = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); + handleMouseMove = (e: MouseEvent) => { + const { view } = this; - if (this.state.isMovingNode()) { - this.state.moveNodeX += evt.movementX / this.state.scale; - this.state.moveNodeY += evt.movementY / this.state.scale; - } else if (this.state.isMovingView()) { - this.state.translateX += evt.movementX; - this.state.translateY += evt.movementY; + if (!this.isDragging) return; + + if (this.isMovingView()) { + view.transform[1] += e.movementX; + view.transform[2] += e.movementY; } - this.renderer.requestDraw(); - this.updateCursorStyle(); + view.requestDraw(); }; - handleMouseUp = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); - - if ( - this.state.isCreatingEdge && - this.state.hoveredNode && - this.state.hoveredNode !== this.state.dragLineSourceNode - ) { - const sourceNode = this.state.dragLineSourceNode; - const targetNode = this.state.hoveredNode; - - this.state.options.onCreateEdge?.(sourceNode, targetNode, evt); - } else if ( - this.state.isShiftDown && - !this.state.isCreatingEdge && - !this.state.hoveredNode && - !this.state.hoveredEdge - ) { - this.state.options.onCreateNode?.( - this.state.pointerViewX, - this.state.pointerViewY, - evt - ); - } else if (this.state.isMovingNode()) { - const node = this.state.selectedNode; - - this.state.options.onMoveNode?.( - node, - this.state.moveNodeX, - this.state.moveNodeY - ); - } + handleWheel = (e: WheelEvent) => { + e.preventDefault(); - this.state.isDragging = false; - this.state.isCreatingEdge = false; + const { view } = this; - this.renderer.requestDraw(); - }; + view.setViewPosFromWindowPos(this.pos, e.x, e.y); - updateCursorStyle = (): void => { - const { options } = this.state; + view.zoomTo(view.transform[0] - e.deltaY * 0.001, this.pos[0], this.pos[1]); - if (this.state.hoveredNode || this.state.hoveredEdge) { - this.canvas.style.cursor = options.cursorPointer; - } else if (!this.state.isShiftDown) { - this.canvas.style.cursor = options.cursorGrab; - } else { - this.canvas.style.cursor = options.cursorCrosshair; - } + view.requestDraw(); }; - handleKeyDown = (evt: KeyboardEvent): void => { - if (evt.key === "Shift" || evt.keyCode === 16) { - this.state.isShiftDown = true; - this.updateCursorStyle(); - } - - if ( - evt.key === "Backspace" || - evt.keyCode === 8 || - evt.key === "Delete" || - evt.keyCode === 46 - ) { - if (this.state.selectedNode) { - const node = this.state.selectedNode; - - this.state.options.onDeleteNode?.(node); - this.state.selectedNode = undefined; - } - - if (this.state.selectedEdge) { - const edge = this.state.selectedEdge; - const source = edge.sourceNode; - const target = edge.targetNode; - - this.state.options.onDeleteEdge?.(edge, source, target); - this.state.selectedEdge = undefined; - } - - this.renderer.requestDraw(); - this.updateCursorStyle(); - } + handleKeyDown = (e: KeyboardEvent) => { + // }; - handleKeyUp = (evt: KeyboardEvent): void => { - if (evt.key === "Shift" || evt.keyCode === 16) { - this.state.isShiftDown = false; - this.updateCursorStyle(); - } + handleKeyUp = (e: KeyboardEvent) => { + // }; - handleCanvasWheel = (evt: WheelEvent): void => { - evt.preventDefault(); + init = () => { + const { canvas } = this.view; - this.state.zoomTo( - this.state.scale - evt.deltaY * 0.001, - this.state.pointerViewX, - this.state.pointerViewY - ); + canvas.addEventListener("mousedown", this.handleMouseDown, { + passive: true + }); + window.addEventListener("mouseup", this.handleMouseUp, { passive: true }); + window.addEventListener("mousemove", this.handleMouseMove, { + passive: true + }); + window.addEventListener("keydown", this.handleKeyDown, { passive: true }); + window.addEventListener("keyup", this.handleKeyUp, { passive: true }); + canvas.addEventListener("wheel", this.handleWheel, { + passive: false + }); + }; - this.state.options.onViewZoom?.(); + destroy = () => { + const { canvas } = this.view; - this.renderer.requestDraw(); + canvas.removeEventListener("mousedown", this.handleMouseDown); + window.removeEventListener("mouseup", this.handleMouseUp); + window.removeEventListener("mousemove", this.handleMouseMove); + window.removeEventListener("keydown", this.handleKeyDown); + window.removeEventListener("keyup", this.handleKeyUp); + canvas.removeEventListener("wheel", this.handleWheel); }; } + +export function initDefaultGraphEvents< + Node extends GraphNode, + Edge extends GraphEdge +>(view: GraphView) { + const handler = new DefaultGraphEventHandler(view); + + handler.init(); + + return handler.destroy; +} diff --git a/src/example/index.html b/src/example/index.html deleted file mode 100644 index 42f7510..0000000 --- a/src/example/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - web-digraph example - - - - -
-
-
-
- -
- -
- - -
- -
-
Node count: 0
-
Edge count: 0
-
-
-
-
Press and hold shift, and then click on empty place to create a new node.
-
Press and hold shift, and then click and drag a node to another node to create a new edge.
-
-
- - - - diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 93940a3..0c138b8 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,548 +1,91 @@ -import { - GENode, - GEEdge, - GEGridType, - GEShapes, - GEShape, - GEShapeName -} from "./types"; -import { GEState } from "./state"; -import { - intersectLineCircleCenter, - intersectLineRectCenter, - instersectLinePolygonCenter -} from "./intersections"; +import { GraphEdge, GraphNode, GraphView } from "./graph-view"; -const TEXT_ALIGN = "center"; -const TEXT_BASELINE = "middle"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; +const BG_COLOR = "#F7FAFC"; +const GRID_COLOR = "#CBD5E0"; -const tmpPoint: [number, number] = [0, 0]; +export function drawBackground(view: GraphView) { + const { canvas, ctx, transform } = view; + const [scale, translateX, translateY] = transform; -export class GEGraphRenderer { - state: GEState; - canvas: HTMLCanvasElement; - ctx: CanvasRenderingContext2D; + ctx.fillStyle = BG_COLOR; + ctx.fillRect(0, 0, canvas.width, canvas.height); - constructor(view: GEState, canvas: HTMLCanvasElement) { - this.state = view; - this.canvas = canvas; - this.ctx = canvas.getContext("2d", { alpha: false }); - } - - requestDraw(): void { - if (!this.state.isDrawing) { - requestAnimationFrame(this.draw); - } - - this.state.isDrawing = true; - } - - draw = (): void => { - this.state.isDrawing = false; - - this.drawBackground(); - - this.ctx.transform( - this.state.scale, - 0, - 0, - this.state.scale, - this.state.translateX, - this.state.translateY - ); - - this.drawGraph(); - - this.ctx.resetTransform(); - }; - - drawBackground(): void { - const { canvas, ctx } = this; - const { translateX, translateY, scale, options } = this.state; - - ctx.fillStyle = options.backgroundColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - if (!options.showGrid) return; - - const lw = options.gridLineWidth * scale; - const gap = options.gridGap * scale; - - const offsetX = (translateX % gap) - lw; - const offsetY = (translateY % gap) - lw; - - ctx.strokeStyle = options.gridColor; - ctx.lineWidth = lw; - - if (options.gridType === GEGridType.DOTS) { - ctx.beginPath(); - - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, offsetY); - ctx.lineTo(i, canvas.height + lw); - } - - ctx.lineCap = LINE_CAP_ROUND; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([0]); - ctx.lineCap = LINE_CAP_SQUARE; - } else { - ctx.beginPath(); - - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, 0); - ctx.lineTo(i, canvas.height); - } - - for (let i = offsetY; i < canvas.height + lw; i += gap) { - ctx.moveTo(0, i); - ctx.lineTo(canvas.width, i); - } - - ctx.stroke(); - } - } - - drawGraph(): void { - const { nodes, edges, options } = this.state; - - const prevhoveredNode = this.state.hoveredNode; - const prevhoveredEdge = this.state.hoveredEdge; - - this.state.hoveredNode = undefined; - this.state.hoveredEdge = undefined; - - edges.forEach(this.drawEdge); - this.drawDragLine(); - nodes.forEach(this.drawNode); - - // This event is done here because we are using canvas to check hover. - // Please let me know if there is a better way. - if ( - !this.state.isMovingNode() && - !this.state.isMovingView() && - (this.state.hoveredNode !== prevhoveredNode || - this.state.hoveredEdge !== prevhoveredEdge) - ) { - options.onHoverChange?.( - this.state.hoveredNode, - this.state.hoveredEdge, - this.state.pointerViewX, - this.state.pointerViewY, - this.state.pointerCanvasX, - this.state.pointerCanvasY, - this.state.pointerScreenX, - this.state.pointerScreenY - ); - } - } - - getShapeBound(shapes: GEShapes): number { - const shape = shapes[0]; - - if (shape.shape === GEShapeName.CIRCLE) return shape.r; - if (shape.shape === GEShapeName.RECTANGLE) - return Math.max(shape.width, shape.height); - - let r = 0; - - shape.points.forEach(p => { - r = Math.max(r, Math.max(p[0], p[1])); - }); - - return r; - } - - isNodeOutOfView(node: GENode): boolean { - const { canvas } = this; - const { translateX, translateY, scale, options } = this.state; - - const r = this.getShapeBound(options.nodeTypes[node.type]); - - return ( - (node.x + r) * scale + translateX < 0 || - (node.y + r) * scale + translateY < 0 || - (node.x - r) * scale + translateX > canvas.width || - (node.y - r) * scale + translateY > canvas.height - ); - } - - isEdgeOutOfView(edge: GEEdge): boolean { - const { canvas } = this; - const { translateX, translateY, scale, options } = this.state; - - const source = edge.sourceNode; - const target = edge.targetNode; - - const sourceX = source.x * scale + translateX; - const sourceY = source.y * scale + translateY; - const targetX = target.x * scale + translateX; - const targetY = target.y * scale + translateY; - - const r = this.getShapeBound(options.edgeTypes[edge.type]); - - return ( - (sourceX < -r && targetX < -r) || - (sourceY < -r && targetY < -r) || - (sourceX > canvas.width + r && targetX > canvas.width + r) || - (sourceY > canvas.height + r && targetY > canvas.height + r) - ); - } - - shapePath = (x: number, y: number, shape: GEShape): void => { - const { ctx } = this; - - if (shape.shape === GEShapeName.CIRCLE) { - ctx.arc(x, y, shape.r, 0, Math.PI * 2); - } else if (shape.shape === GEShapeName.RECTANGLE) { - ctx.rect( - x - shape.width * 0.5, - y - shape.height * 0.5, - shape.width, - shape.height - ); - } else { - ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]); - - for (let i = 1; i < shape.points.length; i++) { - ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]); - } + const lw = 8 * scale; + const gap = 64 * scale; - ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]); + const offsetX = (translateX % gap) - lw; + const offsetY = (translateY % gap) - lw; - ctx.closePath(); - } - }; + ctx.strokeStyle = GRID_COLOR; + ctx.lineWidth = lw; - drawDragLine(): void { - if (!this.state.isCreatingEdge) return; + ctx.beginPath(); - const { ctx } = this; - const { pointerViewX, pointerViewY, options } = this.state; - - const targetX = pointerViewX; - const targetY = pointerViewY; - - const source = this.state.dragLineSourceNode; - const dx = targetX - source.x; - const dy = targetY - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - // calculate the start and end points of the line - const startX = source.x; - const startY = source.y; - const endX = targetX - cosr * 3; - const endY = targetY - sinr * 3; - const edgeLineOffset = - options.edgeArrowLength * Math.cos(options.edgeArrowRadian); - const lineEndX = targetX - cosr * edgeLineOffset; - const lineEndY = targetY - sinr * edgeLineOffset; - - ctx.lineWidth = options.edgeLineWidth; - - ctx.beginPath(); - ctx.moveTo(startX, startY); - ctx.lineTo(lineEndX, lineEndY); - ctx.moveTo(endX, endY); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) - ); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) - ); - ctx.lineTo(endX, endY); - ctx.closePath(); - - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - - ctx.stroke(); - ctx.fill(); + for (let i = offsetX; i < canvas.width + lw; i += gap) { + ctx.moveTo(i, offsetY); + ctx.lineTo(i, canvas.height + lw); } - getInstersectionPoint = ( - sourceX: number, - sourceY: number, - targetX: number, - targetY: number, - shape: GEShape - ): [number, number] => { - if (shape.shape === GEShapeName.CIRCLE) { - const int = intersectLineCircleCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.r, - tmpPoint - ); - - if (int) return tmpPoint; - } else if (shape.shape === GEShapeName.RECTANGLE) { - const int = intersectLineRectCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.width, - shape.height, - tmpPoint - ); - - if (int) return tmpPoint; - } else { - const int = instersectLinePolygonCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.points, - tmpPoint - ); - - if (int) return tmpPoint; - } - - return [targetX, targetY]; - }; - - drawSubShapes = (shapes: GEShapes, x: number, y: number): void => { - const { ctx } = this; - const { options } = this.state; - - if (shapes.length <= 1) return; - - for (let i = 1; i < shapes.length; i++) { - const sh = shapes[i]; - - ctx.beginPath(); - this.shapePath(x, y, sh); - - ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor; - ctx.fill(); - } - }; - - drawSelectedShape = ( - shape: GEShape, - x: number, - y: number, - color: string - ): void => { - const { ctx } = this; - - ctx.beginPath(); - this.shapePath(x, y, shape); - ctx.fillStyle = color; - ctx.globalAlpha = 0.8; - ctx.fill(); - ctx.globalAlpha = 1.0; - }; - - drawNode = (node: GENode): void => { - if (this.isNodeOutOfView(node)) return; - - const { ctx } = this; - const { - pointerCanvasX, - pointerCanvasY, - options, - moveNodeX, - moveNodeY, - selectedNode - } = this.state; - - const isMovingNode = this.state.isMovingNode() && selectedNode === node; - const x = isMovingNode ? moveNodeX : node.x; - const y = isMovingNode ? moveNodeY : node.y; - - const shapes = options.nodeTypes[node.type]; - - ctx.strokeStyle = options.nodeStrokeColor; - ctx.lineWidth = options.nodeLineWidth; - - ctx.beginPath(); - this.shapePath(x, y, shapes[0]); - - if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) { - this.state.hoveredNode = node; - } - - const selected = node === this.state.selectedNode; - const hovered = node === this.state.hoveredNode; - - ctx.strokeStyle = - selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor; - ctx.fillStyle = shapes[0].color || options.nodeColor; - - ctx.fill(); - ctx.stroke(); - - this.drawSubShapes(shapes, x, y); - - if (selected) { - this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor); - } - - if (selected) { - ctx.fillStyle = options.nodeSelectedTextColor; - } else { - ctx.fillStyle = options.nodeTextColor; - } - - ctx.font = options.nodeTextStyle; - ctx.textAlign = TEXT_ALIGN; - ctx.textBaseline = TEXT_BASELINE; - - ctx.fillText(node.text, x, y); - }; - - drawEdge = (edge: GEEdge): void => { - if (this.isEdgeOutOfView(edge)) return; - - const { ctx } = this; - const { - pointerCanvasX, - pointerCanvasY, - options, - selectedNode, - moveNodeX, - moveNodeY - } = this.state; - - const source = edge.sourceNode; - const target = edge.targetNode; - - const isMovingSourceNode = - this.state.isMovingNode() && source === selectedNode; - - const sourceX = isMovingSourceNode ? moveNodeX : source.x; - const sourceY = isMovingSourceNode ? moveNodeY : source.y; - - const isMovingTargetNode = - this.state.isMovingNode() && target === selectedNode; - - const targetX = isMovingTargetNode ? moveNodeX : target.x; - const targetY = isMovingTargetNode ? moveNodeY : target.y; - - const dx = targetX - sourceX; - const dy = targetY - sourceY; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - // calculate the start and end points of the line - const [startX, startY] = this.getInstersectionPoint( - targetX, - targetY, - sourceX, - sourceY, - options.nodeTypes[source.type][0] - ); - const [endX0, endY0] = this.getInstersectionPoint( - sourceX, - sourceY, - targetX, - targetY, - options.nodeTypes[target.type][0] - ); - - const endX = endX0 - cosr * 3; - const endY = endY0 - sinr * 3; - const edgeLineOffset = - options.edgeArrowLength * Math.cos(options.edgeArrowRadian); - const lineEndX = endX - cosr * edgeLineOffset; - const lineEndY = endY - sinr * edgeLineOffset; + ctx.lineCap = LINE_CAP_ROUND; + ctx.setLineDash([0, gap]); + ctx.stroke(); + ctx.setLineDash([0]); + ctx.lineCap = LINE_CAP_SQUARE; +} - ctx.lineWidth = options.edgeLineWidth; +// export function drawNode( +// view: GraphView, +// node: GraphNode +// ) { +// // if (this.isNodeOutOfView(node)) return; - const midX = (startX + endX) * 0.5; - const midY = (startY + endY) * 0.5; +// const { ctx, pointerPos, moveNodePos, selectedNodes, movingNode } = view; +// const [pointerX, pointerY] = pointerPos; +// const [moveNodeX, moveNodeY] = moveNodePos; - // this is just to check if the rect is hovered - ctx.beginPath(); - this.shapePath(midX, midY, options.edgeTypes[edge.type][0]); +// const isMovingNode = movingNode === node; +// const x = isMovingNode ? moveNodeX : node.x; +// const y = isMovingNode ? moveNodeY : node.y; - if ( - ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || - ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) - ) { - this.state.hoveredEdge = edge; - } +// const shapes = options.nodeTypes[node.type]; - ctx.beginPath(); - ctx.moveTo(startX, startY); - ctx.lineTo(lineEndX, lineEndY); - ctx.moveTo(endX, endY); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) - ); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) - ); - ctx.lineTo(endX, endY); - ctx.closePath(); +// ctx.strokeStyle = options.nodeStrokeColor; +// ctx.lineWidth = options.nodeLineWidth; - if ( - ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || - ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) - ) { - this.state.hoveredEdge = edge; - } +// ctx.beginPath(); +// this.shapePath(x, y, shapes[0]); - const selected = edge === this.state.selectedEdge; - const hovered = edge === this.state.hoveredEdge; - const shapes = options.edgeTypes[edge.type]; +// if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) { +// this.state.hoveredNode = node; +// } - if (selected || hovered) { - ctx.strokeStyle = options.edgeLineSelectedColor; - ctx.fillStyle = options.edgeLineSelectedColor; - } else { - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - } +// const selected = node === this.state.selectedNode; +// const hovered = node === this.state.hoveredNode; - ctx.stroke(); - ctx.fill(); +// ctx.strokeStyle = +// selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor; +// ctx.fillStyle = shapes[0].color || options.nodeColor; - ctx.beginPath(); - this.shapePath(midX, midY, shapes[0]); +// ctx.fill(); +// ctx.stroke(); - ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor; +// this.drawSubShapes(shapes, x, y); - ctx.fill(); - ctx.stroke(); +// if (selected) { +// this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor); +// } - this.drawSubShapes(shapes, midX, midY); +// if (selected) { +// ctx.fillStyle = options.nodeSelectedTextColor; +// } else { +// ctx.fillStyle = options.nodeTextColor; +// } - if (selected) { - this.drawSelectedShape( - shapes[0], - midX, - midY, - options.edgeLineSelectedColor - ); - } +// ctx.font = options.nodeTextStyle; +// ctx.textAlign = TEXT_ALIGN; +// ctx.textBaseline = TEXT_BASELINE; - if (selected) { - ctx.fillStyle = options.edgeSelectedTextColor; - } else { - ctx.fillStyle = options.edgeTextColor; - } - ctx.font = options.edgeTextStyle; - ctx.textAlign = TEXT_ALIGN; - ctx.textBaseline = TEXT_BASELINE; - ctx.fillText(edge.text, midX, midY); - }; -} +// ctx.fillText(node.text, x, y); +// } diff --git a/src/graph-state.ts b/src/graph-state.ts new file mode 100644 index 0000000..266c5e6 --- /dev/null +++ b/src/graph-state.ts @@ -0,0 +1,3 @@ +type GraphState = { + isDrawing: boolean; +}; diff --git a/src/graph-view-old.ts b/src/graph-view-old.ts new file mode 100644 index 0000000..ea6b5ff --- /dev/null +++ b/src/graph-view-old.ts @@ -0,0 +1,120 @@ +import { GEState } from "./state"; +import { GEGraphRenderer } from "./graph-renderer"; +import { GEEventHandler } from "./event-handler"; +import { GENode, GEEdge, GEViewOptionsParams } from "./types"; + +export class GEView { + readonly canvas: HTMLCanvasElement; + + private _state: GEState; + private _renderer: GEGraphRenderer; + private _eventHandler: GEEventHandler; + + constructor(options?: GEViewOptionsParams) { + this.canvas = document.createElement("canvas"); + this._state = new GEState(); + this._renderer = new GEGraphRenderer(this._state, this.canvas); + this._eventHandler = new GEEventHandler( + this._state, + this.canvas, + this._renderer + ); + + if (options) { + this._state.setOptions(options); + } + } + + getTranslateX(): number { + return this._state.translateX; + } + + getTanslateY(): number { + return this._state.translateY; + } + getScale(): number { + return this._state.scale; + } + + zoomTo(value: number): void { + const { width, height } = this.canvas; + const { translateX, translateY, scale } = this._state; + + const centerX = (width * 0.5 - translateX) / scale; + const centerY = (height * 0.5 - translateY) / scale; + + this._state.zoomTo(value, centerX, centerY); + + this.requestDraw(); + } + + init(container: HTMLElement): void { + container.appendChild(this.canvas); + + this.canvas.textContent = "Canvas is not supported in your browser."; + this.canvas.width = container.clientWidth; + this.canvas.height = container.clientHeight; + + this._state.setBoundingRect(this.canvas); + this._eventHandler.init(); + this.requestDraw(); + } + + destroy(): void { + this._eventHandler.destroy(); + } + + requestDraw(): void { + this._renderer.requestDraw(); + } + + resize(width: number, height: number): void { + this.canvas.width = width; + this.canvas.height = height; + + this._state.setBoundingRect(this.canvas); + + this.requestDraw(); + } + + setData(nodes: GENode[], edges: GEEdge[]): void { + this._state.setData(nodes, edges); + this.requestDraw(); + } + + setOptions(options: GEViewOptionsParams): void { + this._state.setOptions(options); + this.requestDraw(); + } + + setSelection(node: GENode | undefined, edge: GEEdge | undefined): void { + if (node && edge) return; + + this._state.selectedNode = node; + this._state.selectedEdge = edge; + + this.requestDraw(); + } + + setSelectedNode(node: GENode | undefined): void { + this._state.selectedNode = node; + this._state.selectedEdge = undefined; + + this.requestDraw(); + } + + getSelectedNode(): GENode | undefined { + return this._state.selectedNode; + } + + setSelectedEdge(edge: GEEdge | undefined): void { + this._state.selectedNode = undefined; + this._state.selectedEdge = edge; + + this.requestDraw(); + } + + getSelectedEdge(): GEEdge | undefined { + return this._state.selectedEdge; + } +} diff --git a/src/graph-view.ts b/src/graph-view.ts index ea6b5ff..e3abc8a 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,120 +1,139 @@ -import { GEState } from "./state"; -import { GEGraphRenderer } from "./graph-renderer"; -import { GEEventHandler } from "./event-handler"; -import { GENode, GEEdge, GEViewOptionsParams } from "./types"; - -export class GEView { +import { drawBackground } from "./graph-renderer"; + +export type NodeShape = { + render: (ctx: CanvasRenderingContext2D) => void; + intersectionPoints: [number, number][]; +}; + +export type EdgeShape = { + render: (ctx: CanvasRenderingContext2D) => void; +}; + +export type GraphNode = { + x: number; + y: number; + shape: EdgeShape; +}; + +export type GraphEdge = { + source: GraphNode; + target: GraphNode; + shape: NodeShape; +}; + +export class GraphView { readonly canvas: HTMLCanvasElement; - - private _state: GEState; - private _renderer: GEGraphRenderer; - private _eventHandler: GEEventHandler; - - constructor(options?: GEViewOptionsParams) { + readonly ctx: CanvasRenderingContext2D; + + transform: [number, number, number] = [1, 0, 0]; // [scale, tx, ty] + nodes: Node[] = []; + edges: Edge[] = []; + hoveredNode: Node | undefined = undefined; + hoveredEdge: Edge | undefined = undefined; + pointerPos: [number, number] = [0, 0]; + movingNode: Node | undefined = undefined; + moveNodePos: [number, number] = [0, 0]; + isCreatingEdge = false; + dragLineSourceNode: Node | undefined = undefined; + dragLineTargetPos: [number, number] = [0, 0]; + + private isDrawing = false; + private boundingRect: DOMRect; + + constructor(container: HTMLElement) { this.canvas = document.createElement("canvas"); - this._state = new GEState(); - this._renderer = new GEGraphRenderer(this._state, this.canvas); - this._eventHandler = new GEEventHandler( - this._state, - this.canvas, - this._renderer - ); - - if (options) { - this._state.setOptions(options); - } - } - - getTranslateX(): number { - return this._state.translateX; - } - - getTanslateY(): number { - return this._state.translateY; - } - getScale(): number { - return this._state.scale; - } - - zoomTo(value: number): void { - const { width, height } = this.canvas; - const { translateX, translateY, scale } = this._state; - const centerX = (width * 0.5 - translateX) / scale; - const centerY = (height * 0.5 - translateY) / scale; + const ctx = this.canvas.getContext("2d", { alpha: false }); - this._state.zoomTo(value, centerX, centerY); - - this.requestDraw(); - } + if (!ctx) { + throw "Canvas is not supported in your browser."; + } - init(container: HTMLElement): void { - container.appendChild(this.canvas); + this.ctx = ctx; this.canvas.textContent = "Canvas is not supported in your browser."; this.canvas.width = container.clientWidth; this.canvas.height = container.clientHeight; + this.boundingRect = this.canvas.getBoundingClientRect(); + + container.appendChild(this.canvas); - this._state.setBoundingRect(this.canvas); - this._eventHandler.init(); this.requestDraw(); } destroy(): void { - this._eventHandler.destroy(); + // this._eventHandler.destroy(); } requestDraw(): void { - this._renderer.requestDraw(); + if (!this.isDrawing) { + requestAnimationFrame(this.draw); + } + + this.isDrawing = true; } + draw = () => { + this.isDrawing = false; + + drawBackground(this); + }; + resize(width: number, height: number): void { this.canvas.width = width; this.canvas.height = height; - this._state.setBoundingRect(this.canvas); + this.boundingRect = this.canvas.getBoundingClientRect(); this.requestDraw(); } - setData(nodes: GENode[], edges: GEEdge[]): void { - this._state.setData(nodes, edges); - this.requestDraw(); - } - - setOptions(options: GEViewOptionsParams): void { - this._state.setOptions(options); - this.requestDraw(); - } + zoomTo(value: number, viewX?: number, viewY?: number): void { + const { width, height } = this.canvas; + const [scale, translateX, translateY] = this.transform; - setSelection(node: GENode | undefined, edge: GEEdge | undefined): void { - if (node && edge) return; + viewX = viewX || (width * 0.5 - translateX) / scale; + viewY = viewY || (height * 0.5 - translateY) / scale; - this._state.selectedNode = node; - this._state.selectedEdge = edge; + const newScale = Math.min(1000.0, Math.max(0.1, value)); - this.requestDraw(); - } + const deltaScale = newScale - scale; + const offsetX = -(viewX * deltaScale); + const offsetY = -(viewY * deltaScale); - setSelectedNode(node: GENode | undefined): void { - this._state.selectedNode = node; - this._state.selectedEdge = undefined; + this.transform[0] += deltaScale; + this.transform[1] += offsetX; + this.transform[2] += offsetY; this.requestDraw(); } - getSelectedNode(): GENode | undefined { - return this._state.selectedNode; + setViewPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.boundingRect; + const [scale, translateX, translateY] = this.transform; + + out[0] = (windowX - left - translateX) / scale; + out[1] = (windowY - top - translateY) / scale; } - setSelectedEdge(edge: GEEdge | undefined): void { - this._state.selectedNode = undefined; - this._state.selectedEdge = edge; + setViewPosFromCanvasPos( + out: [number, number], + canvasX: number, + canvasY: number + ) { + const [scale, translateX, translateY] = this.transform; - this.requestDraw(); + out[0] = (canvasX - translateX) / scale; + out[1] = (canvasY - translateY) / scale; } +} - getSelectedEdge(): GEEdge | undefined { - return this._state.selectedEdge; - } +export function createGraphView( + container: HTMLElement +) { + return new GraphView(container); } diff --git a/src/index.ts b/src/index.ts index b8a159f..b249c76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ -export * from "./types"; export * from "./graph-view"; +export * from "./event-handler"; diff --git a/src/types.ts b/src/types.ts index d7ff422..138320b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -52,6 +52,38 @@ export enum GEGridType { DOTS } +export type GraphViewOptions = { + edgeArrowLength: number; + edgeArrowRadian: number; + backgroundColor: string; + showGrid: boolean; + gridColor: string; + gridLineWidth: number; + gridGap: number; + defaultSubShapeColor: string; + nodeLineWidth: number; + nodeColor: string; + nodeSelectedColor: string; + nodeStrokeColor: string; + nodeTextColor: string; + nodeSelectedTextColor: string; + nodeTextStyle: string; + edgeLineWidth: number; + edgeLineColor: string; + edgeLineSelectedColor: string; + edgeShapeFillColor: string; + edgeTextColor: string; + edgeSelectedTextColor: string; + edgeTextStyle: string; + minScale: number; + maxScale: number; + cursorGrab: string; + cursorPointer: string; + cursorCrosshair: string; + nodeTypes: GEShapeTypes; + edgeTypes: GEShapeTypes; +}; + export type GEViewOptions = { edgeArrowLength: number; edgeArrowRadian: number; diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..daf9b10 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,45 @@ +import { GraphViewOptions } from "./types"; + +export function getDefaultOptions(): GraphViewOptions { + return { + edgeArrowLength: 16, + edgeArrowRadian: Math.PI / 6, + backgroundColor: "#F7FAFC", + showGrid: true, + gridColor: "#CBD5E0", + gridLineWidth: 8, + gridGap: 64, + defaultSubShapeColor: "green", + nodeLineWidth: 2, + nodeColor: "white", + nodeSelectedColor: "#4299E1", + nodeStrokeColor: "#1A202C", + nodeTextColor: "#1A202C", + nodeSelectedTextColor: "white", + nodeTextStyle: "16px sans-serif", + edgeLineWidth: 3, + edgeLineColor: "#2B6CB0", + edgeLineSelectedColor: "#4299E1", + edgeShapeFillColor: "white", + edgeTextColor: "#1A202C", + edgeSelectedTextColor: "white", + edgeTextStyle: "16px sans-serif", + minScale: 0.2, + maxScale: 1.8, + cursorGrab: "grab", + cursorPointer: "pointer", + cursorCrosshair: "crosshair", + nodeTypes: { + empty: [] + }, + edgeTypes: { + empty: [ + { + shape: GEShapeName.RECTANGLE, + width: 30, + height: 20 + } + ] + } + }; +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..a108ce5 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,13 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + server: { + port: 3700, + host: true + }, + // base: "/src/example/", + root: "example", + build: { + outDir: "dist-example" + } +}); From c5519e535950bb293a69e033fc14303547c63183 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 11 Apr 2022 11:53:11 +0700 Subject: [PATCH 07/56] draw node and edge --- example/index.html | 2 +- example/index.ts | 129 +++++++++++++---- example/node-types.ts | 165 ++++++++++++---------- example/utils.ts | 53 ++++--- package.json | 1 + src/event-handler.ts | 20 ++- src/graph-renderer.ts | 313 ++++++++++++++++++++++++++++++++++-------- src/graph-view.ts | 190 +++++++++++++++++++++---- src/utils.ts | 103 ++++++++------ 9 files changed, 717 insertions(+), 259 deletions(-) diff --git a/example/index.html b/example/index.html index 4de6d49..6f7c521 100644 --- a/example/index.html +++ b/example/index.html @@ -37,7 +37,7 @@ type="text" title="Type number nodes to generate" placeholder="Total nodes" - maxlength="4" + maxlength="5" value="100" /> diff --git a/example/index.ts b/example/index.ts index 53ee79c..24bbbce 100644 --- a/example/index.ts +++ b/example/index.ts @@ -6,6 +6,7 @@ import { initDefaultGraphEvents, createGraphView } from "../src"; +import { normalEdgeShape, normalNodeShape } from "./node-types"; const graphDiv = document.getElementById("graph") as HTMLDivElement; const nodeCountSpan = document.getElementById("node-count-span"); @@ -16,26 +17,99 @@ const generateTextbox = document.getElementById( ) as HTMLInputElement; const generateButton = document.getElementById("generate-button"); -const nodes: GraphNode[] = []; -const edges: GraphEdge[] = []; -const lastId = 0; - -const graphView = createGraphView(graphDiv); -initDefaultGraphEvents(graphView); +let nodes: GraphNode[] = [ + { + x: 300, + y: 200, + shape: normalNodeShape + }, + { + x: 200, + y: 700, + shape: normalNodeShape + }, + { + x: 600, + y: 100, + shape: normalNodeShape + } +]; +let edges: GraphEdge[] = [ + { + source: nodes[1], + target: nodes[0], + shape: normalEdgeShape + } +]; +// const lastId = 0; +let isDragging = false; +const pos: [number, number] = [0, 0]; +const startPos: [number, number] = [0, 0]; + +const graphView = createGraphView(graphDiv, nodes, edges); + +graphView.canvas.addEventListener( + "mousedown", + e => { + isDragging = true; + + startPos[0] = e.x; + startPos[1] = e.y; + }, + { + passive: true + } +); +window.addEventListener( + "mouseup", + () => { + isDragging = false; + }, + { passive: true } +); +window.addEventListener( + "mousemove", + e => { + if (!isDragging) return; + + const dx = e.x - startPos[0]; + const dy = e.y - startPos[1]; + + graphView.moveBy(dx, dy); + + startPos[0] = e.x; + startPos[1] = e.y; + }, + { + passive: true + } +); +graphView.canvas.addEventListener( + "wheel", + e => { + e.preventDefault(); + graphView.setViewPosFromWindowPos(pos, e.x, e.y); + + graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + }, + { + passive: false + } +); // graphView.requestDraw(); -// function updateNodeCount(): void { -// if (!nodeCountSpan) return; +function updateNodeCount(): void { + if (!nodeCountSpan) return; -// nodeCountSpan.innerHTML = nodes.length.toString(); -// } + nodeCountSpan.innerHTML = nodes.length.toString(); +} -// function updateEdgeCount(): void { -// if (!edgeCountSpan) return; +function updateEdgeCount(): void { + if (!edgeCountSpan) return; -// edgeCountSpan.innerHTML = edges.length.toString(); -// } + edgeCountSpan.innerHTML = edges.length.toString(); +} // function handleCreateNode(x: number, y: number) { // lastId += 1; @@ -108,20 +182,21 @@ initDefaultGraphEvents(graphView); // graphView.zoomTo(Number(target.value)); // }); -// if (generateButton) { -// generateButton.addEventListener("click", () => { -// const value = parseInt(generateTextbox.value, 10); -// const columns = Math.ceil(Math.sqrt(value)); +if (generateButton) { + generateButton.addEventListener("click", () => { + const value = parseInt(generateTextbox.value, 10); + const columns = Math.ceil(Math.sqrt(value)); -// const r = randomize(value, columns); + const r = randomize(value, columns); -// lastId = r.lastId; -// nodes = r.nodes; -// edges = r.edges; + // lastId = r.lastId; + nodes = r.nodes; + edges = r.edges; -// graphView.setData(r.nodes, r.edges); + graphView.nodes = nodes; + graphView.edges = edges; -// updateNodeCount(); -// updateEdgeCount(); -// }); -// } + updateNodeCount(); + updateEdgeCount(); + }); +} diff --git a/example/node-types.ts b/example/node-types.ts index fe2d324..23e5b02 100644 --- a/example/node-types.ts +++ b/example/node-types.ts @@ -1,76 +1,97 @@ -import { GEShapeTypes, GEShapeName } from "../src/types"; +import { NodeShape, EdgeShape } from "../src"; -export const nodeTypes: GEShapeTypes = { - empty: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - } - ], - decision: [ - { - shape: GEShapeName.RECTANGLE, - width: 150, - height: 120 - } - ], - unknown: [ - { - shape: GEShapeName.POLYGON, - points: [ - [0, -80], - [80, 0], - [0, 80], - [-80, 0] - ] - } - ], - complex: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - }, - { - shape: GEShapeName.CIRCLE, - r: 60, - color: "#9AE6B4" - }, - { - shape: GEShapeName.CIRCLE, - r: 40, - color: "white" - } - ] +const circlePath = new Path2D(); +circlePath.arc(50, 50, 50, 0, Math.PI * 2); + +const rectPath = new Path2D(); +rectPath.rect(0, 20, 100, 60); + +export const normalNodeShape: NodeShape = { + paths: [circlePath], + size: 200 +}; + +export const rectNodeShape: NodeShape = { + paths: [rectPath], + size: 200 }; -export const edgeTypes: GEShapeTypes = { - normal: [ - { - shape: GEShapeName.POLYGON, - points: [ - [0, -25], - [25, 0], - [0, 25], - [-25, 0] - ] - } - ], - round: [ - { - shape: GEShapeName.CIRCLE, - r: 25 - } - ], - double: [ - { - shape: GEShapeName.CIRCLE, - r: 25, - color: "#E9D8FD" - }, - { - shape: GEShapeName.CIRCLE, - r: 15, - color: "white" - } - ] +export const normalEdgeShape: EdgeShape = { + paths: [circlePath], + size: 50 }; + +// export const nodeTypes: GEShapeTypes = { +// empty: [ +// { +// shape: GEShapeName.CIRCLE, +// r: 80 +// } +// ], +// decision: [ +// { +// shape: GEShapeName.RECTANGLE, +// width: 150, +// height: 120 +// } +// ], +// unknown: [ +// { +// shape: GEShapeName.POLYGON, +// points: [ +// [0, -80], +// [80, 0], +// [0, 80], +// [-80, 0] +// ] +// } +// ], +// complex: [ +// { +// shape: GEShapeName.CIRCLE, +// r: 80 +// }, +// { +// shape: GEShapeName.CIRCLE, +// r: 60, +// color: "#9AE6B4" +// }, +// { +// shape: GEShapeName.CIRCLE, +// r: 40, +// color: "white" +// } +// ] +// }; + +// export const edgeTypes: GEShapeTypes = { +// normal: [ +// { +// shape: GEShapeName.POLYGON, +// points: [ +// [0, -25], +// [25, 0], +// [0, 25], +// [-25, 0] +// ] +// } +// ], +// round: [ +// { +// shape: GEShapeName.CIRCLE, +// r: 25 +// } +// ], +// double: [ +// { +// shape: GEShapeName.CIRCLE, +// r: 25, +// color: "#E9D8FD" +// }, +// { +// shape: GEShapeName.CIRCLE, +// r: 15, +// color: "white" +// } +// ] +// }; diff --git a/example/utils.ts b/example/utils.ts index 57fcc64..067cdeb 100644 --- a/example/utils.ts +++ b/example/utils.ts @@ -1,4 +1,5 @@ -import { GENode, GEEdge } from "../src/types"; +import { GraphEdge, GraphNode } from "../src"; +import { normalNodeShape, rectNodeShape } from "./node-types"; export function getRandomIntInclusive(minF: number, maxF: number): number { const min = Math.ceil(minF); @@ -10,8 +11,8 @@ export function randomize( nodeCount = 1000, cols = 40 ): { - nodes: GENode[]; - edges: GEEdge[]; + nodes: GraphNode[]; + edges: GraphEdge[]; lastId: number; } { const nodes = []; @@ -22,47 +23,41 @@ export function randomize( const col = i % cols; const row = Math.floor(i / cols); - const tmp = getRandomIntInclusive(0, 3); - const nodeType = - tmp === 0 - ? "empty" - : tmp === 1 - ? "decision" - : tmp === 2 - ? "unknown" - : "complex"; + const tmp = getRandomIntInclusive(0, 1); + const nodeShape = tmp === 0 ? normalNodeShape : rectNodeShape; const tmp2 = getRandomIntInclusive(0, 2); const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; lastId++; - const currNode: GENode = { - id: lastId, + const currNode: GraphNode = { + // id: lastId, x: col * 320, y: row * 320, - type: nodeType, - text: `Node ID: ${lastId}` + shape: nodeShape + // type: nodeType, + // text: `Node ID: ${lastId}` }; nodes.push(currNode); - if (i > 0) { - const prevNode = nodes[i - 1]; - - lastId++; - edges.push({ - id: lastId, - sourceNode: prevNode, - targetNode: currNode, - type: edgeType, - text: lastId.toString() - }); - } + // if (i > 0) { + // const prevNode = nodes[i - 1]; + + // lastId++; + // edges.push({ + // id: lastId, + // sourceNode: prevNode, + // targetNode: currNode, + // type: edgeType, + // text: lastId.toString() + // }); + // } } return { nodes, - edges, + edges: [], lastId }; } diff --git a/package.json b/package.json index 0723b32..5936fa6 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "size": "size-limit", "analyze": "size-limit --why", "release": "standard-version", + "release:beta": "standard-version -- --prerelease beta", "example:dev": "vite", "example:build": "tsc && vite build", "example:preview:": "vite preview" diff --git a/src/event-handler.ts b/src/event-handler.ts index 856567d..3458e4c 100644 --- a/src/event-handler.ts +++ b/src/event-handler.ts @@ -28,6 +28,10 @@ export class DefaultGraphEventHandler< const { view } = this; this.isDragging = true; + this.startPos[0] = e.x; + this.startPos[1] = e.y; + this.startA[0] = view.transform[1]; + this.startA[1] = view.transform[2]; view.requestDraw(); }; @@ -40,14 +44,26 @@ export class DefaultGraphEventHandler< view.requestDraw(); }; + count = 0; + startPos: [number, number] = [0, 0]; + startA: [number, number] = [0, 0]; + handleMouseMove = (e: MouseEvent) => { const { view } = this; if (!this.isDragging) return; + // console.log(this.count++); + if (this.isMovingView()) { - view.transform[1] += e.movementX; - view.transform[2] += e.movementY; + const deltaX = e.x - this.startPos[0]; + const deltaY = e.y - this.startPos[1]; + view.moveTo(this.startA[0] + deltaX, this.startA[1] + deltaY); + // const a = view.getViewPosFromWindowPos(e.clientX, e.clientY); + // view.moveTo(a[0], a[1]); + // view.moveBy(e.movementX, e.movementY); + // view.transform[1] += e.movementX / 2; + // view.transform[2] += e.movementY / 2; } view.requestDraw(); diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 0c138b8..f6997c6 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,91 +1,282 @@ import { GraphEdge, GraphNode, GraphView } from "./graph-view"; +import { circleIntersection } from "./utils"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; const BG_COLOR = "#F7FAFC"; const GRID_COLOR = "#CBD5E0"; -export function drawBackground(view: GraphView) { - const { canvas, ctx, transform } = view; - const [scale, translateX, translateY] = transform; +const NODE_COLOR = "#fff"; +const LINE_COLOR = "#000"; +const NODE_SIZE = 100; +const EDGE_SIZE = 16; +const NODE_STROKE_WIDTH = 2; - ctx.fillStyle = BG_COLOR; - ctx.fillRect(0, 0, canvas.width, canvas.height); +const EDGE_ARROW_LENGTH = 16; +const EDGE_ARROW_RADIAN = Math.PI / 6; - const lw = 8 * scale; - const gap = 64 * scale; +const linePath = new Path2D(); +linePath.rect(0, 0, 1, 1); - const offsetX = (translateX % gap) - lw; - const offsetY = (translateY % gap) - lw; +const oneOver3 = 1 / 3; +const twoOver3 = 1 - oneOver3; +const lineArrowPath = new Path2D(); +lineArrowPath.moveTo(-oneOver3, -0.5); +lineArrowPath.lineTo(-oneOver3, 0.5); +lineArrowPath.lineTo(twoOver3, 0); +lineArrowPath.closePath(); - ctx.strokeStyle = GRID_COLOR; - ctx.lineWidth = lw; +export class GraphRenderer { + view: GraphView; + canvasPos: [number, number] = [0, 0]; + pos: [number, number] = [0, 0]; - ctx.beginPath(); + constructor(view: GraphView) { + this.view = view; + } + + setToViewTransform() { + const { ctx } = this.view; + const [scale, translateX, translateY] = this.view.transform; - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, offsetY); - ctx.lineTo(i, canvas.height + lw); + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); } - ctx.lineCap = LINE_CAP_ROUND; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([0]); - ctx.lineCap = LINE_CAP_SQUARE; -} + draw() { + const { nodes, edges, pointerPos, ctx } = this.view; + + this.view.setCanvasPosFromWindowPos( + this.canvasPos, + pointerPos[0], + pointerPos[1] + ); + this.view.hoveredNode = undefined; + this.view.hoveredEdge = undefined; + + this.drawBackground(); + + this.setToViewTransform(); + + for (const node of nodes) { + if (this.isNodeOutOfView(node)) continue; + + this.drawNode(node); + } + for (const edge of edges) { + if (this.isEdgeOutOfView(edge)) continue; + + this.drawEdge(edge); + } + + ctx.resetTransform(); + } + + drawBackground() { + const { canvas, ctx, transform } = this.view; + const [scale, translateX, translateY] = transform; + + ctx.fillStyle = BG_COLOR; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + const lw = 8 * scale; + const gap = 64 * scale; + + const offsetX = (translateX % gap) - lw; + const offsetY = (translateY % gap) - lw; + + ctx.strokeStyle = GRID_COLOR; + ctx.lineWidth = lw; + + ctx.beginPath(); + + for (let i = offsetX; i < canvas.width + lw; i += gap) { + ctx.moveTo(i, offsetY); + ctx.lineTo(i, canvas.height + lw); + } + + ctx.lineCap = LINE_CAP_ROUND; + ctx.setLineDash([0, gap]); + ctx.stroke(); + ctx.setLineDash([0]); + ctx.lineCap = LINE_CAP_SQUARE; + } + + isEdgeOutOfView(edge: Edge): boolean { + const { canvas } = this.view; + const [scale, translateX, translateY] = this.view.transform; + + const source = edge.source; + const target = edge.target; + + const sourceX = source.x * scale + translateX; + const sourceY = source.y * scale + translateY; + const targetX = target.x * scale + translateX; + const targetY = target.y * scale + translateY; + + const r = (edge.shape.size || EDGE_SIZE) * 0.5; + + return ( + (sourceX < -r && targetX < -r) || + (sourceY < -r && targetY < -r) || + (sourceX > canvas.width + r && targetX > canvas.width + r) || + (sourceY > canvas.height + r && targetY > canvas.height + r) + ); + } -// export function drawNode( -// view: GraphView, -// node: GraphNode -// ) { -// // if (this.isNodeOutOfView(node)) return; + drawEdgeLine(startX: number, startY: number, endX: number, endY: number) { + const { ctx } = this.view; + const [scale, translateX, translateY] = this.view.transform; -// const { ctx, pointerPos, moveNodePos, selectedNodes, movingNode } = view; -// const [pointerX, pointerY] = pointerPos; -// const [moveNodeX, moveNodeY] = moveNodePos; + const dx = endX - startX; + const dy = endY - startY; -// const isMovingNode = movingNode === node; -// const x = isMovingNode ? moveNodeX : node.x; -// const y = isMovingNode ? moveNodeY : node.y; + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); -// const shapes = options.nodeTypes[node.type]; + const lineLen = Math.abs(dy / sinr); + const halfWidth = NODE_STROKE_WIDTH * 0.5; -// ctx.strokeStyle = options.nodeStrokeColor; -// ctx.lineWidth = options.nodeLineWidth; + ctx.strokeStyle = LINE_COLOR; + ctx.fillStyle = LINE_COLOR; -// ctx.beginPath(); -// this.shapePath(x, y, shapes[0]); + ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); + ctx.rotate(rad); + ctx.scale(lineLen - EDGE_SIZE, NODE_STROKE_WIDTH); -// if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) { -// this.state.hoveredNode = node; -// } + ctx.fill(linePath); -// const selected = node === this.state.selectedNode; -// const hovered = node === this.state.hoveredNode; + const offset = EDGE_SIZE * twoOver3 + 1; -// ctx.strokeStyle = -// selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor; -// ctx.fillStyle = shapes[0].color || options.nodeColor; + ctx.setTransform( + scale * EDGE_SIZE, + 0, + 0, + scale * EDGE_SIZE, + translateX + (endX - offset * cosr) * scale, + translateY + (endY - offset * sinr) * scale + ); -// ctx.fill(); -// ctx.stroke(); + ctx.rotate(rad); -// this.drawSubShapes(shapes, x, y); + ctx.fill(lineArrowPath); + } + + drawEdge(edge: Edge) { + if (this.isEdgeOutOfView(edge)) return; + + const { ctx, pointerPos } = this.view; + const [scale, translateX, translateY] = this.view.transform; + const { paths, render, size = NODE_SIZE } = edge.shape; + + const source = edge.source; + const target = edge.target; + + source.shape.setIntersectionPoint?.(this.pos, source, target) || + circleIntersection(this.pos, source, target); + + const [startX, startY] = this.pos; + + source.shape.setIntersectionPoint?.(this.pos, target, source) || + circleIntersection(this.pos, target, source); + + const [endX, endY] = this.pos; + + this.drawEdgeLine(startX, startY, endX, endY); + + const midX = (startX + endX) * 0.5; + const midY = (startY + endY) * 0.5; + + const rsize = size * 0.01; + const halfSize = size * 0.5; + + ctx.setTransform( + scale * rsize, + 0, + 0, + scale * rsize, + translateX + (midX - halfSize) * scale, + translateY + (midY - halfSize) * scale + ); + + ctx.fillStyle = NODE_COLOR; + ctx.lineWidth = NODE_STROKE_WIDTH / rsize; -// if (selected) { -// this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor); -// } + if (render) { + render(ctx, edge, false); + } else if (paths) { + for (const path of paths) { + ctx.fill(path); + ctx.stroke(path); + } + } -// if (selected) { -// ctx.fillStyle = options.nodeSelectedTextColor; -// } else { -// ctx.fillStyle = options.nodeTextColor; -// } + if (paths) { + for (const path of paths) { + if (ctx.isPointInPath(path, pointerPos[0], pointerPos[1])) { + this.view.hoveredEdge = edge; + } + } + } else if (render) { + if (ctx.isPointInPath(pointerPos[0], pointerPos[1])) { + this.view.hoveredEdge = edge; + } + } -// ctx.font = options.nodeTextStyle; -// ctx.textAlign = TEXT_ALIGN; -// ctx.textBaseline = TEXT_BASELINE; + this.setToViewTransform(); + } + + isNodeOutOfView(node: GraphNode) { + const { canvas } = this.view; + const [scale, translateX, translateY] = this.view.transform; + + const r = (node.shape.size || NODE_SIZE) * 0.5; + + return ( + (node.x + r) * scale + translateX < 0 || + (node.y + r) * scale + translateY < 0 || + (node.x - r) * scale + translateX > canvas.width || + (node.y - r) * scale + translateY > canvas.height + ); + } + + drawNode(node: Node) { + const { canvasPos } = this; + const { ctx } = this.view; + const { paths, render, size = NODE_SIZE } = node.shape; + + const rsize = size * 0.01; + const halfSize = size * 0.5; -// ctx.fillText(node.text, x, y); -// } + ctx.transform(rsize, 0, 0, rsize, node.x - halfSize, node.y - halfSize); + + ctx.fillStyle = NODE_COLOR; + ctx.strokeStyle = LINE_COLOR; + ctx.lineWidth = NODE_STROKE_WIDTH / rsize; + + if (render) { + render(ctx, node, false); + } else if (paths) { + for (const path of paths) { + ctx.fill(path); + ctx.stroke(path); + } + } + + if (paths) { + for (const path of paths) { + if (ctx.isPointInPath(path, canvasPos[0], canvasPos[1])) { + this.view.hoveredEdge = undefined; + this.view.hoveredNode = node; + } + } + } else if (render) { + if (ctx.isPointInPath(canvasPos[0], canvasPos[1])) { + this.view.hoveredEdge = undefined; + this.view.hoveredNode = node; + } + } + + this.setToViewTransform(); + } +} diff --git a/src/graph-view.ts b/src/graph-view.ts index e3abc8a..16a0f14 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,33 +1,54 @@ -import { drawBackground } from "./graph-renderer"; +import { GraphRenderer } from "./graph-renderer"; export type NodeShape = { - render: (ctx: CanvasRenderingContext2D) => void; - intersectionPoints: [number, number][]; + paths?: Path2D[]; + render?: ( + ctx: CanvasRenderingContext2D, + node: Node, + isHovered: boolean + ) => void; + intersectionPoints?: [number, number][]; + setIntersectionPoint?: ( + out: [number, number], + self: Node, + other: Node + ) => void; + size?: number; }; export type EdgeShape = { - render: (ctx: CanvasRenderingContext2D) => void; + paths?: Path2D[]; + render?: ( + ctx: CanvasRenderingContext2D, + edge: Edge, + isHovered: boolean + ) => void; + size?: number; }; export type GraphNode = { x: number; y: number; - shape: EdgeShape; + shape: NodeShape; }; export type GraphEdge = { source: GraphNode; target: GraphNode; - shape: NodeShape; + shape: EdgeShape; }; +// const FPS = 60; +// const MPF = 1000 / FPS; +// const SPF = MPF * 0.001; + export class GraphView { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; transform: [number, number, number] = [1, 0, 0]; // [scale, tx, ty] - nodes: Node[] = []; - edges: Edge[] = []; + nodes: Node[]; + edges: Edge[]; hoveredNode: Node | undefined = undefined; hoveredEdge: Edge | undefined = undefined; pointerPos: [number, number] = [0, 0]; @@ -39,8 +60,17 @@ export class GraphView { private isDrawing = false; private boundingRect: DOMRect; + private renderer: GraphRenderer; + // private viewMoveTarget: [number, number] = [0, 0]; + + // private startTime = 0; + // private lastTime = 0; + // private counter = 0; + + constructor(container: HTMLElement, nodes: Node[], edges: Edge[]) { + this.nodes = nodes; + this.edges = edges; - constructor(container: HTMLElement) { this.canvas = document.createElement("canvas"); const ctx = this.canvas.getContext("2d", { alpha: false }); @@ -58,25 +88,89 @@ export class GraphView { container.appendChild(this.canvas); - this.requestDraw(); - } + window.addEventListener("mousemove", this.handleMouseMove, { + passive: true + }); - destroy(): void { - // this._eventHandler.destroy(); + this.renderer = new GraphRenderer(this); + this.startDraw(); } - requestDraw(): void { + destroy = () => { + window.removeEventListener("mousemove", this.handleMouseMove); + }; + + private handleMouseMove = (e: MouseEvent) => { + this.pointerPos[0] = e.x; + this.pointerPos[1] = e.y; + }; + + private requestDrawHandler = () => { + this.isDrawing = false; + this.draw(); + }; + + requestDraw() { if (!this.isDrawing) { - requestAnimationFrame(this.draw); + requestAnimationFrame(this.requestDrawHandler); } this.isDrawing = true; } - draw = () => { - this.isDrawing = false; + // private update = (dt: number) => { + // const sx = this.viewMoveTarget[0] - this.transform[1]; + // const sy = this.viewMoveTarget[1] - this.transform[2]; + + // const vx = sx; + // const vy = sy; + + // this.transform[1] += vx * dt; + // this.transform[2] += vy * dt; + + // if ( + // this.transform[1] >= this.viewMoveTarget[0] && + // this.transform[2] >= this.viewMoveTarget[1] + // ) { + // this.isMovingView = false; + // } + // }; + + // private run = (timestamp: number) => { + // const current = timestamp; + // const dt = current - this.lastTime; + + // this.counter += dt; + // this.lastTime = current; + + // while (this.counter > MPF) { + // this.update(SPF); + + // this.counter -= MPF; + // } + + // this.draw(); + + // requestAnimationFrame(this.run); + // }; + + // startDraw = () => { + // requestAnimationFrame(timestamp => { + // this.startTime = timestamp; + // this.lastTime = this.startTime; + + // requestAnimationFrame(this.run); + // }); + // }; + + startDraw = () => { + requestAnimationFrame(this.startDraw); - drawBackground(this); + this.draw(); + }; + + draw = () => { + this.renderer.draw(); }; resize(width: number, height: number): void { @@ -84,11 +178,26 @@ export class GraphView { this.canvas.height = height; this.boundingRect = this.canvas.getBoundingClientRect(); + } + + moveBy(x: number, y: number) { + this.moveTo(this.transform[1] + x, this.transform[2] + y); + // this.viewMoveTarget[0] += x; + // this.viewMoveTarget[1] += y; + } + + moveTo(x: number, y: number) { + this.transform[1] = x; + this.transform[2] = y; + // this.viewMoveTarget[0] = x; + // this.viewMoveTarget[1] = y; + } - this.requestDraw(); + zoomBy(value: number, viewX?: number, viewY?: number) { + this.zoomTo(this.transform[0] + value, viewX, viewY); } - zoomTo(value: number, viewX?: number, viewY?: number): void { + zoomTo(value: number, viewX?: number, viewY?: number) { const { width, height } = this.canvas; const [scale, translateX, translateY] = this.transform; @@ -104,8 +213,6 @@ export class GraphView { this.transform[0] += deltaScale; this.transform[1] += offsetX; this.transform[2] += offsetY; - - this.requestDraw(); } setViewPosFromWindowPos( @@ -130,10 +237,45 @@ export class GraphView { out[0] = (canvasX - translateX) / scale; out[1] = (canvasY - translateY) / scale; } + + getViewPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.boundingRect; + const [scale, translateX, translateY] = this.transform; + + return [ + (windowX - left - translateX) / scale, + (windowY - top - translateY) / scale + ]; + } + + getViewPosFromCanvasPos(canvasX: number, canvasY: number) { + const [scale, translateX, translateY] = this.transform; + + return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; + } + + setCanvasPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.boundingRect; + + out[0] = windowX - left; + out[1] = windowY - top; + } + + getCanvasPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.boundingRect; + + return [windowX - left, windowY - top]; + } } export function createGraphView( - container: HTMLElement + container: HTMLElement, + nodes: Node[], + edges: Edge[] ) { - return new GraphView(container); + return new GraphView(container, nodes, edges); } diff --git a/src/utils.ts b/src/utils.ts index daf9b10..dd62d83 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,45 +1,62 @@ -import { GraphViewOptions } from "./types"; +import { GraphNode } from "./graph-view"; -export function getDefaultOptions(): GraphViewOptions { - return { - edgeArrowLength: 16, - edgeArrowRadian: Math.PI / 6, - backgroundColor: "#F7FAFC", - showGrid: true, - gridColor: "#CBD5E0", - gridLineWidth: 8, - gridGap: 64, - defaultSubShapeColor: "green", - nodeLineWidth: 2, - nodeColor: "white", - nodeSelectedColor: "#4299E1", - nodeStrokeColor: "#1A202C", - nodeTextColor: "#1A202C", - nodeSelectedTextColor: "white", - nodeTextStyle: "16px sans-serif", - edgeLineWidth: 3, - edgeLineColor: "#2B6CB0", - edgeLineSelectedColor: "#4299E1", - edgeShapeFillColor: "white", - edgeTextColor: "#1A202C", - edgeSelectedTextColor: "white", - edgeTextStyle: "16px sans-serif", - minScale: 0.2, - maxScale: 1.8, - cursorGrab: "grab", - cursorPointer: "pointer", - cursorCrosshair: "crosshair", - nodeTypes: { - empty: [] - }, - edgeTypes: { - empty: [ - { - shape: GEShapeName.RECTANGLE, - width: 30, - height: 20 - } - ] - } - }; +export function circleIntersection( + out: [number, number], + self: Node, + other: Node +) { + const dx = other.x - self.x; + const dy = other.y - self.y; + const r = (self.shape.size || 100) * 0.5; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + out[0] = self.x + cosr * r; + out[1] = self.y + sinr * r; } + +// export function getDefaultOptions(): GraphViewOptions { +// return { +// edgeArrowLength: 16, +// edgeArrowRadian: Math.PI / 6, +// backgroundColor: "#F7FAFC", +// showGrid: true, +// gridColor: "#CBD5E0", +// gridLineWidth: 8, +// gridGap: 64, +// defaultSubShapeColor: "green", +// nodeLineWidth: 2, +// nodeColor: "white", +// nodeSelectedColor: "#4299E1", +// nodeStrokeColor: "#1A202C", +// nodeTextColor: "#1A202C", +// nodeSelectedTextColor: "white", +// nodeTextStyle: "16px sans-serif", +// edgeLineWidth: 3, +// edgeLineColor: "#2B6CB0", +// edgeLineSelectedColor: "#4299E1", +// edgeShapeFillColor: "white", +// edgeTextColor: "#1A202C", +// edgeSelectedTextColor: "white", +// edgeTextStyle: "16px sans-serif", +// minScale: 0.2, +// maxScale: 1.8, +// cursorGrab: "grab", +// cursorPointer: "pointer", +// cursorCrosshair: "crosshair", +// nodeTypes: { +// empty: [] +// }, +// edgeTypes: { +// empty: [ +// { +// shape: GEShapeName.RECTANGLE, +// width: 30, +// height: 20 +// } +// ] +// } +// }; +// } From 993d43b6d3def8542bd9ac27d03f5a61b171eb81 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 12 Apr 2022 22:15:46 +0700 Subject: [PATCH 08/56] basic action example --- example/index.css | 17 ++- example/index.html | 42 ++++--- example/index.ts | 124 +++++++++++++++------ example/node-types.ts | 25 +++-- example/utils.ts | 35 +++--- src/graph-renderer.ts | 250 ++++++++++++++++++++++++++---------------- src/graph-view.ts | 28 ++++- src/index.ts | 2 +- src/utils.ts | 2 +- 9 files changed, 339 insertions(+), 186 deletions(-) diff --git a/example/index.css b/example/index.css index b6aad5a..93751e9 100644 --- a/example/index.css +++ b/example/index.css @@ -1,4 +1,5 @@ -html, body { +html, +body { width: 100%; height: 100%; @@ -9,6 +10,12 @@ html, body { font-size: 16px; } +*, +*:before, +*:after { + box-sizing: border-box; +} + #graph { width: 100%; height: 100%; @@ -26,7 +33,7 @@ html, body { left: 0; margin: 1em; font-size: 0.9em; - color: #718096 + color: #718096; } #buttons { @@ -49,6 +56,12 @@ html, body { button { padding: 0.5em; cursor: pointer; + background-color: white; + border: 2px solid black; +} + +button.active { + border: 2px solid #2563eb; } .zoom-input { diff --git a/example/index.html b/example/index.html index 6f7c521..e3c0009 100644 --- a/example/index.html +++ b/example/index.html @@ -19,7 +19,13 @@
-
+
+ + + +
+ +
+
-
- - - -
- +
Node count: @@ -55,17 +50,18 @@ 0
-
-
-
- Press and hold shift, and then click on empty place to create a new - node. -
+
+ -
- Press and hold shift, and then click and drag a node to another node - to create a new edge. +
diff --git a/example/index.ts b/example/index.ts index 24bbbce..9081fa5 100644 --- a/example/index.ts +++ b/example/index.ts @@ -15,34 +15,48 @@ const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; const generateTextbox = document.getElementById( "generate-textbox" ) as HTMLInputElement; -const generateButton = document.getElementById("generate-button"); - -let nodes: GraphNode[] = [ - { - x: 300, - y: 200, - shape: normalNodeShape - }, - { - x: 200, - y: 700, - shape: normalNodeShape - }, - { - x: 600, - y: 100, - shape: normalNodeShape - } -]; -let edges: GraphEdge[] = [ - { - source: nodes[1], - target: nodes[0], - shape: normalEdgeShape +const generateButton = document.getElementById( + "generate-button" +) as HTMLButtonElement; +const moveButton = document.getElementById("move-tool") as HTMLButtonElement; +const createButton = document.getElementById( + "create-tool" +) as HTMLButtonElement; + +type Action = "move" | "create"; +let action: Action = "move"; + +function setAction(newAction: Action) { + action = newAction; + + moveButton.classList.remove("active"); + createButton.classList.remove("active"); + + switch (action) { + case "move": + moveButton.classList.add("active"); + break; + case "create": + createButton.classList.add("active"); + break; } -]; +} + +moveButton.addEventListener("click", e => { + e.stopPropagation(); + setAction("move"); +}); +createButton.addEventListener("click", e => { + e.stopPropagation(); + setAction("create"); +}); + +let nodes: GraphNode[] = []; +let edges: GraphEdge[] = []; // const lastId = 0; let isDragging = false; +let movingNode: GraphNode | undefined; +let dragSourceNode: GraphNode | undefined; const pos: [number, number] = [0, 0]; const startPos: [number, number] = [0, 0]; @@ -55,27 +69,72 @@ graphView.canvas.addEventListener( startPos[0] = e.x; startPos[1] = e.y; + + if (action === "move") { + movingNode = graphView.hoveredNode; + } + + if (action === "create") { + if (graphView.hoveredNode) { + dragSourceNode = graphView.hoveredNode; + + graphView.beginDragLine( + graphView.hoveredNode.x, + graphView.hoveredNode.y + ); + } + } }, { passive: true } ); -window.addEventListener( +graphView.canvas.addEventListener( "mouseup", - () => { + e => { + if (isDragging && action === "create" && dragSourceNode) { + graphView.endDragLine(); + + if (graphView.hoveredNode && graphView.hoveredNode !== dragSourceNode) { + edges.push({ + source: dragSourceNode, + target: graphView.hoveredNode, + shape: normalEdgeShape + }); + } + } + + if (action === "create" && !dragSourceNode && !graphView.hoveredNode) { + graphView.setViewPosFromWindowPos(pos, e.x, e.y); + + nodes.push({ + x: pos[0], + y: pos[1], + shape: normalNodeShape + }); + } + isDragging = false; + movingNode = undefined; + dragSourceNode = undefined; }, { passive: true } ); -window.addEventListener( +graphView.canvas.addEventListener( "mousemove", e => { if (!isDragging) return; + if (action === "create") return; const dx = e.x - startPos[0]; const dy = e.y - startPos[1]; - graphView.moveBy(dx, dy); + if (movingNode) { + movingNode.x += dx / graphView.transform[0]; + movingNode.y += dy / graphView.transform[0]; + } else { + graphView.moveBy(dx, dy); + } startPos[0] = e.x; startPos[1] = e.y; @@ -172,9 +231,9 @@ function updateEdgeCount(): void { // zoomSlider.value = graphView.getScale().toString(); // } -// window.addEventListener("resize", () => { -// graphView.resize(window.innerWidth, window.innerHeight); -// }); +window.addEventListener("resize", () => { + graphView.resize(window.innerWidth, window.innerHeight); +}); // zoomSlider.addEventListener("input", e => { // const target = e.target as HTMLInputElement; @@ -195,6 +254,7 @@ if (generateButton) { graphView.nodes = nodes; graphView.edges = edges; + // console.log({ nodes, edges }); updateNodeCount(); updateEdgeCount(); diff --git a/example/node-types.ts b/example/node-types.ts index 23e5b02..1478235 100644 --- a/example/node-types.ts +++ b/example/node-types.ts @@ -1,24 +1,27 @@ import { NodeShape, EdgeShape } from "../src"; -const circlePath = new Path2D(); -circlePath.arc(50, 50, 50, 0, Math.PI * 2); - -const rectPath = new Path2D(); -rectPath.rect(0, 20, 100, 60); +const normalNodePath = new Path2D(); +normalNodePath.arc(100, 100, 100, 0, Math.PI * 2); export const normalNodeShape: NodeShape = { - paths: [circlePath], - size: 200 + paths: [normalNodePath], + size: [200, 200] }; +const rectNodePath = new Path2D(); +rectNodePath.rect(0, 0, 200, 120); + export const rectNodeShape: NodeShape = { - paths: [rectPath], - size: 200 + paths: [rectNodePath], + size: [200, 120] }; +const normalEdgePath = new Path2D(); +normalEdgePath.arc(25, 25, 25, 0, Math.PI * 2); + export const normalEdgeShape: EdgeShape = { - paths: [circlePath], - size: 50 + paths: [normalEdgePath], + size: [50, 50] }; // export const nodeTypes: GEShapeTypes = { diff --git a/example/utils.ts b/example/utils.ts index 067cdeb..b7b672d 100644 --- a/example/utils.ts +++ b/example/utils.ts @@ -1,5 +1,5 @@ import { GraphEdge, GraphNode } from "../src"; -import { normalNodeShape, rectNodeShape } from "./node-types"; +import { normalEdgeShape, normalNodeShape, rectNodeShape } from "./node-types"; export function getRandomIntInclusive(minF: number, maxF: number): number { const min = Math.ceil(minF); @@ -15,8 +15,8 @@ export function randomize( edges: GraphEdge[]; lastId: number; } { - const nodes = []; - const edges = []; + const nodes: GraphNode[] = []; + const edges: GraphEdge[] = []; let lastId = 0; for (let i = 0; i < nodeCount; i++) { @@ -26,8 +26,9 @@ export function randomize( const tmp = getRandomIntInclusive(0, 1); const nodeShape = tmp === 0 ? normalNodeShape : rectNodeShape; - const tmp2 = getRandomIntInclusive(0, 2); - const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; + // const tmp2 = getRandomIntInclusive(0, 2); + // const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; + const edgeShape = normalEdgeShape; lastId++; const currNode: GraphNode = { @@ -41,23 +42,21 @@ export function randomize( nodes.push(currNode); - // if (i > 0) { - // const prevNode = nodes[i - 1]; - - // lastId++; - // edges.push({ - // id: lastId, - // sourceNode: prevNode, - // targetNode: currNode, - // type: edgeType, - // text: lastId.toString() - // }); - // } + if (i > 0) { + const prevNode = nodes[i - 1]; + + lastId++; + edges.push({ + source: prevNode, + target: currNode, + shape: edgeShape + }); + } } return { nodes, - edges: [], + edges, lastId }; } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index f6997c6..2eba4a3 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,4 +1,11 @@ -import { GraphEdge, GraphNode, GraphView } from "./graph-view"; +import { + EdgeShape, + GraphEdge, + GraphNode, + GraphShape, + GraphView, + NodeShape +} from "./graph-view"; import { circleIntersection } from "./utils"; const LINE_CAP_ROUND = "round"; @@ -8,13 +15,11 @@ const GRID_COLOR = "#CBD5E0"; const NODE_COLOR = "#fff"; const LINE_COLOR = "#000"; +const HOVER_LINE_COLOR = "#4299E1"; const NODE_SIZE = 100; const EDGE_SIZE = 16; const NODE_STROKE_WIDTH = 2; -const EDGE_ARROW_LENGTH = 16; -const EDGE_ARROW_RADIAN = Math.PI / 6; - const linePath = new Path2D(); linePath.rect(0, 0, 1, 1); @@ -29,7 +34,8 @@ lineArrowPath.closePath(); export class GraphRenderer { view: GraphView; canvasPos: [number, number] = [0, 0]; - pos: [number, number] = [0, 0]; + viewPos: [number, number] = [0, 0]; + out: [number, number] = [0, 0]; constructor(view: GraphView) { this.view = view; @@ -50,6 +56,12 @@ export class GraphRenderer { pointerPos[0], pointerPos[1] ); + this.view.setViewPosFromWindowPos( + this.viewPos, + this.canvasPos[0], + this.canvasPos[1] + ); + this.view.hoveredNode = undefined; this.view.hoveredEdge = undefined; @@ -57,15 +69,33 @@ export class GraphRenderer { this.setToViewTransform(); + for (const edge of edges) { + if (this.isEdgeOutOfView(edge)) continue; + + this.drawEdge(edge); + } + for (const node of nodes) { if (this.isNodeOutOfView(node)) continue; this.drawNode(node); } - for (const edge of edges) { - if (this.isEdgeOutOfView(edge)) continue; - this.drawEdge(edge); + if (this.view.hoveredEdge) { + this.drawEdge(this.view.hoveredEdge, true); + } + + if (this.view.hoveredNode) { + this.drawNode(this.view.hoveredNode, true); + } + + if (this.view.isCreatingEdge) { + this.drawEdgeLine( + this.view.dragLineSourcePos[0], + this.view.dragLineSourcePos[1], + this.viewPos[0], + this.viewPos[1] + ); } ctx.resetTransform(); @@ -104,26 +134,36 @@ export class GraphRenderer { isEdgeOutOfView(edge: Edge): boolean { const { canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; + const { size } = edge.shape; const source = edge.source; const target = edge.target; + const rx = (size ? size[0] : EDGE_SIZE) * 0.5 * scale; + const ry = (size ? size[1] : EDGE_SIZE) * 0.5 * scale; + const sourceX = source.x * scale + translateX; const sourceY = source.y * scale + translateY; const targetX = target.x * scale + translateX; const targetY = target.y * scale + translateY; - const r = (edge.shape.size || EDGE_SIZE) * 0.5; - return ( - (sourceX < -r && targetX < -r) || - (sourceY < -r && targetY < -r) || - (sourceX > canvas.width + r && targetX > canvas.width + r) || - (sourceY > canvas.height + r && targetY > canvas.height + r) + (sourceX < -rx && targetX < -rx) || + (sourceY < -ry && targetY < -ry) || + (sourceX > canvas.width + rx && targetX > canvas.width + rx) || + (sourceY > canvas.height + ry && targetY > canvas.height + ry) ); } - drawEdgeLine(startX: number, startY: number, endX: number, endY: number) { + drawEdgeLine( + startX: number, + startY: number, + endX: number, + endY: number, + edge?: Edge, + hovered = false + ) { + const { canvasPos } = this; const { ctx } = this.view; const [scale, translateX, translateY] = this.view.transform; @@ -134,11 +174,10 @@ export class GraphRenderer { const sinr = Math.sin(rad); const cosr = Math.cos(rad); - const lineLen = Math.abs(dy / sinr); + const lineLen = dy === 0 ? dx : Math.abs(dy / sinr); const halfWidth = NODE_STROKE_WIDTH * 0.5; - ctx.strokeStyle = LINE_COLOR; - ctx.fillStyle = LINE_COLOR; + ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); ctx.rotate(rad); @@ -146,6 +185,14 @@ export class GraphRenderer { ctx.fill(linePath); + if ( + edge && + !hovered && + ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) + ) { + this.view.hoveredEdge = edge; + } + const offset = EDGE_SIZE * twoOver3 + 1; ctx.setTransform( @@ -160,122 +207,139 @@ export class GraphRenderer { ctx.rotate(rad); ctx.fill(lineArrowPath); + + if ( + edge && + !hovered && + ctx.isPointInPath(lineArrowPath, canvasPos[0], canvasPos[1]) + ) { + this.view.hoveredEdge = edge; + } } - drawEdge(edge: Edge) { - if (this.isEdgeOutOfView(edge)) return; + drawShape(nodeOrEdge: Node | Edge, shape: GraphShape, hovered = false) { + const { canvasPos } = this; + const { ctx } = this.view; + const { paths, render } = shape; + + ctx.fillStyle = NODE_COLOR; + ctx.strokeStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; + ctx.lineWidth = NODE_STROKE_WIDTH; + + if (render) { + render(ctx, nodeOrEdge, false); + } else if (paths) { + for (const path of paths) { + ctx.fill(path); + ctx.stroke(path); + } + } + + if (hovered) return; + + if (paths) { + for (const path of paths) { + if (ctx.isPointInPath(path, canvasPos[0], canvasPos[1])) { + if ("x" in nodeOrEdge) { + this.view.hoveredEdge = undefined; + this.view.hoveredNode = nodeOrEdge; + } else { + this.view.hoveredEdge = nodeOrEdge; + } + } + } + } else if (render) { + if (ctx.isPointInPath(canvasPos[0], canvasPos[1])) { + if ("x" in nodeOrEdge) { + this.view.hoveredEdge = undefined; + this.view.hoveredNode = nodeOrEdge; + } else { + this.view.hoveredEdge = nodeOrEdge; + } + } + } + } - const { ctx, pointerPos } = this.view; + drawEdge(edge: Edge, hovered = false) { + const { ctx } = this.view; const [scale, translateX, translateY] = this.view.transform; - const { paths, render, size = NODE_SIZE } = edge.shape; + const { size } = edge.shape; const source = edge.source; const target = edge.target; - source.shape.setIntersectionPoint?.(this.pos, source, target) || - circleIntersection(this.pos, source, target); + source.shape.setIntersectionPoint?.(this.out, source, target) || + circleIntersection(this.out, source, target); - const [startX, startY] = this.pos; + const [startX, startY] = this.out; - source.shape.setIntersectionPoint?.(this.pos, target, source) || - circleIntersection(this.pos, target, source); + source.shape.setIntersectionPoint?.(this.out, target, source) || + circleIntersection(this.out, target, source); - const [endX, endY] = this.pos; + const [endX, endY] = this.out; - this.drawEdgeLine(startX, startY, endX, endY); + this.drawEdgeLine(startX, startY, endX, endY, edge, hovered); const midX = (startX + endX) * 0.5; const midY = (startY + endY) * 0.5; - const rsize = size * 0.01; - const halfSize = size * 0.5; + const rx = (size ? size[0] : NODE_SIZE) * 0.5; + const ry = (size ? size[1] : NODE_SIZE) * 0.5; ctx.setTransform( - scale * rsize, + scale, 0, 0, - scale * rsize, - translateX + (midX - halfSize) * scale, - translateY + (midY - halfSize) * scale + scale, + translateX + (midX - rx) * scale, + translateY + (midY - ry) * scale ); - ctx.fillStyle = NODE_COLOR; - ctx.lineWidth = NODE_STROKE_WIDTH / rsize; + this.drawShape(edge, edge.shape as GraphShape, hovered); - if (render) { - render(ctx, edge, false); - } else if (paths) { - for (const path of paths) { - ctx.fill(path); - ctx.stroke(path); - } - } + this.setToViewTransform(); + } - if (paths) { - for (const path of paths) { - if (ctx.isPointInPath(path, pointerPos[0], pointerPos[1])) { - this.view.hoveredEdge = edge; - } - } - } else if (render) { - if (ctx.isPointInPath(pointerPos[0], pointerPos[1])) { - this.view.hoveredEdge = edge; - } + setShapeSize(out: [number, number], shape: NodeShape | EdgeShape) { + const { size } = shape; + + if (Array.isArray(size)) { + out[0] = size[0]; + out[1] = size[1]; + + return; } - this.setToViewTransform(); + out[0] = size || NODE_SIZE; + out[1] = size || NODE_SIZE; } isNodeOutOfView(node: GraphNode) { const { canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; + const { size } = node.shape; - const r = (node.shape.size || NODE_SIZE) * 0.5; + const rx = (size ? size[0] : NODE_SIZE) * 0.5; + const ry = (size ? size[1] : NODE_SIZE) * 0.5; return ( - (node.x + r) * scale + translateX < 0 || - (node.y + r) * scale + translateY < 0 || - (node.x - r) * scale + translateX > canvas.width || - (node.y - r) * scale + translateY > canvas.height + (node.x + rx) * scale + translateX < 0 || + (node.y + ry) * scale + translateY < 0 || + (node.x - rx) * scale + translateX > canvas.width || + (node.y - ry) * scale + translateY > canvas.height ); } - drawNode(node: Node) { - const { canvasPos } = this; + drawNode(node: Node, hovered = false) { const { ctx } = this.view; - const { paths, render, size = NODE_SIZE } = node.shape; - - const rsize = size * 0.01; - const halfSize = size * 0.5; + const { size } = node.shape; - ctx.transform(rsize, 0, 0, rsize, node.x - halfSize, node.y - halfSize); + const rx = (size ? size[0] : NODE_SIZE) * 0.5; + const ry = (size ? size[1] : NODE_SIZE) * 0.5; - ctx.fillStyle = NODE_COLOR; - ctx.strokeStyle = LINE_COLOR; - ctx.lineWidth = NODE_STROKE_WIDTH / rsize; - - if (render) { - render(ctx, node, false); - } else if (paths) { - for (const path of paths) { - ctx.fill(path); - ctx.stroke(path); - } - } + ctx.translate(node.x - rx, node.y - ry); - if (paths) { - for (const path of paths) { - if (ctx.isPointInPath(path, canvasPos[0], canvasPos[1])) { - this.view.hoveredEdge = undefined; - this.view.hoveredNode = node; - } - } - } else if (render) { - if (ctx.isPointInPath(canvasPos[0], canvasPos[1])) { - this.view.hoveredEdge = undefined; - this.view.hoveredNode = node; - } - } + this.drawShape(node, node.shape as GraphShape, hovered); this.setToViewTransform(); } diff --git a/src/graph-view.ts b/src/graph-view.ts index 16a0f14..9f6306f 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,5 +1,15 @@ import { GraphRenderer } from "./graph-renderer"; +export type GraphShape = { + paths?: Path2D[]; + render?: ( + ctx: CanvasRenderingContext2D, + nodeOrEdge: Node | Edge, + isHovered: boolean + ) => void; + size?: [number, number]; +}; + export type NodeShape = { paths?: Path2D[]; render?: ( @@ -7,13 +17,12 @@ export type NodeShape = { node: Node, isHovered: boolean ) => void; - intersectionPoints?: [number, number][]; setIntersectionPoint?: ( out: [number, number], self: Node, other: Node ) => void; - size?: number; + size?: [number, number]; }; export type EdgeShape = { @@ -23,7 +32,7 @@ export type EdgeShape = { edge: Edge, isHovered: boolean ) => void; - size?: number; + size?: [number, number]; }; export type GraphNode = { @@ -55,8 +64,7 @@ export class GraphView { movingNode: Node | undefined = undefined; moveNodePos: [number, number] = [0, 0]; isCreatingEdge = false; - dragLineSourceNode: Node | undefined = undefined; - dragLineTargetPos: [number, number] = [0, 0]; + dragLineSourcePos: [number, number] = [0, 0]; private isDrawing = false; private boundingRect: DOMRect; @@ -215,6 +223,16 @@ export class GraphView { this.transform[2] += offsetY; } + beginDragLine(x: number, y: number) { + this.isCreatingEdge = true; + this.dragLineSourcePos[0] = x; + this.dragLineSourcePos[1] = y; + } + + endDragLine() { + this.isCreatingEdge = false; + } + setViewPosFromWindowPos( out: [number, number], windowX: number, diff --git a/src/index.ts b/src/index.ts index b249c76..963f942 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ export * from "./graph-view"; -export * from "./event-handler"; +export * from "./utils"; diff --git a/src/utils.ts b/src/utils.ts index dd62d83..5253387 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,7 +7,7 @@ export function circleIntersection( ) { const dx = other.x - self.x; const dy = other.y - self.y; - const r = (self.shape.size || 100) * 0.5; + const r = (self.shape.size ? self.shape.size[0] : 100) * 0.5; const rad = Math.atan2(dy, dx); const sinr = Math.sin(rad); From bc1ce48bd70ad05f245ee9661918b3a695b7d220 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 13 Apr 2022 22:18:20 +0700 Subject: [PATCH 09/56] add more shapes, intersections, and fixes --- example/index.ts | 16 +++-- example/node-types.ts | 25 +++++++- example/utils.ts | 12 +++- src/graph-renderer.ts | 70 ++++++++------------- src/graph-view.ts | 31 +++++++-- src/utils.ts | 143 +++++++++++++++++++++++++++++------------- 6 files changed, 197 insertions(+), 100 deletions(-) diff --git a/example/index.ts b/example/index.ts index 9081fa5..6b43dbb 100644 --- a/example/index.ts +++ b/example/index.ts @@ -70,8 +70,10 @@ graphView.canvas.addEventListener( startPos[0] = e.x; startPos[1] = e.y; - if (action === "move") { + if (action === "move" && graphView.hoveredNode) { movingNode = graphView.hoveredNode; + + graphView.beginMoveNode(graphView.hoveredNode); } if (action === "create") { @@ -92,6 +94,13 @@ graphView.canvas.addEventListener( graphView.canvas.addEventListener( "mouseup", e => { + if (isDragging && action === "move" && movingNode) { + graphView.endMoveNode(pos); + + movingNode.x = pos[0]; + movingNode.y = pos[1]; + } + if (isDragging && action === "create" && dragSourceNode) { graphView.endDragLine(); @@ -129,10 +138,7 @@ graphView.canvas.addEventListener( const dx = e.x - startPos[0]; const dy = e.y - startPos[1]; - if (movingNode) { - movingNode.x += dx / graphView.transform[0]; - movingNode.y += dy / graphView.transform[0]; - } else { + if (!movingNode) { graphView.moveBy(dx, dy); } diff --git a/example/node-types.ts b/example/node-types.ts index 1478235..1bf5f4f 100644 --- a/example/node-types.ts +++ b/example/node-types.ts @@ -1,10 +1,18 @@ -import { NodeShape, EdgeShape } from "../src"; +import { + NodeShape, + EdgeShape, + circleIntersection, + rectIntersection, + createPathFromPoints, + polygonIntersection +} from "../src"; const normalNodePath = new Path2D(); normalNodePath.arc(100, 100, 100, 0, Math.PI * 2); export const normalNodeShape: NodeShape = { paths: [normalNodePath], + setIntersectionPoint: circleIntersection, size: [200, 200] }; @@ -13,9 +21,24 @@ rectNodePath.rect(0, 0, 200, 120); export const rectNodeShape: NodeShape = { paths: [rectNodePath], + setIntersectionPoint: rectIntersection, size: [200, 120] }; +const randomNodePoints: [number, number][] = [ + [0, 10], + [15, 200], + [175, 180], + [200, 120], + [140, 0] +]; + +export const randomNodeShape: NodeShape = { + paths: [createPathFromPoints(randomNodePoints)], + setIntersectionPoint: polygonIntersection(randomNodePoints), + size: [200, 200] +}; + const normalEdgePath = new Path2D(); normalEdgePath.arc(25, 25, 25, 0, Math.PI * 2); diff --git a/example/utils.ts b/example/utils.ts index b7b672d..d958156 100644 --- a/example/utils.ts +++ b/example/utils.ts @@ -1,5 +1,10 @@ import { GraphEdge, GraphNode } from "../src"; -import { normalEdgeShape, normalNodeShape, rectNodeShape } from "./node-types"; +import { + normalEdgeShape, + normalNodeShape, + randomNodeShape, + rectNodeShape +} from "./node-types"; export function getRandomIntInclusive(minF: number, maxF: number): number { const min = Math.ceil(minF); @@ -23,8 +28,9 @@ export function randomize( const col = i % cols; const row = Math.floor(i / cols); - const tmp = getRandomIntInclusive(0, 1); - const nodeShape = tmp === 0 ? normalNodeShape : rectNodeShape; + const tmp = getRandomIntInclusive(0, 2); + const nodeShape = + tmp === 0 ? normalNodeShape : tmp === 1 ? rectNodeShape : randomNodeShape; // const tmp2 = getRandomIntInclusive(0, 2); // const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 2eba4a3..0e8450c 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,12 +1,4 @@ -import { - EdgeShape, - GraphEdge, - GraphNode, - GraphShape, - GraphView, - NodeShape -} from "./graph-view"; -import { circleIntersection } from "./utils"; +import { GraphEdge, GraphNode, GraphShape, GraphView } from "./graph-view"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; @@ -16,7 +8,6 @@ const GRID_COLOR = "#CBD5E0"; const NODE_COLOR = "#fff"; const LINE_COLOR = "#000"; const HOVER_LINE_COLOR = "#4299E1"; -const NODE_SIZE = 100; const EDGE_SIZE = 16; const NODE_STROKE_WIDTH = 2; @@ -49,7 +40,7 @@ export class GraphRenderer { } draw() { - const { nodes, edges, pointerPos, ctx } = this.view; + const { nodes, edges, pointerPos, ctx, movingNode } = this.view; this.view.setCanvasPosFromWindowPos( this.canvasPos, @@ -62,7 +53,7 @@ export class GraphRenderer { this.canvasPos[1] ); - this.view.hoveredNode = undefined; + this.view.hoveredNode = movingNode; this.view.hoveredEdge = undefined; this.drawBackground(); @@ -139,8 +130,8 @@ export class GraphRenderer { const source = edge.source; const target = edge.target; - const rx = (size ? size[0] : EDGE_SIZE) * 0.5 * scale; - const ry = (size ? size[1] : EDGE_SIZE) * 0.5 * scale; + const rx = size[0] * 0.5 * scale; + const ry = size[1] * 0.5 * scale; const sourceX = source.x * scale + translateX; const sourceY = source.y * scale + translateY; @@ -164,7 +155,7 @@ export class GraphRenderer { hovered = false ) { const { canvasPos } = this; - const { ctx } = this.view; + const { ctx, movingNode } = this.view; const [scale, translateX, translateY] = this.view.transform; const dx = endX - startX; @@ -186,6 +177,7 @@ export class GraphRenderer { ctx.fill(linePath); if ( + !movingNode && edge && !hovered && ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) @@ -209,6 +201,7 @@ export class GraphRenderer { ctx.fill(lineArrowPath); if ( + !movingNode && edge && !hovered && ctx.isPointInPath(lineArrowPath, canvasPos[0], canvasPos[1]) @@ -219,7 +212,7 @@ export class GraphRenderer { drawShape(nodeOrEdge: Node | Edge, shape: GraphShape, hovered = false) { const { canvasPos } = this; - const { ctx } = this.view; + const { ctx, movingNode } = this.view; const { paths, render } = shape; ctx.fillStyle = NODE_COLOR; @@ -235,7 +228,7 @@ export class GraphRenderer { } } - if (hovered) return; + if (movingNode || hovered) return; if (paths) { for (const path of paths) { @@ -268,13 +261,11 @@ export class GraphRenderer { const source = edge.source; const target = edge.target; - source.shape.setIntersectionPoint?.(this.out, source, target) || - circleIntersection(this.out, source, target); + source.shape.setIntersectionPoint(this.out, source, target); const [startX, startY] = this.out; - source.shape.setIntersectionPoint?.(this.out, target, source) || - circleIntersection(this.out, target, source); + target.shape.setIntersectionPoint(this.out, target, source); const [endX, endY] = this.out; @@ -283,8 +274,8 @@ export class GraphRenderer { const midX = (startX + endX) * 0.5; const midY = (startY + endY) * 0.5; - const rx = (size ? size[0] : NODE_SIZE) * 0.5; - const ry = (size ? size[1] : NODE_SIZE) * 0.5; + const rx = size[0] * 0.5; + const ry = size[1] * 0.5; ctx.setTransform( scale, @@ -300,27 +291,13 @@ export class GraphRenderer { this.setToViewTransform(); } - setShapeSize(out: [number, number], shape: NodeShape | EdgeShape) { - const { size } = shape; - - if (Array.isArray(size)) { - out[0] = size[0]; - out[1] = size[1]; - - return; - } - - out[0] = size || NODE_SIZE; - out[1] = size || NODE_SIZE; - } - isNodeOutOfView(node: GraphNode) { const { canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; const { size } = node.shape; - const rx = (size ? size[0] : NODE_SIZE) * 0.5; - const ry = (size ? size[1] : NODE_SIZE) * 0.5; + const rx = size[0] * 0.5; + const ry = size[1] * 0.5; return ( (node.x + rx) * scale + translateX < 0 || @@ -331,13 +308,20 @@ export class GraphRenderer { } drawNode(node: Node, hovered = false) { - const { ctx } = this.view; + const { ctx, movingNode, moveNodeOffset } = this.view; const { size } = node.shape; - const rx = (size ? size[0] : NODE_SIZE) * 0.5; - const ry = (size ? size[1] : NODE_SIZE) * 0.5; + const rx = size[0] * 0.5; + const ry = size[1] * 0.5; - ctx.translate(node.x - rx, node.y - ry); + if (movingNode === node) { + ctx.translate( + this.viewPos[0] - moveNodeOffset[0] - rx, + this.viewPos[1] - moveNodeOffset[1] - ry + ); + } else { + ctx.translate(node.x - rx, node.y - ry); + } this.drawShape(node, node.shape as GraphShape, hovered); diff --git a/src/graph-view.ts b/src/graph-view.ts index 9f6306f..51ae636 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -7,7 +7,7 @@ export type GraphShape = { nodeOrEdge: Node | Edge, isHovered: boolean ) => void; - size?: [number, number]; + size: [number, number]; }; export type NodeShape = { @@ -17,12 +17,12 @@ export type NodeShape = { node: Node, isHovered: boolean ) => void; - setIntersectionPoint?: ( + setIntersectionPoint: ( out: [number, number], self: Node, other: Node ) => void; - size?: [number, number]; + size: [number, number]; }; export type EdgeShape = { @@ -32,7 +32,7 @@ export type EdgeShape = { edge: Edge, isHovered: boolean ) => void; - size?: [number, number]; + size: [number, number]; }; export type GraphNode = { @@ -51,6 +51,8 @@ export type GraphEdge = { // const MPF = 1000 / FPS; // const SPF = MPF * 0.001; +const out: [number, number] = [0, 0]; + export class GraphView { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; @@ -62,7 +64,7 @@ export class GraphView { hoveredEdge: Edge | undefined = undefined; pointerPos: [number, number] = [0, 0]; movingNode: Node | undefined = undefined; - moveNodePos: [number, number] = [0, 0]; + moveNodeOffset: [number, number] = [0, 0]; isCreatingEdge = false; dragLineSourcePos: [number, number] = [0, 0]; @@ -233,6 +235,25 @@ export class GraphView { this.isCreatingEdge = false; } + beginMoveNode(node: Node) { + this.setViewPosFromWindowPos(out, this.pointerPos[0], this.pointerPos[1]); + + this.movingNode = node; + this.moveNodeOffset[0] = out[0] - node.x; + this.moveNodeOffset[1] = out[1] - node.y; + } + + endMoveNode(out?: [number, number]) { + this.movingNode = undefined; + + if (out) { + this.setViewPosFromWindowPos(out, this.pointerPos[0], this.pointerPos[1]); + + out[0] -= this.moveNodeOffset[0]; + out[1] -= this.moveNodeOffset[1]; + } + } + setViewPosFromWindowPos( out: [number, number], windowX: number, diff --git a/src/utils.ts b/src/utils.ts index 5253387..03443d4 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,38 @@ import { GraphNode } from "./graph-view"; +// http://paulbourke.net/geometry/pointlineplane/javascript.txt +export function intersect( + x1: number, + y1: number, + x2: number, + y2: number, + x3: number, + y3: number, + x4: number, + y4: number, + outPoint: [number, number] +): boolean { + // Check if none of the lines are of length 0 + if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; + + const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); + + // Lines are parallel + if (denominator === 0) return false; + + const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; + const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; + + // is the intersection along the segments + if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; + + // Return a object with the x and y coordinates of the intersection + outPoint[0] = x1 + ua * (x2 - x1); + outPoint[1] = y1 + ua * (y2 - y1); + + return true; +} + export function circleIntersection( out: [number, number], self: Node, @@ -17,46 +50,70 @@ export function circleIntersection( out[1] = self.y + sinr * r; } -// export function getDefaultOptions(): GraphViewOptions { -// return { -// edgeArrowLength: 16, -// edgeArrowRadian: Math.PI / 6, -// backgroundColor: "#F7FAFC", -// showGrid: true, -// gridColor: "#CBD5E0", -// gridLineWidth: 8, -// gridGap: 64, -// defaultSubShapeColor: "green", -// nodeLineWidth: 2, -// nodeColor: "white", -// nodeSelectedColor: "#4299E1", -// nodeStrokeColor: "#1A202C", -// nodeTextColor: "#1A202C", -// nodeSelectedTextColor: "white", -// nodeTextStyle: "16px sans-serif", -// edgeLineWidth: 3, -// edgeLineColor: "#2B6CB0", -// edgeLineSelectedColor: "#4299E1", -// edgeShapeFillColor: "white", -// edgeTextColor: "#1A202C", -// edgeSelectedTextColor: "white", -// edgeTextStyle: "16px sans-serif", -// minScale: 0.2, -// maxScale: 1.8, -// cursorGrab: "grab", -// cursorPointer: "pointer", -// cursorCrosshair: "crosshair", -// nodeTypes: { -// empty: [] -// }, -// edgeTypes: { -// empty: [ -// { -// shape: GEShapeName.RECTANGLE, -// width: 30, -// height: 20 -// } -// ] -// } -// }; -// } +export function rectIntersection( + out: [number, number], + self: Node, + other: Node +) { + const wh = self.shape.size[0] * 0.5; + const hh = self.shape.size[1] * 0.5; + + const x1 = other.x; + const y1 = other.y; + const x2 = self.x; + const y2 = self.y; + + const i1 = intersect(x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh, out); + if (i1) return; + + const i2 = intersect(x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh, out); + if (i2) return; + + const i3 = intersect(x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh, out); + if (i3) return; + + intersect(x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh, out); +} + +export function polygonIntersection( + points: [number, number][] +) { + return function (out: [number, number], self: Node, other: Node) { + const len = points.length; + + const wh = self.shape.size[0] * 0.5; + const hh = self.shape.size[1] * 0.5; + + const x1 = other.x; + const y1 = other.y; + const x2 = self.x; + const y2 = self.y; + + for (let i = 0; i < len; i++) { + const nextIndex = (i + 1) % len; + + const x3 = x2 - wh + points[i][0]; + const y3 = y2 - hh + points[i][1]; + const x4 = x2 - wh + points[nextIndex][0]; + const y4 = y2 - hh + points[nextIndex][1]; + + const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, out); + + if (int) return; + } + }; +} + +export function createPathFromPoints(points: [number, number][]) { + const r = new Path2D(); + + r.moveTo(points[0][0], points[0][1]); + + for (let i = 1; i < points.length; i++) { + r.lineTo(points[i][0], points[i][1]); + } + + r.closePath(); + + return r; +} From 29871c5a6bfbf0e33078e2fa45533bac7a4c76cf Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 14 Apr 2022 22:42:15 +0700 Subject: [PATCH 10/56] fix edge --- example/index.ts | 31 +++++-- example/node-types.ts | 1 + src/graph-renderer.ts | 193 ++++++++++++++++++++++++++++++------------ src/graph-view.ts | 16 +--- src/utils.ts | 73 +++++++++++++--- 5 files changed, 227 insertions(+), 87 deletions(-) diff --git a/example/index.ts b/example/index.ts index 6b43dbb..ea19da5 100644 --- a/example/index.ts +++ b/example/index.ts @@ -51,8 +51,25 @@ createButton.addEventListener("click", e => { setAction("create"); }); -let nodes: GraphNode[] = []; -let edges: GraphEdge[] = []; +let nodes: GraphNode[] = [ + { + x: 0, + y: 0, + shape: normalNodeShape + }, + { + x: 192841, + y: 389284, + shape: normalNodeShape + } +]; +let edges: GraphEdge[] = [ + { + source: nodes[0], + target: nodes[1], + shape: normalEdgeShape + } +]; // const lastId = 0; let isDragging = false; let movingNode: GraphNode | undefined; @@ -95,10 +112,7 @@ graphView.canvas.addEventListener( "mouseup", e => { if (isDragging && action === "move" && movingNode) { - graphView.endMoveNode(pos); - - movingNode.x = pos[0]; - movingNode.y = pos[1]; + graphView.endMoveNode(); } if (isDragging && action === "create" && dragSourceNode) { @@ -138,7 +152,10 @@ graphView.canvas.addEventListener( const dx = e.x - startPos[0]; const dy = e.y - startPos[1]; - if (!movingNode) { + if (movingNode) { + movingNode.x += dx / graphView.transform[0]; + movingNode.y += dy / graphView.transform[0]; + } else { graphView.moveBy(dx, dy); } diff --git a/example/node-types.ts b/example/node-types.ts index 1bf5f4f..3a9a473 100644 --- a/example/node-types.ts +++ b/example/node-types.ts @@ -27,6 +27,7 @@ export const rectNodeShape: NodeShape = { const randomNodePoints: [number, number][] = [ [0, 10], + [20, 15], [15, 200], [175, 180], [200, 120], diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 0e8450c..bd075bd 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,4 +1,5 @@ import { GraphEdge, GraphNode, GraphShape, GraphView } from "./graph-view"; +import { getIntersectionsOfLineAndRect } from "./utils"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; @@ -27,6 +28,10 @@ export class GraphRenderer { canvasPos: [number, number] = [0, 0]; viewPos: [number, number] = [0, 0]; out: [number, number] = [0, 0]; + int: [[number, number], [number, number]] = [ + [0, 0], + [0, 0] + ]; constructor(view: GraphView) { this.view = view; @@ -61,14 +66,10 @@ export class GraphRenderer { this.setToViewTransform(); for (const edge of edges) { - if (this.isEdgeOutOfView(edge)) continue; - this.drawEdge(edge); } for (const node of nodes) { - if (this.isNodeOutOfView(node)) continue; - this.drawNode(node); } @@ -122,37 +123,15 @@ export class GraphRenderer { ctx.lineCap = LINE_CAP_SQUARE; } - isEdgeOutOfView(edge: Edge): boolean { - const { canvas } = this.view; - const [scale, translateX, translateY] = this.view.transform; - const { size } = edge.shape; - - const source = edge.source; - const target = edge.target; - - const rx = size[0] * 0.5 * scale; - const ry = size[1] * 0.5 * scale; - - const sourceX = source.x * scale + translateX; - const sourceY = source.y * scale + translateY; - const targetX = target.x * scale + translateX; - const targetY = target.y * scale + translateY; - - return ( - (sourceX < -rx && targetX < -rx) || - (sourceY < -ry && targetY < -ry) || - (sourceX > canvas.width + rx && targetX > canvas.width + rx) || - (sourceY > canvas.height + ry && targetY > canvas.height + ry) - ); - } - drawEdgeLine( startX: number, startY: number, endX: number, endY: number, edge?: Edge, - hovered = false + hovered = false, + arrowX = endX, + arrowY = endY ) { const { canvasPos } = this; const { ctx, movingNode } = this.view; @@ -172,7 +151,10 @@ export class GraphRenderer { ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); ctx.rotate(rad); - ctx.scale(lineLen - EDGE_SIZE, NODE_STROKE_WIDTH); + ctx.scale( + lineLen - (endX === arrowX && endY === arrowY ? EDGE_SIZE : 0), + NODE_STROKE_WIDTH + ); ctx.fill(linePath); @@ -192,8 +174,8 @@ export class GraphRenderer { 0, 0, scale * EDGE_SIZE, - translateX + (endX - offset * cosr) * scale, - translateY + (endY - offset * sinr) * scale + translateX + (arrowX - offset * cosr) * scale, + translateY + (arrowY - offset * sinr) * scale ); ctx.rotate(rad); @@ -253,27 +235,138 @@ export class GraphRenderer { } } + getCloserPoint( + x: number, + y: number, + p1: [number, number], + p2: [number, number] + ) { + const l1x = x - p1[0]; + const l1y = y - p1[1]; + const l1 = l1x * l1x + l1y * l1y; + + const l2x = x - p2[0]; + const l2y = y - p2[1]; + const l2 = l2x * l2x + l2y * l2y; + + if (l1 > l2) return p2; + else return p1; + } + drawEdge(edge: Edge, hovered = false) { - const { ctx } = this.view; + const { ctx, canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; const { size } = edge.shape; const source = edge.source; const target = edge.target; - source.shape.setIntersectionPoint(this.out, source, target); + const viewWidth = canvas.width / scale; + const viewHeight = canvas.height / scale; + const viewLeft = -translateX / scale; + const viewTop = -translateY / scale; + const viewRight = viewLeft + viewWidth; + const viewBottom = viewTop + viewHeight; + + // First get the intersection of line and the view rect + const count = getIntersectionsOfLineAndRect( + this.int, + source.x, + source.y, + target.x, + target.y, + viewLeft + viewWidth * 0.5, + viewTop + viewHeight * 0.5, + viewWidth, + viewHeight + ); + + // Do not render if it is out of view + if ( + count === 0 && + (source.x < viewLeft || + source.x > viewRight || + source.y < viewTop || + source.y > viewBottom) + ) { + return; + } + source.shape.setIntersectionPoint(this.out, source, target); const [startX, startY] = this.out; target.shape.setIntersectionPoint(this.out, target, source); - const [endX, endY] = this.out; - this.drawEdgeLine(startX, startY, endX, endY, edge, hovered); + let lineStartX = startX; + let lineStartY = startY; + let lineEndX = endX; + let lineEndY = endY; + + if (count > 0) { + if ( + this.isOutOfView( + source.x, + source.y, + source.shape.size[0], + source.shape.size[1] + ) + ) { + if (count === 1) { + lineStartX = this.int[0][0]; + lineStartY = this.int[0][1]; + } else { + const p = this.getCloserPoint( + startX, + startY, + this.int[0], + this.int[1] + ); + + lineStartX = p[0]; + lineStartY = p[1]; + } + } + + if ( + this.isOutOfView( + target.x, + target.y, + target.shape.size[0], + target.shape.size[1] + ) + ) { + if (count === 1) { + lineEndX = this.int[0][0]; + lineEndY = this.int[0][1]; + } else { + const p = this.getCloserPoint(endX, endY, this.int[0], this.int[1]); + + lineEndX = p[0]; + lineEndY = p[1]; + } + } + } + + this.drawEdgeLine( + lineStartX, + lineStartY, + lineEndX, + lineEndY, + edge, + hovered, + endX, + endY + ); const midX = (startX + endX) * 0.5; const midY = (startY + endY) * 0.5; + if (this.isOutOfView(midX, midY, edge.shape.size[0], edge.shape.size[1])) { + this.setToViewTransform(); + return; + } + const rx = size[0] * 0.5; const ry = size[1] * 0.5; @@ -291,37 +384,31 @@ export class GraphRenderer { this.setToViewTransform(); } - isNodeOutOfView(node: GraphNode) { + isOutOfView(x: number, y: number, w: number, h: number) { const { canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; - const { size } = node.shape; - const rx = size[0] * 0.5; - const ry = size[1] * 0.5; + const rx = w * 0.5; + const ry = h * 0.5; return ( - (node.x + rx) * scale + translateX < 0 || - (node.y + ry) * scale + translateY < 0 || - (node.x - rx) * scale + translateX > canvas.width || - (node.y - ry) * scale + translateY > canvas.height + (x + rx) * scale + translateX < 0 || + (y + ry) * scale + translateY < 0 || + (x - rx) * scale + translateX > canvas.width || + (y - ry) * scale + translateY > canvas.height ); } drawNode(node: Node, hovered = false) { - const { ctx, movingNode, moveNodeOffset } = this.view; + const { ctx } = this.view; const { size } = node.shape; + if (this.isOutOfView(node.x, node.y, size[0], size[1])) return; + const rx = size[0] * 0.5; const ry = size[1] * 0.5; - if (movingNode === node) { - ctx.translate( - this.viewPos[0] - moveNodeOffset[0] - rx, - this.viewPos[1] - moveNodeOffset[1] - ry - ); - } else { - ctx.translate(node.x - rx, node.y - ry); - } + ctx.translate(node.x - rx, node.y - ry); this.drawShape(node, node.shape as GraphShape, hovered); diff --git a/src/graph-view.ts b/src/graph-view.ts index 51ae636..eb6f211 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -51,8 +51,6 @@ export type GraphEdge = { // const MPF = 1000 / FPS; // const SPF = MPF * 0.001; -const out: [number, number] = [0, 0]; - export class GraphView { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; @@ -64,7 +62,6 @@ export class GraphView { hoveredEdge: Edge | undefined = undefined; pointerPos: [number, number] = [0, 0]; movingNode: Node | undefined = undefined; - moveNodeOffset: [number, number] = [0, 0]; isCreatingEdge = false; dragLineSourcePos: [number, number] = [0, 0]; @@ -236,22 +233,11 @@ export class GraphView { } beginMoveNode(node: Node) { - this.setViewPosFromWindowPos(out, this.pointerPos[0], this.pointerPos[1]); - this.movingNode = node; - this.moveNodeOffset[0] = out[0] - node.x; - this.moveNodeOffset[1] = out[1] - node.y; } - endMoveNode(out?: [number, number]) { + endMoveNode() { this.movingNode = undefined; - - if (out) { - this.setViewPosFromWindowPos(out, this.pointerPos[0], this.pointerPos[1]); - - out[0] -= this.moveNodeOffset[0]; - out[1] -= this.moveNodeOffset[1]; - } } setViewPosFromWindowPos( diff --git a/src/utils.ts b/src/utils.ts index 03443d4..e2874ae 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,6 +2,7 @@ import { GraphNode } from "./graph-view"; // http://paulbourke.net/geometry/pointlineplane/javascript.txt export function intersect( + out: [number, number], x1: number, y1: number, x2: number, @@ -9,8 +10,7 @@ export function intersect( x3: number, y3: number, x4: number, - y4: number, - outPoint: [number, number] + y4: number ): boolean { // Check if none of the lines are of length 0 if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; @@ -27,12 +27,61 @@ export function intersect( if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; // Return a object with the x and y coordinates of the intersection - outPoint[0] = x1 + ua * (x2 - x1); - outPoint[1] = y1 + ua * (y2 - y1); + out[0] = x1 + ua * (x2 - x1); + out[1] = y1 + ua * (y2 - y1); return true; } +// return number of intersection points, max of 2 +export function getIntersectionsOfLineAndRect( + out: [[number, number], [number, number]], + lineX1: number, + lineY1: number, + lineX2: number, + lineY2: number, + rectX: number, + rectY: number, + rectW: number, + rectH: number +): number { + const wh = rectW * 0.5; + const hh = rectH * 0.5; + + const x1 = lineX1; + const y1 = lineY1; + const x2 = lineX2; + const y2 = lineY2; + const left = rectX - wh; + const top = rectY - hh; + const right = rectX + wh; + const bottom = rectY + hh; + + let i = 0; + + if (intersect(out[i], x1, y1, x2, y2, left + 1, top, right, top)) { + i++; + } + + if (intersect(out[i], x1, y1, x2, y2, right, top + 1, right, bottom)) { + i++; + + if (i === 2) return i; + } + + if (intersect(out[i], x1, y1, x2, y2, right - 1, bottom, left, bottom)) { + i++; + + if (i === 2) return i; + } + + if (intersect(out[i], x1, y1, x2, y2, left, bottom - 1, left, top)) { + i++; + } + + return i; +} + export function circleIntersection( out: [number, number], self: Node, @@ -63,16 +112,16 @@ export function rectIntersection( const x2 = self.x; const y2 = self.y; - const i1 = intersect(x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh, out); - if (i1) return; + if (intersect(out, x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh)) + return; - const i2 = intersect(x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh, out); - if (i2) return; + if (intersect(out, x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh)) + return; - const i3 = intersect(x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh, out); - if (i3) return; + if (intersect(out, x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh)) + return; - intersect(x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh, out); + intersect(out, x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh); } export function polygonIntersection( @@ -97,7 +146,7 @@ export function polygonIntersection( const x4 = x2 - wh + points[nextIndex][0]; const y4 = y2 - hh + points[nextIndex][1]; - const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, out); + const int = intersect(out, x1, y1, x2, y2, x3, y3, x4, y4); if (int) return; } From ed2cbbb34bdb45092d058d1a43a80c15249adedd Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 16 Apr 2022 21:08:45 +0700 Subject: [PATCH 11/56] fix intersection --- example/index.ts | 2 +- src/graph-renderer.ts | 205 ++++++++++++++++++++++++------------------ src/utils.ts | 8 +- 3 files changed, 121 insertions(+), 94 deletions(-) diff --git a/example/index.ts b/example/index.ts index ea19da5..25ab804 100644 --- a/example/index.ts +++ b/example/index.ts @@ -54,7 +54,7 @@ createButton.addEventListener("click", e => { let nodes: GraphNode[] = [ { x: 0, - y: 0, + y: -500, shape: normalNodeShape }, { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index bd075bd..8670282 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,5 +1,5 @@ import { GraphEdge, GraphNode, GraphShape, GraphView } from "./graph-view"; -import { getIntersectionsOfLineAndRect } from "./utils"; +import { getIntersectionsOfLineAndRect, intersect } from "./utils"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; @@ -240,21 +240,23 @@ export class GraphRenderer { y: number, p1: [number, number], p2: [number, number] - ) { - const l1x = x - p1[0]; - const l1y = y - p1[1]; - const l1 = l1x * l1x + l1y * l1y; + ): [number, number] { + const dx1 = p1[0] - x; + const dy1 = p1[1] - y; + + const s1 = dx1 * dx1 + dy1 * dy1; + + const dx2 = p2[0] - x; + const dy2 = p2[1] - y; - const l2x = x - p2[0]; - const l2y = y - p2[1]; - const l2 = l2x * l2x + l2y * l2y; + const s2 = dx2 * dx2 + dy2 * dy2; - if (l1 > l2) return p2; - else return p1; + return s1 > s2 ? p2 : p1; } drawEdge(edge: Edge, hovered = false) { - const { ctx, canvas } = this.view; + const { canvasPos, out } = this; + const { ctx, canvas, movingNode } = this.view; const [scale, translateX, translateY] = this.view.transform; const { size } = edge.shape; @@ -268,13 +270,23 @@ export class GraphRenderer { const viewRight = viewLeft + viewWidth; const viewBottom = viewTop + viewHeight; + const rad = Math.atan2(target.y - source.y, target.x - source.x); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + source.shape.setIntersectionPoint(this.out, source, target); + const [initialStartX, initialStartY] = this.out; + + target.shape.setIntersectionPoint(this.out, target, source); + const [initialEndX, initialEndY] = this.out; + // First get the intersection of line and the view rect const count = getIntersectionsOfLineAndRect( this.int, - source.x, - source.y, - target.x, - target.y, + initialStartX, + initialStartY, + initialEndX, + initialEndY, viewLeft + viewWidth * 0.5, viewTop + viewHeight * 0.5, viewWidth, @@ -283,84 +295,106 @@ export class GraphRenderer { // Do not render if it is out of view if ( - count === 0 && - (source.x < viewLeft || - source.x > viewRight || - source.y < viewTop || - source.y > viewBottom) + count > 0 || + (initialStartX > viewLeft && + initialStartX < viewRight && + initialStartY > viewTop && + initialStartY < viewBottom) ) { - return; - } + let startX = initialStartX; + let startY = initialStartY; + let endX = initialEndX; + let endY = initialEndY; + + if (count === 1) { + if ( + startX < viewLeft || + startX > viewRight || + startY < viewTop || + startY > viewBottom + ) { + startX = this.int[0][0]; + startY = this.int[0][1]; + } else { + endX = this.int[0][0]; + endY = this.int[0][1]; + } + } else if (count === 2) { + const startPoint = this.getCloserPoint( + startX, + startY, + this.int[0], + this.int[1] + ); + + const endPoint = startPoint === this.int[0] ? this.int[1] : this.int[0]; + + startX = startPoint[0]; + startY = startPoint[1]; + endX = endPoint[0]; + endY = endPoint[1]; + } - source.shape.setIntersectionPoint(this.out, source, target); - const [startX, startY] = this.out; + const dx = endX - startX; + const dy = endY - startY; - target.shape.setIntersectionPoint(this.out, target, source); - const [endX, endY] = this.out; + const lineLen = dy === 0 ? dx : Math.abs(dy / sinr); + const halfWidth = NODE_STROKE_WIDTH * 0.5; + + ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; - let lineStartX = startX; - let lineStartY = startY; - let lineEndX = endX; - let lineEndY = endY; + ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); + ctx.rotate(rad); + ctx.scale( + lineLen - + (endX === initialEndX && endY === initialEndY ? EDGE_SIZE : 0), + NODE_STROKE_WIDTH + ); + + ctx.fill(linePath); - if (count > 0) { if ( - this.isOutOfView( - source.x, - source.y, - source.shape.size[0], - source.shape.size[1] - ) + !movingNode && + edge && + !hovered && + ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) ) { - if (count === 1) { - lineStartX = this.int[0][0]; - lineStartY = this.int[0][1]; - } else { - const p = this.getCloserPoint( - startX, - startY, - this.int[0], - this.int[1] - ); - - lineStartX = p[0]; - lineStartY = p[1]; - } + this.view.hoveredEdge = edge; } + this.setToViewTransform(); + } + + if (!this.isOutOfView(initialEndX, initialEndY, EDGE_SIZE, EDGE_SIZE)) { + const offset = EDGE_SIZE * twoOver3 + 1; + + ctx.transform( + EDGE_SIZE, + 0, + 0, + EDGE_SIZE, + initialEndX - offset * cosr, + initialEndY - offset * sinr + ); + + ctx.rotate(rad); + + ctx.fill(lineArrowPath); + if ( - this.isOutOfView( - target.x, - target.y, - target.shape.size[0], - target.shape.size[1] - ) + !movingNode && + edge && + !hovered && + ctx.isPointInPath(lineArrowPath, canvasPos[0], canvasPos[1]) ) { - if (count === 1) { - lineEndX = this.int[0][0]; - lineEndY = this.int[0][1]; - } else { - const p = this.getCloserPoint(endX, endY, this.int[0], this.int[1]); - - lineEndX = p[0]; - lineEndY = p[1]; - } + this.view.hoveredEdge = edge; } - } - this.drawEdgeLine( - lineStartX, - lineStartY, - lineEndX, - lineEndY, - edge, - hovered, - endX, - endY - ); + this.setToViewTransform(); + } - const midX = (startX + endX) * 0.5; - const midY = (startY + endY) * 0.5; + const midX = (initialStartX + initialEndX) * 0.5; + const midY = (initialStartY + initialEndY) * 0.5; if (this.isOutOfView(midX, midY, edge.shape.size[0], edge.shape.size[1])) { this.setToViewTransform(); @@ -370,14 +404,7 @@ export class GraphRenderer { const rx = size[0] * 0.5; const ry = size[1] * 0.5; - ctx.setTransform( - scale, - 0, - 0, - scale, - translateX + (midX - rx) * scale, - translateY + (midY - ry) * scale - ); + ctx.translate(midX - rx, midY - ry); this.drawShape(edge, edge.shape as GraphShape, hovered); @@ -388,8 +415,8 @@ export class GraphRenderer { const { canvas } = this.view; const [scale, translateX, translateY] = this.view.transform; - const rx = w * 0.5; - const ry = h * 0.5; + const rx = w * 0.5 + NODE_STROKE_WIDTH * 0.5; + const ry = h * 0.5 + NODE_STROKE_WIDTH * 0.5; return ( (x + rx) * scale + translateX < 0 || diff --git a/src/utils.ts b/src/utils.ts index e2874ae..d83efb7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -59,23 +59,23 @@ export function getIntersectionsOfLineAndRect( let i = 0; - if (intersect(out[i], x1, y1, x2, y2, left + 1, top, right, top)) { + if (intersect(out[i], x1, y1, x2, y2, left, top, right, top)) { i++; } - if (intersect(out[i], x1, y1, x2, y2, right, top + 1, right, bottom)) { + if (intersect(out[i], x1, y1, x2, y2, right, top, right, bottom)) { i++; if (i === 2) return i; } - if (intersect(out[i], x1, y1, x2, y2, right - 1, bottom, left, bottom)) { + if (intersect(out[i], x1, y1, x2, y2, right, bottom, left, bottom)) { i++; if (i === 2) return i; } - if (intersect(out[i], x1, y1, x2, y2, left, bottom - 1, left, top)) { + if (intersect(out[i], x1, y1, x2, y2, left, bottom, left, top)) { i++; } From 35f34ead1591017cbc5e574dab9f1ef128fcc743 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 18 Apr 2022 21:38:48 +0700 Subject: [PATCH 12/56] render shape contents --- example/index.ts | 71 +++++++++++++++++++++++++++++-------------- example/node-types.ts | 16 +++++++--- example/types.ts | 11 +++++++ example/utils.ts | 37 +++++++++++++--------- src/graph-renderer.ts | 52 +++++++++++++++---------------- src/graph-view.ts | 15 +++++++++ src/utils.ts | 28 ++++++++++++++++- 7 files changed, 159 insertions(+), 71 deletions(-) create mode 100644 example/types.ts diff --git a/example/index.ts b/example/index.ts index 25ab804..916f549 100644 --- a/example/index.ts +++ b/example/index.ts @@ -7,6 +7,7 @@ import { createGraphView } from "../src"; import { normalEdgeShape, normalNodeShape } from "./node-types"; +import { ExampleEdge, ExampleNode } from "./types"; const graphDiv = document.getElementById("graph") as HTMLDivElement; const nodeCountSpan = document.getElementById("node-count-span"); @@ -51,26 +52,35 @@ createButton.addEventListener("click", e => { setAction("create"); }); -let nodes: GraphNode[] = [ - { - x: 0, - y: -500, - shape: normalNodeShape - }, - { - x: 192841, - y: 389284, - shape: normalNodeShape - } +let lastNodeId = 0; +let lastEdgeId = 0; + +let nodes: ExampleNode[] = [ + // { + // id: 1, + // x: 0, + // y: 0, + // shape: normalNodeShape, + // label: "Node 1" + // }, + // { + // id: 2, + // x: 500, + // y: 0, + // shape: normalNodeShape, + // label: "Node 2" + // } ]; -let edges: GraphEdge[] = [ - { - source: nodes[0], - target: nodes[1], - shape: normalEdgeShape - } +let edges: ExampleEdge[] = [ + // { + // id: 1, + // source: nodes[0], + // target: nodes[1], + // shape: normalEdgeShape, + // label: "1" + // } ]; -// const lastId = 0; + let isDragging = false; let movingNode: GraphNode | undefined; let dragSourceNode: GraphNode | undefined; @@ -118,11 +128,23 @@ graphView.canvas.addEventListener( if (isDragging && action === "create" && dragSourceNode) { graphView.endDragLine(); - if (graphView.hoveredNode && graphView.hoveredNode !== dragSourceNode) { + if ( + graphView.hoveredNode && + graphView.hoveredNode !== dragSourceNode && + !edges.find( + edge => + edge.source === dragSourceNode && + edge.target === graphView.hoveredNode + ) + ) { + lastEdgeId++; + edges.push({ + id: lastEdgeId, source: dragSourceNode, target: graphView.hoveredNode, - shape: normalEdgeShape + shape: normalEdgeShape, + label: lastEdgeId.toString() }); } } @@ -130,10 +152,14 @@ graphView.canvas.addEventListener( if (action === "create" && !dragSourceNode && !graphView.hoveredNode) { graphView.setViewPosFromWindowPos(pos, e.x, e.y); + lastNodeId++; + nodes.push({ + id: lastNodeId, x: pos[0], y: pos[1], - shape: normalNodeShape + shape: normalNodeShape, + label: `Node ${lastNodeId}` }); } @@ -271,7 +297,8 @@ if (generateButton) { const r = randomize(value, columns); - // lastId = r.lastId; + lastNodeId = r.lastNodeId; + lastEdgeId = r.lastEdgeId; nodes = r.nodes; edges = r.edges; diff --git a/example/node-types.ts b/example/node-types.ts index 3a9a473..f7e77c5 100644 --- a/example/node-types.ts +++ b/example/node-types.ts @@ -4,8 +4,10 @@ import { circleIntersection, rectIntersection, createPathFromPoints, - polygonIntersection + polygonIntersection, + renderNodeContentFromField } from "../src"; +import { ExampleNode } from "./types"; const normalNodePath = new Path2D(); normalNodePath.arc(100, 100, 100, 0, Math.PI * 2); @@ -13,7 +15,8 @@ normalNodePath.arc(100, 100, 100, 0, Math.PI * 2); export const normalNodeShape: NodeShape = { paths: [normalNodePath], setIntersectionPoint: circleIntersection, - size: [200, 200] + size: [200, 200], + renderContent: renderNodeContentFromField("label", [200, 200]) }; const rectNodePath = new Path2D(); @@ -22,7 +25,8 @@ rectNodePath.rect(0, 0, 200, 120); export const rectNodeShape: NodeShape = { paths: [rectNodePath], setIntersectionPoint: rectIntersection, - size: [200, 120] + size: [200, 120], + renderContent: renderNodeContentFromField("label", [200, 120]) }; const randomNodePoints: [number, number][] = [ @@ -37,7 +41,8 @@ const randomNodePoints: [number, number][] = [ export const randomNodeShape: NodeShape = { paths: [createPathFromPoints(randomNodePoints)], setIntersectionPoint: polygonIntersection(randomNodePoints), - size: [200, 200] + size: [200, 200], + renderContent: renderNodeContentFromField("label", [200, 200]) }; const normalEdgePath = new Path2D(); @@ -45,7 +50,8 @@ normalEdgePath.arc(25, 25, 25, 0, Math.PI * 2); export const normalEdgeShape: EdgeShape = { paths: [normalEdgePath], - size: [50, 50] + size: [50, 50], + renderContent: renderNodeContentFromField("label", [50, 50]) }; // export const nodeTypes: GEShapeTypes = { diff --git a/example/types.ts b/example/types.ts new file mode 100644 index 0000000..b4ea39f --- /dev/null +++ b/example/types.ts @@ -0,0 +1,11 @@ +import { GraphEdge, GraphNode } from "../src"; + +export type ExampleNode = GraphNode & { + id: number; + label: string; +}; + +export type ExampleEdge = GraphEdge & { + id: number; + label: string; +}; diff --git a/example/utils.ts b/example/utils.ts index d958156..bbe36c3 100644 --- a/example/utils.ts +++ b/example/utils.ts @@ -5,6 +5,7 @@ import { randomNodeShape, rectNodeShape } from "./node-types"; +import { ExampleEdge, ExampleNode } from "./types"; export function getRandomIntInclusive(minF: number, maxF: number): number { const min = Math.ceil(minF); @@ -16,13 +17,15 @@ export function randomize( nodeCount = 1000, cols = 40 ): { - nodes: GraphNode[]; - edges: GraphEdge[]; - lastId: number; + nodes: ExampleNode[]; + edges: ExampleEdge[]; + lastNodeId: number; + lastEdgeId: number; } { - const nodes: GraphNode[] = []; - const edges: GraphEdge[] = []; - let lastId = 0; + const nodes: ExampleNode[] = []; + const edges: ExampleEdge[] = []; + let lastNodeId = 0; + let lastEdgeId = 0; for (let i = 0; i < nodeCount; i++) { const col = i % cols; @@ -36,14 +39,14 @@ export function randomize( // const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; const edgeShape = normalEdgeShape; - lastId++; - const currNode: GraphNode = { - // id: lastId, + lastNodeId++; + + const currNode: ExampleNode = { + id: lastNodeId, x: col * 320, y: row * 320, - shape: nodeShape - // type: nodeType, - // text: `Node ID: ${lastId}` + shape: nodeShape, + label: `Node ${lastNodeId}` }; nodes.push(currNode); @@ -51,11 +54,14 @@ export function randomize( if (i > 0) { const prevNode = nodes[i - 1]; - lastId++; + lastEdgeId++; + edges.push({ + id: lastEdgeId, source: prevNode, target: currNode, - shape: edgeShape + shape: edgeShape, + label: lastEdgeId.toString() }); } } @@ -63,6 +69,7 @@ export function randomize( return { nodes, edges, - lastId + lastNodeId, + lastEdgeId }; } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 8670282..3b4ab8b 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,5 +1,5 @@ import { GraphEdge, GraphNode, GraphShape, GraphView } from "./graph-view"; -import { getIntersectionsOfLineAndRect, intersect } from "./utils"; +import { getIntersectionsOfLineAndRect } from "./utils"; const LINE_CAP_ROUND = "round"; const LINE_CAP_SQUARE = "square"; @@ -11,6 +11,10 @@ const LINE_COLOR = "#000"; const HOVER_LINE_COLOR = "#4299E1"; const EDGE_SIZE = 16; const NODE_STROKE_WIDTH = 2; +const TEXT_COLOR = "#000"; +const TEXT_FONT = "16px sans-serif"; +const TEXT_ALIGN = "center"; +const TEXT_BASELINE = "middle"; const linePath = new Path2D(); linePath.rect(0, 0, 1, 1); @@ -128,13 +132,11 @@ export class GraphRenderer { startY: number, endX: number, endY: number, - edge?: Edge, hovered = false, arrowX = endX, arrowY = endY ) { - const { canvasPos } = this; - const { ctx, movingNode } = this.view; + const { ctx } = this.view; const [scale, translateX, translateY] = this.view.transform; const dx = endX - startX; @@ -158,15 +160,6 @@ export class GraphRenderer { ctx.fill(linePath); - if ( - !movingNode && - edge && - !hovered && - ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) - ) { - this.view.hoveredEdge = edge; - } - const offset = EDGE_SIZE * twoOver3 + 1; ctx.setTransform( @@ -181,28 +174,19 @@ export class GraphRenderer { ctx.rotate(rad); ctx.fill(lineArrowPath); - - if ( - !movingNode && - edge && - !hovered && - ctx.isPointInPath(lineArrowPath, canvasPos[0], canvasPos[1]) - ) { - this.view.hoveredEdge = edge; - } } drawShape(nodeOrEdge: Node | Edge, shape: GraphShape, hovered = false) { const { canvasPos } = this; const { ctx, movingNode } = this.view; - const { paths, render } = shape; + const { paths, render, renderContent } = shape; ctx.fillStyle = NODE_COLOR; ctx.strokeStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; ctx.lineWidth = NODE_STROKE_WIDTH; if (render) { - render(ctx, nodeOrEdge, false); + render(ctx, nodeOrEdge, hovered); } else if (paths) { for (const path of paths) { ctx.fill(path); @@ -210,6 +194,15 @@ export class GraphRenderer { } } + if (renderContent) { + ctx.fillStyle = TEXT_COLOR; + ctx.font = TEXT_FONT; + ctx.textAlign = TEXT_ALIGN; + ctx.textBaseline = TEXT_BASELINE; + + renderContent(ctx, nodeOrEdge, hovered); + } + if (movingNode || hovered) return; if (paths) { @@ -255,7 +248,7 @@ export class GraphRenderer { } drawEdge(edge: Edge, hovered = false) { - const { canvasPos, out } = this; + const { canvasPos } = this; const { ctx, canvas, movingNode } = this.view; const [scale, translateX, translateY] = this.view.transform; const { size } = edge.shape; @@ -338,7 +331,7 @@ export class GraphRenderer { const dx = endX - startX; const dy = endY - startY; - const lineLen = dy === 0 ? dx : Math.abs(dy / sinr); + const lineLen = Math.abs(dy) < 0.00001 ? dx : Math.abs(dy / sinr); const halfWidth = NODE_STROKE_WIDTH * 0.5; ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; @@ -355,7 +348,6 @@ export class GraphRenderer { if ( !movingNode && - edge && !hovered && ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) ) { @@ -365,7 +357,9 @@ export class GraphRenderer { this.setToViewTransform(); } - if (!this.isOutOfView(initialEndX, initialEndY, EDGE_SIZE, EDGE_SIZE)) { + if ( + !this.isOutOfView(initialEndX, initialEndY, EDGE_SIZE * 2, EDGE_SIZE * 2) + ) { const offset = EDGE_SIZE * twoOver3 + 1; ctx.transform( @@ -379,6 +373,8 @@ export class GraphRenderer { ctx.rotate(rad); + ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; + ctx.fill(lineArrowPath); if ( diff --git a/src/graph-view.ts b/src/graph-view.ts index eb6f211..52f9d50 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -7,6 +7,11 @@ export type GraphShape = { nodeOrEdge: Node | Edge, isHovered: boolean ) => void; + renderContent?: ( + ctx: CanvasRenderingContext2D, + nodeOrEdge: Node | Edge, + isHovered: boolean + ) => void; size: [number, number]; }; @@ -17,6 +22,11 @@ export type NodeShape = { node: Node, isHovered: boolean ) => void; + renderContent?: ( + ctx: CanvasRenderingContext2D, + node: Node, + isHovered: boolean + ) => void; setIntersectionPoint: ( out: [number, number], self: Node, @@ -32,6 +42,11 @@ export type EdgeShape = { edge: Edge, isHovered: boolean ) => void; + renderContent?: ( + ctx: CanvasRenderingContext2D, + node: Edge, + isHovered: boolean + ) => void; size: [number, number]; }; diff --git a/src/utils.ts b/src/utils.ts index d83efb7..69915c5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,4 @@ -import { GraphNode } from "./graph-view"; +import { GraphEdge, GraphNode } from "./graph-view"; // http://paulbourke.net/geometry/pointlineplane/javascript.txt export function intersect( @@ -166,3 +166,29 @@ export function createPathFromPoints(points: [number, number][]) { return r; } + +export function renderNodeContentFromField( + field: keyof Node, + size: [number, number] +) { + return (ctx: CanvasRenderingContext2D, node: Node) => { + ctx.fillText( + node[field as keyof Node] as unknown as string, + size[0] * 0.5, + size[1] * 0.5 + ); + }; +} + +export function renderEdgeContentFromField( + field: keyof Edge, + size: [number, number] +) { + return (ctx: CanvasRenderingContext2D, edge: Edge) => { + ctx.fillText( + edge[field as keyof Edge] as unknown as string, + size[0] * 0.5, + size[1] * 0.5 + ); + }; +} From 8eb9b62e1d038548a9f6d40e8d7106eb32ef5244 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 11 Nov 2022 16:00:04 +0700 Subject: [PATCH 13/56] reset to empty proj with updated dependencies --- .eslintrc.js => .eslintrc.cjs | 0 .gitignore | 22 +- .npmignore | 6 - .prettierrc.js => .prettierrc.cjs | 8 +- example/index.ts | 313 +- index.html | 13 + {example => old-example}/index.css | 0 {example => old-example}/index.html | 0 old-example/index.ts | 312 + {example => old-example}/node-types.ts | 0 {example => old-example}/old/event-handler.ts | 0 .../old/graph-renderer.ts | 0 .../old/graph-view-old.ts | 0 {example => old-example}/old/index.ts | 0 {example => old-example}/old/intersections.ts | 0 .../old/old-example/index.css | 0 .../old/old-example/index.html | 0 .../old/old-example/index.ts | 0 .../old/old-example/node-types.ts | 0 .../old/old-example/utils.ts | 0 {example => old-example}/old/state.ts | 0 {example => old-example}/old/types.ts | 0 {example => old-example}/tsconfig.json | 0 {example => old-example}/types.ts | 0 {example => old-example}/utils.ts | 0 {src => old-src}/event-handler.ts | 0 {src => old-src}/graph-renderer.ts | 0 {src => old-src}/graph-state.ts | 0 {src => old-src}/graph-view-old.ts | 0 {src => old-src}/graph-view.ts | 0 old-src/index.ts | 2 + {src => old-src}/intersections.ts | 0 {src => old-src}/state.ts | 0 {src => old-src}/types.ts | 0 {src => old-src}/utils.ts | 0 package-lock.json | 17214 ++++++++-------- package.json | 87 +- public/logo.svg | 1 + src/index.ts | 3 +- src/vite-env.d.ts | 1 + test/index.test.ts | 7 + tsconfig.json | 45 +- vite.config.js | 13 - vite.config.ts | 31 + 44 files changed, 8502 insertions(+), 9576 deletions(-) rename .eslintrc.js => .eslintrc.cjs (100%) delete mode 100644 .npmignore rename .prettierrc.js => .prettierrc.cjs (58%) create mode 100644 index.html rename {example => old-example}/index.css (100%) rename {example => old-example}/index.html (100%) create mode 100644 old-example/index.ts rename {example => old-example}/node-types.ts (100%) rename {example => old-example}/old/event-handler.ts (100%) rename {example => old-example}/old/graph-renderer.ts (100%) rename {example => old-example}/old/graph-view-old.ts (100%) rename {example => old-example}/old/index.ts (100%) rename {example => old-example}/old/intersections.ts (100%) rename {example => old-example}/old/old-example/index.css (100%) rename {example => old-example}/old/old-example/index.html (100%) rename {example => old-example}/old/old-example/index.ts (100%) rename {example => old-example}/old/old-example/node-types.ts (100%) rename {example => old-example}/old/old-example/utils.ts (100%) rename {example => old-example}/old/state.ts (100%) rename {example => old-example}/old/types.ts (100%) rename {example => old-example}/tsconfig.json (100%) rename {example => old-example}/types.ts (100%) rename {example => old-example}/utils.ts (100%) rename {src => old-src}/event-handler.ts (100%) rename {src => old-src}/graph-renderer.ts (100%) rename {src => old-src}/graph-state.ts (100%) rename {src => old-src}/graph-view-old.ts (100%) rename {src => old-src}/graph-view.ts (100%) create mode 100644 old-src/index.ts rename {src => old-src}/intersections.ts (100%) rename {src => old-src}/state.ts (100%) rename {src => old-src}/types.ts (100%) rename {src => old-src}/utils.ts (100%) create mode 100644 public/logo.svg create mode 100644 src/vite-env.d.ts create mode 100644 test/index.test.ts delete mode 100644 vite.config.js create mode 100644 vite.config.ts diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.gitignore b/.gitignore index 751d046..f26f715 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules -.DS_Store dist dist-ssr *.local -*.log coverage docs -.cache \ No newline at end of file + +# Editor directories and files +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 6d8083f..0000000 --- a/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -tsconfig.json -src -test -benchmark -.* - diff --git a/.prettierrc.js b/.prettierrc.cjs similarity index 58% rename from .prettierrc.js rename to .prettierrc.cjs index 6ed67ea..0aeb03f 100644 --- a/.prettierrc.js +++ b/.prettierrc.cjs @@ -1,10 +1,10 @@ -module.exports = { +module.exports = { printWidth: 80, semi: true, singleQuote: false, - trailingComma: 'none', + trailingComma: "none", useTabs: false, bracketSpacing: true, - arrowParens: 'avoid', + arrowParens: "avoid", endOfLine: "auto" -} +}; diff --git a/example/index.ts b/example/index.ts index 916f549..7646bbd 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,312 +1 @@ -import { randomize } from "./utils"; -import { - GraphNode, - GraphEdge, - GraphView, - initDefaultGraphEvents, - createGraphView -} from "../src"; -import { normalEdgeShape, normalNodeShape } from "./node-types"; -import { ExampleEdge, ExampleNode } from "./types"; - -const graphDiv = document.getElementById("graph") as HTMLDivElement; -const nodeCountSpan = document.getElementById("node-count-span"); -const edgeCountSpan = document.getElementById("edge-count-span"); -const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; -const generateTextbox = document.getElementById( - "generate-textbox" -) as HTMLInputElement; -const generateButton = document.getElementById( - "generate-button" -) as HTMLButtonElement; -const moveButton = document.getElementById("move-tool") as HTMLButtonElement; -const createButton = document.getElementById( - "create-tool" -) as HTMLButtonElement; - -type Action = "move" | "create"; -let action: Action = "move"; - -function setAction(newAction: Action) { - action = newAction; - - moveButton.classList.remove("active"); - createButton.classList.remove("active"); - - switch (action) { - case "move": - moveButton.classList.add("active"); - break; - case "create": - createButton.classList.add("active"); - break; - } -} - -moveButton.addEventListener("click", e => { - e.stopPropagation(); - setAction("move"); -}); -createButton.addEventListener("click", e => { - e.stopPropagation(); - setAction("create"); -}); - -let lastNodeId = 0; -let lastEdgeId = 0; - -let nodes: ExampleNode[] = [ - // { - // id: 1, - // x: 0, - // y: 0, - // shape: normalNodeShape, - // label: "Node 1" - // }, - // { - // id: 2, - // x: 500, - // y: 0, - // shape: normalNodeShape, - // label: "Node 2" - // } -]; -let edges: ExampleEdge[] = [ - // { - // id: 1, - // source: nodes[0], - // target: nodes[1], - // shape: normalEdgeShape, - // label: "1" - // } -]; - -let isDragging = false; -let movingNode: GraphNode | undefined; -let dragSourceNode: GraphNode | undefined; -const pos: [number, number] = [0, 0]; -const startPos: [number, number] = [0, 0]; - -const graphView = createGraphView(graphDiv, nodes, edges); - -graphView.canvas.addEventListener( - "mousedown", - e => { - isDragging = true; - - startPos[0] = e.x; - startPos[1] = e.y; - - if (action === "move" && graphView.hoveredNode) { - movingNode = graphView.hoveredNode; - - graphView.beginMoveNode(graphView.hoveredNode); - } - - if (action === "create") { - if (graphView.hoveredNode) { - dragSourceNode = graphView.hoveredNode; - - graphView.beginDragLine( - graphView.hoveredNode.x, - graphView.hoveredNode.y - ); - } - } - }, - { - passive: true - } -); -graphView.canvas.addEventListener( - "mouseup", - e => { - if (isDragging && action === "move" && movingNode) { - graphView.endMoveNode(); - } - - if (isDragging && action === "create" && dragSourceNode) { - graphView.endDragLine(); - - if ( - graphView.hoveredNode && - graphView.hoveredNode !== dragSourceNode && - !edges.find( - edge => - edge.source === dragSourceNode && - edge.target === graphView.hoveredNode - ) - ) { - lastEdgeId++; - - edges.push({ - id: lastEdgeId, - source: dragSourceNode, - target: graphView.hoveredNode, - shape: normalEdgeShape, - label: lastEdgeId.toString() - }); - } - } - - if (action === "create" && !dragSourceNode && !graphView.hoveredNode) { - graphView.setViewPosFromWindowPos(pos, e.x, e.y); - - lastNodeId++; - - nodes.push({ - id: lastNodeId, - x: pos[0], - y: pos[1], - shape: normalNodeShape, - label: `Node ${lastNodeId}` - }); - } - - isDragging = false; - movingNode = undefined; - dragSourceNode = undefined; - }, - { passive: true } -); -graphView.canvas.addEventListener( - "mousemove", - e => { - if (!isDragging) return; - if (action === "create") return; - - const dx = e.x - startPos[0]; - const dy = e.y - startPos[1]; - - if (movingNode) { - movingNode.x += dx / graphView.transform[0]; - movingNode.y += dy / graphView.transform[0]; - } else { - graphView.moveBy(dx, dy); - } - - startPos[0] = e.x; - startPos[1] = e.y; - }, - { - passive: true - } -); -graphView.canvas.addEventListener( - "wheel", - e => { - e.preventDefault(); - graphView.setViewPosFromWindowPos(pos, e.x, e.y); - - graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); - }, - { - passive: false - } -); - -// graphView.requestDraw(); - -function updateNodeCount(): void { - if (!nodeCountSpan) return; - - nodeCountSpan.innerHTML = nodes.length.toString(); -} - -function updateEdgeCount(): void { - if (!edgeCountSpan) return; - - edgeCountSpan.innerHTML = edges.length.toString(); -} - -// function handleCreateNode(x: number, y: number) { -// lastId += 1; - -// const newNode: GENode = { -// id: lastId, -// x, -// y, -// type: "empty", -// text: `Node ID: ${lastId}` -// }; - -// nodes = [...nodes, newNode]; -// graphView.setData(nodes, edges); - -// updateNodeCount(); -// } - -// function handleCreateEdge(sourceNode: GENode, targetNode: GENode) { -// lastId += 1; - -// const newEdge: GEEdge = { -// id: lastId, -// sourceNode, -// targetNode, -// type: "normal", -// text: lastId.toString() -// }; - -// edges = [...edges, newEdge]; -// graphView.setData(nodes, edges); - -// updateEdgeCount(); -// } - -// function handleDeleteNode(node: GENode) { -// nodes = nodes.filter(n => n !== node); -// edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node); - -// graphView.setData(nodes, edges); - -// updateNodeCount(); -// updateEdgeCount(); -// } - -// function handleDeleteEdge(edge: GEEdge) { -// edges = edges.filter(e => e.id !== edge.id); - -// graphView.setData(nodes, edges); - -// updateEdgeCount(); -// } - -// function handleMoveNode(node: GENode, newX: number, newY: number) { -// node.x = newX; -// node.y = newY; -// } - -// function handleViewZoom() { -// zoomSlider.value = graphView.getScale().toString(); -// } - -window.addEventListener("resize", () => { - graphView.resize(window.innerWidth, window.innerHeight); -}); - -// zoomSlider.addEventListener("input", e => { -// const target = e.target as HTMLInputElement; - -// graphView.zoomTo(Number(target.value)); -// }); - -if (generateButton) { - generateButton.addEventListener("click", () => { - const value = parseInt(generateTextbox.value, 10); - const columns = Math.ceil(Math.sqrt(value)); - - const r = randomize(value, columns); - - lastNodeId = r.lastNodeId; - lastEdgeId = r.lastEdgeId; - nodes = r.nodes; - edges = r.edges; - - graphView.nodes = nodes; - graphView.edges = edges; - // console.log({ nodes, edges }); - - updateNodeCount(); - updateEdgeCount(); - }); -} +export default null; diff --git a/index.html b/index.html new file mode 100644 index 0000000..86aacce --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + + Gaguna + + + + + diff --git a/example/index.css b/old-example/index.css similarity index 100% rename from example/index.css rename to old-example/index.css diff --git a/example/index.html b/old-example/index.html similarity index 100% rename from example/index.html rename to old-example/index.html diff --git a/old-example/index.ts b/old-example/index.ts new file mode 100644 index 0000000..916f549 --- /dev/null +++ b/old-example/index.ts @@ -0,0 +1,312 @@ +import { randomize } from "./utils"; +import { + GraphNode, + GraphEdge, + GraphView, + initDefaultGraphEvents, + createGraphView +} from "../src"; +import { normalEdgeShape, normalNodeShape } from "./node-types"; +import { ExampleEdge, ExampleNode } from "./types"; + +const graphDiv = document.getElementById("graph") as HTMLDivElement; +const nodeCountSpan = document.getElementById("node-count-span"); +const edgeCountSpan = document.getElementById("edge-count-span"); +const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; +const generateTextbox = document.getElementById( + "generate-textbox" +) as HTMLInputElement; +const generateButton = document.getElementById( + "generate-button" +) as HTMLButtonElement; +const moveButton = document.getElementById("move-tool") as HTMLButtonElement; +const createButton = document.getElementById( + "create-tool" +) as HTMLButtonElement; + +type Action = "move" | "create"; +let action: Action = "move"; + +function setAction(newAction: Action) { + action = newAction; + + moveButton.classList.remove("active"); + createButton.classList.remove("active"); + + switch (action) { + case "move": + moveButton.classList.add("active"); + break; + case "create": + createButton.classList.add("active"); + break; + } +} + +moveButton.addEventListener("click", e => { + e.stopPropagation(); + setAction("move"); +}); +createButton.addEventListener("click", e => { + e.stopPropagation(); + setAction("create"); +}); + +let lastNodeId = 0; +let lastEdgeId = 0; + +let nodes: ExampleNode[] = [ + // { + // id: 1, + // x: 0, + // y: 0, + // shape: normalNodeShape, + // label: "Node 1" + // }, + // { + // id: 2, + // x: 500, + // y: 0, + // shape: normalNodeShape, + // label: "Node 2" + // } +]; +let edges: ExampleEdge[] = [ + // { + // id: 1, + // source: nodes[0], + // target: nodes[1], + // shape: normalEdgeShape, + // label: "1" + // } +]; + +let isDragging = false; +let movingNode: GraphNode | undefined; +let dragSourceNode: GraphNode | undefined; +const pos: [number, number] = [0, 0]; +const startPos: [number, number] = [0, 0]; + +const graphView = createGraphView(graphDiv, nodes, edges); + +graphView.canvas.addEventListener( + "mousedown", + e => { + isDragging = true; + + startPos[0] = e.x; + startPos[1] = e.y; + + if (action === "move" && graphView.hoveredNode) { + movingNode = graphView.hoveredNode; + + graphView.beginMoveNode(graphView.hoveredNode); + } + + if (action === "create") { + if (graphView.hoveredNode) { + dragSourceNode = graphView.hoveredNode; + + graphView.beginDragLine( + graphView.hoveredNode.x, + graphView.hoveredNode.y + ); + } + } + }, + { + passive: true + } +); +graphView.canvas.addEventListener( + "mouseup", + e => { + if (isDragging && action === "move" && movingNode) { + graphView.endMoveNode(); + } + + if (isDragging && action === "create" && dragSourceNode) { + graphView.endDragLine(); + + if ( + graphView.hoveredNode && + graphView.hoveredNode !== dragSourceNode && + !edges.find( + edge => + edge.source === dragSourceNode && + edge.target === graphView.hoveredNode + ) + ) { + lastEdgeId++; + + edges.push({ + id: lastEdgeId, + source: dragSourceNode, + target: graphView.hoveredNode, + shape: normalEdgeShape, + label: lastEdgeId.toString() + }); + } + } + + if (action === "create" && !dragSourceNode && !graphView.hoveredNode) { + graphView.setViewPosFromWindowPos(pos, e.x, e.y); + + lastNodeId++; + + nodes.push({ + id: lastNodeId, + x: pos[0], + y: pos[1], + shape: normalNodeShape, + label: `Node ${lastNodeId}` + }); + } + + isDragging = false; + movingNode = undefined; + dragSourceNode = undefined; + }, + { passive: true } +); +graphView.canvas.addEventListener( + "mousemove", + e => { + if (!isDragging) return; + if (action === "create") return; + + const dx = e.x - startPos[0]; + const dy = e.y - startPos[1]; + + if (movingNode) { + movingNode.x += dx / graphView.transform[0]; + movingNode.y += dy / graphView.transform[0]; + } else { + graphView.moveBy(dx, dy); + } + + startPos[0] = e.x; + startPos[1] = e.y; + }, + { + passive: true + } +); +graphView.canvas.addEventListener( + "wheel", + e => { + e.preventDefault(); + graphView.setViewPosFromWindowPos(pos, e.x, e.y); + + graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + }, + { + passive: false + } +); + +// graphView.requestDraw(); + +function updateNodeCount(): void { + if (!nodeCountSpan) return; + + nodeCountSpan.innerHTML = nodes.length.toString(); +} + +function updateEdgeCount(): void { + if (!edgeCountSpan) return; + + edgeCountSpan.innerHTML = edges.length.toString(); +} + +// function handleCreateNode(x: number, y: number) { +// lastId += 1; + +// const newNode: GENode = { +// id: lastId, +// x, +// y, +// type: "empty", +// text: `Node ID: ${lastId}` +// }; + +// nodes = [...nodes, newNode]; +// graphView.setData(nodes, edges); + +// updateNodeCount(); +// } + +// function handleCreateEdge(sourceNode: GENode, targetNode: GENode) { +// lastId += 1; + +// const newEdge: GEEdge = { +// id: lastId, +// sourceNode, +// targetNode, +// type: "normal", +// text: lastId.toString() +// }; + +// edges = [...edges, newEdge]; +// graphView.setData(nodes, edges); + +// updateEdgeCount(); +// } + +// function handleDeleteNode(node: GENode) { +// nodes = nodes.filter(n => n !== node); +// edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node); + +// graphView.setData(nodes, edges); + +// updateNodeCount(); +// updateEdgeCount(); +// } + +// function handleDeleteEdge(edge: GEEdge) { +// edges = edges.filter(e => e.id !== edge.id); + +// graphView.setData(nodes, edges); + +// updateEdgeCount(); +// } + +// function handleMoveNode(node: GENode, newX: number, newY: number) { +// node.x = newX; +// node.y = newY; +// } + +// function handleViewZoom() { +// zoomSlider.value = graphView.getScale().toString(); +// } + +window.addEventListener("resize", () => { + graphView.resize(window.innerWidth, window.innerHeight); +}); + +// zoomSlider.addEventListener("input", e => { +// const target = e.target as HTMLInputElement; + +// graphView.zoomTo(Number(target.value)); +// }); + +if (generateButton) { + generateButton.addEventListener("click", () => { + const value = parseInt(generateTextbox.value, 10); + const columns = Math.ceil(Math.sqrt(value)); + + const r = randomize(value, columns); + + lastNodeId = r.lastNodeId; + lastEdgeId = r.lastEdgeId; + nodes = r.nodes; + edges = r.edges; + + graphView.nodes = nodes; + graphView.edges = edges; + // console.log({ nodes, edges }); + + updateNodeCount(); + updateEdgeCount(); + }); +} diff --git a/example/node-types.ts b/old-example/node-types.ts similarity index 100% rename from example/node-types.ts rename to old-example/node-types.ts diff --git a/example/old/event-handler.ts b/old-example/old/event-handler.ts similarity index 100% rename from example/old/event-handler.ts rename to old-example/old/event-handler.ts diff --git a/example/old/graph-renderer.ts b/old-example/old/graph-renderer.ts similarity index 100% rename from example/old/graph-renderer.ts rename to old-example/old/graph-renderer.ts diff --git a/example/old/graph-view-old.ts b/old-example/old/graph-view-old.ts similarity index 100% rename from example/old/graph-view-old.ts rename to old-example/old/graph-view-old.ts diff --git a/example/old/index.ts b/old-example/old/index.ts similarity index 100% rename from example/old/index.ts rename to old-example/old/index.ts diff --git a/example/old/intersections.ts b/old-example/old/intersections.ts similarity index 100% rename from example/old/intersections.ts rename to old-example/old/intersections.ts diff --git a/example/old/old-example/index.css b/old-example/old/old-example/index.css similarity index 100% rename from example/old/old-example/index.css rename to old-example/old/old-example/index.css diff --git a/example/old/old-example/index.html b/old-example/old/old-example/index.html similarity index 100% rename from example/old/old-example/index.html rename to old-example/old/old-example/index.html diff --git a/example/old/old-example/index.ts b/old-example/old/old-example/index.ts similarity index 100% rename from example/old/old-example/index.ts rename to old-example/old/old-example/index.ts diff --git a/example/old/old-example/node-types.ts b/old-example/old/old-example/node-types.ts similarity index 100% rename from example/old/old-example/node-types.ts rename to old-example/old/old-example/node-types.ts diff --git a/example/old/old-example/utils.ts b/old-example/old/old-example/utils.ts similarity index 100% rename from example/old/old-example/utils.ts rename to old-example/old/old-example/utils.ts diff --git a/example/old/state.ts b/old-example/old/state.ts similarity index 100% rename from example/old/state.ts rename to old-example/old/state.ts diff --git a/example/old/types.ts b/old-example/old/types.ts similarity index 100% rename from example/old/types.ts rename to old-example/old/types.ts diff --git a/example/tsconfig.json b/old-example/tsconfig.json similarity index 100% rename from example/tsconfig.json rename to old-example/tsconfig.json diff --git a/example/types.ts b/old-example/types.ts similarity index 100% rename from example/types.ts rename to old-example/types.ts diff --git a/example/utils.ts b/old-example/utils.ts similarity index 100% rename from example/utils.ts rename to old-example/utils.ts diff --git a/src/event-handler.ts b/old-src/event-handler.ts similarity index 100% rename from src/event-handler.ts rename to old-src/event-handler.ts diff --git a/src/graph-renderer.ts b/old-src/graph-renderer.ts similarity index 100% rename from src/graph-renderer.ts rename to old-src/graph-renderer.ts diff --git a/src/graph-state.ts b/old-src/graph-state.ts similarity index 100% rename from src/graph-state.ts rename to old-src/graph-state.ts diff --git a/src/graph-view-old.ts b/old-src/graph-view-old.ts similarity index 100% rename from src/graph-view-old.ts rename to old-src/graph-view-old.ts diff --git a/src/graph-view.ts b/old-src/graph-view.ts similarity index 100% rename from src/graph-view.ts rename to old-src/graph-view.ts diff --git a/old-src/index.ts b/old-src/index.ts new file mode 100644 index 0000000..963f942 --- /dev/null +++ b/old-src/index.ts @@ -0,0 +1,2 @@ +export * from "./graph-view"; +export * from "./utils"; diff --git a/src/intersections.ts b/old-src/intersections.ts similarity index 100% rename from src/intersections.ts rename to old-src/intersections.ts diff --git a/src/state.ts b/old-src/state.ts similarity index 100% rename from src/state.ts rename to old-src/state.ts diff --git a/src/types.ts b/old-src/types.ts similarity index 100% rename from src/types.ts rename to old-src/types.ts diff --git a/src/utils.ts b/old-src/utils.ts similarity index 100% rename from src/utils.ts rename to old-src/utils.ts diff --git a/package-lock.json b/package-lock.json index a97cf05..faccb28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7116 +1,6084 @@ { "name": "web-digraph", "version": "0.1.1", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "packages": { + "": { + "name": "web-digraph", + "version": "0.1.1", + "license": "MIT", + "devDependencies": { + "@size-limit/preset-small-lib": "^8.1.0", + "@types/node": "^18.11.7", + "@typescript-eslint/eslint-plugin": "^5.40.1", + "@typescript-eslint/parser": "^5.40.1", + "@vitest/coverage-c8": "^0.24.3", + "eslint": "^8.26.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.2.1", + "husky": "^8.0.1", + "jsdom": "^20.0.1", + "lint-staged": "^13.0.3", + "prettier": "^2.7.1", + "size-limit": "^8.1.0", + "standard-version": "^9.5.0", + "typescript": "^4.8.4", + "vite": "^3.2.1", + "vitest": "^0.24.3" + }, + "engines": { + "node": ">=14" } }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true - }, - "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "color-name": "1.1.3" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "engines": { + "node": ">=0.8.0" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "engines": { + "node": ">=4" } }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "node_modules/@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "cpu": [ + "arm" + ], "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "cpu": [ + "loong64" + ], "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "requires": { - "@babel/types": "^7.17.0" + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "engines": { + "node": ">=8" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "requires": { - "@babel/types": "^7.17.0" + "engines": { + "node": ">= 8" } }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "node_modules/@size-limit/esbuild": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", + "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "dependencies": { + "esbuild": "^0.15.7", + "nanoid": "^3.3.4" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "node_modules/@size-limit/file": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", + "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "dependencies": { + "semver": "7.3.7" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" } }, - "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "node_modules/@size-limit/preset-small-lib": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", + "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "dependencies": { + "@size-limit/esbuild": "8.1.0", + "@size-limit/file": "8.1.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" } }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "engines": { + "node": ">= 10" } }, - "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@types/chai": "*" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } + "node_modules/@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "dev": true }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz", + "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "dependencies": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/type-utils": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "node_modules/@typescript-eslint/parser": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz", + "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "dependencies": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz", + "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz", + "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "dependencies": { + "@typescript-eslint/typescript-estree": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "node_modules/@typescript-eslint/types": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz", + "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==", "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz", + "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "node_modules/@typescript-eslint/utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz", + "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz", + "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "node_modules/@vitest/coverage-c8": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.5.tgz", + "integrity": "sha512-955yK/SdSBZPYrSXgXB0F+0JnOX5EY9kSL7ywJ4rNajmkFUhwLjuKm13Xb6YKSyIY/g5WvbBnyowqfNRxBJ3ww==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "dependencies": { + "c8": "^7.12.0", + "vitest": "0.24.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "engines": { + "node": ">=0.4.0" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=8" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "engines": { + "node": "*" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "node_modules/bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">= 0.8" } }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "node_modules/c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=6" } }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=6" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "engines": { + "node": "*" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "node_modules/ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": ">=6" } }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": { + "node": "^12.20.0 || >=14" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "node_modules/conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/runtime-corejs3": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", - "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", "dev": true, - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "engines": { + "node": ">=10" } }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } }, - "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "@jest/core": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz", - "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/reporters": "^25.5.1", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^25.5.0", - "jest-config": "^25.5.4", - "jest-haste-map": "^25.5.1", - "jest-message-util": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-resolve-dependencies": "^25.5.4", - "jest-runner": "^25.5.4", - "jest-runtime": "^25.5.4", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "jest-watcher": "^25.5.0", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "realpath-native": "^2.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "@jest/environment": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz", - "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0" + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "@jest/fake-timers": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", - "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, - "requires": { - "@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" + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" } }, - "@jest/globals": { - "version": "25.5.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz", - "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/types": "^25.5.0", - "expect": "^25.5.0" + "engines": { + "node": ">=8" } }, - "@jest/reporters": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz", - "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^25.5.1", - "jest-resolve": "^25.5.1", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "node-notifier": "^6.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^3.1.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^4.1.3" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" } }, - "@jest/source-map": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", - "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "engines": { + "node": "*" } }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "@jest/test-sequencer": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", - "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "requires": { - "@jest/test-result": "^25.5.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^25.5.1", - "jest-runner": "^25.5.4", - "jest-runtime": "^25.5.4" + "engines": { + "node": ">=0.10.0" } }, - "@jest/transform": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", - "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^25.5.0", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^3.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^25.5.1", - "jest-regex-util": "^25.2.6", - "jest-util": "^25.5.0", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "engines": { + "node": ">=0.10.0" } }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "node_modules/decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", "dev": true }, - "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/deep-eql": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz", + "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "engines": { + "node": ">=0.4.0" } }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "engines": { + "node": ">=8" } }, - "@rollup/plugin-commonjs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", - "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8", - "commondir": "^1.0.1", - "estree-walker": "^1.0.1", - "glob": "^7.1.2", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.11.0" + "engines": { + "node": ">=8" } }, - "@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8" + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@rollup/plugin-node-resolve": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", - "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.17.0" + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "node_modules/dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", "dev": true, - "requires": { - "type-detect": "4.0.8" + "dependencies": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=6" } }, - "@size-limit/esbuild": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-7.0.8.tgz", - "integrity": "sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==", + "node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, - "requires": { - "esbuild": "^0.14.18", - "nanoid": "^3.2.0" + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "@size-limit/file": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-7.0.8.tgz", - "integrity": "sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==", + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, - "requires": { - "semver": "7.3.5" + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "@size-limit/preset-small-lib": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-7.0.8.tgz", - "integrity": "sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==", - "dev": true, - "requires": { - "@size-limit/esbuild": "7.0.8", - "@size-limit/file": "7.0.8" - } - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "node_modules/dotgitignore/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "@babel/types": "^7.3.0" + "engines": { + "node": ">=4" } }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true, - "requires": { - "@types/node": "*" + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "node_modules/esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "@types/jest": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", - "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "node_modules/esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "jest-diff": "^25.2.1", - "pretty-format": "^25.2.1" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true + "node_modules/esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "@types/node": "*" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", - "dev": true + "node_modules/esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "node_modules/esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "@types/yargs-parser": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "node_modules/esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "@typescript-eslint/eslint-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", - "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "node_modules/esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/type-utils": "5.17.0", - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "cpu": [ + "mips64el" + ], "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "dependencies": { - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/parser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", - "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "cpu": [ + "ppc64" + ], "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", - "debug": "^4.3.2" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "cpu": [ + "riscv64" + ], "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/type-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", - "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "node_modules/esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "cpu": [ + "s390x" + ], "dev": true, - "requires": { - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", - "tsutils": "^3.21.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", - "dev": true + "node_modules/esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } }, - "@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "node_modules/esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", - "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "node_modules/esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "node_modules/esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "cpu": [ + "ia32" + ], "dev": true, - "requires": { - "@typescript-eslint/types": "5.17.0", - "eslint-visitor-keys": "^3.0.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "node_modules/esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" + "engines": { + "node": ">=10" }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "engines": { + "node": ">=4.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, - "requires": { - "color-convert": "^2.0.1" + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "engines": { + "node": ">= 0.8.0" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "node_modules/eslint": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "requires": { - "safer-buffer": "~2.1.0" + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "asyncro": { + "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", - "integrity": "sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", - "dev": true - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "babel-jest": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", - "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "requires": { - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "engines": { + "node": ">=10" } }, - "babel-plugin-annotate-pure-calls": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-annotate-pure-calls/-/babel-plugin-annotate-pure-calls-0.4.0.tgz", - "integrity": "sha512-oi4M/PWUJOU9ZyRGoPTfPMqdyMp06jbJAomd3RcyYuzUtBOddv98BqLm96Lucpi2QFoQHkdGQt0ACvw7VzVEQA==", - "dev": true - }, - "babel-plugin-dev-expression": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.3.tgz", - "integrity": "sha512-rP5LK9QQTzCW61nVVzw88En1oK8t8gTsIeC6E61oelxNsU842yMjF0G1MxhvUpCkxCEIj7sE8/e5ieTheT//uw==", - "dev": true - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "requires": { - "object.assign": "^4.1.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "babel-plugin-jest-hoist": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", - "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__traverse": "^7.0.6" + "engines": { + "node": ">=4.0" } }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "engines": { + "node": ">=4.0" } }, - "babel-plugin-polyfill-regenerator": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.0.4.tgz", - "integrity": "sha512-+/uCzO9JTYVZVGCpZpVAQkgPGt2zkR0VYiZvJ4aVoCe4ccgpKvNQqcjzAgQzSsjK64Jhc5hvrCR3l0087BevkA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.0.3" - }, "dependencies": { - "@babel/helper-define-polyfill-provider": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.0.3.tgz", - "integrity": "sha512-dULDd/APiP4JowYDAMosecKOi/1v+UId99qhBGiO3myM29KtAVKS/R3x3OJJNBR0FeYB1BcYb2dCwkhqvxWXXQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/traverse": "^7.11.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "babel-plugin-transform-rename-import": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz", - "integrity": "sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ==", - "dev": true - }, - "babel-preset-current-node-syntax": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz", - "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "engines": { + "node": ">=4.0" } }, - "babel-preset-jest": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", - "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^25.5.0", - "babel-preset-current-node-syntax": "^0.1.2" + "engines": { + "node": ">=4.0" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "engines": { + "node": ">=0.10.0" } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, - "requires": { - "tweetnacl": "^0.14.3" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "requires": { - "fill-range": "^7.0.1" + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, - "requires": { - "resolve": "1.1.7" - }, "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } + "reusify": "^1.0.4" } }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" + "engines": { + "node": ">=0.8.0" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { - "node-int64": "^0.4.0" + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "bytes-iec": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", - "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "caniuse-lite": { - "version": "1.0.30001324", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001324.tgz", - "integrity": "sha512-/eYp1J6zYh1alySQB4uzYFkLmxxI8tk0kxldbNHXp8+v+rdMKdUBNjRLz7T7fz6Iox+1lIdYpc7rq6ZcXfTukg==", + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "capture-exit": { + "node_modules/foreground-child": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, - "requires": { - "rsvp": "^4.8.4" + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "ci-info": { + "node_modules/get-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "ci-job-number": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", - "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", - "dev": true + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "requires": { - "restore-cursor": "^3.1.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "collection-visit": { + "node_modules/gitconfiglocal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "dependencies": { + "ini": "^1.3.2" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { - "color-name": "~1.1.4" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "conventional-changelog": { - "version": "3.1.24", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.24.tgz", - "integrity": "sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==", + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "requires": { - "q": "^1.5.1" + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "requires": { - "q": "^1.5.1" + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "conventional-changelog-config-spec": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", - "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", - "dev": true + "node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } }, - "conventional-changelog-conventionalcommits": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", - "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", + "node_modules/husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "requires": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, - "requires": { - "q": "^1.5.1" + "engines": { + "node": ">= 4" } }, - "conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { - "q": "^1.5.1" + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "requires": { - "q": "^1.5.1" + "engines": { + "node": ">=0.8.19" } }, - "conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "requires": { - "q": "^1.5.1" + "engines": { + "node": ">=8" } }, - "conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "engines": { + "node": ">=0.10.0" } }, - "conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "engines": { + "node": ">=0.12.0" } }, - "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" + "engines": { + "node": ">=8" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "engines": { + "node": ">=0.10.0" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "requires": { - "cssom": "~0.3.6" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "engines": { + "node": ">=8" } }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", "dev": true }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "engines": { + "node": ">=0.10.0" } }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true, - "requires": { - "is-obj": "^2.0.0" + "engines": { + "node": ">=10" } }, - "dotgitignore": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", - "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", "dev": true, - "requires": { - "find-up": "^3.0.0", - "minimatch": "^3.0.4" + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true } } }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "electron-to-chromium": { - "version": "1.4.103", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", - "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, - "requires": { - "once": "^1.4.0" + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "es-abstract": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", - "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "engines": { + "node": ">=4" } }, - "esbuild": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.30.tgz", - "integrity": "sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.30", - "esbuild-android-arm64": "0.14.30", - "esbuild-darwin-64": "0.14.30", - "esbuild-darwin-arm64": "0.14.30", - "esbuild-freebsd-64": "0.14.30", - "esbuild-freebsd-arm64": "0.14.30", - "esbuild-linux-32": "0.14.30", - "esbuild-linux-64": "0.14.30", - "esbuild-linux-arm": "0.14.30", - "esbuild-linux-arm64": "0.14.30", - "esbuild-linux-mips64le": "0.14.30", - "esbuild-linux-ppc64le": "0.14.30", - "esbuild-linux-riscv64": "0.14.30", - "esbuild-linux-s390x": "0.14.30", - "esbuild-netbsd-64": "0.14.30", - "esbuild-openbsd-64": "0.14.30", - "esbuild-sunos-64": "0.14.30", - "esbuild-windows-32": "0.14.30", - "esbuild-windows-64": "0.14.30", - "esbuild-windows-arm64": "0.14.30" + "node_modules/local-pkg": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", + "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "esbuild-android-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.30.tgz", - "integrity": "sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "optional": true + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-android-arm64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.30.tgz", - "integrity": "sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, - "optional": true + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-darwin-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.30.tgz", - "integrity": "sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "optional": true + "engines": { + "node": ">=8" + } }, - "esbuild-darwin-arm64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.30.tgz", - "integrity": "sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "optional": true + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } }, - "esbuild-freebsd-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.30.tgz", - "integrity": "sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w==", + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "optional": true + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-freebsd-arm64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.30.tgz", - "integrity": "sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "optional": true + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-linux-32": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.30.tgz", - "integrity": "sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ==", + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, - "optional": true + "dependencies": { + "get-func-name": "^2.0.0" + } }, - "esbuild-linux-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.30.tgz", - "integrity": "sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw==", + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "optional": true + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "esbuild-linux-arm": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.30.tgz", - "integrity": "sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "optional": true + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-linux-arm64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.30.tgz", - "integrity": "sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ==", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "optional": true + "bin": { + "semver": "bin/semver.js" + } }, - "esbuild-linux-mips64le": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.30.tgz", - "integrity": "sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg==", + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "optional": true + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-linux-ppc64le": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.30.tgz", - "integrity": "sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A==", + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, - "optional": true + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-linux-riscv64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.30.tgz", - "integrity": "sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw==", + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "optional": true + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-linux-s390x": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.30.tgz", - "integrity": "sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A==", + "node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "optional": true + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-netbsd-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.30.tgz", - "integrity": "sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ==", + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "optional": true + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-openbsd-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.30.tgz", - "integrity": "sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA==", + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "optional": true + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-sunos-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.30.tgz", - "integrity": "sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw==", + "node_modules/meow/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "optional": true + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-windows-32": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.30.tgz", - "integrity": "sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA==", + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "optional": true + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } }, - "esbuild-windows-64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.30.tgz", - "integrity": "sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ==", + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "optional": true + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esbuild-windows-arm64": { - "version": "0.14.30", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.30.tgz", - "integrity": "sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ==", + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "optional": true + "engines": { + "node": ">=8" + } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/meow/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } + "bin": { + "semver": "bin/semver" } }, - "eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "requires": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "engines": { + "node": ">=10" }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.9" + "engines": { + "node": ">= 8" } }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "engines": { + "node": ">=12" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint-plugin-flowtype": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", - "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "requires": { - "lodash": "^4.17.15" + "engines": { + "node": ">=4" } }, - "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true, - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" } }, - "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "bin": { + "mkdirp": "bin/cmd.js" }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "eslint-plugin-react-hooks": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", - "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } + "picocolors": "^1.0.0" } }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - } + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", "dev": true }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "expect": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", - "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-styles": "^4.0.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-regex-util": "^25.2.6" + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "dependencies": { + "p-limit": "^3.0.2" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "engines": { + "node": ">=6" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "dependencies": { + "callsites": "^3.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "engines": { + "node": ">=8" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "requires": { - "reusify": "^1.0.4" + "engines": { + "node": "*" } }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "bser": "2.1.1" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" + "bin": { + "pidtree": "bin/pidtree.js" }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } + "engines": { + "node": ">=0.10" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "engines": { + "node": ">=0.10.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "engines": { + "node": ">= 0.8.0" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "bin": { + "prettier": "bin-prettier.js" }, - "dependencies": { - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "engines": { + "node": ">=6" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, - "requires": { - "null-check": "^1.0.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "engines": { + "node": ">=8" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "dependencies": { + "locate-path": "^2.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } }, - "get-symbol-description": { + "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "engines": { + "node": ">=4" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "engines": { + "node": ">=4" } }, - "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "bin": { + "semver": "bin/semver" } }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, - "requires": { - "ini": "^1.3.2" + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "requires": { - "is-glob": "^4.0.1" + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "requires": { - "type-fest": "^0.20.2" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, - "optional": true + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" + "engines": { + "node": ">=4" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "hard-rejection": { + "node_modules/restore-cursor/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "requires": { - "function-bind": "^1.1.1" + "engines": { + "node": ">=6" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { - "has-symbols": "^1.0.2" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" + "dependencies": { + "tslib": "^2.1.0" } }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-duration": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.1.tgz", - "integrity": "sha512-jCVkMl+EaM80rrMrAPl96SGG4NRac53UyI1o/yAzebDntEY6K6/Fj2HOjdPg8omTqIe5Y0wPBai2q5xXrIbarA==", - "dev": true + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "engines": { + "node": ">=8" } }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/size-limit": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", + "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "dependencies": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "ci-job-number": "^1.2.2", + "globby": "^11.1.0", + "lilconfig": "^2.0.6", + "mkdirp": "^1.0.4", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" + }, + "bin": { + "size-limit": "bin.js" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" } }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/size-limit/node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "engines": { + "node": ">=10" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "engines": { + "node": ">=8" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "engines": { + "node": ">=12" }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "has-bigints": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, - "requires": { - "binary-extensions": "^2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "requires": { - "ci-info": "^2.0.0" + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, - "requires": { - "has": "^1.0.3" + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "readable-stream": "^3.0.0" } }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/standard-version/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "node_modules/standard-version/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/standard-version/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "dependencies": { + "color-name": "1.1.3" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/standard-version/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/standard-version/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "engines": { + "node": ">=0.8.0" } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/standard-version/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "engines": { + "node": ">=4" } }, - "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "node_modules/standard-version/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { - "@types/estree": "*" + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, - "requires": { - "call-bind": "^1.0.2" + "engines": { + "node": ">=0.6.19" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "requires": { - "has-symbols": "^1.0.2" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, - "requires": { - "text-extensions": "^1.0.0" + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "node_modules/stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", "dev": true }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "call-bind": "^1.0.2" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" + "engines": { + "node": ">=4" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "engines": { + "node": ">=12" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "istanbul-lib-report": { + "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "node_modules/strip-literal": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", + "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "dependencies": { + "acorn": "^8.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "jest": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", - "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "@jest/core": "^25.5.4", - "import-local": "^3.0.2", - "jest-cli": "^25.5.4" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "jest-cli": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz", - "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", - "dev": true, - "requires": { - "@jest/core": "^25.5.4", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^25.5.4", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "prompts": "^2.0.1", - "realpath-native": "^2.0.0", - "yargs": "^15.3.1" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "jest-changed-files": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz", - "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "execa": "^3.2.0", - "throat": "^5.0.0" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-config": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz", - "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.5.4", - "@jest/types": "^25.5.0", - "babel-jest": "^25.5.1", - "chalk": "^3.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^25.5.0", - "jest-environment-node": "^25.5.0", - "jest-get-type": "^25.2.6", - "jest-jasmine2": "^25.5.4", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "micromatch": "^4.0.2", - "pretty-format": "^25.5.0", - "realpath-native": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "jest-docblock": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz", - "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, - "requires": { - "detect-newline": "^3.0.0" + "engines": { + "node": ">=0.10" } }, - "jest-each": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz", - "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "jest-util": "^25.5.0", - "pretty-format": "^25.5.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "readable-stream": "3" } }, - "jest-environment-jsdom": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", - "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", + "node_modules/tinybench": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", + "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", + "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "jsdom": "^15.2.1" + "engines": { + "node": ">=14.0.0" } }, - "jest-environment-node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz", - "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", + "node_modules/tinyspy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", + "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-jasmine2": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", - "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.5.0", - "@jest/source-map": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "co": "^4.6.0", - "expect": "^25.5.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^25.5.0", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-runtime": "^25.5.4", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "pretty-format": "^25.5.0", - "throat": "^5.0.0" + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" } }, - "jest-leak-detector": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", - "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, - "requires": { - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" + "engines": { + "node": ">=8" } }, - "jest-matcher-utils": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", - "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { - "@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" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "jest-mock": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", - "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "requires": { - "@jest/types": "^25.5.0" + "engines": { + "node": ">=4" } }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "jest-regex-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", - "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "jest-resolve": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz", - "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.1", - "read-pkg-up": "^7.0.1", - "realpath-native": "^2.0.0", - "resolve": "^1.17.0", - "slash": "^3.0.0" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz", + "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } + "less": { + "optional": true }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "sass": { + "optional": true }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } + "stylus": { + "optional": true }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } + "sugarss": { + "optional": true }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } + "terser": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.5.tgz", + "integrity": "sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.3", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "chai": "^4.3.6", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "strip-literal": "^0.4.2", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "@vitest/browser": { + "optional": true }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true } } }, - "jest-resolve-dependencies": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", - "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", + "node_modules/w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-snapshot": "^25.5.1" + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" } }, - "jest-runner": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz", - "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/environment": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^25.5.4", - "jest-docblock": "^25.3.0", - "jest-haste-map": "^25.5.1", - "jest-jasmine2": "^25.5.4", - "jest-leak-detector": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-resolve": "^25.5.1", - "jest-runtime": "^25.5.4", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" } }, - "jest-runtime": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz", - "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/environment": "^25.5.0", - "@jest/globals": "^25.5.2", - "@jest/source-map": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^25.5.4", - "jest-haste-map": "^25.5.1", - "jest-message-util": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.3.1" + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "requires": { - "graceful-fs": "^4.2.4" + "engines": { + "node": ">=0.10.0" } }, - "jest-snapshot": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz", - "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/prettier": "^1.19.0", - "chalk": "^3.0.0", - "expect": "^25.5.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-resolve": "^25.5.1", - "make-dir": "^3.0.0", - "natural-compare": "^1.4.0", - "pretty-format": "^25.5.0", - "semver": "^6.3.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "jest-validate": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", - "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "engines": { + "node": ">=8" } }, - "jest-watch-typeahead": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.5.0.tgz", - "integrity": "sha512-4r36w9vU8+rdg48hj0Z7TvcSqVP6Ao8dk04grlHQNgduyCB0SqrI0xWIl85ZhXrzYvxQ0N5H+rRLAejkQzEHeQ==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-regex-util": "^25.2.1", - "jest-watcher": "^25.2.4", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^6.0.0" - }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "jest-watcher": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", - "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "requires": { - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-util": "^25.5.0", - "string-length": "^3.1.0" + "engines": { + "node": ">=10.0.0" }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true } } }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "engines": { + "node": ">=12" } }, - "jpjs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jpjs/-/jpjs-1.2.1.tgz", - "integrity": "sha512-GxJWybWU4NV0RNKi6EIqk6IRPOTqd/h+U7sbtyuD7yUISUzV78LdHnq2xkevJsTlz/EImux4sWj+wfMiwKLkiw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, - "requires": { - "argparse": "^2.0.1" + "engines": { + "node": ">=0.4" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", - "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^7.1.0", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.4.1", - "cssstyle": "^2.0.0", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.2.0", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/yaml": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", + "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==", + "dev": true, + "engines": { + "node": ">= 14" + } }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "engines": { + "node": ">=8" } }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" + "@babel/highlight": "^7.18.6" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "lint-staged": { - "version": "12.3.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.7.tgz", - "integrity": "sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^8.3.0", - "debug": "^4.3.3", - "execa": "^5.1.1", - "lilconfig": "2.0.4", - "listr2": "^4.0.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.0", - "pidtree": "^0.5.0", - "string-argv": "^0.3.1", - "supports-color": "^9.2.1", - "yaml": "^1.10.2" - }, - "dependencies": { - "supports-color": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", - "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==", - "dev": true - } - } - }, - "listr2": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", - "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.5", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -7145,19 +6113,19 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "supports-color": { @@ -7171,3267 +6139,3606 @@ } } }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } + "optional": true }, - "lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } + "optional": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" } }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" } }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "tmpl": "1.0.5" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true + "@size-limit/esbuild": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", + "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", + "dev": true, + "requires": { + "esbuild": "^0.15.7", + "nanoid": "^3.3.4" + } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "@size-limit/file": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", + "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", "dev": true, "requires": { - "object-visit": "^1.0.0" + "semver": "7.3.7" } }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "@size-limit/preset-small-lib": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", + "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", "dev": true, "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } + "@size-limit/esbuild": "8.1.0", + "@size-limit/file": "8.1.0" } }, - "merge-stream": { + "@tootallnate/once": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", "dev": true, "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "@types/chai": "*" } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", "dev": true }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz", + "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/type-utils": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "@typescript-eslint/parser": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz", + "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "debug": "^4.3.4" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "@typescript-eslint/scope-manager": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz", + "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "@typescript-eslint/type-utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz", + "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "@typescript-eslint/types": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz", + "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==", "dev": true }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true + "@typescript-eslint/typescript-estree": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz", + "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "@typescript-eslint/utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz", + "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz", + "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.42.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@vitest/coverage-c8": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.5.tgz", + "integrity": "sha512-955yK/SdSBZPYrSXgXB0F+0JnOX5EY9kSL7ywJ4rNajmkFUhwLjuKm13Xb6YKSyIY/g5WvbBnyowqfNRxBJ3ww==", + "dev": true, + "requires": { + "c8": "^7.12.0", + "vitest": "0.24.5" + } }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, - "nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, - "nanospinner": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.0.0.tgz", - "integrity": "sha512-14c2r2QQ9xfTmdbqdF51FKCNvww+0ZON9GeEHur+pBdOufoFvxD4CZQRaYWmFrGH3Nuv7PZ/9Q+wsV+hFSp32g==", + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "requires": { - "picocolors": "^1.0.0" - } + "requires": {} }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } }, - "node-notifier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", - "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "optional": true, "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.1.1", - "semver": "^6.3.0", - "shellwords": "^0.1.1", - "which": "^1.3.1" + "type-fest": "^0.21.3" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "optional": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true } } }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "color-convert": "^2.0.1" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { - "path-key": "^3.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "null-check": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-ify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "fill-range": "^7.0.1" } }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } + "bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, "requires": { - "isobject": "^3.0.1" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" } }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "wrappy": "1" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { - "mimic-fn": "^2.1.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "ora": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", - "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "is-glob": "^4.0.1" } } } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", "dev": true }, - "p-each-series": { + "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "requires": { - "p-try": "^2.0.0" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "color-name": "~1.1.4" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { - "callsites": "^3.0.0" + "delayed-stream": "~1.0.0" } }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", "dev": true }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + } }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "pidtree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", - "integrity": "sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==", - "dev": true + "conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, "requires": { - "find-up": "^4.0.0" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true + "conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "requires": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } }, - "postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", "dev": true, "requires": { - "nanoid": "^3.3.1", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" } }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "prettier": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", - "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "fast-diff": "^1.1.2" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } } }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, - "progress-estimator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/progress-estimator/-/progress-estimator-0.2.2.tgz", - "integrity": "sha512-GF76Ac02MTJD6o2nMNtmtOFjwWCnHcvXyn5HOWPQnEMO8OTLw7LAvNmrwe8LmdsB+eZhwUu9fX/c9iQnBxWaFA==", + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cli-spinners": "^1.3.1", - "humanize-duration": "^3.15.3", - "log-update": "^2.3.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + } + } + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "dev": true + }, + "deep-eql": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz", + "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "locate-path": "^3.0.0" } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "color-name": "1.1.3" + "p-try": "^2.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { + "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "p-limit": "^2.0.0" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - } } } }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "requires": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + } + }, + "git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "requires": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "requires": { + "ini": "^1.3.2" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "function-bind": "^1.1.1" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "pump": { + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-encoding-sniffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "whatwg-encoding": "^2.0.0" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", "dev": true }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "once": "^1.3.0", + "wrappy": "1" } }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "binary-extensions": "^2.0.0" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "has": "^1.0.3" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { - "picomatch": "^2.2.1" + "is-extglob": "^2.1.1" } }, - "realpath-native": { + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true }, - "redent": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "text-extensions": "^1.0.0" } }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { - "@babel/runtime": "^7.8.4" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "argparse": "^2.0.1" } }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", "dev": true, "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", "dev": true, "requires": { - "glob": "^7.1.3" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } } }, - "rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", - "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true } } }, - "rollup-plugin-sourcemaps": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", - "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", + "local-pkg": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", + "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "@rollup/pluginutils": "^3.0.9", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - } + "p-locate": "^5.0.0" } }, - "rollup-plugin-terser": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", - "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - } + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "rollup-plugin-typescript2": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", - "integrity": "sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.17.0", - "tslib": "2.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } - }, - "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true } } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { - "tslib": "^2.1.0" + "get-func-name": "^2.0.0" } }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "mri": "^1.1.0" + "yallist": "^4.0.0" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "ret": "~0.1.10" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "p-locate": "^4.1.0" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "p-try": "^2.0.0" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "p-limit": "^2.2.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { - "pump": "^3.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "path-key": "^2.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "dev": true, - "requires": { - "xmlchars": "^2.1.1" - } + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "randombytes": "^2.1.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "mime-db": "1.52.0" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "brace-expansion": "^1.1.7" } }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" } }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, - "size-limit": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-7.0.8.tgz", - "integrity": "sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", "dev": true, "requires": { - "bytes-iec": "^3.1.1", - "chokidar": "^3.5.3", - "ci-job-number": "^1.2.2", - "globby": "^11.1.0", - "lilconfig": "^2.0.4", - "mkdirp": "^1.0.4", - "nanospinner": "^1.0.0", "picocolors": "^1.0.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", - "dev": true - } - } + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "path-key": "^4.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "wrappy": "1" } }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "mimic-fn": "^4.0.0" } }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "yocto-queue": "^0.1.0" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "aggregate-error": "^3.0.0" } }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "split": { + "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "through": "2" + "callsites": "^3.0.0" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", "dev": true, "requires": { - "readable-stream": "^3.0.0" + "entities": "^4.4.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, - "standard-version": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.2.tgz", - "integrity": "sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ==", + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "conventional-changelog": "3.1.24", - "conventional-changelog-config-spec": "2.1.0", - "conventional-changelog-conventionalcommits": "4.6.1", - "conventional-recommended-bump": "6.1.0", - "detect-indent": "^6.0.0", - "detect-newline": "^3.1.0", - "dotgitignore": "^2.1.0", - "figures": "^3.1.0", - "find-up": "^5.0.0", - "fs-access": "^1.0.1", - "git-semver-tags": "^4.0.0", - "semver": "^7.1.1", - "stringify-package": "^1.0.1", - "yargs": "^16.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "fast-diff": "^1.1.2" } }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "pify": "^3.0.0" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "requires": { - "ansi-regex": "^6.0.1" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true } } }, - "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "picomatch": "^2.2.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { + "redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "requires": { - "min-indent": "^1.0.0" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "slice-ansi": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "mimic-fn": "^2.1.0" } } } }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "glob": "^7.1.3" } }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } + "fsevents": "~2.3.2" } }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "queue-microtask": "^1.2.2" } }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "requires": { - "readable-stream": "3" + "xmlchars": "^2.2.0" } }, - "tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" + "lru-cache": "^6.0.0" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "shebang-regex": "^3.0.0" } }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "size-limit": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", + "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "ci-job-number": "^1.2.2", + "globby": "^11.1.0", + "lilconfig": "^2.0.6", + "mkdirp": "^1.0.4", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true } } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "requires": { - "is-number": "^7.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + } } }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { - "punycode": "^2.1.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, - "ts-jest": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", - "integrity": "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==", + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "micromatch": "4.x", - "mkdirp": "0.x", - "semver": "6.x", - "yargs-parser": "18.x" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "through": "2" } }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } + "readable-stream": "^3.0.0" } }, - "tsdx": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/tsdx/-/tsdx-0.14.1.tgz", - "integrity": "sha512-keHmFdCL2kx5nYFlBdbE3639HQ2v9iGedAFAajobrUTH2wfX0nLPdDhbHv+GHLQZqf0c5ur1XteE8ek/+Eyj5w==", - "dev": true, - "requires": { - "@babel/core": "^7.4.4", - "@babel/helper-module-imports": "^7.0.0", - "@babel/parser": "^7.11.5", - "@babel/plugin-proposal-class-properties": "^7.4.4", - "@babel/preset-env": "^7.11.0", - "@babel/traverse": "^7.11.5", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^11.0.0", - "@rollup/plugin-json": "^4.0.0", - "@rollup/plugin-node-resolve": "^9.0.0", - "@rollup/plugin-replace": "^2.2.1", - "@types/jest": "^25.2.1", - "@typescript-eslint/eslint-plugin": "^2.12.0", - "@typescript-eslint/parser": "^2.12.0", - "ansi-escapes": "^4.2.1", - "asyncro": "^3.0.0", - "babel-eslint": "^10.0.3", - "babel-plugin-annotate-pure-calls": "^0.4.0", - "babel-plugin-dev-expression": "^0.2.1", - "babel-plugin-macros": "^2.6.1", - "babel-plugin-polyfill-regenerator": "^0.0.4", - "babel-plugin-transform-rename-import": "^2.3.0", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "enquirer": "^2.3.4", - "eslint": "^6.1.0", - "eslint-config-prettier": "^6.0.0", - "eslint-config-react-app": "^5.2.1", - "eslint-plugin-flowtype": "^3.13.0", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-prettier": "^3.1.0", - "eslint-plugin-react": "^7.14.3", - "eslint-plugin-react-hooks": "^2.2.0", - "execa": "^4.0.3", - "fs-extra": "^9.0.0", - "jest": "^25.3.0", - "jest-watch-typeahead": "^0.5.0", - "jpjs": "^1.2.1", - "lodash.merge": "^4.6.2", - "ora": "^4.0.3", - "pascal-case": "^3.1.1", - "prettier": "^1.19.1", - "progress-estimator": "^0.2.2", - "regenerator-runtime": "^0.13.7", - "rollup": "^1.32.1", - "rollup-plugin-sourcemaps": "^0.6.2", - "rollup-plugin-terser": "^5.1.2", - "rollup-plugin-typescript2": "^0.27.3", - "sade": "^1.4.2", - "semver": "^7.1.1", - "shelljs": "^0.8.3", - "tiny-glob": "^0.2.6", - "ts-jest": "^25.3.1", - "tslib": "^1.9.3", - "typescript": "^3.7.3" - }, - "dependencies": { - "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true - }, + "standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "dependencies": { "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -10441,21 +9748,17 @@ "color-convert": "^1.9.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -10468,366 +9771,21 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", - "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } - }, - "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -10836,49 +9794,220 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { - "isexe": "^2.0.0" + "ansi-regex": "^6.0.1" } } } }, - "tslib": { + "stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "strip-literal": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", + "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", + "dev": true, + "requires": { + "acorn": "^8.8.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "tinybench": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", + "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "dev": true + }, + "tinypool": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", + "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", + "dev": true + }, + "tinyspy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", + "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "tsutils": { @@ -10898,21 +10027,6 @@ } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10937,129 +10051,28 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true }, "uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, "optional": true }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -11069,53 +10082,31 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "v8-to-istanbul": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", - "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "convert-source-map": "^1.6.0" } }, "validate-npm-package-license": { @@ -11128,117 +10119,76 @@ "spdx-expression-parse": "^3.0.0" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - } - } - }, "vite": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz", - "integrity": "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz", + "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==", "dev": true, "requires": { - "esbuild": "^0.14.27", + "esbuild": "^0.15.9", "fsevents": "~2.3.2", - "postcss": "^8.4.12", - "resolve": "^1.22.0", - "rollup": "^2.59.0" - }, - "dependencies": { - "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - } + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" } }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "vitest": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.5.tgz", + "integrity": "sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==", "dev": true, "requires": { - "browser-process-hrtime": "^1.0.0" + "@types/chai": "^4.3.3", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "chai": "^4.3.6", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "strip-literal": "^0.4.2", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0" } }, "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "dev": true, - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", "dev": true, "requires": { - "defaults": "^1.0.3" + "xml-name-validator": "^4.0.0" } }, "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true }, "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "0.6.3" } }, "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true }, "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" } }, "which": { @@ -11250,25 +10200,6 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -11278,7 +10209,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, "wrap-ansi": { @@ -11320,51 +10251,20 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} }, "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true }, "xmlchars": { @@ -11392,9 +10292,9 @@ "dev": true }, "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", + "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==", "dev": true }, "yargs": { diff --git a/package.json b/package.json index 5936fa6..7f6e505 100644 --- a/package.json +++ b/package.json @@ -6,78 +6,69 @@ "repository": { "url": "https://github.com/harchcode/web-digraph" }, - "main": "dist/index.js", - "types": "dist/index.d.ts", - "keywords": [ - "graph", - "digraph" - ], + "main": "dist/web-digraph.umd.cjs", + "module": "dist/web-digraph.js", "license": "MIT", - "module": "dist/web-digraph.esm.js", "typings": "dist/index.d.ts", "files": [ - "dist", - "src" + "dist" ], + "exports": { + ".": { + "import": "./dist/web-digraph.js", + "require": "./dist/web-digraph.umd.cjs" + } + }, "engines": { - "node": ">=12" + "node": ">=14" }, + "type": "module", + "sideEffects": false, "scripts": { - "start": "tsdx watch", - "build": "tsdx build", - "test": "tsdx test", - "test:clear": "tsdx test --clearCache", - "lint": "eslint src test", + "start": "vite", + "dev": "vite", + "build": "vite build && npm run build-typedef", + "build-typedef": "tsc ./src/vite-env.d.ts ./src/index.ts --declaration --emitDeclarationOnly --target ESNext --esModuleInterop --outDir dist", + "test": "vitest --coverage", + "lint": "eslint src test example", "lint-staged": "lint-staged", "prepare": "husky install", "size": "size-limit", "analyze": "size-limit --why", - "release": "standard-version", - "release:beta": "standard-version -- --prerelease beta", - "example:dev": "vite", - "example:build": "tsc && vite build", - "example:preview:": "vite preview" + "release": "standard-version" }, "devDependencies": { - "@size-limit/preset-small-lib": "^7.0.8", - "@typescript-eslint/eslint-plugin": "^5.17.0", - "@typescript-eslint/parser": "^5.17.0", - "eslint": "^8.12.0", + "@size-limit/preset-small-lib": "^8.1.0", + "@types/node": "^18.11.7", + "@typescript-eslint/eslint-plugin": "^5.40.1", + "@typescript-eslint/parser": "^5.40.1", + "@vitest/coverage-c8": "^0.24.3", + "eslint": "^8.26.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.0.0", - "husky": "^7.0.4", - "lint-staged": "^12.3.7", - "prettier": "^2.6.1", - "size-limit": "^7.0.8", - "standard-version": "^9.3.2", - "tsdx": "^0.14.1", - "tslib": "^2.3.1", - "typescript": "^4.6.3", - "vite": "^2.9.1" + "eslint-plugin-prettier": "^4.2.1", + "husky": "^8.0.1", + "jsdom": "^20.0.1", + "lint-staged": "^13.0.3", + "prettier": "^2.7.1", + "size-limit": "^8.1.0", + "standard-version": "^9.5.0", + "typescript": "^4.8.4", + "vite": "^3.2.1", + "vitest": "^0.24.3" }, "lint-staged": { - "{src,test}/**/*.{js,ts}": [ + "{src,test,example}/**/*.{js,ts}": [ "eslint" ] }, "size-limit": [ { - "path": "dist/web-digraph.cjs.production.min.js", + "path": "dist/web-digraph.umd.cjs", "limit": "10 KB" }, { - "path": "dist/web-digraph.esm.js", + "path": "dist/web-digraph.js", "limit": "10 KB" } - ], - "jest": { - "coverageThreshold": { - "global": { - "branches": 0, - "functions": 0, - "lines": 0, - "statements": 0 - } - } - } + ] } diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..fa3b099 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 963f942..7646bbd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1 @@ -export * from "./graph-view"; -export * from "./utils"; +export default null; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/test/index.test.ts b/test/index.test.ts new file mode 100644 index 0000000..6e311ba --- /dev/null +++ b/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from "vitest"; + +describe("blah", () => { + it("works", () => { + expect(5).toBeGreaterThan(0); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index 568b63f..19f3b21 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,37 +1,20 @@ { - // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs - "include": ["src", "types"], "compilerOptions": { - "module": "esnext", - "target": "esnext", - "lib": ["dom", "esnext"], - "importHelpers": true, - // output .d.ts declaration files for consumers - "declaration": true, - // output .js.map sourcemap files for consumers - "sourceMap": true, - // match output dir to input dir. e.g. dist/index instead of dist/src/index - "rootDir": "./src", - // stricter type-checking for stronger correctness. Recommended by TS + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "Node", + // "types": ["vitest/globals"], "strict": true, - // linter checks for common issues - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative - "noUnusedLocals": true, - "noUnusedParameters": true, - // use Node's module resolution algorithm, instead of the legacy TS one - "moduleResolution": "node", - // transpile JSX to React.createElement - "jsx": "react", - // interop between ESM and CJS modules. Recommended by TS + "resolveJsonModule": true, + "isolatedModules": true, "esModuleInterop": true, - // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS - "skipLibCheck": true, - // error out if import and file system have a casing mismatch. Recommended by TS - "forceConsistentCasingInFileNames": true, - // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` "noEmit": true, - "downlevelIteration": true - } + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true + }, + "include": ["src"] } diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index a108ce5..0000000 --- a/vite.config.js +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from "vite"; - -export default defineConfig({ - server: { - port: 3700, - host: true - }, - // base: "/src/example/", - root: "example", - build: { - outDir: "dist-example" - } -}); diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..1779a07 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,31 @@ +/// +/// + +import { defineConfig } from "vite"; +import { resolve } from "path"; + +export default defineConfig({ + test: { + environment: "jsdom", + watch: false, + globals: true, + coverage: { + include: ["src/**/*.ts"], + all: true, + statements: 0, + branches: 0, + functions: 0, + lines: 0 + } + }, + build: { + target: "ESNext", + lib: { + // Could also be a dictionary or array of multiple entry points + entry: resolve(__dirname, "src/index.ts"), + name: "Gaguna", + // the proper extensions will be added + fileName: "gaguna" + } + } +}); From cd22f63ef5431ef9c769659c61a4ecb70699fff3 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 12 Nov 2022 12:03:40 +0700 Subject: [PATCH 14/56] draw background (fail) --- .nvmrc | 1 + example/index.ts | 26 +++++++- index.html | 30 ++++++++- src/graph-view.ts | 162 ++++++++++++++++++++++++++++++++++++++++++++++ src/index.ts | 2 +- vite.config.ts | 4 +- 6 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 .nvmrc create mode 100644 src/graph-view.ts diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..de29925 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18.10.0 \ No newline at end of file diff --git a/example/index.ts b/example/index.ts index 7646bbd..a191efc 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1 +1,25 @@ -export default null; +import { createGraphView } from "../src"; + +const graphDiv = document.getElementById("graph") as HTMLDivElement; + +let isDragging = false; + +function main() { + const graphView = createGraphView(graphDiv); + + window.addEventListener("mousedown", () => { + isDragging = true; + }); + + window.addEventListener("mousemove", e => { + if (!isDragging) return; + + graphView.moveBy(e.movementX, e.movementY); + }); + + window.addEventListener("mouseup", () => { + isDragging = false; + }); +} + +main(); diff --git a/index.html b/index.html index 86aacce..105d632 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,38 @@ + - Gaguna + + + Web Digraph example +
diff --git a/src/graph-view.ts b/src/graph-view.ts new file mode 100644 index 0000000..ba926a2 --- /dev/null +++ b/src/graph-view.ts @@ -0,0 +1,162 @@ +export class GraphView { + readonly canvas: HTMLCanvasElement; + readonly ctx: CanvasRenderingContext2D; + + private translateX = 0; + private translateY = 0; + private scale = 1.6; + + private viewX = 0; + private viewY = 0; + private viewW = 0; + private viewH = 0; + + private isDrawing = false; + + constructor(container: HTMLElement) { + this.canvas = document.createElement("canvas"); + this.canvas.textContent = "Canvas is not supported in your browser."; + this.canvas.width = container.clientWidth; + this.canvas.height = container.clientHeight; + + const ctx = this.canvas.getContext("2d", { alpha: false }); + if (!ctx) { + throw "Canvas is not supported in your browser."; + } + + this.ctx = ctx; + + this.requestDraw(); + container.appendChild(this.canvas); + } + + getTranslateX() { + return this.translateX; + } + + setTranslateX(v: number) { + if (v === this.translateX) return; + + this.translateX = v; + this.requestDraw(); + } + + getTranslateY() { + return this.translateY; + } + + setTranslateY(v: number) { + if (v === this.translateY) return; + + this.translateY = v; + this.requestDraw(); + } + + getScale() { + return this.scale; + } + + setScale(v: number) { + if (v === this.scale) return; + + this.scale = v; + this.requestDraw(); + } + + setTransform(translateX: number, translateY: number, scale: number) { + if ( + translateX === this.translateX && + translateY === this.translateY && + scale === this.scale + ) + return; + + this.translateX = translateX; + this.translateY = translateY; + this.scale = scale; + + this.requestDraw(); + } + + moveBy(x: number, y: number) { + this.translateX += x; + this.translateY += y; + + this.requestDraw(); + } + + private requestDraw() { + if (!this.isDrawing) { + requestAnimationFrame(this.requestDrawHandler); + } + + this.isDrawing = true; + } + + private requestDrawHandler = () => { + this.isDrawing = false; + this.draw(); + }; + + private setView() { + const { canvas, translateX, translateY, scale } = this; + + this.viewX = -translateX; + this.viewY = -translateY; + this.viewW = canvas.width / scale; + this.viewH = canvas.height / scale; + } + + private draw() { + const { ctx, canvas, scale, translateX, translateY } = this; + + ctx.fillStyle = "#fff"; + ctx.fillRect(0, 0, canvas.width, canvas.height); + // console.log("abc"); + + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + + this.setView(); + + this.drawBackground(); + + ctx.setTransform(1, 0, 0, 1, 0, 0); + } + + private drawBackground() { + const { ctx, viewX, viewY, viewW, viewH } = this; + + const lw = 8; + const gap = 64; + + ctx.strokeStyle = "#000"; + ctx.lineWidth = lw; + + const bl = viewX - lw * 0.5; + const br = viewX + viewW + lw * 0.5; + const bt = viewY - lw * 0.5; + const bb = viewY + viewH + lw * 0.5; + + const ll = bl - (bl % gap); + const lr = br - (br % gap); + const lt = bt - (bt % gap); + const lb = bb - (bb % gap); + + ctx.beginPath(); + + for (let i = ll; i <= lr; i += gap) { + ctx.moveTo(i | 0, lt | 0); + ctx.lineTo(i | 0, lb | 0); + } + + ctx.lineCap = "round"; + ctx.setLineDash([0, gap]); + ctx.stroke(); + ctx.setLineDash([0]); + ctx.lineCap = "square"; + } +} + +export function createGraphView(container: HTMLElement) { + return new GraphView(container); +} diff --git a/src/index.ts b/src/index.ts index 7646bbd..8479174 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1 @@ -export default null; +export * from "./graph-view"; diff --git a/vite.config.ts b/vite.config.ts index 1779a07..a26dbd9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -23,9 +23,9 @@ export default defineConfig({ lib: { // Could also be a dictionary or array of multiple entry points entry: resolve(__dirname, "src/index.ts"), - name: "Gaguna", + name: "Web Digraph", // the proper extensions will be added - fileName: "gaguna" + fileName: "web-digraph" } } }); From 426263c35335c59d7a805738463037b04f0c0b36 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 12 Nov 2022 20:21:22 +0700 Subject: [PATCH 15/56] basic node and edge --- example/index.ts | 43 +++++++- src/graph-view.ts | 242 ++++++++++++++++++++++++++++++++++++++++++---- src/utils.ts | 33 +++++++ 3 files changed, 293 insertions(+), 25 deletions(-) create mode 100644 src/utils.ts diff --git a/example/index.ts b/example/index.ts index a191efc..dd50a7b 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,25 +1,60 @@ -import { createGraphView } from "../src"; +import { createGraphView, GraphEdge, GraphNode } from "../src"; const graphDiv = document.getElementById("graph") as HTMLDivElement; let isDragging = false; +const nodes: GraphNode[] = [ + { + x: 400, + y: 400 + }, + { + x: 150, + y: 150 + } +]; +const edges: GraphEdge[] = [ + { + source: nodes[0], + target: nodes[1] + } +]; + function main() { const graphView = createGraphView(graphDiv); + graphView.setData(nodes, edges); + + window.addEventListener("resize", () => { + graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); + }); - window.addEventListener("mousedown", () => { + graphView.canvas.addEventListener("mousedown", () => { isDragging = true; }); - window.addEventListener("mousemove", e => { + graphView.canvas.addEventListener("mousemove", e => { if (!isDragging) return; graphView.moveBy(e.movementX, e.movementY); }); - window.addEventListener("mouseup", () => { + graphView.canvas.addEventListener("mouseup", () => { isDragging = false; }); + + graphView.canvas.addEventListener( + "wheel", + e => { + e.preventDefault(); + const pos = graphView.getViewPosFromWindowPos(e.x, e.y); + + graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + }, + { + passive: false + } + ); } main(); diff --git a/src/graph-view.ts b/src/graph-view.ts index ba926a2..1213cba 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,23 +1,50 @@ -export class GraphView { +import { defaultGraphOptions, GraphOptions } from "./utils"; + +const SIN_60 = Math.sin(Math.PI / 3); + +export type GraphNode = { + x: number; + y: number; + // shape: NodeShape; +}; + +export type GraphEdge = { + source: GraphNode; + target: GraphNode; + // shape: EdgeShape; +}; + +export class GraphView { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; + private nodes: Node[] = []; + private edges: Edge[] = []; + private translateX = 0; private translateY = 0; - private scale = 1.6; + private scale = 1; private viewX = 0; private viewY = 0; private viewW = 0; private viewH = 0; + private boundingRect: DOMRect; private isDrawing = false; + private options = defaultGraphOptions; + + constructor(container: HTMLElement, options: Partial = {}) { + this.options = { + ...this.options, + ...options + }; - constructor(container: HTMLElement) { this.canvas = document.createElement("canvas"); this.canvas.textContent = "Canvas is not supported in your browser."; this.canvas.width = container.clientWidth; this.canvas.height = container.clientHeight; + this.boundingRect = this.canvas.getBoundingClientRect(); const ctx = this.canvas.getContext("2d", { alpha: false }); if (!ctx) { @@ -27,9 +54,17 @@ export class GraphView { this.ctx = ctx; this.requestDraw(); + container.appendChild(this.canvas); } + setData(nodes: Node[], edges: Edge[]) { + this.nodes = nodes; + this.edges = edges; + + this.requestDraw(); + } + getTranslateX() { return this.translateX; } @@ -85,6 +120,42 @@ export class GraphView { this.requestDraw(); } + zoomBy(value: number, targetX?: number, targetY?: number) { + this.zoomTo(this.scale + value, targetX, targetY); + } + + zoomTo(value: number, targetX?: number, targetY?: number) { + const { scale, translateX, translateY, options } = this; + const { width, height } = this.canvas; + + targetX = targetX || (width * 0.5 - translateX) / scale; + targetY = targetY || (height * 0.5 - translateY) / scale; + + const newScale = Math.min( + options.maxScale, + Math.max(options.minScale, value) + ); + + const deltaScale = newScale - scale; + const offsetX = -(targetX * deltaScale); + const offsetY = -(targetY * deltaScale); + + this.scale += deltaScale; + this.translateX += offsetX; + this.translateY += offsetY; + + this.requestDraw(); + } + + resize(width: number, height: number): void { + this.canvas.width = width; + this.canvas.height = height; + + this.boundingRect = this.canvas.getBoundingClientRect(); + + this.requestDraw(); + } + private requestDraw() { if (!this.isDrawing) { requestAnimationFrame(this.requestDrawHandler); @@ -101,35 +172,108 @@ export class GraphView { private setView() { const { canvas, translateX, translateY, scale } = this; - this.viewX = -translateX; - this.viewY = -translateY; + this.viewX = -translateX / scale; + this.viewY = -translateY / scale; this.viewW = canvas.width / scale; this.viewH = canvas.height / scale; } private draw() { - const { ctx, canvas, scale, translateX, translateY } = this; - - ctx.fillStyle = "#fff"; + const { + ctx, + canvas, + scale, + translateX, + translateY, + options, + nodes, + edges + } = this; + + ctx.fillStyle = options.bgColor; ctx.fillRect(0, 0, canvas.width, canvas.height); - // console.log("abc"); ctx.setTransform(scale, 0, 0, scale, translateX, translateY); this.setView(); - this.drawBackground(); + if (options.bgShowDots) this.drawBackground(); + + ctx.strokeStyle = options.edgeLineColor; + ctx.fillStyle = options.edgeLineColor; + ctx.lineWidth = options.edgeLineWidth; + + for (const edge of edges) this.drawEdge(edge); + + ctx.strokeStyle = options.nodeLineColor; + ctx.fillStyle = options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; + for (const node of nodes) this.drawNode(node); ctx.setTransform(1, 0, 0, 1, 0, 0); } + private drawEdgeLine(edge: Edge) { + const { ctx } = this; + const { source, target } = edge; + + ctx.beginPath(); + ctx.moveTo(source.x, source.y); + ctx.lineTo(target.x, target.y); + ctx.stroke(); + } + + private drawEdgeArrow(edge: Edge) { + const { ctx, options } = this; + const { source, target } = edge; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ll = options.edgeArrowWidth * 0.5; + + const midx = (source.x + target.x) / 2; + const midy = (source.y + target.y) / 2; + const lsx = midx - options.edgeArrowHeight * cosr; + const lsy = midy - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + ctx.beginPath(); + ctx.moveTo(midx, midy); + ctx.lineTo(lp1x, lp1y); + ctx.lineTo(lp2x, lp2y); + ctx.closePath(); + ctx.fill(); + } + + private drawEdge(edge: Edge) { + this.drawEdgeLine(edge); + this.drawEdgeArrow(edge); + } + + private drawNode(node: Node) { + const { ctx } = this; + + ctx.beginPath(); + ctx.arc(node.x, node.y, 50, 0, Math.PI * 2); + ctx.fill(); + ctx.stroke(); + } + private drawBackground() { - const { ctx, viewX, viewY, viewW, viewH } = this; + const { ctx, viewX, viewY, viewW, viewH, options } = this; - const lw = 8; - const gap = 64; + const lw = options.bgLineWidth; + const gap = options.bgLineGap; - ctx.strokeStyle = "#000"; + ctx.strokeStyle = options.bgDotColor; ctx.lineWidth = lw; const bl = viewX - lw * 0.5; @@ -137,24 +281,80 @@ export class GraphView { const bt = viewY - lw * 0.5; const bb = viewY + viewH + lw * 0.5; - const ll = bl - (bl % gap); - const lr = br - (br % gap); - const lt = bt - (bt % gap); - const lb = bb - (bb % gap); + const ll = bl - (((bl % gap) - gap) % gap); + const lr = br - (((br % gap) + gap) % gap); + const lt = bt - (((bt % gap) - gap) % gap); + const lb = bb - (((bb % gap) + gap) % gap); ctx.beginPath(); for (let i = ll; i <= lr; i += gap) { - ctx.moveTo(i | 0, lt | 0); - ctx.lineTo(i | 0, lb | 0); + ctx.moveTo(i, lt); + ctx.lineTo(i, lb + gap); } ctx.lineCap = "round"; ctx.setLineDash([0, gap]); ctx.stroke(); - ctx.setLineDash([0]); + ctx.setLineDash([]); ctx.lineCap = "square"; } + + setViewPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.boundingRect; + const { scale, translateX, translateY } = this; + + out[0] = (windowX - left - translateX) / scale; + out[1] = (windowY - top - translateY) / scale; + } + + setViewPosFromCanvasPos( + out: [number, number], + canvasX: number, + canvasY: number + ) { + const { scale, translateX, translateY } = this; + + out[0] = (canvasX - translateX) / scale; + out[1] = (canvasY - translateY) / scale; + } + + getViewPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.boundingRect; + const { scale, translateX, translateY } = this; + + return [ + (windowX - left - translateX) / scale, + (windowY - top - translateY) / scale + ]; + } + + getViewPosFromCanvasPos(canvasX: number, canvasY: number) { + const { scale, translateX, translateY } = this; + + return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; + } + + setCanvasPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.boundingRect; + + out[0] = windowX - left; + out[1] = windowY - top; + } + + getCanvasPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.boundingRect; + + return [windowX - left, windowY - top]; + } } export function createGraphView(container: HTMLElement) { diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..5f204c5 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,33 @@ +export type GraphOptions = { + bgColor: string; + bgDotColor: string; + bgLineWidth: number; + bgLineGap: number; + bgShowDots: boolean; + minScale: number; + maxScale: number; + edgeLineWidth: number; + edgeLineColor: string; + edgeArrowHeight: number; + edgeArrowWidth: number; + nodeLineWidth: number; + nodeLineColor: string; + nodeColor: string; +}; + +export const defaultGraphOptions: GraphOptions = { + bgColor: "#eee", + bgDotColor: "#999", + bgLineWidth: 4, + bgLineGap: 32, + bgShowDots: true, + minScale: 0.25, + maxScale: 10, + edgeLineColor: "black", + edgeLineWidth: 2, + edgeArrowHeight: 20, + edgeArrowWidth: 18, + nodeLineColor: "black", + nodeLineWidth: 2, + nodeColor: "white" +}; From 3f5f1e6ea297132fbdfa6908d91a16bec991cf52 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sun, 13 Nov 2022 14:44:06 +0700 Subject: [PATCH 16/56] add generate on example and try experiment with get intersection point --- example/index.ts | 71 +++++++++++++++++++++++--------- index.html | 21 ++++++++-- src/graph-view.ts | 100 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 162 insertions(+), 30 deletions(-) diff --git a/example/index.ts b/example/index.ts index dd50a7b..69004cc 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,29 +1,64 @@ -import { createGraphView, GraphEdge, GraphNode } from "../src"; +import { + createGraphView, + createShape, + GraphEdge, + GraphNode, + GraphView +} from "../src"; const graphDiv = document.getElementById("graph") as HTMLDivElement; +const nodeCountInput = document.getElementById( + "node-count-input" +) as HTMLInputElement; +const generateButton = document.getElementById( + "generate-button" +) as HTMLButtonElement; + +let graphView: GraphView; let isDragging = false; -const nodes: GraphNode[] = [ - { - x: 400, - y: 400 - }, - { - x: 150, - y: 150 - } -]; -const edges: GraphEdge[] = [ - { - source: nodes[0], - target: nodes[1] +const nodes: GraphNode[] = []; +const edges: GraphEdge[] = []; + +function generate(nodeCount = 100) { + nodes.length = 0; + edges.length = 0; + + const columns = Math.ceil(Math.sqrt(nodeCount)); + + for (let i = 0; i < nodeCount; i++) { + const row = (i / columns) | 0; + const col = i % columns; + + nodes.push({ + x: col * 200, + y: row * 200, + shape: createShape() + }); + + if (i > 0) { + edges.push({ + source: nodes[i - 1], + target: nodes[i], + shape: createShape() + }); + } } -]; -function main() { - const graphView = createGraphView(graphDiv); graphView.setData(nodes, edges); +} + +function main() { + graphView = createGraphView(graphDiv); + + generate(2); + + generateButton.addEventListener("click", () => { + const len = parseInt(nodeCountInput.value, 10); + + generate(len); + }); window.addEventListener("resize", () => { graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); diff --git a/index.html b/index.html index 105d632..39ab1f4 100644 --- a/index.html +++ b/index.html @@ -27,15 +27,28 @@ box-sizing: border-box; -webkit-tap-highlight-color: transparent; } + + .full { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } Web Digraph example -
+
+ +
+ + +
+ diff --git a/src/graph-view.ts b/src/graph-view.ts index 1213cba..e61f038 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,19 +1,57 @@ import { defaultGraphOptions, GraphOptions } from "./utils"; -const SIN_60 = Math.sin(Math.PI / 3); +export type GraphShape = { + width: number; + height: number; + drawContent: ( + ctx: CanvasRenderingContext2D, + x: number, + y: number, + w: number, + h: number, + data: T + ) => void; + drawPath: ( + path: Path2D, + x: number, + y: number, + w: number, + h: number, + data: T + ) => void; +}; export type GraphNode = { x: number; y: number; - // shape: NodeShape; + shape: GraphShape; }; export type GraphEdge = { source: GraphNode; target: GraphNode; - // shape: EdgeShape; + shape: GraphShape; }; +const defaultGraphShape: GraphShape = { + width: 100, + height: 100, + drawContent: () => { + // noop + }, + drawPath: (p, x, y, w) => { + p.arc(x, y, w * 0.5, 0, Math.PI * 2); + p.closePath(); + } +}; + +export function createShape(shape?: Partial): GraphShape { + return { + ...defaultGraphShape, + ...shape + }; +} + export class GraphView { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; @@ -52,6 +90,7 @@ export class GraphView { } this.ctx = ctx; + ctx.miterLimit; this.requestDraw(); @@ -223,6 +262,37 @@ export class GraphView { ctx.stroke(); } + private getIntersectionPoint(source: GraphNode, target: GraphNode) { + const { ctx } = this; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + ctx.beginPath(); + ctx.arc(target.x, target.y, 50, 0, 2 * Math.PI); + ctx.closePath(); + + let start = 0; + let end = 10000; + + while (start <= end) { + const mid = ((start + end) / 2) | 0; + + const x = source.x + (mid / 10000) * dx; + const y = source.y + (mid / 10000) * dy; + + const [vx, vy] = this.getCanvasPosFromViewPos(x, y); + + if (ctx.isPointInPath(vx, vy)) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return start / 10000; + } + private drawEdgeArrow(edge: Edge) { const { ctx, options } = this; const { source, target } = edge; @@ -236,8 +306,9 @@ export class GraphView { const ll = options.edgeArrowWidth * 0.5; - const midx = (source.x + target.x) / 2; - const midy = (source.y + target.y) / 2; + const ip = this.getIntersectionPoint(source, target); + const midx = source.x + ip * dx; + const midy = source.y + ip * dy; const lsx = midx - options.edgeArrowHeight * cosr; const lsy = midy - options.edgeArrowHeight * sinr; const lp1x = lsx + ll * sinr; @@ -259,12 +330,19 @@ export class GraphView { } private drawNode(node: Node) { + this.drawShape(node.shape, node.x, node.y, node); + } + + private drawShape(shape: GraphShape, x: number, y: number, data: T) { const { ctx } = this; ctx.beginPath(); - ctx.arc(node.x, node.y, 50, 0, Math.PI * 2); - ctx.fill(); - ctx.stroke(); + + const path = new Path2D(); + shape.drawPath(path, x, y, shape.width, shape.height, data); + + ctx.fill(path); + ctx.stroke(path); } private drawBackground() { @@ -339,6 +417,12 @@ export class GraphView { return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; } + getCanvasPosFromViewPos(viewX: number, viewY: number) { + const { scale, translateX, translateY } = this; + + return [viewX * scale + translateX, viewY * scale + translateY]; + } + setCanvasPosFromWindowPos( out: [number, number], windowX: number, From 905f3f9389b10e9ad9996662f5bac9b152d8aaa1 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sun, 13 Nov 2022 16:23:17 +0700 Subject: [PATCH 17/56] update --- .eslintrc.cjs | 2 +- example/index.ts | 44 +++++--- src/graph-view.ts | 269 ++++++++++++++++++++++++++++++++++------------ src/utils.ts | 4 +- 4 files changed, 232 insertions(+), 87 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6952cf1..0f04c71 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -12,7 +12,7 @@ module.exports = { // Error "arrow-parens": ["error", "as-needed", { requireForBlockBody: false }], "comma-dangle": ["error", "never"], - "max-lines": ["error", 600], + "max-lines": ["error", 5000], "no-console": ["error", { allow: ["warn", "error", "info"] }], "no-param-reassign": "off", "@typescript-eslint/no-use-before-define": ["error", { functions: false }] diff --git a/example/index.ts b/example/index.ts index 69004cc..be97fc1 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,6 +1,7 @@ import { + createEdgeShape, createGraphView, - createShape, + createNodeShape, GraphEdge, GraphNode, GraphView @@ -18,12 +19,13 @@ let graphView: GraphView; let isDragging = false; -const nodes: GraphNode[] = []; -const edges: GraphEdge[] = []; +const nodeShape = createNodeShape(); +const edgeShape = createEdgeShape(); function generate(nodeCount = 100) { - nodes.length = 0; - edges.length = 0; + let id = 1; + + graphView.clear(); const columns = Math.ceil(Math.sqrt(nodeCount)); @@ -31,22 +33,30 @@ function generate(nodeCount = 100) { const row = (i / columns) | 0; const col = i % columns; - nodes.push({ - x: col * 200, - y: row * 200, - shape: createShape() - }); + graphView.addNode( + { + id, + x: col * 200, + y: row * 200 + }, + nodeShape + ); + + id++; if (i > 0) { - edges.push({ - source: nodes[i - 1], - target: nodes[i], - shape: createShape() - }); + graphView.addEdge( + { + id, + sourceId: id - (i > 1 ? 3 : 2), + targetId: id - 1 + }, + edgeShape + ); + + id++; } } - - graphView.setData(nodes, edges); } function main() { diff --git a/src/graph-view.ts b/src/graph-view.ts index e61f038..5f423cf 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -3,37 +3,37 @@ import { defaultGraphOptions, GraphOptions } from "./utils"; export type GraphShape = { width: number; height: number; - drawContent: ( + drawContent: ( ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, - data: T + id: number ) => void; - drawPath: ( + drawPath: ( path: Path2D, x: number, y: number, w: number, h: number, - data: T + id: number ) => void; }; export type GraphNode = { + id: number; x: number; y: number; - shape: GraphShape; }; export type GraphEdge = { - source: GraphNode; - target: GraphNode; - shape: GraphShape; + id: number; + sourceId: number; + targetId: number; }; -const defaultGraphShape: GraphShape = { +const defaultNodeShape: GraphShape = { width: 100, height: 100, drawContent: () => { @@ -45,9 +45,34 @@ const defaultGraphShape: GraphShape = { } }; -export function createShape(shape?: Partial): GraphShape { +const defaultEdgeShape: GraphShape = { + width: 32, + height: 32, + drawContent: () => { + // noop + }, + drawPath: (p, x, y, w, h) => { + const wh = w * 0.5; + const hh = h * 0.5; + + p.moveTo(x - wh, y); + p.lineTo(x, y + wh); + p.lineTo(x + wh, y); + p.lineTo(x, y - hh); + p.closePath(); + } +}; + +export function createNodeShape(shape?: Partial): GraphShape { + return { + ...defaultNodeShape, + ...shape + }; +} + +export function createEdgeShape(shape?: Partial): GraphShape { return { - ...defaultGraphShape, + ...defaultEdgeShape, ...shape }; } @@ -58,6 +83,11 @@ export class GraphView { private nodes: Node[] = []; private edges: Edge[] = []; + private idMap: Record = {}; + private shapeMap: Record = {}; + private pathMap: Record = {}; + private linePathMap: Record = {}; + private arrowPathMap: Record = {}; private translateX = 0; private translateY = 0; @@ -97,13 +127,151 @@ export class GraphView { container.appendChild(this.canvas); } - setData(nodes: Node[], edges: Edge[]) { - this.nodes = nodes; - this.edges = edges; + addNode(node: Node, shape: GraphShape) { + if (this.idMap[node.id]) return; + + this.nodes.push(node); + this.idMap[node.id] = node; + + const path = new Path2D(); + shape.drawPath(path, node.x, node.y, shape.width, shape.height, node.id); + + this.shapeMap[node.id] = shape; + this.pathMap[node.id] = path; this.requestDraw(); } + addEdge(edge: Edge, shape: GraphShape) { + if (this.idMap[edge.id]) return; + + const { idMap } = this; + + this.edges.push(edge); + this.idMap[edge.id] = edge; + this.shapeMap[edge.id] = shape; + + const { sourceId, targetId } = edge; + + const source = idMap[sourceId] as Node; + const target = idMap[targetId] as Node; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + const midx = (source.x + target.x) * 0.5; + const midy = (source.y + target.y) * 0.5; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ip = this.getIntersectionPoint(source, target); + const ix = source.x + ip * dx; + const iy = source.y + ip * dy; + + const path = new Path2D(); + shape.drawPath(path, midx, midy, shape.width, shape.height, edge.id); + + this.pathMap[edge.id] = path; + + const linePath = this.createEdgeLinePath( + source.x, + source.y, + target.x, + target.y + ); + this.linePathMap[edge.id] = linePath; + + const arrowPath = this.createEdgeArrowPath(ix, iy, sinr, cosr); + this.arrowPathMap[edge.id] = arrowPath; + + this.requestDraw(); + } + + private createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { + const p = new Path2D(); + + p.moveTo(sx, sy); + p.lineTo(tx, ty); + + return p; + } + + private createEdgeArrowPath( + ix: number, + iy: number, + sinr: number, + cosr: number + ) { + const { options } = this; + + const ll = options.edgeArrowWidth * 0.5; + const lsx = ix - options.edgeArrowHeight * cosr; + const lsy = iy - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + const p = new Path2D(); + + p.moveTo(ix, iy); + p.lineTo(lp1x, lp1y); + p.lineTo(lp2x, lp2y); + p.closePath(); + + return p; + } + + updateNode(id: number, node: Partial) { + // + } + + updateEdge(id: number, edge: Partial) { + // + } + + removeNode(id: number) { + // + } + + removeEdge(id: number) { + // + } + + getNode(id: number): Node { + return this.idMap[id] as Node; + } + + getEdge(id: number): Edge { + return this.idMap[id] as Edge; + } + + getData() { + return { + nodes: this.nodes, + edges: this.edges + }; + } + + clear() { + this.nodes = []; + this.edges = []; + this.idMap = {}; + this.shapeMap = {}; + this.pathMap = {}; + + this.requestDraw(); + } + + // setData(nodes: Node[], edges: Edge[]) { + // this.nodes = nodes; + // this.edges = edges; + + // this.requestDraw(); + // } + getTranslateX() { return this.translateX; } @@ -238,30 +406,13 @@ export class GraphView { if (options.bgShowDots) this.drawBackground(); - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - ctx.lineWidth = options.edgeLineWidth; - for (const edge of edges) this.drawEdge(edge); - ctx.strokeStyle = options.nodeLineColor; - ctx.fillStyle = options.nodeColor; - ctx.lineWidth = options.nodeLineWidth; for (const node of nodes) this.drawNode(node); ctx.setTransform(1, 0, 0, 1, 0, 0); } - private drawEdgeLine(edge: Edge) { - const { ctx } = this; - const { source, target } = edge; - - ctx.beginPath(); - ctx.moveTo(source.x, source.y); - ctx.lineTo(target.x, target.y); - ctx.stroke(); - } - private getIntersectionPoint(source: GraphNode, target: GraphNode) { const { ctx } = this; @@ -293,53 +444,35 @@ export class GraphView { return start / 10000; } - private drawEdgeArrow(edge: Edge) { + private drawEdge(edge: Edge) { const { ctx, options } = this; - const { source, target } = edge; - const dx = target.x - source.x; - const dy = target.y - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const ll = options.edgeArrowWidth * 0.5; + // draw edge line + const linePath = this.linePathMap[edge.id]; + ctx.strokeStyle = options.edgeLineColor; + ctx.stroke(linePath); - const ip = this.getIntersectionPoint(source, target); - const midx = source.x + ip * dx; - const midy = source.y + ip * dy; - const lsx = midx - options.edgeArrowHeight * cosr; - const lsy = midy - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; + // draw edge arrow + const arrowPath = this.arrowPathMap[edge.id]; + ctx.fillStyle = options.edgeLineColor; + ctx.fill(arrowPath); - ctx.beginPath(); - ctx.moveTo(midx, midy); - ctx.lineTo(lp1x, lp1y); - ctx.lineTo(lp2x, lp2y); - ctx.closePath(); - ctx.fill(); - } + // draw shape + const path = this.pathMap[edge.id]; - private drawEdge(edge: Edge) { - this.drawEdgeLine(edge); - this.drawEdgeArrow(edge); + ctx.fillStyle = options.edgeShapeColor; + ctx.fill(path); + ctx.stroke(path); } private drawNode(node: Node) { - this.drawShape(node.shape, node.x, node.y, node); - } - - private drawShape(shape: GraphShape, x: number, y: number, data: T) { - const { ctx } = this; + const { ctx, options } = this; - ctx.beginPath(); + const path = this.pathMap[node.id]; - const path = new Path2D(); - shape.drawPath(path, x, y, shape.width, shape.height, data); + ctx.strokeStyle = options.nodeLineColor; + ctx.fillStyle = options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; ctx.fill(path); ctx.stroke(path); diff --git a/src/utils.ts b/src/utils.ts index 5f204c5..5eabe5a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -10,6 +10,7 @@ export type GraphOptions = { edgeLineColor: string; edgeArrowHeight: number; edgeArrowWidth: number; + edgeShapeColor: string; nodeLineWidth: number; nodeLineColor: string; nodeColor: string; @@ -20,13 +21,14 @@ export const defaultGraphOptions: GraphOptions = { bgDotColor: "#999", bgLineWidth: 4, bgLineGap: 32, - bgShowDots: true, + bgShowDots: false, minScale: 0.25, maxScale: 10, edgeLineColor: "black", edgeLineWidth: 2, edgeArrowHeight: 20, edgeArrowWidth: 18, + edgeShapeColor: "white", nodeLineColor: "black", nodeLineWidth: 2, nodeColor: "white" From fac2c6f35a61e3ec29b6f5d1b80cb0a304b8f025 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sun, 13 Nov 2022 17:01:40 +0700 Subject: [PATCH 18/56] adjust default shape and draw content --- example/index.ts | 6 +-- src/graph-view.ts | 101 +++++++++++++++++++++++++++++++++------------- src/utils.ts | 24 +++++++++-- 3 files changed, 97 insertions(+), 34 deletions(-) diff --git a/example/index.ts b/example/index.ts index be97fc1..f3e768c 100644 --- a/example/index.ts +++ b/example/index.ts @@ -36,8 +36,8 @@ function generate(nodeCount = 100) { graphView.addNode( { id, - x: col * 200, - y: row * 200 + x: col * 320, + y: row * 320 }, nodeShape ); @@ -62,7 +62,7 @@ function generate(nodeCount = 100) { function main() { graphView = createGraphView(graphDiv); - generate(2); + generate(100); generateButton.addEventListener("click", () => { const len = parseInt(nodeCountInput.value, 10); diff --git a/src/graph-view.ts b/src/graph-view.ts index 5f423cf..6906b79 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -34,10 +34,10 @@ export type GraphEdge = { }; const defaultNodeShape: GraphShape = { - width: 100, - height: 100, - drawContent: () => { - // noop + width: 160, + height: 160, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(`Node ID: ${id}`, x, y, w); }, drawPath: (p, x, y, w) => { p.arc(x, y, w * 0.5, 0, Math.PI * 2); @@ -46,10 +46,10 @@ const defaultNodeShape: GraphShape = { }; const defaultEdgeShape: GraphShape = { - width: 32, - height: 32, - drawContent: () => { - // noop + width: 48, + height: 48, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(id.toString(), x, y, w); }, drawPath: (p, x, y, w, h) => { const wh = w * 0.5; @@ -88,6 +88,7 @@ export class GraphView { private pathMap: Record = {}; private linePathMap: Record = {}; private arrowPathMap: Record = {}; + private edgeContentPosMap: Record = {}; private translateX = 0; private translateY = 0; @@ -145,7 +146,7 @@ export class GraphView { addEdge(edge: Edge, shape: GraphShape) { if (this.idMap[edge.id]) return; - const { idMap } = this; + const { idMap, options } = this; this.edges.push(edge); this.idMap[edge.id] = edge; @@ -159,21 +160,38 @@ export class GraphView { const dx = target.x - source.x; const dy = target.y - source.y; - const midx = (source.x + target.x) * 0.5; - const midy = (source.y + target.y) * 0.5; - const rad = Math.atan2(dy, dx); const sinr = Math.sin(rad); const cosr = Math.cos(rad); - const ip = this.getIntersectionPoint(source, target); - const ix = source.x + ip * dx; - const iy = source.y + ip * dy; + const sip = this.getIntersectionPoint( + target.x, + target.y, + source.x, + source.y, + this.pathMap[source.id] + ); + const sipx = target.x - sip * dx; + const sipy = target.y - sip * dy; + + const tip = this.getIntersectionPoint( + source.x, + source.y, + target.x, + target.y, + this.pathMap[target.id] + ); + const tipx = source.x + tip * dx; + const tipy = source.y + tip * dy; + + const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; + const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; const path = new Path2D(); shape.drawPath(path, midx, midy, shape.width, shape.height, edge.id); this.pathMap[edge.id] = path; + this.edgeContentPosMap[edge.id] = [midx, midy]; const linePath = this.createEdgeLinePath( source.x, @@ -183,7 +201,7 @@ export class GraphView { ); this.linePathMap[edge.id] = linePath; - const arrowPath = this.createEdgeArrowPath(ix, iy, sinr, cosr); + const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); this.arrowPathMap[edge.id] = arrowPath; this.requestDraw(); @@ -261,6 +279,9 @@ export class GraphView { this.idMap = {}; this.shapeMap = {}; this.pathMap = {}; + this.edgeContentPosMap = {}; + this.linePathMap = {}; + this.arrowPathMap = {}; this.requestDraw(); } @@ -413,15 +434,17 @@ export class GraphView { ctx.setTransform(1, 0, 0, 1, 0, 0); } - private getIntersectionPoint(source: GraphNode, target: GraphNode) { + private getIntersectionPoint( + sx: number, + sy: number, + tx: number, + ty: number, + path: Path2D + ) { const { ctx } = this; - const dx = target.x - source.x; - const dy = target.y - source.y; - - ctx.beginPath(); - ctx.arc(target.x, target.y, 50, 0, 2 * Math.PI); - ctx.closePath(); + const dx = tx - sx; + const dy = ty - sy; let start = 0; let end = 10000; @@ -429,12 +452,12 @@ export class GraphView { while (start <= end) { const mid = ((start + end) / 2) | 0; - const x = source.x + (mid / 10000) * dx; - const y = source.y + (mid / 10000) * dy; + const x = sx + (mid / 10000) * dx; + const y = sy + (mid / 10000) * dy; - const [vx, vy] = this.getCanvasPosFromViewPos(x, y); + // const [vx, vy] = this.getCanvasPosFromViewPos(x, y); - if (ctx.isPointInPath(vx, vy)) { + if (ctx.isPointInPath(path, x, y)) { end = mid - 1; } else { start = mid + 1; @@ -447,6 +470,8 @@ export class GraphView { private drawEdge(edge: Edge) { const { ctx, options } = this; + ctx.lineWidth = options.edgeLineWidth; + // draw edge line const linePath = this.linePathMap[edge.id]; ctx.strokeStyle = options.edgeLineColor; @@ -463,11 +488,23 @@ export class GraphView { ctx.fillStyle = options.edgeShapeColor; ctx.fill(path); ctx.stroke(path); + + // draw content + const [x, y] = this.edgeContentPosMap[edge.id]; + const shape = this.shapeMap[edge.id]; + + ctx.fillStyle = options.edgeContentColor; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; + + shape.drawContent(ctx, x, y, shape.width, shape.height, edge.id); } private drawNode(node: Node) { const { ctx, options } = this; + // draw shape const path = this.pathMap[node.id]; ctx.strokeStyle = options.nodeLineColor; @@ -476,6 +513,16 @@ export class GraphView { ctx.fill(path); ctx.stroke(path); + + // draw content + const shape = this.shapeMap[node.id]; + + ctx.fillStyle = options.nodeContentColor; + ctx.textAlign = options.nodeTextAlign; + ctx.textBaseline = options.nodeTextBaseline; + ctx.font = options.nodeFont; + + shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); } private drawBackground() { diff --git a/src/utils.ts b/src/utils.ts index 5eabe5a..a564a88 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -11,17 +11,25 @@ export type GraphOptions = { edgeArrowHeight: number; edgeArrowWidth: number; edgeShapeColor: string; + edgeContentColor: string; + edgeTextAlign: CanvasTextAlign; + edgeTextBaseline: CanvasTextBaseline; + edgeFont: string; nodeLineWidth: number; nodeLineColor: string; nodeColor: string; + nodeContentColor: string; + nodeTextAlign: CanvasTextAlign; + nodeTextBaseline: CanvasTextBaseline; + nodeFont: string; }; export const defaultGraphOptions: GraphOptions = { bgColor: "#eee", bgDotColor: "#999", - bgLineWidth: 4, - bgLineGap: 32, - bgShowDots: false, + bgLineWidth: 8, + bgLineGap: 64, + bgShowDots: true, minScale: 0.25, maxScale: 10, edgeLineColor: "black", @@ -29,7 +37,15 @@ export const defaultGraphOptions: GraphOptions = { edgeArrowHeight: 20, edgeArrowWidth: 18, edgeShapeColor: "white", + edgeContentColor: "black", + edgeTextAlign: "center", + edgeTextBaseline: "middle", + edgeFont: "16px sans-serif", nodeLineColor: "black", nodeLineWidth: 2, - nodeColor: "white" + nodeColor: "white", + nodeContentColor: "black", + nodeTextAlign: "center", + nodeTextBaseline: "middle", + nodeFont: "16px sans-serif" }; From 64547fd497cb751cb92e066a0921ed346a796668 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sun, 13 Nov 2022 20:07:49 +0700 Subject: [PATCH 19/56] hover and refactor --- example/index.ts | 8 +- src/graph-state.ts | 55 ++++++ src/graph-view.ts | 442 ++++++++++++++++++++++----------------------- src/index.ts | 1 + src/types.ts | 118 ++++++++++++ src/utils.ts | 51 ------ 6 files changed, 394 insertions(+), 281 deletions(-) create mode 100644 src/graph-state.ts create mode 100644 src/types.ts delete mode 100644 src/utils.ts diff --git a/example/index.ts b/example/index.ts index f3e768c..fff2620 100644 --- a/example/index.ts +++ b/example/index.ts @@ -74,21 +74,21 @@ function main() { graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); }); - graphView.canvas.addEventListener("mousedown", () => { + graphDiv.addEventListener("mousedown", () => { isDragging = true; }); - graphView.canvas.addEventListener("mousemove", e => { + graphDiv.addEventListener("mousemove", e => { if (!isDragging) return; graphView.moveBy(e.movementX, e.movementY); }); - graphView.canvas.addEventListener("mouseup", () => { + graphDiv.addEventListener("mouseup", () => { isDragging = false; }); - graphView.canvas.addEventListener( + graphDiv.addEventListener( "wheel", e => { e.preventDefault(); diff --git a/src/graph-state.ts b/src/graph-state.ts new file mode 100644 index 0000000..4a3039a --- /dev/null +++ b/src/graph-state.ts @@ -0,0 +1,55 @@ +import { + GraphEdge, + GraphNode, + GraphShape, + GraphOptions, + defaultGraphOptions +} from "./types"; + +export class GraphState { + readonly canvas: HTMLCanvasElement; + readonly ctx: CanvasRenderingContext2D; + + nodes: Node[] = []; + edges: Edge[] = []; + idMap: Record = {}; + shapeMap: Record = {}; + pathMap: Record = {}; + linePathMap: Record = {}; + arrowPathMap: Record = {}; + edgeContentPosMap: Record = {}; + + translateX = 0; + translateY = 0; + scale = 1; + + viewX = 0; + viewY = 0; + viewW = 0; + viewH = 0; + boundingRect: DOMRect; + + isDrawing = false; + options = defaultGraphOptions; + hoveredId = 0; + + constructor(container: HTMLElement, options: Partial = {}) { + this.options = { + ...this.options, + ...options + }; + + this.canvas = document.createElement("canvas"); + this.canvas.textContent = "Canvas is not supported in your browser."; + this.canvas.width = container.clientWidth; + this.canvas.height = container.clientHeight; + this.boundingRect = this.canvas.getBoundingClientRect(); + + const ctx = this.canvas.getContext("2d", { alpha: false }); + if (!ctx) { + throw "Canvas is not supported in your browser."; + } + + this.ctx = ctx; + } +} diff --git a/src/graph-view.ts b/src/graph-view.ts index 6906b79..1cce0be 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,67 +1,12 @@ -import { defaultGraphOptions, GraphOptions } from "./utils"; - -export type GraphShape = { - width: number; - height: number; - drawContent: ( - ctx: CanvasRenderingContext2D, - x: number, - y: number, - w: number, - h: number, - id: number - ) => void; - drawPath: ( - path: Path2D, - x: number, - y: number, - w: number, - h: number, - id: number - ) => void; -}; - -export type GraphNode = { - id: number; - x: number; - y: number; -}; - -export type GraphEdge = { - id: number; - sourceId: number; - targetId: number; -}; - -const defaultNodeShape: GraphShape = { - width: 160, - height: 160, - drawContent: (ctx, x, y, w, _h, id) => { - ctx.fillText(`Node ID: ${id}`, x, y, w); - }, - drawPath: (p, x, y, w) => { - p.arc(x, y, w * 0.5, 0, Math.PI * 2); - p.closePath(); - } -}; - -const defaultEdgeShape: GraphShape = { - width: 48, - height: 48, - drawContent: (ctx, x, y, w, _h, id) => { - ctx.fillText(id.toString(), x, y, w); - }, - drawPath: (p, x, y, w, h) => { - const wh = w * 0.5; - const hh = h * 0.5; - - p.moveTo(x - wh, y); - p.lineTo(x, y + wh); - p.lineTo(x + wh, y); - p.lineTo(x, y - hh); - p.closePath(); - } -}; +import { GraphState } from "./graph-state"; +import { + defaultEdgeShape, + defaultNodeShape, + GraphEdge, + GraphNode, + GraphShape, + GraphOptions +} from "./types"; export function createNodeShape(shape?: Partial): GraphShape { return { @@ -78,79 +23,101 @@ export function createEdgeShape(shape?: Partial): GraphShape { } export class GraphView { - readonly canvas: HTMLCanvasElement; - readonly ctx: CanvasRenderingContext2D; - - private nodes: Node[] = []; - private edges: Edge[] = []; - private idMap: Record = {}; - private shapeMap: Record = {}; - private pathMap: Record = {}; - private linePathMap: Record = {}; - private arrowPathMap: Record = {}; - private edgeContentPosMap: Record = {}; - - private translateX = 0; - private translateY = 0; - private scale = 1; - - private viewX = 0; - private viewY = 0; - private viewW = 0; - private viewH = 0; - private boundingRect: DOMRect; - - private isDrawing = false; - private options = defaultGraphOptions; + private state: GraphState; constructor(container: HTMLElement, options: Partial = {}) { - this.options = { - ...this.options, - ...options - }; + this.state = new GraphState(container, options); - this.canvas = document.createElement("canvas"); - this.canvas.textContent = "Canvas is not supported in your browser."; - this.canvas.width = container.clientWidth; - this.canvas.height = container.clientHeight; - this.boundingRect = this.canvas.getBoundingClientRect(); + this.requestDraw(); - const ctx = this.canvas.getContext("2d", { alpha: false }); - if (!ctx) { - throw "Canvas is not supported in your browser."; - } + container.appendChild(this.state.canvas); - this.ctx = ctx; - ctx.miterLimit; + this.state.canvas.addEventListener("mousemove", e => { + const { ctx, scale, translateX, translateY, nodes, edges, idMap } = + this.state; + const [vx, vy] = this.getViewPosFromWindowPos(e.x, e.y); - this.requestDraw(); + const prevId = this.state.hoveredId; + this.state.hoveredId = 0; + + for (const node of nodes) { + if (this.isNodeHovered(vx, vy, node)) { + this.state.hoveredId = node.id; + } + } + + for (const edge of edges) { + if (this.isEdgeHovered(vx, vy, edge)) { + this.state.hoveredId = edge.id; + } + } + + if (this.state.hoveredId === prevId) return; + + const prev = idMap[prevId] as Node | Edge | undefined; + const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; - container.appendChild(this.canvas); + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + this.setView(); + + if (prev) { + if ("x" in prev) { + this.drawNode(prev, false); + } else { + this.drawEdge(prev, false); + } + } + + if (curr) { + if ("x" in curr) { + this.drawNode(curr, true); + } else { + this.drawEdge(curr, true); + } + } + + ctx.setTransform(1, 0, 0, 1, 0, 0); + }); + } + + destroy() { + // } addNode(node: Node, shape: GraphShape) { - if (this.idMap[node.id]) return; + const { idMap, nodes, shapeMap, pathMap } = this.state; + + if (idMap[node.id]) return; - this.nodes.push(node); - this.idMap[node.id] = node; + nodes.push(node); + idMap[node.id] = node; const path = new Path2D(); shape.drawPath(path, node.x, node.y, shape.width, shape.height, node.id); - this.shapeMap[node.id] = shape; - this.pathMap[node.id] = path; + shapeMap[node.id] = shape; + pathMap[node.id] = path; this.requestDraw(); } addEdge(edge: Edge, shape: GraphShape) { - if (this.idMap[edge.id]) return; + if (this.state.idMap[edge.id]) return; - const { idMap, options } = this; - - this.edges.push(edge); - this.idMap[edge.id] = edge; - this.shapeMap[edge.id] = shape; + const { + idMap, + options, + edges, + shapeMap, + pathMap, + edgeContentPosMap, + arrowPathMap, + linePathMap + } = this.state; + + edges.push(edge); + idMap[edge.id] = edge; + shapeMap[edge.id] = shape; const { sourceId, targetId } = edge; @@ -169,20 +136,20 @@ export class GraphView { target.y, source.x, source.y, - this.pathMap[source.id] + pathMap[source.id] ); - const sipx = target.x - sip * dx; - const sipy = target.y - sip * dy; + const sipx = target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; + const sipy = target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; const tip = this.getIntersectionPoint( source.x, source.y, target.x, target.y, - this.pathMap[target.id] + pathMap[target.id] ); - const tipx = source.x + tip * dx; - const tipy = source.y + tip * dy; + const tipx = source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; + const tipy = source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; @@ -190,19 +157,19 @@ export class GraphView { const path = new Path2D(); shape.drawPath(path, midx, midy, shape.width, shape.height, edge.id); - this.pathMap[edge.id] = path; - this.edgeContentPosMap[edge.id] = [midx, midy]; + pathMap[edge.id] = path; + edgeContentPosMap[edge.id] = [midx, midy]; const linePath = this.createEdgeLinePath( - source.x, - source.y, - target.x, - target.y + sipx, + sipy, + tipx - options.edgeArrowHeight * cosr, + tipy - options.edgeArrowHeight * sinr ); - this.linePathMap[edge.id] = linePath; + linePathMap[edge.id] = linePath; const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); - this.arrowPathMap[edge.id] = arrowPath; + arrowPathMap[edge.id] = arrowPath; this.requestDraw(); } @@ -222,7 +189,7 @@ export class GraphView { sinr: number, cosr: number ) { - const { options } = this; + const { options } = this.state; const ll = options.edgeArrowWidth * 0.5; const lsx = ix - options.edgeArrowHeight * cosr; @@ -242,119 +209,112 @@ export class GraphView { return p; } - updateNode(id: number, node: Partial) { - // - } + // updateNode(id: number, node: Partial) { + // // + // } - updateEdge(id: number, edge: Partial) { - // - } + // updateEdge(id: number, edge: Partial) { + // // + // } - removeNode(id: number) { - // - } + // removeNode(id: number) { + // // + // } - removeEdge(id: number) { - // - } + // removeEdge(id: number) { + // // + // } getNode(id: number): Node { - return this.idMap[id] as Node; + return this.state.idMap[id] as Node; } getEdge(id: number): Edge { - return this.idMap[id] as Edge; + return this.state.idMap[id] as Edge; } getData() { return { - nodes: this.nodes, - edges: this.edges + nodes: this.state.nodes, + edges: this.state.edges }; } clear() { - this.nodes = []; - this.edges = []; - this.idMap = {}; - this.shapeMap = {}; - this.pathMap = {}; - this.edgeContentPosMap = {}; - this.linePathMap = {}; - this.arrowPathMap = {}; + this.state.nodes = []; + this.state.edges = []; + this.state.idMap = {}; + this.state.shapeMap = {}; + this.state.pathMap = {}; + this.state.edgeContentPosMap = {}; + this.state.linePathMap = {}; + this.state.arrowPathMap = {}; this.requestDraw(); } - // setData(nodes: Node[], edges: Edge[]) { - // this.nodes = nodes; - // this.edges = edges; - - // this.requestDraw(); - // } - getTranslateX() { - return this.translateX; + return this.state.translateX; } setTranslateX(v: number) { - if (v === this.translateX) return; + if (v === this.state.translateX) return; - this.translateX = v; + this.state.translateX = v; this.requestDraw(); } getTranslateY() { - return this.translateY; + return this.state.translateY; } setTranslateY(v: number) { - if (v === this.translateY) return; + if (v === this.state.translateY) return; - this.translateY = v; + this.state.translateY = v; this.requestDraw(); } getScale() { - return this.scale; + return this.state.scale; } setScale(v: number) { - if (v === this.scale) return; + if (v === this.state.scale) return; - this.scale = v; + this.state.scale = v; this.requestDraw(); } setTransform(translateX: number, translateY: number, scale: number) { if ( - translateX === this.translateX && - translateY === this.translateY && - scale === this.scale + translateX === this.state.translateX && + translateY === this.state.translateY && + scale === this.state.scale ) return; - this.translateX = translateX; - this.translateY = translateY; - this.scale = scale; + this.state.translateX = translateX; + this.state.translateY = translateY; + this.state.scale = scale; this.requestDraw(); } moveBy(x: number, y: number) { - this.translateX += x; - this.translateY += y; + this.state.translateX += x; + this.state.translateY += y; this.requestDraw(); } zoomBy(value: number, targetX?: number, targetY?: number) { - this.zoomTo(this.scale + value, targetX, targetY); + this.zoomTo(this.state.scale + value, targetX, targetY); } zoomTo(value: number, targetX?: number, targetY?: number) { - const { scale, translateX, translateY, options } = this; - const { width, height } = this.canvas; + const { scale, translateX, translateY, options } = this.state; + const { width, height } = this.state.canvas; targetX = targetX || (width * 0.5 - translateX) / scale; targetY = targetY || (height * 0.5 - translateY) / scale; @@ -368,42 +328,42 @@ export class GraphView { const offsetX = -(targetX * deltaScale); const offsetY = -(targetY * deltaScale); - this.scale += deltaScale; - this.translateX += offsetX; - this.translateY += offsetY; + this.state.scale += deltaScale; + this.state.translateX += offsetX; + this.state.translateY += offsetY; this.requestDraw(); } resize(width: number, height: number): void { - this.canvas.width = width; - this.canvas.height = height; + this.state.canvas.width = width; + this.state.canvas.height = height; - this.boundingRect = this.canvas.getBoundingClientRect(); + this.state.boundingRect = this.state.canvas.getBoundingClientRect(); this.requestDraw(); } private requestDraw() { - if (!this.isDrawing) { + if (!this.state.isDrawing) { requestAnimationFrame(this.requestDrawHandler); } - this.isDrawing = true; + this.state.isDrawing = true; } private requestDrawHandler = () => { - this.isDrawing = false; + this.state.isDrawing = false; this.draw(); }; private setView() { - const { canvas, translateX, translateY, scale } = this; + const { canvas, translateX, translateY, scale } = this.state; - this.viewX = -translateX / scale; - this.viewY = -translateY / scale; - this.viewW = canvas.width / scale; - this.viewH = canvas.height / scale; + this.state.viewX = -translateX / scale; + this.state.viewY = -translateY / scale; + this.state.viewW = canvas.width / scale; + this.state.viewH = canvas.height / scale; } private draw() { @@ -415,8 +375,9 @@ export class GraphView { translateY, options, nodes, - edges - } = this; + edges, + hoveredId + } = this.state; ctx.fillStyle = options.bgColor; ctx.fillRect(0, 0, canvas.width, canvas.height); @@ -427,9 +388,8 @@ export class GraphView { if (options.bgShowDots) this.drawBackground(); - for (const edge of edges) this.drawEdge(edge); - - for (const node of nodes) this.drawNode(node); + for (const edge of edges) this.drawEdge(edge, hoveredId === edge.id); + for (const node of nodes) this.drawNode(node, hoveredId === node.id); ctx.setTransform(1, 0, 0, 1, 0, 0); } @@ -441,7 +401,7 @@ export class GraphView { ty: number, path: Path2D ) { - const { ctx } = this; + const { ctx } = this.state; const dx = tx - sx; const dy = ty - sy; @@ -467,31 +427,53 @@ export class GraphView { return start / 10000; } - private drawEdge(edge: Edge) { - const { ctx, options } = this; + private isEdgeHovered(x: number, y: number, edge: Edge) { + const { ctx, pathMap, linePathMap, arrowPathMap } = this.state; + + return ( + ctx.isPointInPath(pathMap[edge.id], x, y) || + ctx.isPointInStroke(linePathMap[edge.id], x, y) || + ctx.isPointInPath(arrowPathMap[edge.id], x, y) + ); + } + + private drawEdge(edge: Edge, hovered = false) { + const { + ctx, + options, + linePathMap, + arrowPathMap, + pathMap, + edgeContentPosMap, + shapeMap + } = this.state; ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; // draw edge line - const linePath = this.linePathMap[edge.id]; - ctx.strokeStyle = options.edgeLineColor; + const linePath = linePathMap[edge.id]; ctx.stroke(linePath); // draw edge arrow - const arrowPath = this.arrowPathMap[edge.id]; - ctx.fillStyle = options.edgeLineColor; + const arrowPath = arrowPathMap[edge.id]; + ctx.fillStyle = hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; ctx.fill(arrowPath); // draw shape - const path = this.pathMap[edge.id]; + const path = pathMap[edge.id]; ctx.fillStyle = options.edgeShapeColor; ctx.fill(path); ctx.stroke(path); // draw content - const [x, y] = this.edgeContentPosMap[edge.id]; - const shape = this.shapeMap[edge.id]; + const [x, y] = edgeContentPosMap[edge.id]; + const shape = shapeMap[edge.id]; ctx.fillStyle = options.edgeContentColor; ctx.textAlign = options.edgeTextAlign; @@ -501,13 +483,21 @@ export class GraphView { shape.drawContent(ctx, x, y, shape.width, shape.height, edge.id); } - private drawNode(node: Node) { - const { ctx, options } = this; + private isNodeHovered(x: number, y: number, node: Node) { + const { ctx, pathMap } = this.state; + + return ctx.isPointInPath(pathMap[node.id], x, y); + } + + private drawNode(node: Node, hovered = false) { + const { ctx, options, pathMap, shapeMap } = this.state; // draw shape - const path = this.pathMap[node.id]; + const path = pathMap[node.id]; - ctx.strokeStyle = options.nodeLineColor; + ctx.strokeStyle = hovered + ? options.nodeHoveredLineColor + : options.nodeLineColor; ctx.fillStyle = options.nodeColor; ctx.lineWidth = options.nodeLineWidth; @@ -515,7 +505,7 @@ export class GraphView { ctx.stroke(path); // draw content - const shape = this.shapeMap[node.id]; + const shape = shapeMap[node.id]; ctx.fillStyle = options.nodeContentColor; ctx.textAlign = options.nodeTextAlign; @@ -526,7 +516,7 @@ export class GraphView { } private drawBackground() { - const { ctx, viewX, viewY, viewW, viewH, options } = this; + const { ctx, viewX, viewY, viewW, viewH, options } = this.state; const lw = options.bgLineWidth; const gap = options.bgLineGap; @@ -563,8 +553,8 @@ export class GraphView { windowX: number, windowY: number ) { - const { left, top } = this.boundingRect; - const { scale, translateX, translateY } = this; + const { left, top } = this.state.boundingRect; + const { scale, translateX, translateY } = this.state; out[0] = (windowX - left - translateX) / scale; out[1] = (windowY - top - translateY) / scale; @@ -575,15 +565,15 @@ export class GraphView { canvasX: number, canvasY: number ) { - const { scale, translateX, translateY } = this; + const { scale, translateX, translateY } = this.state; out[0] = (canvasX - translateX) / scale; out[1] = (canvasY - translateY) / scale; } getViewPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.boundingRect; - const { scale, translateX, translateY } = this; + const { left, top } = this.state.boundingRect; + const { scale, translateX, translateY } = this.state; return [ (windowX - left - translateX) / scale, @@ -592,13 +582,13 @@ export class GraphView { } getViewPosFromCanvasPos(canvasX: number, canvasY: number) { - const { scale, translateX, translateY } = this; + const { scale, translateX, translateY } = this.state; return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; } getCanvasPosFromViewPos(viewX: number, viewY: number) { - const { scale, translateX, translateY } = this; + const { scale, translateX, translateY } = this.state; return [viewX * scale + translateX, viewY * scale + translateY]; } @@ -608,14 +598,14 @@ export class GraphView { windowX: number, windowY: number ) { - const { left, top } = this.boundingRect; + const { left, top } = this.state.boundingRect; out[0] = windowX - left; out[1] = windowY - top; } getCanvasPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.boundingRect; + const { left, top } = this.state.boundingRect; return [windowX - left, windowY - top]; } diff --git a/src/index.ts b/src/index.ts index 8479174..03b1b5a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ export * from "./graph-view"; +export * from "./types"; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..55c2108 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,118 @@ +export type GraphNode = { + id: number; + x: number; + y: number; +}; + +export type GraphEdge = { + id: number; + sourceId: number; + targetId: number; +}; + +export type GraphShape = { + width: number; + height: number; + drawContent: ( + ctx: CanvasRenderingContext2D, + x: number, + y: number, + w: number, + h: number, + id: number + ) => void; + drawPath: ( + path: Path2D, + x: number, + y: number, + w: number, + h: number, + id: number + ) => void; +}; + +export const defaultNodeShape: GraphShape = { + width: 160, + height: 160, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(`Node ID: ${id}`, x, y, w); + }, + drawPath: (p, x, y, w) => { + p.arc(x, y, w * 0.5, 0, Math.PI * 2); + p.closePath(); + } +}; + +export const defaultEdgeShape: GraphShape = { + width: 48, + height: 48, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(id.toString(), x, y, w); + }, + drawPath: (p, x, y, w, h) => { + const wh = w * 0.5; + const hh = h * 0.5; + + p.moveTo(x - wh, y); + p.lineTo(x, y + wh); + p.lineTo(x + wh, y); + p.lineTo(x, y - hh); + p.closePath(); + } +}; + +export type GraphOptions = { + bgColor: string; + bgDotColor: string; + bgLineWidth: number; + bgLineGap: number; + bgShowDots: boolean; + minScale: number; + maxScale: number; + edgeLineWidth: number; + edgeLineColor: string; + edgeArrowHeight: number; + edgeArrowWidth: number; + edgeShapeColor: string; + edgeContentColor: string; + edgeTextAlign: CanvasTextAlign; + edgeTextBaseline: CanvasTextBaseline; + edgeFont: string; + edgeHoveredLineColor: string; + nodeLineWidth: number; + nodeLineColor: string; + nodeColor: string; + nodeContentColor: string; + nodeTextAlign: CanvasTextAlign; + nodeTextBaseline: CanvasTextBaseline; + nodeFont: string; + nodeHoveredLineColor: string; +}; + +export const defaultGraphOptions: GraphOptions = { + bgColor: "#eee", + bgDotColor: "#999", + bgLineWidth: 8, + bgLineGap: 64, + bgShowDots: true, + minScale: 0.25, + maxScale: 10, + edgeLineColor: "black", + edgeLineWidth: 2, + edgeArrowHeight: 20, + edgeArrowWidth: 18, + edgeShapeColor: "white", + edgeContentColor: "black", + edgeTextAlign: "center", + edgeTextBaseline: "middle", + edgeFont: "16px sans-serif", + edgeHoveredLineColor: "cornflowerblue", + nodeLineColor: "black", + nodeLineWidth: 2, + nodeColor: "white", + nodeContentColor: "black", + nodeTextAlign: "center", + nodeTextBaseline: "middle", + nodeFont: "16px sans-serif", + nodeHoveredLineColor: "cornflowerblue" +}; diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index a564a88..0000000 --- a/src/utils.ts +++ /dev/null @@ -1,51 +0,0 @@ -export type GraphOptions = { - bgColor: string; - bgDotColor: string; - bgLineWidth: number; - bgLineGap: number; - bgShowDots: boolean; - minScale: number; - maxScale: number; - edgeLineWidth: number; - edgeLineColor: string; - edgeArrowHeight: number; - edgeArrowWidth: number; - edgeShapeColor: string; - edgeContentColor: string; - edgeTextAlign: CanvasTextAlign; - edgeTextBaseline: CanvasTextBaseline; - edgeFont: string; - nodeLineWidth: number; - nodeLineColor: string; - nodeColor: string; - nodeContentColor: string; - nodeTextAlign: CanvasTextAlign; - nodeTextBaseline: CanvasTextBaseline; - nodeFont: string; -}; - -export const defaultGraphOptions: GraphOptions = { - bgColor: "#eee", - bgDotColor: "#999", - bgLineWidth: 8, - bgLineGap: 64, - bgShowDots: true, - minScale: 0.25, - maxScale: 10, - edgeLineColor: "black", - edgeLineWidth: 2, - edgeArrowHeight: 20, - edgeArrowWidth: 18, - edgeShapeColor: "white", - edgeContentColor: "black", - edgeTextAlign: "center", - edgeTextBaseline: "middle", - edgeFont: "16px sans-serif", - nodeLineColor: "black", - nodeLineWidth: 2, - nodeColor: "white", - nodeContentColor: "black", - nodeTextAlign: "center", - nodeTextBaseline: "middle", - nodeFont: "16px sans-serif" -}; From a1ff6c357f12605e0523c83eff49dfab4a3b9de6 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 14 Nov 2022 16:39:15 +0700 Subject: [PATCH 20/56] add move node, create edge, and some adjustments --- example/index.ts | 75 ++++++- index.html | 3 + src/graph-handler.ts | 20 ++ src/graph-renderer.ts | 24 +++ src/graph-state.ts | 47 +++- src/graph-view.ts | 485 +++++++++++++++++++++++++++++++----------- src/types.ts | 22 +- 7 files changed, 544 insertions(+), 132 deletions(-) create mode 100644 src/graph-handler.ts create mode 100644 src/graph-renderer.ts diff --git a/example/index.ts b/example/index.ts index fff2620..144fdfb 100644 --- a/example/index.ts +++ b/example/index.ts @@ -2,11 +2,20 @@ import { createEdgeShape, createGraphView, createNodeShape, + defaultEdgeShape, + defaultNodeShape, GraphEdge, GraphNode, GraphView } from "../src"; +function getRandomInt(min: number, max: number) { + min = Math.ceil(min); + max = Math.floor(max); + + return Math.floor(Math.random() * (max - min) + min); // The maximum is exclusive and the minimum is inclusive +} + const graphDiv = document.getElementById("graph") as HTMLDivElement; const nodeCountInput = document.getElementById( "node-count-input" @@ -14,13 +23,30 @@ const nodeCountInput = document.getElementById( const generateButton = document.getElementById( "generate-button" ) as HTMLButtonElement; +const toggleModeButton = document.getElementById( + "toggle-mode-button" +) as HTMLButtonElement; let graphView: GraphView; let isDragging = false; +let isMovingNode = false; + +const rectNodeShape = createNodeShape({ + width: 160, + height: 120, + drawPath: (p, x, y, w, h) => { + p.rect(x - w * 0.5, y - h * 0.5, w, h); + p.closePath(); + } +}); + +const nodeShapes = [defaultNodeShape, rectNodeShape]; + +const edgeShapes = [defaultEdgeShape]; -const nodeShape = createNodeShape(); -const edgeShape = createEdgeShape(); +let lastId = 0; +let mode: "move" | "create" = "move"; function generate(nodeCount = 100) { let id = 1; @@ -39,7 +65,7 @@ function generate(nodeCount = 100) { x: col * 320, y: row * 320 }, - nodeShape + nodeShapes[getRandomInt(0, nodeShapes.length)] ); id++; @@ -51,12 +77,14 @@ function generate(nodeCount = 100) { sourceId: id - (i > 1 ? 3 : 2), targetId: id - 1 }, - edgeShape + edgeShapes[getRandomInt(0, edgeShapes.length)] ); id++; } } + + lastId = id - 1; } function main() { @@ -70,22 +98,57 @@ function main() { generate(len); }); + toggleModeButton.addEventListener("click", () => { + if (mode === "create") mode = "move"; + else mode = "create"; + }); + window.addEventListener("resize", () => { graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); }); - graphDiv.addEventListener("mousedown", () => { + graphDiv.addEventListener("mousedown", e => { isDragging = true; + + const hoveredId = graphView.getHoveredId(); + + if (hoveredId > 0) { + graphView.select(hoveredId); + } else { + graphView.clearSelection(); + } + + if (hoveredId > 0 && graphView.isNode(graphView.getNode(hoveredId))) { + isMovingNode = true; + const pos = graphView.getViewPosFromWindowPos(e.x, e.y); + + if (mode === "move") graphView.beginMoveNode([hoveredId], pos[0], pos[1]); + + if (mode === "create") + graphView.beginDragLine(graphView.getNode(hoveredId)); + } }); graphDiv.addEventListener("mousemove", e => { if (!isDragging) return; - graphView.moveBy(e.movementX, e.movementY); + if (!isMovingNode) graphView.moveBy(e.movementX, e.movementY); }); graphDiv.addEventListener("mouseup", () => { isDragging = false; + isMovingNode = false; + + graphView.endMoveNode(); + + const r = graphView.endDragLine(); + if (r) { + lastId++; + graphView.addEdge( + { id: lastId, sourceId: r[0].id, targetId: r[1].id }, + edgeShape + ); + } }); graphDiv.addEventListener( diff --git a/index.html b/index.html index 39ab1f4..b234bb4 100644 --- a/index.html +++ b/index.html @@ -47,6 +47,9 @@ +
diff --git a/src/graph-handler.ts b/src/graph-handler.ts new file mode 100644 index 0000000..a4912b1 --- /dev/null +++ b/src/graph-handler.ts @@ -0,0 +1,20 @@ +import { GraphRenderer } from "./graph-renderer"; +import { GraphState } from "./graph-state"; +import { GraphView } from "./graph-view"; +import { GraphEdge, GraphNode } from "./types"; + +export class GraphHandler { + private state: GraphState; + private view: GraphView; + private renderer: GraphRenderer; + + constructor( + view: GraphView, + state: GraphState, + renderer: GraphRenderer + ) { + this.view = view; + this.state = state; + this.renderer = renderer; + } +} diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts new file mode 100644 index 0000000..ca85c88 --- /dev/null +++ b/src/graph-renderer.ts @@ -0,0 +1,24 @@ +import { GraphState } from "./graph-state"; +import { GraphView } from "./graph-view"; +import { GraphEdge, GraphNode } from "./types"; + +export class GraphRenderer { + private state: GraphState; + private view: GraphView; + + constructor(view: GraphView, state: GraphState) { + this.view = view; + this.state = state; + } + + applyTransform() { + const { ctx, scale, translateX, translateY } = this.state; + + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + this.state.setView(); + } + + resetTransform() { + this.state.ctx.setTransform(1, 0, 0, 1, 0, 0); + } +} diff --git a/src/graph-state.ts b/src/graph-state.ts index 4a3039a..8338e0f 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -10,6 +10,12 @@ export class GraphState { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; + readonly container: HTMLElement; + // readonly bgCtx: CanvasRenderingContext2D; + // readonly edgeCtx: CanvasRenderingContext2D; + // readonly nodeCtx: CanvasRenderingContext2D; + // readonly moveCtx: CanvasRenderingContext2D; + nodes: Node[] = []; edges: Edge[] = []; idMap: Record = {}; @@ -18,6 +24,8 @@ export class GraphState { linePathMap: Record = {}; arrowPathMap: Record = {}; edgeContentPosMap: Record = {}; + sourceNodeIdToEdgesMap: Record = {}; + targetNodeIdToEdgesMap: Record = {}; translateX = 0; translateY = 0; @@ -32,6 +40,15 @@ export class GraphState { isDrawing = false; options = defaultGraphOptions; hoveredId = 0; + selectedIdMap: Record = {}; + moveNodeIds: number[] = []; + moveX = 0; + moveY = 0; + moveStartX = 0; + moveStartY = 0; + dragLineSourceNode: Node | undefined = undefined; + dragLineX = 0; + dragLineY = 0; constructor(container: HTMLElement, options: Partial = {}) { this.options = { @@ -39,11 +56,13 @@ export class GraphState { ...options }; + this.boundingRect = container.getBoundingClientRect(); + this.container = container; + this.canvas = document.createElement("canvas"); this.canvas.textContent = "Canvas is not supported in your browser."; this.canvas.width = container.clientWidth; this.canvas.height = container.clientHeight; - this.boundingRect = this.canvas.getBoundingClientRect(); const ctx = this.canvas.getContext("2d", { alpha: false }); if (!ctx) { @@ -52,4 +71,30 @@ export class GraphState { this.ctx = ctx; } + + createCanvas(container: HTMLElement): CanvasRenderingContext2D { + const canvas = document.createElement("canvas"); + + canvas.textContent = "Canvas is not supported in your browser."; + canvas.width = container.clientWidth; + canvas.height = container.clientHeight; + const ctx = this.canvas.getContext("2d", { alpha: false }); + + if (!ctx) { + throw "Canvas is not supported in your browser."; + } + + container.append(canvas); + + return ctx; + } + + setView() { + const { canvas, translateX, translateY, scale } = this; + + this.viewX = -translateX / scale; + this.viewY = -translateY / scale; + this.viewW = canvas.width / scale; + this.viewH = canvas.height / scale; + } } diff --git a/src/graph-view.ts b/src/graph-view.ts index 1cce0be..33d27f1 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,3 +1,4 @@ +import { GraphRenderer } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { defaultEdgeShape, @@ -24,59 +25,42 @@ export function createEdgeShape(shape?: Partial): GraphShape { export class GraphView { private state: GraphState; + private renderer: GraphRenderer; constructor(container: HTMLElement, options: Partial = {}) { this.state = new GraphState(container, options); + this.renderer = new GraphRenderer(this, this.state); this.requestDraw(); container.appendChild(this.state.canvas); this.state.canvas.addEventListener("mousemove", e => { - const { ctx, scale, translateX, translateY, nodes, edges, idMap } = - this.state; - const [vx, vy] = this.getViewPosFromWindowPos(e.x, e.y); + const { moveNodeIds, moveX, moveY, dragLineSourceNode } = this.state; - const prevId = this.state.hoveredId; - this.state.hoveredId = 0; + const vp = this.getViewPosFromWindowPos(e.x, e.y); - for (const node of nodes) { - if (this.isNodeHovered(vx, vy, node)) { - this.state.hoveredId = node.id; - } - } + if (dragLineSourceNode) { + this.state.dragLineX = vp[0]; + this.state.dragLineY = vp[1]; - for (const edge of edges) { - if (this.isEdgeHovered(vx, vy, edge)) { - this.state.hoveredId = edge.id; - } + this.requestDraw(); } - if (this.state.hoveredId === prevId) return; - - const prev = idMap[prevId] as Node | Edge | undefined; - const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; + if (moveNodeIds.length === 0) { + this.checkHover(vp[0], vp[1]); + return; + } - ctx.setTransform(scale, 0, 0, scale, translateX, translateY); - this.setView(); + const dx = vp[0] - moveX; + const dy = vp[1] - moveY; - if (prev) { - if ("x" in prev) { - this.drawNode(prev, false); - } else { - this.drawEdge(prev, false); - } - } + this.state.moveX = vp[0]; + this.state.moveY = vp[1]; - if (curr) { - if ("x" in curr) { - this.drawNode(curr, true); - } else { - this.drawEdge(curr, true); - } + for (const id of moveNodeIds) { + this.moveNode(id, dx, dy); } - - ctx.setTransform(1, 0, 0, 1, 0, 0); }); } @@ -84,6 +68,118 @@ export class GraphView { // } + beginDragLine(node: Node) { + this.state.dragLineSourceNode = node; + this.state.dragLineX = node.x; + this.state.dragLineY = node.y; + } + + endDragLine() { + const { hoveredId, idMap } = this.state; + + if (!this.state.dragLineSourceNode) return; + + let r = 0; + if (hoveredId > 0 && hoveredId !== this.state.dragLineSourceNode.id) { + r = hoveredId; + } + + const s = this.state.dragLineSourceNode; + + this.state.dragLineSourceNode = undefined; + + this.requestDraw(); + + const rn = idMap[r]; + return rn && this.isNode(rn) ? [s, rn] : undefined; + } + + beginMoveNode(ids: number[], vx: number, vy: number) { + this.state.moveNodeIds = ids; + this.state.moveX = vx; + this.state.moveY = vy; + this.state.moveStartX = vx; + this.state.moveStartY = vy; + } + + endMoveNode() { + const { moveX, moveY, moveStartX, moveStartY } = this.state; + + this.state.moveNodeIds.length = 0; + + this.requestDraw(); + + return [moveX - moveStartX, moveY - moveStartY]; + } + + getHoveredId() { + return this.state.hoveredId; + } + + select(id: number) { + this.state.selectedIdMap = { [id]: true }; + this.requestDraw(); + } + + addSelection(id: number) { + this.state.selectedIdMap[id] = true; + this.requestDraw(); + } + + removeSelection(id: number) { + delete this.state.selectedIdMap[id]; + this.requestDraw(); + } + + clearSelection() { + this.state.selectedIdMap = {}; + this.requestDraw(); + } + + private checkHover(vx: number, vy: number) { + const { nodes, edges, idMap, selectedIdMap } = this.state; + + const prevId = this.state.hoveredId; + this.state.hoveredId = 0; + + for (const node of nodes) { + if (this.isNodeHovered(vx, vy, node)) { + this.state.hoveredId = node.id; + } + } + + for (const edge of edges) { + if (this.isEdgeHovered(vx, vy, edge)) { + this.state.hoveredId = edge.id; + } + } + + if (this.state.hoveredId === prevId) return; + + const prev = idMap[prevId] as Node | Edge | undefined; + const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; + + this.renderer.applyTransform(); + + if (prev) { + if ("x" in prev) { + this.drawNode(prev, false, selectedIdMap[prev.id]); + } else { + this.drawEdge(prev, false, selectedIdMap[prev.id]); + } + } + + if (curr) { + if ("x" in curr) { + this.drawNode(curr, true, selectedIdMap[curr.id]); + } else { + this.drawEdge(curr, true, selectedIdMap[curr.id]); + } + } + + this.renderer.resetTransform(); + } + addNode(node: Node, shape: GraphShape) { const { idMap, nodes, shapeMap, pathMap } = this.state; @@ -102,23 +198,44 @@ export class GraphView { } addEdge(edge: Edge, shape: GraphShape) { - if (this.state.idMap[edge.id]) return; + const { idMap } = this.state; - const { - idMap, - options, - edges, - shapeMap, - pathMap, - edgeContentPosMap, - arrowPathMap, - linePathMap - } = this.state; + if (idMap[edge.id] || !idMap[edge.sourceId] || !idMap[edge.targetId]) + return; + + const { edges, shapeMap, sourceNodeIdToEdgesMap, targetNodeIdToEdgesMap } = + this.state; edges.push(edge); idMap[edge.id] = edge; shapeMap[edge.id] = shape; + if (sourceNodeIdToEdgesMap[edge.sourceId]) { + sourceNodeIdToEdgesMap[edge.sourceId].push(edge); + } else { + sourceNodeIdToEdgesMap[edge.sourceId] = [edge]; + } + + if (targetNodeIdToEdgesMap[edge.targetId]) { + targetNodeIdToEdgesMap[edge.targetId].push(edge); + } else { + targetNodeIdToEdgesMap[edge.targetId] = [edge]; + } + + this.createEdgePath(edge, shape); + + this.requestDraw(); + } + + private createEdgePath(edge: Edge, shape: GraphShape) { + const { + idMap, + pathMap, + options, + edgeContentPosMap, + linePathMap, + arrowPathMap + } = this.state; const { sourceId, targetId } = edge; const source = idMap[sourceId] as Node; @@ -170,8 +287,6 @@ export class GraphView { const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); arrowPathMap[edge.id] = arrowPath; - - this.requestDraw(); } private createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { @@ -209,21 +324,122 @@ export class GraphView { return p; } - // updateNode(id: number, node: Partial) { - // // - // } + private moveNode(id: number, dx: number, dy: number) { + const { + idMap, + shapeMap, + pathMap, + sourceNodeIdToEdgesMap, + targetNodeIdToEdgesMap + } = this.state; + + const node = idMap[id] as Node | undefined; + if (!node) return; + + node.x += dx; + node.y += dy; + + const shape = shapeMap[id]; + + const path = new Path2D(); + shape.drawPath(path, node.x, node.y, shape.width, shape.height, node.id); + + pathMap[id] = path; + + const ses = sourceNodeIdToEdgesMap[id]; + const tes = targetNodeIdToEdgesMap[id]; + + if (ses) + for (const edge of ses) { + this.createEdgePath(edge, shapeMap[edge.id]); + } + + if (tes) + for (const edge of tes) { + this.createEdgePath(edge, shapeMap[edge.id]); + } + + this.requestDraw(); + } + + updateNode(id: number, node: Partial) { + const { idMap } = this.state; + + const curNode = idMap[id] as Node | undefined; + if (!curNode) return; + + if ((node.x && node.x !== curNode.x) || (node.y && node.y !== curNode.y)) { + this.moveNode( + id, + node.x ? node.x - curNode.x : 0, + node.y ? node.y - curNode.y : 0 + ); + } + + for (const k in node) { + if (k === "id") continue; + + curNode[k] = node[k] as Node[Extract]; + } + } + + updateEdge(id: number, edge: Partial) { + const { idMap } = this.state; + + const cur = idMap[id] as Edge | undefined; + if (!cur) return; + + if ( + (edge.sourceId && edge.sourceId !== cur.sourceId) || + (edge.targetId && edge.targetId !== cur.targetId) + ) { + this.requestDraw(); + } + + for (const k in edge) { + if (k === "id") continue; + + cur[k] = edge[k] as Edge[Extract]; + } + } + + removeNode(id: number) { + const node = this.state.idMap[id]; - // updateEdge(id: number, edge: Partial) { - // // - // } + if (!this.isNode(node)) return; - // removeNode(id: number) { - // // - // } + delete this.state.idMap[id]; + delete this.state.pathMap[id]; - // removeEdge(id: number) { - // // - // } + const ses = this.state.sourceNodeIdToEdgesMap[id]; + if (ses) for (const edge of ses) this.removeEdge(edge.id); + + const tes = this.state.sourceNodeIdToEdgesMap[id]; + if (tes) for (const edge of tes) this.removeEdge(edge.id); + } + + removeEdge(id: number) { + const edge = this.state.idMap[id]; + + if (!this.isEdge(edge)) return; + + delete this.state.idMap[id]; + delete this.state.pathMap[id]; + delete this.state.linePathMap[id]; + delete this.state.arrowPathMap[id]; + + const ses = this.state.sourceNodeIdToEdgesMap[edge.sourceId]; + if (ses) + this.state.sourceNodeIdToEdgesMap[edge.sourceId] = ses.filter( + e => e.id !== id + ); + + const tes = this.state.targetNodeIdToEdgesMap[edge.targetId]; + if (tes) + this.state.targetNodeIdToEdgesMap[edge.targetId] = ses.filter( + e => e.id !== id + ); + } getNode(id: number): Node { return this.state.idMap[id] as Node; @@ -344,6 +560,14 @@ export class GraphView { this.requestDraw(); } + isNode(nodeOrEdge: Node | Edge): nodeOrEdge is Node { + return "x" in nodeOrEdge; + } + + isEdge(nodeOrEdge: Node | Edge): nodeOrEdge is Edge { + return "sourceId" in nodeOrEdge; + } + private requestDraw() { if (!this.state.isDrawing) { requestAnimationFrame(this.requestDrawHandler); @@ -357,15 +581,6 @@ export class GraphView { this.draw(); }; - private setView() { - const { canvas, translateX, translateY, scale } = this.state; - - this.state.viewX = -translateX / scale; - this.state.viewY = -translateY / scale; - this.state.viewW = canvas.width / scale; - this.state.viewH = canvas.height / scale; - } - private draw() { const { ctx, @@ -376,7 +591,9 @@ export class GraphView { options, nodes, edges, - hoveredId + hoveredId, + selectedIdMap, + dragLineSourceNode } = this.state; ctx.fillStyle = options.bgColor; @@ -384,16 +601,64 @@ export class GraphView { ctx.setTransform(scale, 0, 0, scale, translateX, translateY); - this.setView(); + this.state.setView(); if (options.bgShowDots) this.drawBackground(); - for (const edge of edges) this.drawEdge(edge, hoveredId === edge.id); - for (const node of nodes) this.drawNode(node, hoveredId === node.id); + if (dragLineSourceNode) this.drawDragLine(); + + for (const edge of edges) + this.drawEdge(edge, hoveredId === edge.id, selectedIdMap[edge.id]); + + for (const node of nodes) + this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); ctx.setTransform(1, 0, 0, 1, 0, 0); } + private drawDragLine() { + const { ctx, options, dragLineSourceNode, dragLineX, dragLineY } = + this.state; + + if (!dragLineSourceNode) return; + + const sx = dragLineSourceNode.x; + const sy = dragLineSourceNode.y; + const tx = dragLineX; + const ty = dragLineY; + + const dx = tx - sx; + const dy = ty - sy; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ll = options.edgeArrowWidth * 0.5; + const lsx = tx - options.edgeArrowHeight * cosr; + const lsy = ty - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = options.edgeLineColor; + ctx.fillStyle = options.edgeLineColor; + + ctx.beginPath(); + ctx.moveTo(sx, sy); + ctx.lineTo(tx, ty); + ctx.stroke(); + + ctx.beginPath(); + ctx.moveTo(tx, ty); + ctx.lineTo(lp1x, lp1y); + ctx.lineTo(lp2x, lp2y); + ctx.closePath(); + ctx.fill(); + } + private getIntersectionPoint( sx: number, sy: number, @@ -406,14 +671,16 @@ export class GraphView { const dx = tx - sx; const dy = ty - sy; + const e = (Math.abs(dx) + Math.abs(dy)) | 0; + let start = 0; - let end = 10000; + let end = e; while (start <= end) { const mid = ((start + end) / 2) | 0; - const x = sx + (mid / 10000) * dx; - const y = sy + (mid / 10000) * dy; + const x = sx + (mid / e) * dx; + const y = sy + (mid / e) * dy; // const [vx, vy] = this.getCanvasPosFromViewPos(x, y); @@ -424,7 +691,7 @@ export class GraphView { } } - return start / 10000; + return start / e; } private isEdgeHovered(x: number, y: number, edge: Edge) { @@ -437,7 +704,7 @@ export class GraphView { ); } - private drawEdge(edge: Edge, hovered = false) { + private drawEdge(edge: Edge, hovered = false, selected = false) { const { ctx, options, @@ -449,7 +716,9 @@ export class GraphView { } = this.state; ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = hovered + ctx.strokeStyle = selected + ? options.edgeSelectedLineColor + : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; @@ -459,7 +728,9 @@ export class GraphView { // draw edge arrow const arrowPath = arrowPathMap[edge.id]; - ctx.fillStyle = hovered + ctx.fillStyle = selected + ? options.edgeSelectedLineColor + : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; ctx.fill(arrowPath); @@ -467,7 +738,9 @@ export class GraphView { // draw shape const path = pathMap[edge.id]; - ctx.fillStyle = options.edgeShapeColor; + ctx.fillStyle = selected + ? options.edgeSelectedShapeColor + : options.edgeShapeColor; ctx.fill(path); ctx.stroke(path); @@ -475,7 +748,9 @@ export class GraphView { const [x, y] = edgeContentPosMap[edge.id]; const shape = shapeMap[edge.id]; - ctx.fillStyle = options.edgeContentColor; + ctx.fillStyle = selected + ? options.edgeSelectedContentColor + : options.edgeContentColor; ctx.textAlign = options.edgeTextAlign; ctx.textBaseline = options.edgeTextBaseline; ctx.font = options.edgeFont; @@ -489,16 +764,18 @@ export class GraphView { return ctx.isPointInPath(pathMap[node.id], x, y); } - private drawNode(node: Node, hovered = false) { + private drawNode(node: Node, hovered = false, selected = false) { const { ctx, options, pathMap, shapeMap } = this.state; // draw shape const path = pathMap[node.id]; - ctx.strokeStyle = hovered + ctx.strokeStyle = selected + ? options.nodeSelectedLineColor + : hovered ? options.nodeHoveredLineColor : options.nodeLineColor; - ctx.fillStyle = options.nodeColor; + ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; ctx.lineWidth = options.nodeLineWidth; ctx.fill(path); @@ -507,7 +784,9 @@ export class GraphView { // draw content const shape = shapeMap[node.id]; - ctx.fillStyle = options.nodeContentColor; + ctx.fillStyle = selected + ? options.nodeSelectedContentColor + : options.nodeContentColor; ctx.textAlign = options.nodeTextAlign; ctx.textBaseline = options.nodeTextBaseline; ctx.font = options.nodeFont; @@ -548,29 +827,6 @@ export class GraphView { ctx.lineCap = "square"; } - setViewPosFromWindowPos( - out: [number, number], - windowX: number, - windowY: number - ) { - const { left, top } = this.state.boundingRect; - const { scale, translateX, translateY } = this.state; - - out[0] = (windowX - left - translateX) / scale; - out[1] = (windowY - top - translateY) / scale; - } - - setViewPosFromCanvasPos( - out: [number, number], - canvasX: number, - canvasY: number - ) { - const { scale, translateX, translateY } = this.state; - - out[0] = (canvasX - translateX) / scale; - out[1] = (canvasY - translateY) / scale; - } - getViewPosFromWindowPos(windowX: number, windowY: number) { const { left, top } = this.state.boundingRect; const { scale, translateX, translateY } = this.state; @@ -593,17 +849,6 @@ export class GraphView { return [viewX * scale + translateX, viewY * scale + translateY]; } - setCanvasPosFromWindowPos( - out: [number, number], - windowX: number, - windowY: number - ) { - const { left, top } = this.state.boundingRect; - - out[0] = windowX - left; - out[1] = windowY - top; - } - getCanvasPosFromWindowPos(windowX: number, windowY: number) { const { left, top } = this.state.boundingRect; diff --git a/src/types.ts b/src/types.ts index 55c2108..05ea146 100644 --- a/src/types.ts +++ b/src/types.ts @@ -79,6 +79,9 @@ export type GraphOptions = { edgeTextBaseline: CanvasTextBaseline; edgeFont: string; edgeHoveredLineColor: string; + edgeSelectedLineColor: string; + edgeSelectedShapeColor: string; + edgeSelectedContentColor: string; nodeLineWidth: number; nodeLineColor: string; nodeColor: string; @@ -87,12 +90,15 @@ export type GraphOptions = { nodeTextBaseline: CanvasTextBaseline; nodeFont: string; nodeHoveredLineColor: string; + nodeSelectedLineColor: string; + nodeSelectedColor: string; + nodeSelectedContentColor: string; }; export const defaultGraphOptions: GraphOptions = { - bgColor: "#eee", - bgDotColor: "#999", - bgLineWidth: 8, + bgColor: "#f1f5f9", + bgDotColor: "#64748b", + bgLineWidth: 4, bgLineGap: 64, bgShowDots: true, minScale: 0.25, @@ -106,7 +112,10 @@ export const defaultGraphOptions: GraphOptions = { edgeTextAlign: "center", edgeTextBaseline: "middle", edgeFont: "16px sans-serif", - edgeHoveredLineColor: "cornflowerblue", + edgeHoveredLineColor: "#3b82f6", + edgeSelectedLineColor: "#2563eb", + edgeSelectedShapeColor: "#3b82f6", + edgeSelectedContentColor: "white", nodeLineColor: "black", nodeLineWidth: 2, nodeColor: "white", @@ -114,5 +123,8 @@ export const defaultGraphOptions: GraphOptions = { nodeTextAlign: "center", nodeTextBaseline: "middle", nodeFont: "16px sans-serif", - nodeHoveredLineColor: "cornflowerblue" + nodeHoveredLineColor: "#3b82f6", + nodeSelectedLineColor: "#2563eb", + nodeSelectedColor: "#3b82f6", + nodeSelectedContentColor: "white" }; From 74cc560d956203d1fbcf393aee5215876f4fa601 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 14 Nov 2022 17:39:52 +0700 Subject: [PATCH 21/56] update create path and example --- example/index.ts | 89 ++++++++++++++++++++++++++++++++++++++++++++--- src/graph-view.ts | 27 ++++++++++---- src/types.ts | 17 ++++++--- 3 files changed, 118 insertions(+), 15 deletions(-) diff --git a/example/index.ts b/example/index.ts index 144fdfb..c5ee91c 100644 --- a/example/index.ts +++ b/example/index.ts @@ -35,15 +35,94 @@ let isMovingNode = false; const rectNodeShape = createNodeShape({ width: 160, height: 120, - drawPath: (p, x, y, w, h) => { + createPath: (x, y, w, h) => { + const p = new Path2D(); + p.rect(x - w * 0.5, y - h * 0.5, w, h); p.closePath(); + + return p; } }); -const nodeShapes = [defaultNodeShape, rectNodeShape]; +const starNodeShape = createNodeShape({ + width: 218, + height: 205, + createPath: (x, y, w, h) => { + const p = new Path2D(); + + const l = x - w * 0.5; + const t = y - h * 0.5; + + p.moveTo(l + 108, t + 0.0); + p.lineTo(l + 141, t + 70); + p.lineTo(l + 218, t + 78.3); + p.lineTo(l + 162, t + 131); + p.lineTo(l + 175, t + 205); + p.lineTo(l + 108, t + 170); + p.lineTo(l + 41.2, t + 205); + p.lineTo(l + 55, t + 131); + p.lineTo(l + 0, t + 78); + p.lineTo(l + 75, t + 68); + p.lineTo(l + 108, t + 0); + p.closePath(); + + return p; + } +}); -const edgeShapes = [defaultEdgeShape]; +const sqrt3 = Math.sqrt(3); +const wowNodeShape = createNodeShape({ + width: 200, + height: 200, + createPath: (x, y, w, h) => { + const p = new Path2D(); + + const ex = 0.25 * w * sqrt3; + const ex2 = ex * 0.33333333; + const ex3 = ex * (1 - 0.33333333); + const ey = 0.25 * h; + + p.moveTo(x, y - h * 0.5); + p.lineTo(x + ex2, y - ey); + p.lineTo(x + ex, y - ey); + p.lineTo(x + ex3, y); + p.lineTo(x + ex, y + ey); + p.lineTo(x + ex2, y + ey); + p.lineTo(x, y + h * 0.5); + p.lineTo(x - ex2, y + ey); + p.lineTo(x - ex, y + ey); + p.lineTo(x - ex3, y); + p.lineTo(x - ex, y - ey); + p.lineTo(x - ex2, y - ey); + + p.closePath(); + + return p; + } +}); + +const nodeShapes = [ + defaultNodeShape, + rectNodeShape, + starNodeShape, + wowNodeShape +]; + +const circleEdgeShape = createEdgeShape({ + width: 48, + height: 48, + createPath: (x, y, w) => { + const p = new Path2D(); + + p.arc(x, y, w * 0.5, 0, 2 * Math.PI); + p.closePath(); + + return p; + } +}); + +const edgeShapes = [defaultEdgeShape, circleEdgeShape]; let lastId = 0; let mode: "move" | "create" = "move"; @@ -142,11 +221,13 @@ function main() { graphView.endMoveNode(); const r = graphView.endDragLine(); + if (r) { lastId++; + graphView.addEdge( { id: lastId, sourceId: r[0].id, targetId: r[1].id }, - edgeShape + edgeShapes[getRandomInt(0, edgeShapes.length)] ); } }); diff --git a/src/graph-view.ts b/src/graph-view.ts index 33d27f1..4a9eb4b 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -188,8 +188,13 @@ export class GraphView { nodes.push(node); idMap[node.id] = node; - const path = new Path2D(); - shape.drawPath(path, node.x, node.y, shape.width, shape.height, node.id); + const path = shape.createPath( + node.x, + node.y, + shape.width, + shape.height, + node.id + ); shapeMap[node.id] = shape; pathMap[node.id] = path; @@ -271,8 +276,13 @@ export class GraphView { const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; - const path = new Path2D(); - shape.drawPath(path, midx, midy, shape.width, shape.height, edge.id); + const path = shape.createPath( + midx, + midy, + shape.width, + shape.height, + edge.id + ); pathMap[edge.id] = path; edgeContentPosMap[edge.id] = [midx, midy]; @@ -341,8 +351,13 @@ export class GraphView { const shape = shapeMap[id]; - const path = new Path2D(); - shape.drawPath(path, node.x, node.y, shape.width, shape.height, node.id); + const path = shape.createPath( + node.x, + node.y, + shape.width, + shape.height, + node.id + ); pathMap[id] = path; diff --git a/src/types.ts b/src/types.ts index 05ea146..d13323f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -21,14 +21,13 @@ export type GraphShape = { h: number, id: number ) => void; - drawPath: ( - path: Path2D, + createPath: ( x: number, y: number, w: number, h: number, id: number - ) => void; + ) => Path2D; }; export const defaultNodeShape: GraphShape = { @@ -37,9 +36,13 @@ export const defaultNodeShape: GraphShape = { drawContent: (ctx, x, y, w, _h, id) => { ctx.fillText(`Node ID: ${id}`, x, y, w); }, - drawPath: (p, x, y, w) => { + createPath: (x, y, w) => { + const p = new Path2D(); + p.arc(x, y, w * 0.5, 0, Math.PI * 2); p.closePath(); + + return p; } }; @@ -49,15 +52,19 @@ export const defaultEdgeShape: GraphShape = { drawContent: (ctx, x, y, w, _h, id) => { ctx.fillText(id.toString(), x, y, w); }, - drawPath: (p, x, y, w, h) => { + createPath: (x, y, w, h) => { const wh = w * 0.5; const hh = h * 0.5; + const p = new Path2D(); + p.moveTo(x - wh, y); p.lineTo(x, y + wh); p.lineTo(x + wh, y); p.lineTo(x, y - hh); p.closePath(); + + return p; } }; From ae41793368c4e5053c4fda848879fa23a32db5e7 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 14 Nov 2022 19:31:08 +0700 Subject: [PATCH 22/56] refactor --- src/graph-handler.ts | 96 +++++++++ src/graph-renderer.ts | 335 ++++++++++++++++++++++++++++- src/graph-view.ts | 484 +++--------------------------------------- 3 files changed, 458 insertions(+), 457 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index a4912b1..92276e2 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -17,4 +17,100 @@ export class GraphHandler { this.state = state; this.renderer = renderer; } + + handleMouseMove = (e: MouseEvent) => { + const { moveNodeIds, moveX, moveY, dragLineSourceNode } = this.state; + + const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + + if (dragLineSourceNode) { + this.state.dragLineX = vp[0]; + this.state.dragLineY = vp[1]; + + this.renderer.requestDraw(); + } + + if (moveNodeIds.length === 0) { + this.checkHover(vp[0], vp[1]); + return; + } + + const dx = vp[0] - moveX; + const dy = vp[1] - moveY; + + this.state.moveX = vp[0]; + this.state.moveY = vp[1]; + + for (const id of moveNodeIds) { + this.view.moveNode(id, dx, dy); + } + }; + + private isEdgeHovered(x: number, y: number, edge: Edge) { + const { ctx, pathMap, linePathMap, arrowPathMap } = this.state; + + return ( + ctx.isPointInPath(pathMap[edge.id], x, y) || + ctx.isPointInStroke(linePathMap[edge.id], x, y) || + ctx.isPointInPath(arrowPathMap[edge.id], x, y) + ); + } + + private isNodeHovered(x: number, y: number, node: Node) { + const { ctx, pathMap } = this.state; + + return ctx.isPointInPath(pathMap[node.id], x, y); + } + + private checkHover(vx: number, vy: number) { + const { nodes, edges, idMap, selectedIdMap } = this.state; + + const prevId = this.state.hoveredId; + this.state.hoveredId = 0; + + for (const node of nodes) { + if (this.isNodeHovered(vx, vy, node)) { + this.state.hoveredId = node.id; + } + } + + for (const edge of edges) { + if (this.isEdgeHovered(vx, vy, edge)) { + this.state.hoveredId = edge.id; + } + } + + if (this.state.hoveredId === prevId) return; + + const prev = idMap[prevId] as Node | Edge | undefined; + const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; + + this.renderer.applyTransform(); + + if (prev) { + if ("x" in prev) { + this.renderer.drawNode(prev, false, selectedIdMap[prev.id]); + } else { + this.renderer.drawEdge(prev, false, selectedIdMap[prev.id]); + } + } + + if (curr) { + if ("x" in curr) { + this.renderer.drawNode(curr, true, selectedIdMap[curr.id]); + } else { + this.renderer.drawEdge(curr, true, selectedIdMap[curr.id]); + } + } + + this.renderer.resetTransform(); + } + + init() { + this.state.container.addEventListener("mousemove", this.handleMouseMove); + } + + destroy() { + this.state.container.removeEventListener("mousemove", this.handleMouseMove); + } } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index ca85c88..e6b1f32 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,6 +1,6 @@ import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { GraphEdge, GraphNode } from "./types"; +import { GraphEdge, GraphNode, GraphShape } from "./types"; export class GraphRenderer { private state: GraphState; @@ -21,4 +21,337 @@ export class GraphRenderer { resetTransform() { this.state.ctx.setTransform(1, 0, 0, 1, 0, 0); } + + requestDraw() { + if (!this.state.isDrawing) { + requestAnimationFrame(this.requestDrawHandler); + } + + this.state.isDrawing = true; + } + + requestDrawHandler = () => { + this.state.isDrawing = false; + this.draw(); + }; + + getIntersectionPoint( + sx: number, + sy: number, + tx: number, + ty: number, + path: Path2D + ) { + const { ctx } = this.state; + + const dx = tx - sx; + const dy = ty - sy; + + const e = (Math.abs(dx) + Math.abs(dy)) | 0; + + let start = 0; + let end = e; + + while (start <= end) { + const mid = ((start + end) / 2) | 0; + + const x = sx + (mid / e) * dx; + const y = sy + (mid / e) * dy; + + if (ctx.isPointInPath(path, x, y)) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return start / e; + } + + createEdgePath(edge: Edge, shape: GraphShape) { + const { + idMap, + pathMap, + options, + edgeContentPosMap, + linePathMap, + arrowPathMap + } = this.state; + const { sourceId, targetId } = edge; + + const source = idMap[sourceId] as Node; + const target = idMap[targetId] as Node; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const sip = this.getIntersectionPoint( + target.x, + target.y, + source.x, + source.y, + pathMap[source.id] + ); + const sipx = target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; + const sipy = target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; + + const tip = this.getIntersectionPoint( + source.x, + source.y, + target.x, + target.y, + pathMap[target.id] + ); + const tipx = source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; + const tipy = source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; + + const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; + const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; + + const path = shape.createPath( + midx, + midy, + shape.width, + shape.height, + edge.id + ); + + pathMap[edge.id] = path; + edgeContentPosMap[edge.id] = [midx, midy]; + + const linePath = this.createEdgeLinePath( + sipx, + sipy, + tipx - options.edgeArrowHeight * cosr, + tipy - options.edgeArrowHeight * sinr + ); + linePathMap[edge.id] = linePath; + + const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); + arrowPathMap[edge.id] = arrowPath; + } + + createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { + const p = new Path2D(); + + p.moveTo(sx, sy); + p.lineTo(tx, ty); + + return p; + } + + createEdgeArrowPath(ix: number, iy: number, sinr: number, cosr: number) { + const { options } = this.state; + + const ll = options.edgeArrowWidth * 0.5; + const lsx = ix - options.edgeArrowHeight * cosr; + const lsy = iy - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + const p = new Path2D(); + + p.moveTo(ix, iy); + p.lineTo(lp1x, lp1y); + p.lineTo(lp2x, lp2y); + p.closePath(); + + return p; + } + + draw() { + const { + ctx, + canvas, + options, + nodes, + edges, + hoveredId, + selectedIdMap, + dragLineSourceNode + } = this.state; + + ctx.fillStyle = options.bgColor; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + this.applyTransform(); + + if (options.bgShowDots) this.drawBackground(); + + if (dragLineSourceNode) this.drawDragLine(); + + for (const edge of edges) + this.drawEdge(edge, hoveredId === edge.id, selectedIdMap[edge.id]); + + for (const node of nodes) + this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); + + this.resetTransform(); + } + + drawDragLine() { + const { ctx, options, dragLineSourceNode, dragLineX, dragLineY } = + this.state; + + if (!dragLineSourceNode) return; + + const sx = dragLineSourceNode.x; + const sy = dragLineSourceNode.y; + const tx = dragLineX; + const ty = dragLineY; + + const dx = tx - sx; + const dy = ty - sy; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ll = options.edgeArrowWidth * 0.5; + const lsx = tx - options.edgeArrowHeight * cosr; + const lsy = ty - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = options.edgeLineColor; + ctx.fillStyle = options.edgeLineColor; + + ctx.beginPath(); + ctx.moveTo(sx, sy); + ctx.lineTo(tx, ty); + ctx.stroke(); + + ctx.beginPath(); + ctx.moveTo(tx, ty); + ctx.lineTo(lp1x, lp1y); + ctx.lineTo(lp2x, lp2y); + ctx.closePath(); + ctx.fill(); + } + + drawEdge(edge: Edge, hovered = false, selected = false) { + const { + ctx, + options, + linePathMap, + arrowPathMap, + pathMap, + edgeContentPosMap, + shapeMap + } = this.state; + + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + + // draw edge line + const linePath = linePathMap[edge.id]; + ctx.stroke(linePath); + + // draw edge arrow + const arrowPath = arrowPathMap[edge.id]; + ctx.fillStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + ctx.fill(arrowPath); + + // draw shape + const path = pathMap[edge.id]; + + ctx.fillStyle = selected + ? options.edgeSelectedShapeColor + : options.edgeShapeColor; + ctx.fill(path); + ctx.stroke(path); + + // draw content + const [x, y] = edgeContentPosMap[edge.id]; + const shape = shapeMap[edge.id]; + + ctx.fillStyle = selected + ? options.edgeSelectedContentColor + : options.edgeContentColor; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; + + shape.drawContent(ctx, x, y, shape.width, shape.height, edge.id); + } + + drawNode(node: Node, hovered = false, selected = false) { + const { ctx, options, pathMap, shapeMap } = this.state; + + // draw shape + const path = pathMap[node.id]; + + ctx.strokeStyle = selected + ? options.nodeSelectedLineColor + : hovered + ? options.nodeHoveredLineColor + : options.nodeLineColor; + ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; + + ctx.fill(path); + ctx.stroke(path); + + // draw content + const shape = shapeMap[node.id]; + + ctx.fillStyle = selected + ? options.nodeSelectedContentColor + : options.nodeContentColor; + ctx.textAlign = options.nodeTextAlign; + ctx.textBaseline = options.nodeTextBaseline; + ctx.font = options.nodeFont; + + shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); + } + + drawBackground() { + const { ctx, viewX, viewY, viewW, viewH, options } = this.state; + + const lw = options.bgLineWidth; + const gap = options.bgLineGap; + + ctx.strokeStyle = options.bgDotColor; + ctx.lineWidth = lw; + + const bl = viewX - lw * 0.5; + const br = viewX + viewW + lw * 0.5; + const bt = viewY - lw * 0.5; + const bb = viewY + viewH + lw * 0.5; + + const ll = bl - (((bl % gap) - gap) % gap); + const lr = br - (((br % gap) + gap) % gap); + const lt = bt - (((bt % gap) - gap) % gap); + const lb = bb - (((bb % gap) + gap) % gap); + + ctx.beginPath(); + + for (let i = ll; i <= lr; i += gap) { + ctx.moveTo(i, lt); + ctx.lineTo(i, lb + gap); + } + + ctx.lineCap = "round"; + ctx.setLineDash([0, gap]); + ctx.stroke(); + ctx.setLineDash([]); + ctx.lineCap = "square"; + } } diff --git a/src/graph-view.ts b/src/graph-view.ts index 4a9eb4b..c2977cf 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,3 +1,4 @@ +import { GraphHandler } from "./graph-handler"; import { GraphRenderer } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { @@ -26,46 +27,22 @@ export function createEdgeShape(shape?: Partial): GraphShape { export class GraphView { private state: GraphState; private renderer: GraphRenderer; + private handler: GraphHandler; constructor(container: HTMLElement, options: Partial = {}) { this.state = new GraphState(container, options); this.renderer = new GraphRenderer(this, this.state); + this.handler = new GraphHandler(this, this.state, this.renderer); - this.requestDraw(); + this.renderer.requestDraw(); container.appendChild(this.state.canvas); - this.state.canvas.addEventListener("mousemove", e => { - const { moveNodeIds, moveX, moveY, dragLineSourceNode } = this.state; - - const vp = this.getViewPosFromWindowPos(e.x, e.y); - - if (dragLineSourceNode) { - this.state.dragLineX = vp[0]; - this.state.dragLineY = vp[1]; - - this.requestDraw(); - } - - if (moveNodeIds.length === 0) { - this.checkHover(vp[0], vp[1]); - return; - } - - const dx = vp[0] - moveX; - const dy = vp[1] - moveY; - - this.state.moveX = vp[0]; - this.state.moveY = vp[1]; - - for (const id of moveNodeIds) { - this.moveNode(id, dx, dy); - } - }); + this.handler.init(); } destroy() { - // + this.handler.destroy(); } beginDragLine(node: Node) { @@ -88,7 +65,7 @@ export class GraphView { this.state.dragLineSourceNode = undefined; - this.requestDraw(); + this.renderer.requestDraw(); const rn = idMap[r]; return rn && this.isNode(rn) ? [s, rn] : undefined; @@ -107,7 +84,7 @@ export class GraphView { this.state.moveNodeIds.length = 0; - this.requestDraw(); + this.renderer.requestDraw(); return [moveX - moveStartX, moveY - moveStartY]; } @@ -118,66 +95,22 @@ export class GraphView { select(id: number) { this.state.selectedIdMap = { [id]: true }; - this.requestDraw(); + this.renderer.requestDraw(); } addSelection(id: number) { this.state.selectedIdMap[id] = true; - this.requestDraw(); + this.renderer.requestDraw(); } removeSelection(id: number) { delete this.state.selectedIdMap[id]; - this.requestDraw(); + this.renderer.requestDraw(); } clearSelection() { this.state.selectedIdMap = {}; - this.requestDraw(); - } - - private checkHover(vx: number, vy: number) { - const { nodes, edges, idMap, selectedIdMap } = this.state; - - const prevId = this.state.hoveredId; - this.state.hoveredId = 0; - - for (const node of nodes) { - if (this.isNodeHovered(vx, vy, node)) { - this.state.hoveredId = node.id; - } - } - - for (const edge of edges) { - if (this.isEdgeHovered(vx, vy, edge)) { - this.state.hoveredId = edge.id; - } - } - - if (this.state.hoveredId === prevId) return; - - const prev = idMap[prevId] as Node | Edge | undefined; - const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; - - this.renderer.applyTransform(); - - if (prev) { - if ("x" in prev) { - this.drawNode(prev, false, selectedIdMap[prev.id]); - } else { - this.drawEdge(prev, false, selectedIdMap[prev.id]); - } - } - - if (curr) { - if ("x" in curr) { - this.drawNode(curr, true, selectedIdMap[curr.id]); - } else { - this.drawEdge(curr, true, selectedIdMap[curr.id]); - } - } - - this.renderer.resetTransform(); + this.renderer.requestDraw(); } addNode(node: Node, shape: GraphShape) { @@ -199,7 +132,7 @@ export class GraphView { shapeMap[node.id] = shape; pathMap[node.id] = path; - this.requestDraw(); + this.renderer.requestDraw(); } addEdge(edge: Edge, shape: GraphShape) { @@ -227,114 +160,12 @@ export class GraphView { targetNodeIdToEdgesMap[edge.targetId] = [edge]; } - this.createEdgePath(edge, shape); - - this.requestDraw(); - } - - private createEdgePath(edge: Edge, shape: GraphShape) { - const { - idMap, - pathMap, - options, - edgeContentPosMap, - linePathMap, - arrowPathMap - } = this.state; - const { sourceId, targetId } = edge; - - const source = idMap[sourceId] as Node; - const target = idMap[targetId] as Node; - - const dx = target.x - source.x; - const dy = target.y - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const sip = this.getIntersectionPoint( - target.x, - target.y, - source.x, - source.y, - pathMap[source.id] - ); - const sipx = target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; - const sipy = target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; - - const tip = this.getIntersectionPoint( - source.x, - source.y, - target.x, - target.y, - pathMap[target.id] - ); - const tipx = source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; - const tipy = source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; - - const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; - const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; - - const path = shape.createPath( - midx, - midy, - shape.width, - shape.height, - edge.id - ); - - pathMap[edge.id] = path; - edgeContentPosMap[edge.id] = [midx, midy]; + this.renderer.createEdgePath(edge, shape); - const linePath = this.createEdgeLinePath( - sipx, - sipy, - tipx - options.edgeArrowHeight * cosr, - tipy - options.edgeArrowHeight * sinr - ); - linePathMap[edge.id] = linePath; - - const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); - arrowPathMap[edge.id] = arrowPath; + this.renderer.requestDraw(); } - private createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { - const p = new Path2D(); - - p.moveTo(sx, sy); - p.lineTo(tx, ty); - - return p; - } - - private createEdgeArrowPath( - ix: number, - iy: number, - sinr: number, - cosr: number - ) { - const { options } = this.state; - - const ll = options.edgeArrowWidth * 0.5; - const lsx = ix - options.edgeArrowHeight * cosr; - const lsy = iy - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - const p = new Path2D(); - - p.moveTo(ix, iy); - p.lineTo(lp1x, lp1y); - p.lineTo(lp2x, lp2y); - p.closePath(); - - return p; - } - - private moveNode(id: number, dx: number, dy: number) { + moveNode(id: number, dx: number, dy: number) { const { idMap, shapeMap, @@ -366,15 +197,15 @@ export class GraphView { if (ses) for (const edge of ses) { - this.createEdgePath(edge, shapeMap[edge.id]); + this.renderer.createEdgePath(edge, shapeMap[edge.id]); } if (tes) for (const edge of tes) { - this.createEdgePath(edge, shapeMap[edge.id]); + this.renderer.createEdgePath(edge, shapeMap[edge.id]); } - this.requestDraw(); + this.renderer.requestDraw(); } updateNode(id: number, node: Partial) { @@ -408,7 +239,7 @@ export class GraphView { (edge.sourceId && edge.sourceId !== cur.sourceId) || (edge.targetId && edge.targetId !== cur.targetId) ) { - this.requestDraw(); + this.renderer.requestDraw(); } for (const k in edge) { @@ -481,7 +312,7 @@ export class GraphView { this.state.linePathMap = {}; this.state.arrowPathMap = {}; - this.requestDraw(); + this.renderer.requestDraw(); } getTranslateX() { @@ -492,7 +323,7 @@ export class GraphView { if (v === this.state.translateX) return; this.state.translateX = v; - this.requestDraw(); + this.renderer.requestDraw(); } getTranslateY() { @@ -503,7 +334,7 @@ export class GraphView { if (v === this.state.translateY) return; this.state.translateY = v; - this.requestDraw(); + this.renderer.requestDraw(); } getScale() { @@ -514,7 +345,7 @@ export class GraphView { if (v === this.state.scale) return; this.state.scale = v; - this.requestDraw(); + this.renderer.requestDraw(); } setTransform(translateX: number, translateY: number, scale: number) { @@ -529,14 +360,14 @@ export class GraphView { this.state.translateY = translateY; this.state.scale = scale; - this.requestDraw(); + this.renderer.requestDraw(); } moveBy(x: number, y: number) { this.state.translateX += x; this.state.translateY += y; - this.requestDraw(); + this.renderer.requestDraw(); } zoomBy(value: number, targetX?: number, targetY?: number) { @@ -563,7 +394,7 @@ export class GraphView { this.state.translateX += offsetX; this.state.translateY += offsetY; - this.requestDraw(); + this.renderer.requestDraw(); } resize(width: number, height: number): void { @@ -572,7 +403,7 @@ export class GraphView { this.state.boundingRect = this.state.canvas.getBoundingClientRect(); - this.requestDraw(); + this.renderer.requestDraw(); } isNode(nodeOrEdge: Node | Edge): nodeOrEdge is Node { @@ -583,265 +414,6 @@ export class GraphView { return "sourceId" in nodeOrEdge; } - private requestDraw() { - if (!this.state.isDrawing) { - requestAnimationFrame(this.requestDrawHandler); - } - - this.state.isDrawing = true; - } - - private requestDrawHandler = () => { - this.state.isDrawing = false; - this.draw(); - }; - - private draw() { - const { - ctx, - canvas, - scale, - translateX, - translateY, - options, - nodes, - edges, - hoveredId, - selectedIdMap, - dragLineSourceNode - } = this.state; - - ctx.fillStyle = options.bgColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - ctx.setTransform(scale, 0, 0, scale, translateX, translateY); - - this.state.setView(); - - if (options.bgShowDots) this.drawBackground(); - - if (dragLineSourceNode) this.drawDragLine(); - - for (const edge of edges) - this.drawEdge(edge, hoveredId === edge.id, selectedIdMap[edge.id]); - - for (const node of nodes) - this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); - - ctx.setTransform(1, 0, 0, 1, 0, 0); - } - - private drawDragLine() { - const { ctx, options, dragLineSourceNode, dragLineX, dragLineY } = - this.state; - - if (!dragLineSourceNode) return; - - const sx = dragLineSourceNode.x; - const sy = dragLineSourceNode.y; - const tx = dragLineX; - const ty = dragLineY; - - const dx = tx - sx; - const dy = ty - sy; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const ll = options.edgeArrowWidth * 0.5; - const lsx = tx - options.edgeArrowHeight * cosr; - const lsy = ty - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - - ctx.beginPath(); - ctx.moveTo(sx, sy); - ctx.lineTo(tx, ty); - ctx.stroke(); - - ctx.beginPath(); - ctx.moveTo(tx, ty); - ctx.lineTo(lp1x, lp1y); - ctx.lineTo(lp2x, lp2y); - ctx.closePath(); - ctx.fill(); - } - - private getIntersectionPoint( - sx: number, - sy: number, - tx: number, - ty: number, - path: Path2D - ) { - const { ctx } = this.state; - - const dx = tx - sx; - const dy = ty - sy; - - const e = (Math.abs(dx) + Math.abs(dy)) | 0; - - let start = 0; - let end = e; - - while (start <= end) { - const mid = ((start + end) / 2) | 0; - - const x = sx + (mid / e) * dx; - const y = sy + (mid / e) * dy; - - // const [vx, vy] = this.getCanvasPosFromViewPos(x, y); - - if (ctx.isPointInPath(path, x, y)) { - end = mid - 1; - } else { - start = mid + 1; - } - } - - return start / e; - } - - private isEdgeHovered(x: number, y: number, edge: Edge) { - const { ctx, pathMap, linePathMap, arrowPathMap } = this.state; - - return ( - ctx.isPointInPath(pathMap[edge.id], x, y) || - ctx.isPointInStroke(linePathMap[edge.id], x, y) || - ctx.isPointInPath(arrowPathMap[edge.id], x, y) - ); - } - - private drawEdge(edge: Edge, hovered = false, selected = false) { - const { - ctx, - options, - linePathMap, - arrowPathMap, - pathMap, - edgeContentPosMap, - shapeMap - } = this.state; - - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - - // draw edge line - const linePath = linePathMap[edge.id]; - ctx.stroke(linePath); - - // draw edge arrow - const arrowPath = arrowPathMap[edge.id]; - ctx.fillStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - ctx.fill(arrowPath); - - // draw shape - const path = pathMap[edge.id]; - - ctx.fillStyle = selected - ? options.edgeSelectedShapeColor - : options.edgeShapeColor; - ctx.fill(path); - ctx.stroke(path); - - // draw content - const [x, y] = edgeContentPosMap[edge.id]; - const shape = shapeMap[edge.id]; - - ctx.fillStyle = selected - ? options.edgeSelectedContentColor - : options.edgeContentColor; - ctx.textAlign = options.edgeTextAlign; - ctx.textBaseline = options.edgeTextBaseline; - ctx.font = options.edgeFont; - - shape.drawContent(ctx, x, y, shape.width, shape.height, edge.id); - } - - private isNodeHovered(x: number, y: number, node: Node) { - const { ctx, pathMap } = this.state; - - return ctx.isPointInPath(pathMap[node.id], x, y); - } - - private drawNode(node: Node, hovered = false, selected = false) { - const { ctx, options, pathMap, shapeMap } = this.state; - - // draw shape - const path = pathMap[node.id]; - - ctx.strokeStyle = selected - ? options.nodeSelectedLineColor - : hovered - ? options.nodeHoveredLineColor - : options.nodeLineColor; - ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; - ctx.lineWidth = options.nodeLineWidth; - - ctx.fill(path); - ctx.stroke(path); - - // draw content - const shape = shapeMap[node.id]; - - ctx.fillStyle = selected - ? options.nodeSelectedContentColor - : options.nodeContentColor; - ctx.textAlign = options.nodeTextAlign; - ctx.textBaseline = options.nodeTextBaseline; - ctx.font = options.nodeFont; - - shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); - } - - private drawBackground() { - const { ctx, viewX, viewY, viewW, viewH, options } = this.state; - - const lw = options.bgLineWidth; - const gap = options.bgLineGap; - - ctx.strokeStyle = options.bgDotColor; - ctx.lineWidth = lw; - - const bl = viewX - lw * 0.5; - const br = viewX + viewW + lw * 0.5; - const bt = viewY - lw * 0.5; - const bb = viewY + viewH + lw * 0.5; - - const ll = bl - (((bl % gap) - gap) % gap); - const lr = br - (((br % gap) + gap) % gap); - const lt = bt - (((bt % gap) - gap) % gap); - const lb = bb - (((bb % gap) + gap) % gap); - - ctx.beginPath(); - - for (let i = ll; i <= lr; i += gap) { - ctx.moveTo(i, lt); - ctx.lineTo(i, lb + gap); - } - - ctx.lineCap = "round"; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([]); - ctx.lineCap = "square"; - } - getViewPosFromWindowPos(windowX: number, windowY: number) { const { left, top } = this.state.boundingRect; const { scale, translateX, translateY } = this.state; From ac1a447be5d9565b79e99982fce9c259cc656d32 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Mon, 14 Nov 2022 20:35:04 +0700 Subject: [PATCH 23/56] update and refactor --- example/index.ts | 187 ++++++++++--------------------------------- example/shapes.ts | 98 +++++++++++++++++++++++ index.html | 3 + old-example/index.ts | 4 +- src/graph-handler.ts | 25 +++++- src/graph-state.ts | 6 +- src/graph-view.ts | 75 +++++++++++++---- 7 files changed, 233 insertions(+), 165 deletions(-) create mode 100644 example/shapes.ts diff --git a/example/index.ts b/example/index.ts index c5ee91c..25c2ce3 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,13 +1,5 @@ -import { - createEdgeShape, - createGraphView, - createNodeShape, - defaultEdgeShape, - defaultNodeShape, - GraphEdge, - GraphNode, - GraphView -} from "../src"; +import { createGraphView, GraphEdge, GraphNode, GraphView } from "../src"; +import { edgeShapes, nodeShapes } from "./shapes"; function getRandomInt(min: number, max: number) { min = Math.ceil(min); @@ -26,104 +18,12 @@ const generateButton = document.getElementById( const toggleModeButton = document.getElementById( "toggle-mode-button" ) as HTMLButtonElement; +const deleteButton = document.getElementById( + "delete-button" +) as HTMLButtonElement; let graphView: GraphView; -let isDragging = false; -let isMovingNode = false; - -const rectNodeShape = createNodeShape({ - width: 160, - height: 120, - createPath: (x, y, w, h) => { - const p = new Path2D(); - - p.rect(x - w * 0.5, y - h * 0.5, w, h); - p.closePath(); - - return p; - } -}); - -const starNodeShape = createNodeShape({ - width: 218, - height: 205, - createPath: (x, y, w, h) => { - const p = new Path2D(); - - const l = x - w * 0.5; - const t = y - h * 0.5; - - p.moveTo(l + 108, t + 0.0); - p.lineTo(l + 141, t + 70); - p.lineTo(l + 218, t + 78.3); - p.lineTo(l + 162, t + 131); - p.lineTo(l + 175, t + 205); - p.lineTo(l + 108, t + 170); - p.lineTo(l + 41.2, t + 205); - p.lineTo(l + 55, t + 131); - p.lineTo(l + 0, t + 78); - p.lineTo(l + 75, t + 68); - p.lineTo(l + 108, t + 0); - p.closePath(); - - return p; - } -}); - -const sqrt3 = Math.sqrt(3); -const wowNodeShape = createNodeShape({ - width: 200, - height: 200, - createPath: (x, y, w, h) => { - const p = new Path2D(); - - const ex = 0.25 * w * sqrt3; - const ex2 = ex * 0.33333333; - const ex3 = ex * (1 - 0.33333333); - const ey = 0.25 * h; - - p.moveTo(x, y - h * 0.5); - p.lineTo(x + ex2, y - ey); - p.lineTo(x + ex, y - ey); - p.lineTo(x + ex3, y); - p.lineTo(x + ex, y + ey); - p.lineTo(x + ex2, y + ey); - p.lineTo(x, y + h * 0.5); - p.lineTo(x - ex2, y + ey); - p.lineTo(x - ex, y + ey); - p.lineTo(x - ex3, y); - p.lineTo(x - ex, y - ey); - p.lineTo(x - ex2, y - ey); - - p.closePath(); - - return p; - } -}); - -const nodeShapes = [ - defaultNodeShape, - rectNodeShape, - starNodeShape, - wowNodeShape -]; - -const circleEdgeShape = createEdgeShape({ - width: 48, - height: 48, - createPath: (x, y, w) => { - const p = new Path2D(); - - p.arc(x, y, w * 0.5, 0, 2 * Math.PI); - p.closePath(); - - return p; - } -}); - -const edgeShapes = [defaultEdgeShape, circleEdgeShape]; - let lastId = 0; let mode: "move" | "create" = "move"; @@ -182,68 +82,69 @@ function main() { else mode = "create"; }); + deleteButton.addEventListener("click", () => { + const selectedIds = graphView.getSelection(); + + for (const id of selectedIds) { + graphView.remove(id); + } + }); + window.addEventListener("resize", () => { graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); }); graphDiv.addEventListener("mousedown", e => { - isDragging = true; - + const pos = graphView.getViewPosFromWindowPos(e.x, e.y); const hoveredId = graphView.getHoveredId(); - if (hoveredId > 0) { - graphView.select(hoveredId); + if (hoveredId) { + graphView.addSelection(hoveredId); } else { graphView.clearSelection(); } - if (hoveredId > 0 && graphView.isNode(graphView.getNode(hoveredId))) { - isMovingNode = true; - const pos = graphView.getViewPosFromWindowPos(e.x, e.y); - - if (mode === "move") graphView.beginMoveNode([hoveredId], pos[0], pos[1]); - - if (mode === "create") - graphView.beginDragLine(graphView.getNode(hoveredId)); + if (mode === "move") { + if (!hoveredId) graphView.beginMoveView(); + else + graphView.beginMoveNodes( + graphView.getSelectedNodeIds(), + pos[0], + pos[1] + ); + } else if (mode === "create") { + if (!hoveredId) { + lastId++; + + graphView.addNode( + { id: lastId, x: pos[0], y: pos[1] }, + nodeShapes[getRandomInt(0, nodeShapes.length)] + ); + } else { + graphView.beginDragLine(); + } } }); - graphDiv.addEventListener("mousemove", e => { - if (!isDragging) return; - - if (!isMovingNode) graphView.moveBy(e.movementX, e.movementY); - }); - graphDiv.addEventListener("mouseup", () => { - isDragging = false; - isMovingNode = false; - - graphView.endMoveNode(); + graphView.endMoveView(); + graphView.endMoveNodes(); - const r = graphView.endDragLine(); + const dragLineNodes = graphView.endDragLine(); - if (r) { + if (dragLineNodes) { lastId++; graphView.addEdge( - { id: lastId, sourceId: r[0].id, targetId: r[1].id }, + { + id: lastId, + sourceId: dragLineNodes[0].id, + targetId: dragLineNodes[1].id + }, edgeShapes[getRandomInt(0, edgeShapes.length)] ); } }); - - graphDiv.addEventListener( - "wheel", - e => { - e.preventDefault(); - const pos = graphView.getViewPosFromWindowPos(e.x, e.y); - - graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); - }, - { - passive: false - } - ); } main(); diff --git a/example/shapes.ts b/example/shapes.ts new file mode 100644 index 0000000..7c09857 --- /dev/null +++ b/example/shapes.ts @@ -0,0 +1,98 @@ +import { + createEdgeShape, + createNodeShape, + defaultEdgeShape, + defaultNodeShape +} from "../src"; + +const rectNodeShape = createNodeShape({ + width: 160, + height: 120, + createPath: (x, y, w, h) => { + const p = new Path2D(); + + p.rect(x - w * 0.5, y - h * 0.5, w, h); + p.closePath(); + + return p; + } +}); + +const starNodeShape = createNodeShape({ + width: 218, + height: 205, + createPath: (x, y, w, h) => { + const p = new Path2D(); + + const l = x - w * 0.5; + const t = y - h * 0.5; + + p.moveTo(l + 108, t + 0.0); + p.lineTo(l + 141, t + 70); + p.lineTo(l + 218, t + 78.3); + p.lineTo(l + 162, t + 131); + p.lineTo(l + 175, t + 205); + p.lineTo(l + 108, t + 170); + p.lineTo(l + 41.2, t + 205); + p.lineTo(l + 55, t + 131); + p.lineTo(l + 0, t + 78); + p.lineTo(l + 75, t + 68); + p.lineTo(l + 108, t + 0); + p.closePath(); + + return p; + } +}); + +const sqrt3 = Math.sqrt(3); +const wowNodeShape = createNodeShape({ + width: 200, + height: 200, + createPath: (x, y, w, h) => { + const p = new Path2D(); + + const ex = 0.25 * w * sqrt3; + const ex2 = ex * 0.33333333; + const ex3 = ex * (1 - 0.33333333); + const ey = 0.25 * h; + + p.moveTo(x, y - h * 0.5); + p.lineTo(x + ex2, y - ey); + p.lineTo(x + ex, y - ey); + p.lineTo(x + ex3, y); + p.lineTo(x + ex, y + ey); + p.lineTo(x + ex2, y + ey); + p.lineTo(x, y + h * 0.5); + p.lineTo(x - ex2, y + ey); + p.lineTo(x - ex, y + ey); + p.lineTo(x - ex3, y); + p.lineTo(x - ex, y - ey); + p.lineTo(x - ex2, y - ey); + + p.closePath(); + + return p; + } +}); + +export const nodeShapes = [ + defaultNodeShape, + rectNodeShape, + starNodeShape, + wowNodeShape +]; + +const circleEdgeShape = createEdgeShape({ + width: 48, + height: 48, + createPath: (x, y, w) => { + const p = new Path2D(); + + p.arc(x, y, w * 0.5, 0, 2 * Math.PI); + p.closePath(); + + return p; + } +}); + +export const edgeShapes = [defaultEdgeShape, circleEdgeShape]; diff --git a/index.html b/index.html index b234bb4..ad0a793 100644 --- a/index.html +++ b/index.html @@ -50,6 +50,9 @@ + diff --git a/old-example/index.ts b/old-example/index.ts index 916f549..aa85894 100644 --- a/old-example/index.ts +++ b/old-example/index.ts @@ -100,7 +100,7 @@ graphView.canvas.addEventListener( if (action === "move" && graphView.hoveredNode) { movingNode = graphView.hoveredNode; - graphView.beginMoveNode(graphView.hoveredNode); + graphView.beginMoveSelectedNode(graphView.hoveredNode); } if (action === "create") { @@ -122,7 +122,7 @@ graphView.canvas.addEventListener( "mouseup", e => { if (isDragging && action === "move" && movingNode) { - graphView.endMoveNode(); + graphView.endMoveNodes(); } if (isDragging && action === "create" && dragSourceNode) { diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 92276e2..7e45676 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -19,10 +19,15 @@ export class GraphHandler { } handleMouseMove = (e: MouseEvent) => { - const { moveNodeIds, moveX, moveY, dragLineSourceNode } = this.state; + const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = + this.state; const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { + this.view.moveBy(e.movementX, e.movementY); + } + if (dragLineSourceNode) { this.state.dragLineX = vp[0]; this.state.dragLineY = vp[1]; @@ -106,11 +111,25 @@ export class GraphHandler { this.renderer.resetTransform(); } + handleWheel = (e: WheelEvent) => { + e.preventDefault(); + + const pos = this.view.getViewPosFromWindowPos(e.x, e.y); + + this.view.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + }; + init() { - this.state.container.addEventListener("mousemove", this.handleMouseMove); + const { container } = this.state; + + container.addEventListener("mousemove", this.handleMouseMove); + container.addEventListener("wheel", this.handleWheel); } destroy() { - this.state.container.removeEventListener("mousemove", this.handleMouseMove); + const { container } = this.state; + + container.removeEventListener("mousemove", this.handleMouseMove); + container.removeEventListener("wheel", this.handleWheel); } } diff --git a/src/graph-state.ts b/src/graph-state.ts index 8338e0f..24d1350 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -27,6 +27,8 @@ export class GraphState { sourceNodeIdToEdgesMap: Record = {}; targetNodeIdToEdgesMap: Record = {}; + options = defaultGraphOptions; + translateX = 0; translateY = 0; scale = 1; @@ -38,14 +40,12 @@ export class GraphState { boundingRect: DOMRect; isDrawing = false; - options = defaultGraphOptions; + isMovingView = false; hoveredId = 0; selectedIdMap: Record = {}; moveNodeIds: number[] = []; moveX = 0; moveY = 0; - moveStartX = 0; - moveStartY = 0; dragLineSourceNode: Node | undefined = undefined; dragLineX = 0; dragLineY = 0; diff --git a/src/graph-view.ts b/src/graph-view.ts index c2977cf..6a4d44e 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -45,13 +45,21 @@ export class GraphView { this.handler.destroy(); } - beginDragLine(node: Node) { + beginDragLine() { + const { hoveredId, idMap } = this.state; + + if (!hoveredId) return; + + const node = idMap[hoveredId]; + + if (!this.isNode(node)) return; + this.state.dragLineSourceNode = node; this.state.dragLineX = node.x; this.state.dragLineY = node.y; } - endDragLine() { + endDragLine(): [Node, Node] | undefined { const { hoveredId, idMap } = this.state; if (!this.state.dragLineSourceNode) return; @@ -71,22 +79,24 @@ export class GraphView { return rn && this.isNode(rn) ? [s, rn] : undefined; } - beginMoveNode(ids: number[], vx: number, vy: number) { - this.state.moveNodeIds = ids; + beginMoveView() { + this.state.isMovingView = true; + } + + endMoveView() { + this.state.isMovingView = false; + } + + beginMoveNodes(nodeIds: number[], vx: number, vy: number) { + this.state.moveNodeIds = nodeIds; this.state.moveX = vx; this.state.moveY = vy; - this.state.moveStartX = vx; - this.state.moveStartY = vy; } - endMoveNode() { - const { moveX, moveY, moveStartX, moveStartY } = this.state; - + endMoveNodes() { this.state.moveNodeIds.length = 0; this.renderer.requestDraw(); - - return [moveX - moveStartX, moveY - moveStartY]; } getHoveredId() { @@ -113,6 +123,26 @@ export class GraphView { this.renderer.requestDraw(); } + getSelection() { + return Object.keys(this.state.selectedIdMap).map(k => Number(k)); + } + + getSelectedNodeIds() { + return this.getSelection().filter(id => { + const nodeOrEdge = this.state.idMap[id]; + + return this.isNode(nodeOrEdge); + }); + } + + getSelectedEdgeIds() { + return this.getSelection().filter(id => { + const nodeOrEdge = this.state.idMap[id]; + + return this.isEdge(nodeOrEdge); + }); + } + addNode(node: Node, shape: GraphShape) { const { idMap, nodes, shapeMap, pathMap } = this.state; @@ -249,6 +279,13 @@ export class GraphView { } } + remove(id: number) { + const nodeOrEdge = this.state.idMap[id]; + + if (this.isNode(nodeOrEdge)) this.removeNode(id); + if (this.isEdge(nodeOrEdge)) this.removeEdge(id); + } + removeNode(id: number) { const node = this.state.idMap[id]; @@ -257,11 +294,15 @@ export class GraphView { delete this.state.idMap[id]; delete this.state.pathMap[id]; + this.state.nodes = this.state.nodes.filter(n => n.id !== id); + const ses = this.state.sourceNodeIdToEdgesMap[id]; if (ses) for (const edge of ses) this.removeEdge(edge.id); - const tes = this.state.sourceNodeIdToEdgesMap[id]; + const tes = this.state.targetNodeIdToEdgesMap[id]; if (tes) for (const edge of tes) this.removeEdge(edge.id); + + this.renderer.requestDraw(); } removeEdge(id: number) { @@ -274,6 +315,8 @@ export class GraphView { delete this.state.linePathMap[id]; delete this.state.arrowPathMap[id]; + this.state.edges = this.state.edges.filter(n => n.id !== id); + const ses = this.state.sourceNodeIdToEdgesMap[edge.sourceId]; if (ses) this.state.sourceNodeIdToEdgesMap[edge.sourceId] = ses.filter( @@ -285,6 +328,8 @@ export class GraphView { this.state.targetNodeIdToEdgesMap[edge.targetId] = ses.filter( e => e.id !== id ); + + this.renderer.requestDraw(); } getNode(id: number): Node { @@ -406,11 +451,13 @@ export class GraphView { this.renderer.requestDraw(); } - isNode(nodeOrEdge: Node | Edge): nodeOrEdge is Node { + isNode(nodeOrEdge?: Node | Edge): nodeOrEdge is Node { + if (!nodeOrEdge) return false; return "x" in nodeOrEdge; } - isEdge(nodeOrEdge: Node | Edge): nodeOrEdge is Edge { + isEdge(nodeOrEdge?: Node | Edge): nodeOrEdge is Edge { + if (!nodeOrEdge) return false; return "sourceId" in nodeOrEdge; } From 1b7d735d202f1448f7cef3fe7047ce139409539c Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 15 Nov 2022 00:48:40 +0700 Subject: [PATCH 24/56] only draw node and edge if in view --- src/graph-renderer.ts | 123 +++++++++++++++++++++++++++++++----------- src/graph-state.ts | 1 + src/graph-view.ts | 1 + src/utils.ts | 69 ++++++++++++++++++++++++ 4 files changed, 162 insertions(+), 32 deletions(-) create mode 100644 src/utils.ts diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index e6b1f32..0532576 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,6 +1,7 @@ import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; import { GraphEdge, GraphNode, GraphShape } from "./types"; +import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; export class GraphRenderer { private state: GraphState; @@ -74,6 +75,7 @@ export class GraphRenderer { pathMap, options, edgeContentPosMap, + edgeLinePosMap, linePathMap, arrowPathMap } = this.state; @@ -109,6 +111,8 @@ export class GraphRenderer { const tipx = source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; const tipy = source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; + edgeLinePosMap[edge.id] = [sipx, sipy, tipx, tipy]; + const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; @@ -246,9 +250,21 @@ export class GraphRenderer { arrowPathMap, pathMap, edgeContentPosMap, - shapeMap + edgeLinePosMap, + shapeMap, + viewX, + viewY, + viewW, + viewH } = this.state; + const [sx, sy, tx, ty] = edgeLinePosMap[edge.id]; + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + const vx = viewX - lsz; + const vy = viewY - lsz; + const vw = viewW + lsz * 2; + const vh = viewH + lsz * 2; + ctx.lineWidth = options.edgeLineWidth; ctx.strokeStyle = selected ? options.edgeSelectedLineColor @@ -257,43 +273,87 @@ export class GraphRenderer { : options.edgeLineColor; // draw edge line - const linePath = linePathMap[edge.id]; - ctx.stroke(linePath); + if ( + isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || + lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) + ) { + const linePath = linePathMap[edge.id]; + ctx.stroke(linePath); + } // draw edge arrow - const arrowPath = arrowPathMap[edge.id]; - ctx.fillStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - ctx.fill(arrowPath); - - // draw shape - const path = pathMap[edge.id]; - - ctx.fillStyle = selected - ? options.edgeSelectedShapeColor - : options.edgeShapeColor; - ctx.fill(path); - ctx.stroke(path); + const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); + + if (rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh)) { + const arrowPath = arrowPathMap[edge.id]; + ctx.fillStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + ctx.fill(arrowPath); + } - // draw content - const [x, y] = edgeContentPosMap[edge.id]; + // draw shape and content if is in view const shape = shapeMap[edge.id]; - - ctx.fillStyle = selected - ? options.edgeSelectedContentColor - : options.edgeContentColor; - ctx.textAlign = options.edgeTextAlign; - ctx.textBaseline = options.edgeTextBaseline; - ctx.font = options.edgeFont; - - shape.drawContent(ctx, x, y, shape.width, shape.height, edge.id); + const [cx, cy] = edgeContentPosMap[edge.id]; + + if ( + rectIntersect( + cx - shape.width * 0.5, + cy - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ) + ) { + // draw shape + const path = pathMap[edge.id]; + + ctx.fillStyle = selected + ? options.edgeSelectedShapeColor + : options.edgeShapeColor; + ctx.fill(path); + ctx.stroke(path); + + // draw content + ctx.fillStyle = selected + ? options.edgeSelectedContentColor + : options.edgeContentColor; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; + + shape.drawContent(ctx, cx, cy, shape.width, shape.height, edge.id); + } } drawNode(node: Node, hovered = false, selected = false) { - const { ctx, options, pathMap, shapeMap } = this.state; + const { ctx, options, pathMap, shapeMap, viewX, viewY, viewW, viewH } = + this.state; + + // check is in view + const shape = shapeMap[node.id]; + if ( + !rectIntersect( + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height, + viewX, + viewY, + viewW, + viewH + ) + ) { + return; + } // draw shape const path = pathMap[node.id]; @@ -310,7 +370,6 @@ export class GraphRenderer { ctx.stroke(path); // draw content - const shape = shapeMap[node.id]; ctx.fillStyle = selected ? options.nodeSelectedContentColor diff --git a/src/graph-state.ts b/src/graph-state.ts index 24d1350..5c3b991 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -24,6 +24,7 @@ export class GraphState { linePathMap: Record = {}; arrowPathMap: Record = {}; edgeContentPosMap: Record = {}; + edgeLinePosMap: Record = {}; sourceNodeIdToEdgesMap: Record = {}; targetNodeIdToEdgesMap: Record = {}; diff --git a/src/graph-view.ts b/src/graph-view.ts index 6a4d44e..5367e21 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -354,6 +354,7 @@ export class GraphView { this.state.shapeMap = {}; this.state.pathMap = {}; this.state.edgeContentPosMap = {}; + this.state.edgeLinePosMap = {}; this.state.linePathMap = {}; this.state.arrowPathMap = {}; diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..7a76c70 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,69 @@ +export function rectIntersect( + x1: number, + y1: number, + w1: number, + h1: number, + x2: number, + y2: number, + w2: number, + h2: number +) { + return x1 + w1 >= x2 && x1 <= x2 + w2 && y1 + h1 >= y2 && y1 <= y2 + h2; +} + +export function isLineInsideRect( + x1: number, + y1: number, + x2: number, + y2: number, + rx: number, + ry: number, + rw: number, + rh: number +) { + return ( + x1 >= rx && + x1 <= rx + rw && + x2 >= rx && + x2 <= rx + rw && + y1 >= ry && + y1 <= ry + rh && + y2 >= ry && + y1 <= ry + rh + ); +} + +// Ref: http://paulbourke.net/geometry/pointlineplane/javascript.txt +export function lineIntersect( + x1: number, + y1: number, + x2: number, + y2: number, + x3: number, + y3: number, + x4: number, + y4: number, + outPoint?: [number, number] +): boolean { + // Check if none of the lines are of length 0 + if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; + + const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); + + // Lines are parallel + if (denominator === 0) return false; + + const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; + const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; + + // is the intersection along the segments + if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; + + if (outPoint) { + // Return a object with the x and y coordinates of the intersection + outPoint[0] = x1 + ua * (x2 - x1); + outPoint[1] = y1 + ua * (y2 - y1); + } + + return true; +} From a5ed13c3014ea521cccb08c95aa752faf63437e2 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Tue, 15 Nov 2022 20:16:20 +0700 Subject: [PATCH 25/56] refactor and update --- example/index.ts | 3 +- src/graph-handler.ts | 69 ++++++---- src/graph-renderer.ts | 298 ++++++++++++++++++++++++++---------------- src/graph-state.ts | 31 +++-- src/graph-view.ts | 245 ++++++++++++++++------------------ src/types.ts | 27 ++++ 6 files changed, 390 insertions(+), 283 deletions(-) diff --git a/example/index.ts b/example/index.ts index 25c2ce3..1047280 100644 --- a/example/index.ts +++ b/example/index.ts @@ -99,7 +99,8 @@ function main() { const hoveredId = graphView.getHoveredId(); if (hoveredId) { - graphView.addSelection(hoveredId); + // graphView.addSelection(hoveredId); + graphView.select(hoveredId); } else { graphView.clearSelection(); } diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 7e45676..36cc94a 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -1,7 +1,13 @@ import { GraphRenderer } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { GraphEdge, GraphNode } from "./types"; +import { + EdgeDrawData, + GraphEdge, + NodeDrawData, + GraphNode, + GraphDataType +} from "./types"; export class GraphHandler { private state: GraphState; @@ -22,12 +28,13 @@ export class GraphHandler { const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = this.state; - const vp = this.view.getViewPosFromWindowPos(e.x, e.y); - if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { this.view.moveBy(e.movementX, e.movementY); + return; } + const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + if (dragLineSourceNode) { this.state.dragLineX = vp[0]; this.state.dragLineY = vp[1]; @@ -37,6 +44,7 @@ export class GraphHandler { if (moveNodeIds.length === 0) { this.checkHover(vp[0], vp[1]); + return; } @@ -52,34 +60,42 @@ export class GraphHandler { }; private isEdgeHovered(x: number, y: number, edge: Edge) { - const { ctx, pathMap, linePathMap, arrowPathMap } = this.state; + const { ctx, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; return ( - ctx.isPointInPath(pathMap[edge.id], x, y) || - ctx.isPointInStroke(linePathMap[edge.id], x, y) || - ctx.isPointInPath(arrowPathMap[edge.id], x, y) + ctx.isPointInPath(data.path, x, y) || + ctx.isPointInStroke(data.linePath, x, y) || + ctx.isPointInPath(data.arrowPath, x, y) ); } private isNodeHovered(x: number, y: number, node: Node) { - const { ctx, pathMap } = this.state; + const { ctx, drawData } = this.state; + + const data = drawData[node.id] as NodeDrawData; - return ctx.isPointInPath(pathMap[node.id], x, y); + return ctx.isPointInPath(data.path, x, y); } private checkHover(vx: number, vy: number) { - const { nodes, edges, idMap, selectedIdMap } = this.state; + const { nodes, edges, selectedIdMap } = this.state; const prevId = this.state.hoveredId; this.state.hoveredId = 0; - for (const node of nodes) { + for (const node of Object.values(nodes)) { + if (!this.renderer.isNodeInView(node)) continue; + if (this.isNodeHovered(vx, vy, node)) { this.state.hoveredId = node.id; } } - for (const edge of edges) { + for (const edge of Object.values(edges)) { + if (!this.renderer.isEdgeInView(edge)) continue; + if (this.isEdgeHovered(vx, vy, edge)) { this.state.hoveredId = edge.id; } @@ -87,24 +103,25 @@ export class GraphHandler { if (this.state.hoveredId === prevId) return; - const prev = idMap[prevId] as Node | Edge | undefined; - const curr = idMap[this.state.hoveredId] as Node | Edge | undefined; + const currId = this.state.hoveredId; + const prev = this.state.drawData[prevId]; + const curr = this.state.drawData[currId]; this.renderer.applyTransform(); if (prev) { - if ("x" in prev) { - this.renderer.drawNode(prev, false, selectedIdMap[prev.id]); - } else { - this.renderer.drawEdge(prev, false, selectedIdMap[prev.id]); + if (prev.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[prevId], false, selectedIdMap[prevId]); + } else if (prev.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[prevId], false, selectedIdMap[prevId]); } } if (curr) { - if ("x" in curr) { - this.renderer.drawNode(curr, true, selectedIdMap[curr.id]); - } else { - this.renderer.drawEdge(curr, true, selectedIdMap[curr.id]); + if (curr.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[currId], true, selectedIdMap[currId]); + } else if (curr.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[currId], true, selectedIdMap[currId]); } } @@ -112,8 +129,6 @@ export class GraphHandler { } handleWheel = (e: WheelEvent) => { - e.preventDefault(); - const pos = this.view.getViewPosFromWindowPos(e.x, e.y); this.view.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); @@ -122,8 +137,10 @@ export class GraphHandler { init() { const { container } = this.state; - container.addEventListener("mousemove", this.handleMouseMove); - container.addEventListener("wheel", this.handleWheel); + container.addEventListener("mousemove", this.handleMouseMove, { + passive: true + }); + container.addEventListener("wheel", this.handleWheel, { passive: true }); } destroy() { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 0532576..a688e74 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,6 +1,13 @@ import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { GraphEdge, GraphNode, GraphShape } from "./types"; +import { + EdgeDrawData, + GraphDataType, + GraphEdge, + GraphNode, + GraphShape, + NodeDrawData +} from "./types"; import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; export class GraphRenderer { @@ -70,19 +77,11 @@ export class GraphRenderer { } createEdgePath(edge: Edge, shape: GraphShape) { - const { - idMap, - pathMap, - options, - edgeContentPosMap, - edgeLinePosMap, - linePathMap, - arrowPathMap - } = this.state; + const { options, nodes, drawData } = this.state; const { sourceId, targetId } = edge; - const source = idMap[sourceId] as Node; - const target = idMap[targetId] as Node; + const source = nodes[sourceId]; + const target = nodes[targetId] as Node; const dx = target.x - source.x; const dy = target.y - source.y; @@ -96,47 +95,81 @@ export class GraphRenderer { target.y, source.x, source.y, - pathMap[source.id] + drawData[source.id].path ); - const sipx = target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; - const sipy = target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; + const lineSourceX = + target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; + const lineSourceY = + target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; const tip = this.getIntersectionPoint( source.x, source.y, target.x, target.y, - pathMap[target.id] + drawData[target.id].path ); - const tipx = source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; - const tipy = source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; + const lineTargetX = + source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; + const lineTargetY = + source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; - edgeLinePosMap[edge.id] = [sipx, sipy, tipx, tipy]; - - const midx = (sipx + tipx - options.edgeArrowHeight * cosr) * 0.5; - const midy = (sipy + tipy - options.edgeArrowHeight * sinr) * 0.5; + const shapeX = + (lineSourceX + lineTargetX - options.edgeArrowHeight * cosr) * 0.5; + const shapeY = + (lineSourceY + lineTargetY - options.edgeArrowHeight * sinr) * 0.5; const path = shape.createPath( - midx, - midy, + shapeX, + shapeY, shape.width, shape.height, edge.id ); - pathMap[edge.id] = path; - edgeContentPosMap[edge.id] = [midx, midy]; - const linePath = this.createEdgeLinePath( - sipx, - sipy, - tipx - options.edgeArrowHeight * cosr, - tipy - options.edgeArrowHeight * sinr + lineSourceX, + lineSourceY, + lineTargetX - options.edgeArrowHeight * cosr, + lineTargetY - options.edgeArrowHeight * sinr + ); + + const arrowPath = this.createEdgeArrowPath( + lineTargetX, + lineTargetY, + sinr, + cosr ); - linePathMap[edge.id] = linePath; - const arrowPath = this.createEdgeArrowPath(tipx, tipy, sinr, cosr); - arrowPathMap[edge.id] = arrowPath; + const data = drawData[edge.id] as EdgeDrawData | undefined; + + if (!data) { + drawData[edge.id] = { + type: GraphDataType.EDGE, + shape, + path, + linePath, + arrowPath, + lineSourceX, + lineSourceY, + lineTargetX, + lineTargetY, + shapeX, + shapeY + }; + } else { + data.type = GraphDataType.EDGE; + data.shape = shape; + data.path = path; + data.linePath = linePath; + data.arrowPath = arrowPath; + data.lineSourceX = lineSourceX; + data.lineSourceY = lineSourceY; + data.lineTargetX = lineTargetX; + data.lineTargetY = lineTargetY; + data.shapeX = shapeX; + data.shapeY = shapeY; + } } createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { @@ -190,10 +223,10 @@ export class GraphRenderer { if (dragLineSourceNode) this.drawDragLine(); - for (const edge of edges) + for (const edge of Object.values(edges)) this.drawEdge(edge, hoveredId === edge.id, selectedIdMap[edge.id]); - for (const node of nodes) + for (const node of Object.values(nodes)) this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); this.resetTransform(); @@ -243,27 +276,9 @@ export class GraphRenderer { } drawEdge(edge: Edge, hovered = false, selected = false) { - const { - ctx, - options, - linePathMap, - arrowPathMap, - pathMap, - edgeContentPosMap, - edgeLinePosMap, - shapeMap, - viewX, - viewY, - viewW, - viewH - } = this.state; + const { ctx, options, drawData } = this.state; - const [sx, sy, tx, ty] = edgeLinePosMap[edge.id]; - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - const vx = viewX - lsz; - const vy = viewY - lsz; - const vw = viewW + lsz * 2; - const vh = viewH + lsz * 2; + const data = drawData[edge.id] as EdgeDrawData; ctx.lineWidth = options.edgeLineWidth; ctx.strokeStyle = selected @@ -273,54 +288,32 @@ export class GraphRenderer { : options.edgeLineColor; // draw edge line - if ( - isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || - lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) - ) { - const linePath = linePathMap[edge.id]; - ctx.stroke(linePath); + if (this.isEdgeLineInView(edge)) { + ctx.stroke(data.linePath); } // draw edge arrow - const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); - - if (rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh)) { - const arrowPath = arrowPathMap[edge.id]; + if (this.isEdgeArrowInView(edge)) { ctx.fillStyle = selected ? options.edgeSelectedLineColor : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; - ctx.fill(arrowPath); + + ctx.fill(data.arrowPath); } - // draw shape and content if is in view - const shape = shapeMap[edge.id]; - const [cx, cy] = edgeContentPosMap[edge.id]; + // draw shape and content + const shape = data.shape; - if ( - rectIntersect( - cx - shape.width * 0.5, - cy - shape.height * 0.5, - shape.width, - shape.height, - vx, - vy, - vw, - vh - ) - ) { + if (this.isEdgeShapeInView(edge)) { // draw shape - const path = pathMap[edge.id]; ctx.fillStyle = selected ? options.edgeSelectedShapeColor : options.edgeShapeColor; - ctx.fill(path); - ctx.stroke(path); + ctx.fill(data.path); + ctx.stroke(data.path); // draw content ctx.fillStyle = selected @@ -330,34 +323,119 @@ export class GraphRenderer { ctx.textBaseline = options.edgeTextBaseline; ctx.font = options.edgeFont; - shape.drawContent(ctx, cx, cy, shape.width, shape.height, edge.id); + shape.drawContent( + ctx, + data.shapeX, + data.shapeY, + shape.width, + shape.height, + edge.id + ); } } + isNodeInView(node: Node) { + const { drawData, viewX, viewY, viewW, viewH } = this.state; + + const { shape } = drawData[node.id] as NodeDrawData; + + return rectIntersect( + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height, + viewX, + viewY, + viewW, + viewH + ); + } + + isEdgeInView(edge: Edge) { + return ( + this.isEdgeArrowInView(edge) || + this.isEdgeLineInView(edge) || + this.isEdgeShapeInView(edge) + ); + } + + isEdgeLineInView(edge: Edge) { + const { options, viewX, viewY, viewW, viewH, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + + const sx = data.lineSourceX; + const sy = data.lineSourceY; + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + const vx = viewX - lsz; + const vy = viewY - lsz; + const vw = viewW + lsz * 2; + const vh = viewH + lsz * 2; + + return ( + isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || + lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) + ); + } + + isEdgeArrowInView(edge: Edge) { + const { options, drawData, viewX, viewY, viewW, viewH } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + const vx = viewX - lsz; + const vy = viewY - lsz; + const vw = viewW + lsz * 2; + const vh = viewH + lsz * 2; + const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); + + return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); + } + + isEdgeShapeInView(edge: Edge) { + const { options, drawData, viewX, viewY, viewW, viewH } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + const vx = viewX - lsz; + const vy = viewY - lsz; + const vw = viewW + lsz * 2; + const vh = viewH + lsz * 2; + + const shape = data.shape; + + return rectIntersect( + data.shapeX - shape.width * 0.5, + data.shapeY - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ); + } + drawNode(node: Node, hovered = false, selected = false) { - const { ctx, options, pathMap, shapeMap, viewX, viewY, viewW, viewH } = - this.state; + const { ctx, options, drawData } = this.state; + + const data = drawData[node.id] as NodeDrawData; // check is in view - const shape = shapeMap[node.id]; - if ( - !rectIntersect( - node.x - shape.width * 0.5, - node.y - shape.height * 0.5, - shape.width, - shape.height, - viewX, - viewY, - viewW, - viewH - ) - ) { - return; - } + const shape = data.shape; + if (!this.isNodeInView(node)) return; // draw shape - const path = pathMap[node.id]; - ctx.strokeStyle = selected ? options.nodeSelectedLineColor : hovered @@ -366,8 +444,8 @@ export class GraphRenderer { ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; ctx.lineWidth = options.nodeLineWidth; - ctx.fill(path); - ctx.stroke(path); + ctx.fill(data.path); + ctx.stroke(data.path); // draw content diff --git a/src/graph-state.ts b/src/graph-state.ts index 5c3b991..eed353f 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -1,9 +1,10 @@ import { GraphEdge, GraphNode, - GraphShape, GraphOptions, - defaultGraphOptions + defaultGraphOptions, + NodeDrawData, + EdgeDrawData } from "./types"; export class GraphState { @@ -16,17 +17,21 @@ export class GraphState { // readonly nodeCtx: CanvasRenderingContext2D; // readonly moveCtx: CanvasRenderingContext2D; - nodes: Node[] = []; - edges: Edge[] = []; - idMap: Record = {}; - shapeMap: Record = {}; - pathMap: Record = {}; - linePathMap: Record = {}; - arrowPathMap: Record = {}; - edgeContentPosMap: Record = {}; - edgeLinePosMap: Record = {}; - sourceNodeIdToEdgesMap: Record = {}; - targetNodeIdToEdgesMap: Record = {}; + nodes: Record = {}; + edges: Record = {}; + drawData: Record = {}; + + // nodes: Node[] = []; + // edges: Edge[] = []; + // idMap: Record = {}; + // shapeMap: Record = {}; + // pathMap: Record = {}; + // linePathMap: Record = {}; + // arrowPathMap: Record = {}; + // edgeContentPosMap: Record = {}; + // edgeLinePosMap: Record = {}; + // sourceNodeIdToEdgesMap: Record = {}; + // targetNodeIdToEdgesMap: Record = {}; options = defaultGraphOptions; diff --git a/src/graph-view.ts b/src/graph-view.ts index 5367e21..3585b48 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -7,7 +7,10 @@ import { GraphEdge, GraphNode, GraphShape, - GraphOptions + GraphOptions, + GraphDataType, + NodeDrawData, + EdgeDrawData } from "./types"; export function createNodeShape(shape?: Partial): GraphShape { @@ -46,13 +49,13 @@ export class GraphView { } beginDragLine() { - const { hoveredId, idMap } = this.state; + const { hoveredId, nodes } = this.state; if (!hoveredId) return; - const node = idMap[hoveredId]; + const node = nodes[hoveredId]; - if (!this.isNode(node)) return; + if (!node) return; this.state.dragLineSourceNode = node; this.state.dragLineX = node.x; @@ -60,7 +63,7 @@ export class GraphView { } endDragLine(): [Node, Node] | undefined { - const { hoveredId, idMap } = this.state; + const { hoveredId, nodes } = this.state; if (!this.state.dragLineSourceNode) return; @@ -75,8 +78,8 @@ export class GraphView { this.renderer.requestDraw(); - const rn = idMap[r]; - return rn && this.isNode(rn) ? [s, rn] : undefined; + const rn = nodes[r]; + return rn ? [s, rn] : undefined; } beginMoveView() { @@ -129,27 +132,22 @@ export class GraphView { getSelectedNodeIds() { return this.getSelection().filter(id => { - const nodeOrEdge = this.state.idMap[id]; - - return this.isNode(nodeOrEdge); + return this.state.nodes[id] !== undefined; }); } getSelectedEdgeIds() { return this.getSelection().filter(id => { - const nodeOrEdge = this.state.idMap[id]; - - return this.isEdge(nodeOrEdge); + return this.state.edges[id] !== undefined; }); } - addNode(node: Node, shape: GraphShape) { - const { idMap, nodes, shapeMap, pathMap } = this.state; + addNode(node: Node, shape: GraphShape): boolean { + const { nodes, edges, drawData } = this.state; - if (idMap[node.id]) return; + if (nodes[node.id] || edges[node.id]) return false; - nodes.push(node); - idMap[node.id] = node; + nodes[node.id] = node; const path = shape.createPath( node.x, @@ -159,58 +157,52 @@ export class GraphView { node.id ); - shapeMap[node.id] = shape; - pathMap[node.id] = path; + drawData[node.id] = { + type: GraphDataType.NODE, + shape, + path, + sourceOfEdgeIds: new Set(), + targetOfEdgeIds: new Set() + }; this.renderer.requestDraw(); + + return true; } - addEdge(edge: Edge, shape: GraphShape) { - const { idMap } = this.state; + addEdge(edge: Edge, shape: GraphShape): boolean { + const { nodes, edges, drawData } = this.state; - if (idMap[edge.id] || !idMap[edge.sourceId] || !idMap[edge.targetId]) - return; + if (nodes[edge.id] || edges[edge.id]) return false; + if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; - const { edges, shapeMap, sourceNodeIdToEdgesMap, targetNodeIdToEdgesMap } = - this.state; + edges[edge.id] = edge; - edges.push(edge); - idMap[edge.id] = edge; - shapeMap[edge.id] = shape; + const snd = drawData[edge.sourceId] as NodeDrawData; + snd.sourceOfEdgeIds.add(edge.id); - if (sourceNodeIdToEdgesMap[edge.sourceId]) { - sourceNodeIdToEdgesMap[edge.sourceId].push(edge); - } else { - sourceNodeIdToEdgesMap[edge.sourceId] = [edge]; - } - - if (targetNodeIdToEdgesMap[edge.targetId]) { - targetNodeIdToEdgesMap[edge.targetId].push(edge); - } else { - targetNodeIdToEdgesMap[edge.targetId] = [edge]; - } + const tnd = drawData[edge.targetId] as NodeDrawData; + tnd.targetOfEdgeIds.add(edge.id); this.renderer.createEdgePath(edge, shape); this.renderer.requestDraw(); + + return true; } - moveNode(id: number, dx: number, dy: number) { - const { - idMap, - shapeMap, - pathMap, - sourceNodeIdToEdgesMap, - targetNodeIdToEdgesMap - } = this.state; + moveNode(id: number, dx: number, dy: number): boolean { + const { drawData, nodes, edges } = this.state; - const node = idMap[id] as Node | undefined; - if (!node) return; + if (!nodes[id]) return false; + + const node = nodes[id]; + const ndd = drawData[id] as NodeDrawData; node.x += dx; node.y += dy; - const shape = shapeMap[id]; + const shape = ndd.shape; const path = shape.createPath( node.x, @@ -220,50 +212,55 @@ export class GraphView { node.id ); - pathMap[id] = path; + ndd.path = path; - const ses = sourceNodeIdToEdgesMap[id]; - const tes = targetNodeIdToEdgesMap[id]; + for (const edgeId of ndd.sourceOfEdgeIds) { + const edge = edges[edgeId]; + const edd = drawData[edgeId]; - if (ses) - for (const edge of ses) { - this.renderer.createEdgePath(edge, shapeMap[edge.id]); - } + this.renderer.createEdgePath(edge, edd.shape); + } + + for (const edgeId of ndd.targetOfEdgeIds) { + const edge = edges[edgeId]; + const edd = drawData[edgeId]; - if (tes) - for (const edge of tes) { - this.renderer.createEdgePath(edge, shapeMap[edge.id]); - } + this.renderer.createEdgePath(edge, edd.shape); + } this.renderer.requestDraw(); + + return true; } - updateNode(id: number, node: Partial) { - const { idMap } = this.state; + updateNode(id: number, node: Partial): boolean { + const { nodes } = this.state; - const curNode = idMap[id] as Node | undefined; - if (!curNode) return; + if (!nodes[id]) return false; + const cur = nodes[id]; - if ((node.x && node.x !== curNode.x) || (node.y && node.y !== curNode.y)) { + if ((node.x && node.x !== cur.x) || (node.y && node.y !== cur.y)) { this.moveNode( id, - node.x ? node.x - curNode.x : 0, - node.y ? node.y - curNode.y : 0 + node.x ? node.x - cur.x : 0, + node.y ? node.y - cur.y : 0 ); } for (const k in node) { if (k === "id") continue; - curNode[k] = node[k] as Node[Extract]; + cur[k] = node[k] as Node[Extract]; } + + return true; } - updateEdge(id: number, edge: Partial) { - const { idMap } = this.state; + updateEdge(id: number, edge: Partial): boolean { + const { edges } = this.state; - const cur = idMap[id] as Edge | undefined; - if (!cur) return; + if (!edges[id]) return false; + const cur = edges[id]; if ( (edge.sourceId && edge.sourceId !== cur.sourceId) || @@ -277,86 +274,78 @@ export class GraphView { cur[k] = edge[k] as Edge[Extract]; } + + return true; } - remove(id: number) { - const nodeOrEdge = this.state.idMap[id]; + remove(id: number): boolean { + if (this.state.nodes[id]) return this.removeNode(id); + if (this.state.edges[id]) return this.removeEdge(id); - if (this.isNode(nodeOrEdge)) this.removeNode(id); - if (this.isEdge(nodeOrEdge)) this.removeEdge(id); + return false; } - removeNode(id: number) { - const node = this.state.idMap[id]; - - if (!this.isNode(node)) return; + removeNode(id: number): boolean { + const { nodes, drawData } = this.state; - delete this.state.idMap[id]; - delete this.state.pathMap[id]; + if (!nodes[id]) return false; + const ndd = drawData[id] as NodeDrawData; - this.state.nodes = this.state.nodes.filter(n => n.id !== id); + for (const edgeId of ndd.sourceOfEdgeIds) { + this.removeEdge(edgeId); + } - const ses = this.state.sourceNodeIdToEdgesMap[id]; - if (ses) for (const edge of ses) this.removeEdge(edge.id); + for (const edgeId of ndd.targetOfEdgeIds) { + this.removeEdge(edgeId); + } - const tes = this.state.targetNodeIdToEdgesMap[id]; - if (tes) for (const edge of tes) this.removeEdge(edge.id); + delete this.state.nodes[id]; + delete this.state.drawData[id]; this.renderer.requestDraw(); + + return true; } - removeEdge(id: number) { - const edge = this.state.idMap[id]; + removeEdge(id: number): boolean { + const { edges, drawData } = this.state; - if (!this.isEdge(edge)) return; + if (!edges[id]) return false; + const edge = edges[id]; - delete this.state.idMap[id]; - delete this.state.pathMap[id]; - delete this.state.linePathMap[id]; - delete this.state.arrowPathMap[id]; + const sndd = drawData[edge.sourceId] as NodeDrawData; + sndd.sourceOfEdgeIds.delete(id); - this.state.edges = this.state.edges.filter(n => n.id !== id); + const tndd = drawData[edge.targetId] as NodeDrawData; + tndd.targetOfEdgeIds.delete(id); - const ses = this.state.sourceNodeIdToEdgesMap[edge.sourceId]; - if (ses) - this.state.sourceNodeIdToEdgesMap[edge.sourceId] = ses.filter( - e => e.id !== id - ); - - const tes = this.state.targetNodeIdToEdgesMap[edge.targetId]; - if (tes) - this.state.targetNodeIdToEdgesMap[edge.targetId] = ses.filter( - e => e.id !== id - ); + delete this.state.edges[id]; + delete this.state.drawData[id]; this.renderer.requestDraw(); + + return true; } - getNode(id: number): Node { - return this.state.idMap[id] as Node; + getNode(id: number): Node | undefined { + return this.state.nodes[id]; } - getEdge(id: number): Edge { - return this.state.idMap[id] as Edge; + getEdge(id: number): Edge | undefined { + return this.state.edges[id]; } getData() { return { - nodes: this.state.nodes, - edges: this.state.edges + nodes: Object.values(this.state.nodes), + edges: Object.values(this.state.edges) }; } clear() { - this.state.nodes = []; - this.state.edges = []; - this.state.idMap = {}; - this.state.shapeMap = {}; - this.state.pathMap = {}; - this.state.edgeContentPosMap = {}; - this.state.edgeLinePosMap = {}; - this.state.linePathMap = {}; - this.state.arrowPathMap = {}; + this.state.nodes = {}; + this.state.edges = {}; + this.state.drawData = {}; this.renderer.requestDraw(); } @@ -452,16 +441,6 @@ export class GraphView { this.renderer.requestDraw(); } - isNode(nodeOrEdge?: Node | Edge): nodeOrEdge is Node { - if (!nodeOrEdge) return false; - return "x" in nodeOrEdge; - } - - isEdge(nodeOrEdge?: Node | Edge): nodeOrEdge is Edge { - if (!nodeOrEdge) return false; - return "sourceId" in nodeOrEdge; - } - getViewPosFromWindowPos(windowX: number, windowY: number) { const { left, top } = this.state.boundingRect; const { scale, translateX, translateY } = this.state; diff --git a/src/types.ts b/src/types.ts index d13323f..d839b0f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -10,6 +10,33 @@ export type GraphEdge = { targetId: number; }; +export enum GraphDataType { + NODE, + EDGE +} + +export type NodeDrawData = { + type: GraphDataType.NODE; + sourceOfEdgeIds: Set; + targetOfEdgeIds: Set; + path: Path2D; + shape: GraphShape; +}; + +export type EdgeDrawData = { + type: GraphDataType.EDGE; + shape: GraphShape; + path: Path2D; + linePath: Path2D; + arrowPath: Path2D; + lineSourceX: number; + lineSourceY: number; + lineTargetX: number; + lineTargetY: number; + shapeX: number; + shapeY: number; +}; + export type GraphShape = { width: number; height: number; From 1ea3e86b40e30cd122a5f4e820b29a0c52bea090 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 16 Nov 2022 00:07:57 +0700 Subject: [PATCH 26/56] use 4 canvases --- example/index.ts | 3 +- src/graph-handler.ts | 20 +++--- src/graph-renderer.ts | 150 ++++++++++++++++++++++++------------------ src/graph-state.ts | 65 ++++++++++-------- src/graph-view.ts | 24 ++++--- 5 files changed, 150 insertions(+), 112 deletions(-) diff --git a/example/index.ts b/example/index.ts index 1047280..10c1bd8 100644 --- a/example/index.ts +++ b/example/index.ts @@ -91,7 +91,8 @@ function main() { }); window.addEventListener("resize", () => { - graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); + graphView.resize(); + // graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); }); graphDiv.addEventListener("mousedown", e => { diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 36cc94a..07b810d 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -60,27 +60,27 @@ export class GraphHandler { }; private isEdgeHovered(x: number, y: number, edge: Edge) { - const { ctx, drawData } = this.state; + const { edgeCtx, drawData } = this.state; const data = drawData[edge.id] as EdgeDrawData; return ( - ctx.isPointInPath(data.path, x, y) || - ctx.isPointInStroke(data.linePath, x, y) || - ctx.isPointInPath(data.arrowPath, x, y) + edgeCtx.isPointInPath(data.path, x, y) || + edgeCtx.isPointInStroke(data.linePath, x, y) || + edgeCtx.isPointInPath(data.arrowPath, x, y) ); } private isNodeHovered(x: number, y: number, node: Node) { - const { ctx, drawData } = this.state; + const { nodeCtx, drawData } = this.state; const data = drawData[node.id] as NodeDrawData; - return ctx.isPointInPath(data.path, x, y); + return nodeCtx.isPointInPath(data.path, x, y); } private checkHover(vx: number, vy: number) { - const { nodes, edges, selectedIdMap } = this.state; + const { nodes, edges, selectedIdMap, nodeCtx, edgeCtx } = this.state; const prevId = this.state.hoveredId; this.state.hoveredId = 0; @@ -107,7 +107,8 @@ export class GraphHandler { const prev = this.state.drawData[prevId]; const curr = this.state.drawData[currId]; - this.renderer.applyTransform(); + this.renderer.applyTransform(nodeCtx); + this.renderer.applyTransform(edgeCtx); if (prev) { if (prev.type === GraphDataType.NODE) { @@ -125,7 +126,8 @@ export class GraphHandler { } } - this.renderer.resetTransform(); + this.renderer.resetTransform(nodeCtx); + this.renderer.resetTransform(edgeCtx); } handleWheel = (e: WheelEvent) => { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index a688e74..2ffe4a3 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -19,15 +19,15 @@ export class GraphRenderer { this.state = state; } - applyTransform() { - const { ctx, scale, translateX, translateY } = this.state; + applyTransform(ctx: CanvasRenderingContext2D) { + const { scale, translateX, translateY } = this.state; ctx.setTransform(scale, 0, 0, scale, translateX, translateY); this.state.setView(); } - resetTransform() { - this.state.ctx.setTransform(1, 0, 0, 1, 0, 0); + resetTransform(ctx: CanvasRenderingContext2D) { + ctx.setTransform(1, 0, 0, 1, 0, 0); } requestDraw() { @@ -50,7 +50,7 @@ export class GraphRenderer { ty: number, path: Path2D ) { - const { ctx } = this.state; + const { bgCtx } = this.state; const dx = tx - sx; const dy = ty - sy; @@ -66,7 +66,7 @@ export class GraphRenderer { const x = sx + (mid / e) * dx; const y = sy + (mid / e) * dy; - if (ctx.isPointInPath(path, x, y)) { + if (bgCtx.isPointInPath(path, x, y)) { end = mid - 1; } else { start = mid + 1; @@ -204,8 +204,10 @@ export class GraphRenderer { draw() { const { - ctx, - canvas, + bgCtx, + edgeCtx, + nodeCtx, + moveCtx, options, nodes, edges, @@ -214,10 +216,16 @@ export class GraphRenderer { dragLineSourceNode } = this.state; - ctx.fillStyle = options.bgColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); + bgCtx.fillStyle = options.bgColor; + bgCtx.fillRect(0, 0, bgCtx.canvas.width, bgCtx.canvas.height); + edgeCtx.clearRect(0, 0, edgeCtx.canvas.width, edgeCtx.canvas.height); + nodeCtx.clearRect(0, 0, nodeCtx.canvas.width, nodeCtx.canvas.height); + moveCtx.clearRect(0, 0, moveCtx.canvas.width, moveCtx.canvas.height); - this.applyTransform(); + this.applyTransform(bgCtx); + this.applyTransform(edgeCtx); + this.applyTransform(nodeCtx); + this.applyTransform(moveCtx); if (options.bgShowDots) this.drawBackground(); @@ -229,11 +237,14 @@ export class GraphRenderer { for (const node of Object.values(nodes)) this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); - this.resetTransform(); + this.resetTransform(bgCtx); + this.resetTransform(edgeCtx); + this.resetTransform(nodeCtx); + this.resetTransform(moveCtx); } drawDragLine() { - const { ctx, options, dragLineSourceNode, dragLineX, dragLineY } = + const { edgeCtx, options, dragLineSourceNode, dragLineX, dragLineY } = this.state; if (!dragLineSourceNode) return; @@ -258,30 +269,30 @@ export class GraphRenderer { const lp2x = lsx - ll * sinr; const lp2y = lsy + ll * cosr; - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - - ctx.beginPath(); - ctx.moveTo(sx, sy); - ctx.lineTo(tx, ty); - ctx.stroke(); - - ctx.beginPath(); - ctx.moveTo(tx, ty); - ctx.lineTo(lp1x, lp1y); - ctx.lineTo(lp2x, lp2y); - ctx.closePath(); - ctx.fill(); + edgeCtx.lineWidth = options.edgeLineWidth; + edgeCtx.strokeStyle = options.edgeLineColor; + edgeCtx.fillStyle = options.edgeLineColor; + + edgeCtx.beginPath(); + edgeCtx.moveTo(sx, sy); + edgeCtx.lineTo(tx, ty); + edgeCtx.stroke(); + + edgeCtx.beginPath(); + edgeCtx.moveTo(tx, ty); + edgeCtx.lineTo(lp1x, lp1y); + edgeCtx.lineTo(lp2x, lp2y); + edgeCtx.closePath(); + edgeCtx.fill(); } drawEdge(edge: Edge, hovered = false, selected = false) { - const { ctx, options, drawData } = this.state; + const { edgeCtx, options, drawData } = this.state; const data = drawData[edge.id] as EdgeDrawData; - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = selected + edgeCtx.lineWidth = options.edgeLineWidth; + edgeCtx.strokeStyle = selected ? options.edgeSelectedLineColor : hovered ? options.edgeHoveredLineColor @@ -289,18 +300,18 @@ export class GraphRenderer { // draw edge line if (this.isEdgeLineInView(edge)) { - ctx.stroke(data.linePath); + edgeCtx.stroke(data.linePath); } // draw edge arrow if (this.isEdgeArrowInView(edge)) { - ctx.fillStyle = selected + edgeCtx.fillStyle = selected ? options.edgeSelectedLineColor : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; - ctx.fill(data.arrowPath); + edgeCtx.fill(data.arrowPath); } // draw shape and content @@ -309,22 +320,22 @@ export class GraphRenderer { if (this.isEdgeShapeInView(edge)) { // draw shape - ctx.fillStyle = selected + edgeCtx.fillStyle = selected ? options.edgeSelectedShapeColor : options.edgeShapeColor; - ctx.fill(data.path); - ctx.stroke(data.path); + edgeCtx.fill(data.path); + edgeCtx.stroke(data.path); // draw content - ctx.fillStyle = selected + edgeCtx.fillStyle = selected ? options.edgeSelectedContentColor : options.edgeContentColor; - ctx.textAlign = options.edgeTextAlign; - ctx.textBaseline = options.edgeTextBaseline; - ctx.font = options.edgeFont; + edgeCtx.textAlign = options.edgeTextAlign; + edgeCtx.textBaseline = options.edgeTextBaseline; + edgeCtx.font = options.edgeFont; shape.drawContent( - ctx, + edgeCtx, data.shapeX, data.shapeY, shape.width, @@ -427,7 +438,7 @@ export class GraphRenderer { } drawNode(node: Node, hovered = false, selected = false) { - const { ctx, options, drawData } = this.state; + const { nodeCtx, options, drawData } = this.state; const data = drawData[node.id] as NodeDrawData; @@ -436,37 +447,46 @@ export class GraphRenderer { if (!this.isNodeInView(node)) return; // draw shape - ctx.strokeStyle = selected + nodeCtx.strokeStyle = selected ? options.nodeSelectedLineColor : hovered ? options.nodeHoveredLineColor : options.nodeLineColor; - ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; - ctx.lineWidth = options.nodeLineWidth; + nodeCtx.fillStyle = selected + ? options.nodeSelectedColor + : options.nodeColor; + nodeCtx.lineWidth = options.nodeLineWidth; - ctx.fill(data.path); - ctx.stroke(data.path); + nodeCtx.fill(data.path); + nodeCtx.stroke(data.path); // draw content - ctx.fillStyle = selected + nodeCtx.fillStyle = selected ? options.nodeSelectedContentColor : options.nodeContentColor; - ctx.textAlign = options.nodeTextAlign; - ctx.textBaseline = options.nodeTextBaseline; - ctx.font = options.nodeFont; - - shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); + nodeCtx.textAlign = options.nodeTextAlign; + nodeCtx.textBaseline = options.nodeTextBaseline; + nodeCtx.font = options.nodeFont; + + shape.drawContent( + nodeCtx, + node.x, + node.y, + shape.width, + shape.height, + node.id + ); } drawBackground() { - const { ctx, viewX, viewY, viewW, viewH, options } = this.state; + const { bgCtx, viewX, viewY, viewW, viewH, options } = this.state; const lw = options.bgLineWidth; const gap = options.bgLineGap; - ctx.strokeStyle = options.bgDotColor; - ctx.lineWidth = lw; + bgCtx.strokeStyle = options.bgDotColor; + bgCtx.lineWidth = lw; const bl = viewX - lw * 0.5; const br = viewX + viewW + lw * 0.5; @@ -478,17 +498,17 @@ export class GraphRenderer { const lt = bt - (((bt % gap) - gap) % gap); const lb = bb - (((bb % gap) + gap) % gap); - ctx.beginPath(); + bgCtx.beginPath(); for (let i = ll; i <= lr; i += gap) { - ctx.moveTo(i, lt); - ctx.lineTo(i, lb + gap); + bgCtx.moveTo(i, lt); + bgCtx.lineTo(i, lb + gap); } - ctx.lineCap = "round"; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([]); - ctx.lineCap = "square"; + bgCtx.lineCap = "round"; + bgCtx.setLineDash([0, gap]); + bgCtx.stroke(); + bgCtx.setLineDash([]); + bgCtx.lineCap = "square"; } } diff --git a/src/graph-state.ts b/src/graph-state.ts index eed353f..87e6278 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -8,31 +8,19 @@ import { } from "./types"; export class GraphState { - readonly canvas: HTMLCanvasElement; - readonly ctx: CanvasRenderingContext2D; + // readonly canvas: HTMLCanvasElement; + // readonly ctx: CanvasRenderingContext2D; readonly container: HTMLElement; - // readonly bgCtx: CanvasRenderingContext2D; - // readonly edgeCtx: CanvasRenderingContext2D; - // readonly nodeCtx: CanvasRenderingContext2D; - // readonly moveCtx: CanvasRenderingContext2D; + readonly bgCtx: CanvasRenderingContext2D; + readonly edgeCtx: CanvasRenderingContext2D; + readonly nodeCtx: CanvasRenderingContext2D; + readonly moveCtx: CanvasRenderingContext2D; nodes: Record = {}; edges: Record = {}; drawData: Record = {}; - // nodes: Node[] = []; - // edges: Edge[] = []; - // idMap: Record = {}; - // shapeMap: Record = {}; - // pathMap: Record = {}; - // linePathMap: Record = {}; - // arrowPathMap: Record = {}; - // edgeContentPosMap: Record = {}; - // edgeLinePosMap: Record = {}; - // sourceNodeIdToEdgesMap: Record = {}; - // targetNodeIdToEdgesMap: Record = {}; - options = defaultGraphOptions; translateX = 0; @@ -65,17 +53,35 @@ export class GraphState { this.boundingRect = container.getBoundingClientRect(); this.container = container; - this.canvas = document.createElement("canvas"); - this.canvas.textContent = "Canvas is not supported in your browser."; - this.canvas.width = container.clientWidth; - this.canvas.height = container.clientHeight; + const bgCtx = this.initCtx(false); + const edgeCtx = this.initCtx(); + const nodeCtx = this.initCtx(); + const moveCtx = this.initCtx(); - const ctx = this.canvas.getContext("2d", { alpha: false }); - if (!ctx) { + if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx) { throw "Canvas is not supported in your browser."; } - this.ctx = ctx; + this.bgCtx = bgCtx; + this.edgeCtx = edgeCtx; + this.nodeCtx = nodeCtx; + this.moveCtx = moveCtx; + } + + initCtx(alpha = true) { + const { container } = this; + + const canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + canvas.style.top = "0"; + canvas.style.left = "0"; + canvas.textContent = "Canvas is not supported in your browser."; + canvas.width = container.clientWidth; + canvas.height = container.clientHeight; + + const ctx = canvas.getContext("2d", { alpha }); + + return ctx; } createCanvas(container: HTMLElement): CanvasRenderingContext2D { @@ -84,7 +90,8 @@ export class GraphState { canvas.textContent = "Canvas is not supported in your browser."; canvas.width = container.clientWidth; canvas.height = container.clientHeight; - const ctx = this.canvas.getContext("2d", { alpha: false }); + + const ctx = canvas.getContext("2d", { alpha: false }); if (!ctx) { throw "Canvas is not supported in your browser."; @@ -96,11 +103,11 @@ export class GraphState { } setView() { - const { canvas, translateX, translateY, scale } = this; + const { container, translateX, translateY, scale } = this; this.viewX = -translateX / scale; this.viewY = -translateY / scale; - this.viewW = canvas.width / scale; - this.viewH = canvas.height / scale; + this.viewW = container.clientWidth / scale; + this.viewH = container.clientHeight / scale; } } diff --git a/src/graph-view.ts b/src/graph-view.ts index 3585b48..e6fcc47 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -9,8 +9,7 @@ import { GraphShape, GraphOptions, GraphDataType, - NodeDrawData, - EdgeDrawData + NodeDrawData } from "./types"; export function createNodeShape(shape?: Partial): GraphShape { @@ -39,7 +38,10 @@ export class GraphView { this.renderer.requestDraw(); - container.appendChild(this.state.canvas); + container.appendChild(this.state.bgCtx.canvas); + container.appendChild(this.state.edgeCtx.canvas); + container.appendChild(this.state.nodeCtx.canvas); + container.appendChild(this.state.moveCtx.canvas); this.handler.init(); } @@ -411,7 +413,7 @@ export class GraphView { zoomTo(value: number, targetX?: number, targetY?: number) { const { scale, translateX, translateY, options } = this.state; - const { width, height } = this.state.canvas; + const { width, height } = this.state.bgCtx.canvas; targetX = targetX || (width * 0.5 - translateX) / scale; targetY = targetY || (height * 0.5 - translateY) / scale; @@ -432,11 +434,17 @@ export class GraphView { this.renderer.requestDraw(); } - resize(width: number, height: number): void { - this.state.canvas.width = width; - this.state.canvas.height = height; + resize(): void { + this.state.bgCtx.canvas.width = this.state.container.clientWidth; + this.state.bgCtx.canvas.height = this.state.container.clientHeight; + this.state.edgeCtx.canvas.width = this.state.container.clientWidth; + this.state.edgeCtx.canvas.height = this.state.container.clientHeight; + this.state.nodeCtx.canvas.width = this.state.container.clientWidth; + this.state.nodeCtx.canvas.height = this.state.container.clientHeight; + this.state.moveCtx.canvas.width = this.state.container.clientWidth; + this.state.moveCtx.canvas.height = this.state.container.clientHeight; - this.state.boundingRect = this.state.canvas.getBoundingClientRect(); + this.state.boundingRect = this.state.container.getBoundingClientRect(); this.renderer.requestDraw(); } From 0a7f37c9ea02c656f219fa14f26046ae76f47853 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 16 Nov 2022 00:34:44 +0700 Subject: [PATCH 27/56] use resizeobserver --- example/index.ts | 5 ----- src/graph-view.ts | 38 +++++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/example/index.ts b/example/index.ts index 10c1bd8..af37ef7 100644 --- a/example/index.ts +++ b/example/index.ts @@ -90,11 +90,6 @@ function main() { } }); - window.addEventListener("resize", () => { - graphView.resize(); - // graphView.resize(graphDiv.clientWidth, graphDiv.clientHeight); - }); - graphDiv.addEventListener("mousedown", e => { const pos = graphView.getViewPosFromWindowPos(e.x, e.y); const hoveredId = graphView.getHoveredId(); diff --git a/src/graph-view.ts b/src/graph-view.ts index e6fcc47..8bf3252 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -43,6 +43,14 @@ export class GraphView { container.appendChild(this.state.nodeCtx.canvas); container.appendChild(this.state.moveCtx.canvas); + const resizeObserver = new ResizeObserver(() => { + requestAnimationFrame(() => { + this.resize(); + }); + }); + + resizeObserver.observe(container); + this.handler.init(); } @@ -50,6 +58,21 @@ export class GraphView { this.handler.destroy(); } + resize(): void { + this.state.bgCtx.canvas.width = this.state.container.clientWidth; + this.state.bgCtx.canvas.height = this.state.container.clientHeight; + this.state.edgeCtx.canvas.width = this.state.container.clientWidth; + this.state.edgeCtx.canvas.height = this.state.container.clientHeight; + this.state.nodeCtx.canvas.width = this.state.container.clientWidth; + this.state.nodeCtx.canvas.height = this.state.container.clientHeight; + this.state.moveCtx.canvas.width = this.state.container.clientWidth; + this.state.moveCtx.canvas.height = this.state.container.clientHeight; + + this.state.boundingRect = this.state.container.getBoundingClientRect(); + + this.renderer.requestDrawHandler(); + } + beginDragLine() { const { hoveredId, nodes } = this.state; @@ -434,21 +457,6 @@ export class GraphView { this.renderer.requestDraw(); } - resize(): void { - this.state.bgCtx.canvas.width = this.state.container.clientWidth; - this.state.bgCtx.canvas.height = this.state.container.clientHeight; - this.state.edgeCtx.canvas.width = this.state.container.clientWidth; - this.state.edgeCtx.canvas.height = this.state.container.clientHeight; - this.state.nodeCtx.canvas.width = this.state.container.clientWidth; - this.state.nodeCtx.canvas.height = this.state.container.clientHeight; - this.state.moveCtx.canvas.width = this.state.container.clientWidth; - this.state.moveCtx.canvas.height = this.state.container.clientHeight; - - this.state.boundingRect = this.state.container.getBoundingClientRect(); - - this.renderer.requestDraw(); - } - getViewPosFromWindowPos(windowX: number, windowY: number) { const { left, top } = this.state.boundingRect; const { scale, translateX, translateY } = this.state; From a1eb870b633c2d0536fe05b26d6a815298d1b7c5 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 16 Nov 2022 14:16:11 +0700 Subject: [PATCH 28/56] updates --- src/graph-handler.ts | 21 ++-- src/graph-renderer.ts | 226 +++++++++++++++++++++++++----------------- src/graph-state.ts | 2 +- src/graph-view.ts | 115 ++++++++++++--------- 4 files changed, 210 insertions(+), 154 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 07b810d..bb02940 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -34,16 +34,17 @@ export class GraphHandler { } const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + const cp = this.view.getCanvasPosFromWindowPos(e.x, e.y); if (dragLineSourceNode) { this.state.dragLineX = vp[0]; this.state.dragLineY = vp[1]; - this.renderer.requestDraw(); + requestAnimationFrame(this.renderer.drawDragLine); } if (moveNodeIds.length === 0) { - this.checkHover(vp[0], vp[1]); + requestAnimationFrame(() => this.checkHover(cp[0], cp[1])); return; } @@ -80,7 +81,7 @@ export class GraphHandler { } private checkHover(vx: number, vy: number) { - const { nodes, edges, selectedIdMap, nodeCtx, edgeCtx } = this.state; + const { nodes, edges } = this.state; const prevId = this.state.hoveredId; this.state.hoveredId = 0; @@ -107,27 +108,21 @@ export class GraphHandler { const prev = this.state.drawData[prevId]; const curr = this.state.drawData[currId]; - this.renderer.applyTransform(nodeCtx); - this.renderer.applyTransform(edgeCtx); - if (prev) { if (prev.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[prevId], false, selectedIdMap[prevId]); + this.renderer.drawNode(nodes[prevId]); } else if (prev.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[prevId], false, selectedIdMap[prevId]); + this.renderer.drawEdge(edges[prevId]); } } if (curr) { if (curr.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[currId], true, selectedIdMap[currId]); + this.renderer.drawNode(nodes[currId]); } else if (curr.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[currId], true, selectedIdMap[currId]); + this.renderer.drawEdge(edges[currId]); } } - - this.renderer.resetTransform(nodeCtx); - this.renderer.resetTransform(edgeCtx); } handleWheel = (e: WheelEvent) => { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 2ffe4a3..b6d937b 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -19,17 +19,6 @@ export class GraphRenderer { this.state = state; } - applyTransform(ctx: CanvasRenderingContext2D) { - const { scale, translateX, translateY } = this.state; - - ctx.setTransform(scale, 0, 0, scale, translateX, translateY); - this.state.setView(); - } - - resetTransform(ctx: CanvasRenderingContext2D) { - ctx.setTransform(1, 0, 0, 1, 0, 0); - } - requestDraw() { if (!this.state.isDrawing) { requestAnimationFrame(this.requestDrawHandler); @@ -40,9 +29,21 @@ export class GraphRenderer { requestDrawHandler = () => { this.state.isDrawing = false; - this.draw(); + this.drawAll(); }; + applyTransform() { + const { scale, translateX, translateY, bgCtx, nodeCtx, edgeCtx, moveCtx } = + this.state; + + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + + this.state.setView(); + } + getIntersectionPoint( sx: number, sy: number, @@ -65,8 +66,9 @@ export class GraphRenderer { const x = sx + (mid / e) * dx; const y = sy + (mid / e) * dy; + const [cx, cy] = this.view.getCanvasPosFromViewPos(x, y); - if (bgCtx.isPointInPath(path, x, y)) { + if (bgCtx.isPointInPath(path, cx, cy)) { end = mid - 1; } else { start = mid + 1; @@ -202,53 +204,82 @@ export class GraphRenderer { return p; } - draw() { + clear = (ctx: CanvasRenderingContext2D) => { + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + }; + + drawAll = () => { const { - bgCtx, edgeCtx, nodeCtx, moveCtx, - options, nodes, edges, - hoveredId, - selectedIdMap, - dragLineSourceNode + dragLineSourceNode, + viewX, + viewY, + viewW, + viewH } = this.state; - bgCtx.fillStyle = options.bgColor; - bgCtx.fillRect(0, 0, bgCtx.canvas.width, bgCtx.canvas.height); - edgeCtx.clearRect(0, 0, edgeCtx.canvas.width, edgeCtx.canvas.height); - nodeCtx.clearRect(0, 0, nodeCtx.canvas.width, nodeCtx.canvas.height); - moveCtx.clearRect(0, 0, moveCtx.canvas.width, moveCtx.canvas.height); + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + moveCtx.clearRect(viewX, viewY, viewW, viewH); - this.applyTransform(bgCtx); - this.applyTransform(edgeCtx); - this.applyTransform(nodeCtx); - this.applyTransform(moveCtx); - - if (options.bgShowDots) this.drawBackground(); + this.drawBackground(); if (dragLineSourceNode) this.drawDragLine(); - for (const edge of Object.values(edges)) - this.drawEdge(edge, hoveredId === edge.id, selectedIdMap[edge.id]); + for (const edge of Object.values(edges)) this.drawEdge(edge); + for (const node of Object.values(nodes)) this.drawNode(node); + }; - for (const node of Object.values(nodes)) - this.drawNode(node, hoveredId === node.id, selectedIdMap[node.id]); + redrawNodes = () => { + const { nodes, nodeCtx, viewX, viewY, viewW, viewH } = this.state; - this.resetTransform(bgCtx); - this.resetTransform(edgeCtx); - this.resetTransform(nodeCtx); - this.resetTransform(moveCtx); - } + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + for (const node of Object.values(nodes)) this.drawNode(node); + }; - drawDragLine() { - const { edgeCtx, options, dragLineSourceNode, dragLineX, dragLineY } = - this.state; + redrawEdges = () => { + const { edges, edgeCtx, viewX, viewY, viewW, viewH } = this.state; + + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + for (const edge of Object.values(edges)) this.drawEdge(edge); + }; + + clearNodes = () => { + const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearEdges = () => { + const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearMove = () => { + const { moveCtx, viewX, viewY, viewW, viewH } = this.state; + moveCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + drawDragLine = () => { + const { + moveCtx, + options, + dragLineSourceNode, + dragLineX, + dragLineY, + viewX, + viewY, + viewW, + viewH + } = this.state; if (!dragLineSourceNode) return; + moveCtx.clearRect(viewX, viewY, viewW, viewH); + const sx = dragLineSourceNode.x; const sy = dragLineSourceNode.y; const tx = dragLineX; @@ -269,26 +300,29 @@ export class GraphRenderer { const lp2x = lsx - ll * sinr; const lp2y = lsy + ll * cosr; - edgeCtx.lineWidth = options.edgeLineWidth; - edgeCtx.strokeStyle = options.edgeLineColor; - edgeCtx.fillStyle = options.edgeLineColor; - - edgeCtx.beginPath(); - edgeCtx.moveTo(sx, sy); - edgeCtx.lineTo(tx, ty); - edgeCtx.stroke(); - - edgeCtx.beginPath(); - edgeCtx.moveTo(tx, ty); - edgeCtx.lineTo(lp1x, lp1y); - edgeCtx.lineTo(lp2x, lp2y); - edgeCtx.closePath(); - edgeCtx.fill(); - } + moveCtx.lineWidth = options.edgeLineWidth; + moveCtx.strokeStyle = options.edgeLineColor; + moveCtx.fillStyle = options.edgeLineColor; + + moveCtx.beginPath(); + moveCtx.moveTo(sx, sy); + moveCtx.lineTo(tx, ty); + moveCtx.stroke(); + + moveCtx.beginPath(); + moveCtx.moveTo(tx, ty); + moveCtx.lineTo(lp1x, lp1y); + moveCtx.lineTo(lp2x, lp2y); + moveCtx.closePath(); + moveCtx.fill(); + }; - drawEdge(edge: Edge, hovered = false, selected = false) { + drawEdge(edge: Edge) { const { edgeCtx, options, drawData } = this.state; + const selected = this.state.selectedIds.has(edge.id); + const hovered = this.state.hoveredId === edge.id; + const data = drawData[edge.id] as EdgeDrawData; edgeCtx.lineWidth = options.edgeLineWidth; @@ -437,51 +471,59 @@ export class GraphRenderer { ); } - drawNode(node: Node, hovered = false, selected = false) { + drawNode(node: Node) { const { nodeCtx, options, drawData } = this.state; + const selected = this.state.selectedIds.has(node.id); + const hovered = this.state.hoveredId === node.id; + const data = drawData[node.id] as NodeDrawData; // check is in view const shape = data.shape; - if (!this.isNodeInView(node)) return; + if (this.isNodeInView(node)) { + // draw shape + nodeCtx.strokeStyle = selected + ? options.nodeSelectedLineColor + : hovered + ? options.nodeHoveredLineColor + : options.nodeLineColor; + nodeCtx.fillStyle = selected + ? options.nodeSelectedColor + : options.nodeColor; + nodeCtx.lineWidth = options.nodeLineWidth; - // draw shape - nodeCtx.strokeStyle = selected - ? options.nodeSelectedLineColor - : hovered - ? options.nodeHoveredLineColor - : options.nodeLineColor; - nodeCtx.fillStyle = selected - ? options.nodeSelectedColor - : options.nodeColor; - nodeCtx.lineWidth = options.nodeLineWidth; - - nodeCtx.fill(data.path); - nodeCtx.stroke(data.path); - - // draw content - - nodeCtx.fillStyle = selected - ? options.nodeSelectedContentColor - : options.nodeContentColor; - nodeCtx.textAlign = options.nodeTextAlign; - nodeCtx.textBaseline = options.nodeTextBaseline; - nodeCtx.font = options.nodeFont; - - shape.drawContent( - nodeCtx, - node.x, - node.y, - shape.width, - shape.height, - node.id - ); + nodeCtx.fill(data.path); + nodeCtx.stroke(data.path); + + // draw content + + nodeCtx.fillStyle = selected + ? options.nodeSelectedContentColor + : options.nodeContentColor; + nodeCtx.textAlign = options.nodeTextAlign; + nodeCtx.textBaseline = options.nodeTextBaseline; + nodeCtx.font = options.nodeFont; + + shape.drawContent( + nodeCtx, + node.x, + node.y, + shape.width, + shape.height, + node.id + ); + } } drawBackground() { const { bgCtx, viewX, viewY, viewW, viewH, options } = this.state; + bgCtx.fillStyle = options.bgColor; + bgCtx.fillRect(viewX, viewY, viewW, viewH); + + if (!options.bgShowDots) return; + const lw = options.bgLineWidth; const gap = options.bgLineGap; diff --git a/src/graph-state.ts b/src/graph-state.ts index 87e6278..b2d51e3 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -36,7 +36,7 @@ export class GraphState { isDrawing = false; isMovingView = false; hoveredId = 0; - selectedIdMap: Record = {}; + selectedIds = new Set(); moveNodeIds: number[] = []; moveX = 0; moveY = 0; diff --git a/src/graph-view.ts b/src/graph-view.ts index 8bf3252..9e294c5 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -36,7 +36,8 @@ export class GraphView { this.renderer = new GraphRenderer(this, this.state); this.handler = new GraphHandler(this, this.state, this.renderer); - this.renderer.requestDraw(); + this.renderer.applyTransform(); + this.renderer.drawAll(); container.appendChild(this.state.bgCtx.canvas); container.appendChild(this.state.edgeCtx.canvas); @@ -44,9 +45,7 @@ export class GraphView { container.appendChild(this.state.moveCtx.canvas); const resizeObserver = new ResizeObserver(() => { - requestAnimationFrame(() => { - this.resize(); - }); + this.resize(); }); resizeObserver.observe(container); @@ -70,7 +69,8 @@ export class GraphView { this.state.boundingRect = this.state.container.getBoundingClientRect(); - this.renderer.requestDrawHandler(); + this.renderer.applyTransform(); + this.renderer.drawAll(); } beginDragLine() { @@ -90,6 +90,8 @@ export class GraphView { endDragLine(): [Node, Node] | undefined { const { hoveredId, nodes } = this.state; + this.renderer.clearMove(); + if (!this.state.dragLineSourceNode) return; let r = 0; @@ -101,8 +103,6 @@ export class GraphView { this.state.dragLineSourceNode = undefined; - this.renderer.requestDraw(); - const rn = nodes[r]; return rn ? [s, rn] : undefined; } @@ -123,8 +123,6 @@ export class GraphView { endMoveNodes() { this.state.moveNodeIds.length = 0; - - this.renderer.requestDraw(); } getHoveredId() { @@ -132,27 +130,53 @@ export class GraphView { } select(id: number) { - this.state.selectedIdMap = { [id]: true }; - this.renderer.requestDraw(); + const { nodes, edges, selectedIds } = this.state; + + const affectedIds = Array.from(selectedIds); + affectedIds.push(id); + + selectedIds.clear(); + selectedIds.add(id); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } } addSelection(id: number) { - this.state.selectedIdMap[id] = true; - this.renderer.requestDraw(); + const { nodes, edges, selectedIds } = this.state; + + selectedIds.add(id); + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); } removeSelection(id: number) { - delete this.state.selectedIdMap[id]; - this.renderer.requestDraw(); + const { nodes, edges, selectedIds } = this.state; + + selectedIds.delete(id); + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); } clearSelection() { - this.state.selectedIdMap = {}; - this.renderer.requestDraw(); + const { nodes, edges, selectedIds } = this.state; + + const affectedIds = Array.from(selectedIds); + + selectedIds.clear(); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } } getSelection() { - return Object.keys(this.state.selectedIdMap).map(k => Number(k)); + return Array.from(this.state.selectedIds); } getSelectedNodeIds() { @@ -190,7 +214,7 @@ export class GraphView { targetOfEdgeIds: new Set() }; - this.renderer.requestDraw(); + this.renderer.drawNode(node); return true; } @@ -201,17 +225,25 @@ export class GraphView { if (nodes[edge.id] || edges[edge.id]) return false; if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; + const snd = drawData[edge.sourceId] as NodeDrawData; + const tnd = drawData[edge.targetId] as NodeDrawData; + + for (const eid of snd.sourceOfEdgeIds) { + if (edges[eid].targetId === edge.targetId) return false; + } + + for (const eid of tnd.targetOfEdgeIds) { + if (edges[eid].sourceId === edge.sourceId) return false; + } + edges[edge.id] = edge; - const snd = drawData[edge.sourceId] as NodeDrawData; snd.sourceOfEdgeIds.add(edge.id); - - const tnd = drawData[edge.targetId] as NodeDrawData; tnd.targetOfEdgeIds.add(edge.id); this.renderer.createEdgePath(edge, shape); - this.renderer.requestDraw(); + this.renderer.drawEdge(edge); return true; } @@ -291,7 +323,7 @@ export class GraphView { (edge.sourceId && edge.sourceId !== cur.sourceId) || (edge.targetId && edge.targetId !== cur.targetId) ) { - this.renderer.requestDraw(); + this.renderer.redrawEdges(); } for (const k in edge) { @@ -327,7 +359,7 @@ export class GraphView { delete this.state.nodes[id]; delete this.state.drawData[id]; - this.renderer.requestDraw(); + this.renderer.redrawNodes(); return true; } @@ -347,7 +379,7 @@ export class GraphView { delete this.state.edges[id]; delete this.state.drawData[id]; - this.renderer.requestDraw(); + this.renderer.redrawEdges(); return true; } @@ -371,43 +403,26 @@ export class GraphView { this.state.nodes = {}; this.state.edges = {}; this.state.drawData = {}; + this.state.selectedIds.clear(); + this.state.moveNodeIds = []; + this.state.dragLineSourceNode = undefined; - this.renderer.requestDraw(); + this.renderer.clearNodes(); + this.renderer.clearEdges(); } getTranslateX() { return this.state.translateX; } - setTranslateX(v: number) { - if (v === this.state.translateX) return; - - this.state.translateX = v; - this.renderer.requestDraw(); - } - getTranslateY() { return this.state.translateY; } - setTranslateY(v: number) { - if (v === this.state.translateY) return; - - this.state.translateY = v; - this.renderer.requestDraw(); - } - getScale() { return this.state.scale; } - setScale(v: number) { - if (v === this.state.scale) return; - - this.state.scale = v; - this.renderer.requestDraw(); - } - setTransform(translateX: number, translateY: number, scale: number) { if ( translateX === this.state.translateX && @@ -420,6 +435,7 @@ export class GraphView { this.state.translateY = translateY; this.state.scale = scale; + this.renderer.applyTransform(); this.renderer.requestDraw(); } @@ -427,6 +443,7 @@ export class GraphView { this.state.translateX += x; this.state.translateY += y; + this.renderer.applyTransform(); this.renderer.requestDraw(); } @@ -454,6 +471,8 @@ export class GraphView { this.state.translateX += offsetX; this.state.translateY += offsetY; + this.renderer.applyTransform(); + this.renderer.requestDraw(); } From e58c2bb1b4e7cb05b2c6ac01fc154d17ed3a7b48 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 16 Nov 2022 20:53:10 +0700 Subject: [PATCH 29/56] move node and try draw region --- example/index.ts | 4 +- src/graph-handler.ts | 2 + src/graph-renderer.ts | 318 ++++++++++++++++++++++++++++++------------ src/graph-view.ts | 78 ++++++++++- 4 files changed, 305 insertions(+), 97 deletions(-) diff --git a/example/index.ts b/example/index.ts index af37ef7..5156961 100644 --- a/example/index.ts +++ b/example/index.ts @@ -95,8 +95,8 @@ function main() { const hoveredId = graphView.getHoveredId(); if (hoveredId) { - // graphView.addSelection(hoveredId); - graphView.select(hoveredId); + graphView.addSelection(hoveredId); + // graphView.select(hoveredId); } else { graphView.clearSelection(); } diff --git a/src/graph-handler.ts b/src/graph-handler.ts index bb02940..629670b 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -55,6 +55,8 @@ export class GraphHandler { this.state.moveX = vp[0]; this.state.moveY = vp[1]; + this.renderer.clearMove(); + for (const id of moveNodeIds) { this.view.moveNode(id, dx, dy); } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index b6d937b..2d3ded9 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -208,44 +208,127 @@ export class GraphRenderer { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); }; - drawAll = () => { - const { - edgeCtx, - nodeCtx, - moveCtx, - nodes, - edges, - dragLineSourceNode, - viewX, - viewY, - viewW, - viewH - } = this.state; + drawUncoveredRegion = ( + ovx: number, + ovy: number, + ovw: number, + ovh: number, + nvx = this.state.viewX, + nvy = this.state.viewY, + nvw = this.state.viewW, + nvh = this.state.viewH + ) => { + const ovt = ovy; + const ovr = ovx + ovw; + const ovb = ovy + ovh; + const ovl = ovx; + + const nvt = nvy; + const nvr = nvx + nvw; + const nvb = nvy + nvh; + const nvl = nvx; + + // const ct = Math.max(ovt, nvt); + // const cr = Math.min(ovr, nvr); + // const cb = Math.min(ovb, nvb); + // const cl = Math.max(ovl, nvl); + + const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; + + bgCtx.drawImage(bgCtx.canvas, ovx, ovy); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); + moveCtx.drawImage(edgeCtx.canvas, nvx, nvy, nvw, nvh); + edgeCtx.clearRect(nvx, nvy, nvw, nvh); + edgeCtx.drawImage(moveCtx.canvas, ovx, ovy); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); + moveCtx.drawImage(nodeCtx.canvas, nvx, nvy, nvw, nvh); + nodeCtx.clearRect(nvx, nvy, nvw, nvh); + nodeCtx.drawImage(moveCtx.canvas, ovx, ovy); + + if (nvt < ovt) { + const tt = nvt; + const tr = nvr; + const tb = ovt; + const tl = nvl; + + // console.log("atas"); + this.drawAll(tl, tt, tr - tl, tb - tt); + } - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - moveCtx.clearRect(viewX, viewY, viewW, viewH); + if (nvr > ovr) { + const rt = Math.max(nvt, ovt); + const rr = nvr; + const rb = Math.min(nvb, ovb); + const rl = ovr; - this.drawBackground(); + // console.log("kanan"); + this.drawAll(rl, rt, rr - rl, rb - rt); + } + + if (nvb > ovb) { + const bt = ovb; + const br = nvr; + const bb = nvb; + const bl = nvl; + + // console.log(bt, br, bb, bl); + this.drawAll(bl, bt, br - bl, bb - bt); + } - if (dragLineSourceNode) this.drawDragLine(); + if (nvl < ovl) { + const lt = Math.max(nvt, ovt); + const lr = ovl; + const lb = Math.min(nvb, ovb); + const ll = nvl; - for (const edge of Object.values(edges)) this.drawEdge(edge); - for (const node of Object.values(nodes)) this.drawNode(node); + // console.log(lt, lr, lb, ll); + this.drawAll(ll, lt, lr - ll, lb - lt); + } }; - redrawNodes = () => { + drawAll = ( + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) => { + const { edgeCtx, nodeCtx, nodes, edges } = this.state; + + nodeCtx.clearRect(vx, vy, vw, vh); + edgeCtx.clearRect(vx, vy, vw, vh); + + this.drawBackground(vx, vy, vw, vh); + + for (const edge of Object.values(edges)) + this.drawEdge(edge, false, vx, vy, vw, vh); + for (const node of Object.values(nodes)) + this.drawNode(node, false, vx, vy, vw, vh); + }; + + redrawNodes = (excludeIds?: Set) => { const { nodes, nodeCtx, viewX, viewY, viewW, viewH } = this.state; nodeCtx.clearRect(viewX, viewY, viewW, viewH); - for (const node of Object.values(nodes)) this.drawNode(node); + + for (const node of Object.values(nodes)) { + if (excludeIds && excludeIds.has(node.id)) continue; + + this.drawNode(node); + } }; - redrawEdges = () => { + redrawEdges = (excludeIds?: Set) => { const { edges, edgeCtx, viewX, viewY, viewW, viewH } = this.state; edgeCtx.clearRect(viewX, viewY, viewW, viewH); - for (const edge of Object.values(edges)) this.drawEdge(edge); + + for (const edge of Object.values(edges)) { + if (excludeIds && excludeIds.has(edge.id)) continue; + + this.drawEdge(edge); + } }; clearNodes = () => { @@ -317,59 +400,68 @@ export class GraphRenderer { moveCtx.fill(); }; - drawEdge(edge: Edge) { - const { edgeCtx, options, drawData } = this.state; + drawEdge( + edge: Edge, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { edgeCtx, moveCtx, options, drawData } = this.state; + + const ctx = isMove ? moveCtx : edgeCtx; const selected = this.state.selectedIds.has(edge.id); const hovered = this.state.hoveredId === edge.id; const data = drawData[edge.id] as EdgeDrawData; - edgeCtx.lineWidth = options.edgeLineWidth; - edgeCtx.strokeStyle = selected + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = selected ? options.edgeSelectedLineColor : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; // draw edge line - if (this.isEdgeLineInView(edge)) { - edgeCtx.stroke(data.linePath); + if (this.isEdgeLineInView(edge, vx, vy, vw, vh)) { + ctx.stroke(data.linePath); } // draw edge arrow - if (this.isEdgeArrowInView(edge)) { - edgeCtx.fillStyle = selected + if (this.isEdgeArrowInView(edge, vx, vy, vw, vh)) { + ctx.fillStyle = selected ? options.edgeSelectedLineColor : hovered ? options.edgeHoveredLineColor : options.edgeLineColor; - edgeCtx.fill(data.arrowPath); + ctx.fill(data.arrowPath); } // draw shape and content const shape = data.shape; - if (this.isEdgeShapeInView(edge)) { + if (this.isEdgeShapeInView(edge, vx, vy, vw, vh)) { // draw shape - edgeCtx.fillStyle = selected + ctx.fillStyle = selected ? options.edgeSelectedShapeColor : options.edgeShapeColor; - edgeCtx.fill(data.path); - edgeCtx.stroke(data.path); + ctx.fill(data.path); + ctx.stroke(data.path); // draw content - edgeCtx.fillStyle = selected + ctx.fillStyle = selected ? options.edgeSelectedContentColor : options.edgeContentColor; - edgeCtx.textAlign = options.edgeTextAlign; - edgeCtx.textBaseline = options.edgeTextBaseline; - edgeCtx.font = options.edgeFont; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; shape.drawContent( - edgeCtx, + ctx, data.shapeX, data.shapeY, shape.width, @@ -379,8 +471,14 @@ export class GraphRenderer { } } - isNodeInView(node: Node) { - const { drawData, viewX, viewY, viewW, viewH } = this.state; + isNodeInView( + node: Node, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { drawData } = this.state; const { shape } = drawData[node.id] as NodeDrawData; @@ -389,23 +487,35 @@ export class GraphRenderer { node.y - shape.height * 0.5, shape.width, shape.height, - viewX, - viewY, - viewW, - viewH + vx, + vy, + vw, + vh ); } - isEdgeInView(edge: Edge) { + isEdgeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { return ( - this.isEdgeArrowInView(edge) || - this.isEdgeLineInView(edge) || - this.isEdgeShapeInView(edge) + this.isEdgeArrowInView(edge, vx, vy, vw, vh) || + this.isEdgeLineInView(edge, vx, vy, vw, vh) || + this.isEdgeShapeInView(edge, vx, vy, vw, vh) ); } - isEdgeLineInView(edge: Edge) { - const { options, viewX, viewY, viewW, viewH, drawData } = this.state; + isEdgeLineInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; const data = drawData[edge.id] as EdgeDrawData; @@ -415,10 +525,10 @@ export class GraphRenderer { const ty = data.lineTargetY; const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - const vx = viewX - lsz; - const vy = viewY - lsz; - const vw = viewW + lsz * 2; - const vh = viewH + lsz * 2; + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; return ( isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || @@ -429,33 +539,45 @@ export class GraphRenderer { ); } - isEdgeArrowInView(edge: Edge) { - const { options, drawData, viewX, viewY, viewW, viewH } = this.state; + isEdgeArrowInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; const data = drawData[edge.id] as EdgeDrawData; const tx = data.lineTargetX; const ty = data.lineTargetY; const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - const vx = viewX - lsz; - const vy = viewY - lsz; - const vw = viewW + lsz * 2; - const vh = viewH + lsz * 2; + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); } - isEdgeShapeInView(edge: Edge) { - const { options, drawData, viewX, viewY, viewW, viewH } = this.state; + isEdgeShapeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; const data = drawData[edge.id] as EdgeDrawData; const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - const vx = viewX - lsz; - const vy = viewY - lsz; - const vw = viewW + lsz * 2; - const vh = viewH + lsz * 2; + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; const shape = data.shape; @@ -471,8 +593,17 @@ export class GraphRenderer { ); } - drawNode(node: Node) { - const { nodeCtx, options, drawData } = this.state; + drawNode( + node: Node, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { nodeCtx, moveCtx, options, drawData } = this.state; + + const ctx = isMove ? moveCtx : nodeCtx; const selected = this.state.selectedIds.has(node.id); const hovered = this.state.hoveredId === node.id; @@ -481,32 +612,30 @@ export class GraphRenderer { // check is in view const shape = data.shape; - if (this.isNodeInView(node)) { + if (this.isNodeInView(node, vx, vy, vw, vh)) { // draw shape - nodeCtx.strokeStyle = selected + ctx.strokeStyle = selected ? options.nodeSelectedLineColor : hovered ? options.nodeHoveredLineColor : options.nodeLineColor; - nodeCtx.fillStyle = selected - ? options.nodeSelectedColor - : options.nodeColor; - nodeCtx.lineWidth = options.nodeLineWidth; + ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; - nodeCtx.fill(data.path); - nodeCtx.stroke(data.path); + ctx.fill(data.path); + ctx.stroke(data.path); // draw content - nodeCtx.fillStyle = selected + ctx.fillStyle = selected ? options.nodeSelectedContentColor : options.nodeContentColor; - nodeCtx.textAlign = options.nodeTextAlign; - nodeCtx.textBaseline = options.nodeTextBaseline; - nodeCtx.font = options.nodeFont; + ctx.textAlign = options.nodeTextAlign; + ctx.textBaseline = options.nodeTextBaseline; + ctx.font = options.nodeFont; shape.drawContent( - nodeCtx, + ctx, node.x, node.y, shape.width, @@ -516,11 +645,16 @@ export class GraphRenderer { } } - drawBackground() { - const { bgCtx, viewX, viewY, viewW, viewH, options } = this.state; + drawBackground( + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { bgCtx, options } = this.state; bgCtx.fillStyle = options.bgColor; - bgCtx.fillRect(viewX, viewY, viewW, viewH); + bgCtx.fillRect(vx, vy, vw, vh); if (!options.bgShowDots) return; @@ -530,10 +664,10 @@ export class GraphRenderer { bgCtx.strokeStyle = options.bgDotColor; bgCtx.lineWidth = lw; - const bl = viewX - lw * 0.5; - const br = viewX + viewW + lw * 0.5; - const bt = viewY - lw * 0.5; - const bb = viewY + viewH + lw * 0.5; + const bl = vx - lw * 0.5; + const br = vx + vw + lw * 0.5; + const bt = vy - lw * 0.5; + const bb = vy + vh + lw * 0.5; const ll = bl - (((bl % gap) - gap) % gap); const lr = br - (((br % gap) + gap) % gap); diff --git a/src/graph-view.ts b/src/graph-view.ts index 9e294c5..319deef 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -116,12 +116,70 @@ export class GraphView { } beginMoveNodes(nodeIds: number[], vx: number, vy: number) { + const { drawData, nodes, edges } = this.state; + + const affectedIds = new Set(nodeIds); + + this.renderer.redrawNodes(affectedIds); + + affectedIds.clear(); + + for (const id of nodeIds) { + const dd = drawData[id] as NodeDrawData; + + for (const eid of dd.sourceOfEdgeIds) { + affectedIds.add(eid); + } + + for (const eid of dd.targetOfEdgeIds) { + affectedIds.add(eid); + } + } + + this.renderer.redrawEdges(affectedIds); + + for (const eid of affectedIds) { + this.renderer.drawEdge(edges[eid], true); + } + + for (const nid of nodeIds) { + this.renderer.drawNode(nodes[nid], true); + } + this.state.moveNodeIds = nodeIds; this.state.moveX = vx; this.state.moveY = vy; } endMoveNodes() { + const { moveNodeIds, drawData, nodes, edges } = this.state; + + for (const id of moveNodeIds) { + this.renderer.drawNode(nodes[id]); + } + + const isRendered: Record = {}; + + for (const id of moveNodeIds) { + const dd = drawData[id] as NodeDrawData; + + for (const eid of dd.sourceOfEdgeIds) { + if (isRendered[eid]) continue; + + isRendered[eid] = true; + this.renderer.drawEdge(edges[eid]); + } + + for (const eid of dd.targetOfEdgeIds) { + if (isRendered[eid]) continue; + + isRendered[eid] = true; + this.renderer.drawEdge(edges[eid]); + } + } + + this.renderer.clearMove(); + this.state.moveNodeIds.length = 0; } @@ -276,6 +334,8 @@ export class GraphView { const edd = drawData[edgeId]; this.renderer.createEdgePath(edge, edd.shape); + + this.renderer.drawEdge(edge, true); } for (const edgeId of ndd.targetOfEdgeIds) { @@ -283,9 +343,11 @@ export class GraphView { const edd = drawData[edgeId]; this.renderer.createEdgePath(edge, edd.shape); + + this.renderer.drawEdge(edge, true); } - this.renderer.requestDraw(); + this.renderer.drawNode(node, true); return true; } @@ -359,7 +421,7 @@ export class GraphView { delete this.state.nodes[id]; delete this.state.drawData[id]; - this.renderer.redrawNodes(); + requestAnimationFrame(() => this.renderer.redrawNodes()); return true; } @@ -379,7 +441,7 @@ export class GraphView { delete this.state.edges[id]; delete this.state.drawData[id]; - this.renderer.redrawEdges(); + requestAnimationFrame(() => this.renderer.redrawEdges()); return true; } @@ -443,7 +505,17 @@ export class GraphView { this.state.translateX += x; this.state.translateY += y; + // const ovx = this.state.viewX; + // const ovy = this.state.viewY; + // const ovw = this.state.viewW; + // const ovh = this.state.viewH; + this.renderer.applyTransform(); + + // requestAnimationFrame(() => { + // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); + // }); + this.renderer.requestDraw(); } From ac69f5ee4625d82790cfedab1831a8d54b56c889 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 17 Nov 2022 00:48:54 +0700 Subject: [PATCH 30/56] update --- src/graph-handler.ts | 14 +++++ src/graph-renderer.ts | 64 ++++++++++++++--------- src/graph-state.ts | 12 ++++- src/graph-view.ts | 15 ++++-- src/quad.ts | 117 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 194 insertions(+), 28 deletions(-) create mode 100644 src/quad.ts diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 629670b..3d76668 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -14,6 +14,10 @@ export class GraphHandler { private view: GraphView; private renderer: GraphRenderer; + private vp: [number, number] = [0, 0]; + private cp: [number, number] = [0, 0]; + private dp: [number, number] = [0, 0]; + constructor( view: GraphView, state: GraphState, @@ -24,12 +28,22 @@ export class GraphHandler { this.renderer = renderer; } + moveBy = () => { + this.view.moveBy(this.dp[0], this.dp[1]); + }; + handleMouseMove = (e: MouseEvent) => { const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = this.state; + // this.dp[0] = e.movementX; + // this.dp[1] = e.movementY; + if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { + // requestAnimationFrame(() => { this.view.moveBy(e.movementX, e.movementY); + // }); + return; } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 2d3ded9..99c8363 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -19,9 +19,9 @@ export class GraphRenderer { this.state = state; } - requestDraw() { + requestDraw(handler = this.requestDrawHandler) { if (!this.state.isDrawing) { - requestAnimationFrame(this.requestDrawHandler); + requestAnimationFrame(handler); } this.state.isDrawing = true; @@ -33,11 +33,20 @@ export class GraphRenderer { }; applyTransform() { - const { scale, translateX, translateY, bgCtx, nodeCtx, edgeCtx, moveCtx } = - this.state; + const { + scale, + translateX, + translateY, + bgCtx, + nodeCtx, + dragCtx, + edgeCtx, + moveCtx + } = this.state; bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); @@ -235,17 +244,19 @@ export class GraphRenderer { const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; - bgCtx.drawImage(bgCtx.canvas, ovx, ovy); + bgCtx.drawImage(bgCtx.canvas, ovx, ovy, nvw, nvh); moveCtx.clearRect(nvx, nvy, nvw, nvh); moveCtx.drawImage(edgeCtx.canvas, nvx, nvy, nvw, nvh); edgeCtx.clearRect(nvx, nvy, nvw, nvh); - edgeCtx.drawImage(moveCtx.canvas, ovx, ovy); + edgeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); moveCtx.clearRect(nvx, nvy, nvw, nvh); moveCtx.drawImage(nodeCtx.canvas, nvx, nvy, nvw, nvh); nodeCtx.clearRect(nvx, nvy, nvw, nvh); - nodeCtx.drawImage(moveCtx.canvas, ovx, ovy); + nodeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); if (nvt < ovt) { const tt = nvt; @@ -341,6 +352,11 @@ export class GraphRenderer { edgeCtx.clearRect(viewX, viewY, viewW, viewH); }; + clearDragLine = () => { + const { dragCtx, viewX, viewY, viewW, viewH } = this.state; + dragCtx.clearRect(viewX, viewY, viewW, viewH); + }; + clearMove = () => { const { moveCtx, viewX, viewY, viewW, viewH } = this.state; moveCtx.clearRect(viewX, viewY, viewW, viewH); @@ -348,7 +364,7 @@ export class GraphRenderer { drawDragLine = () => { const { - moveCtx, + dragCtx, options, dragLineSourceNode, dragLineX, @@ -361,7 +377,7 @@ export class GraphRenderer { if (!dragLineSourceNode) return; - moveCtx.clearRect(viewX, viewY, viewW, viewH); + dragCtx.clearRect(viewX, viewY, viewW, viewH); const sx = dragLineSourceNode.x; const sy = dragLineSourceNode.y; @@ -383,21 +399,21 @@ export class GraphRenderer { const lp2x = lsx - ll * sinr; const lp2y = lsy + ll * cosr; - moveCtx.lineWidth = options.edgeLineWidth; - moveCtx.strokeStyle = options.edgeLineColor; - moveCtx.fillStyle = options.edgeLineColor; - - moveCtx.beginPath(); - moveCtx.moveTo(sx, sy); - moveCtx.lineTo(tx, ty); - moveCtx.stroke(); - - moveCtx.beginPath(); - moveCtx.moveTo(tx, ty); - moveCtx.lineTo(lp1x, lp1y); - moveCtx.lineTo(lp2x, lp2y); - moveCtx.closePath(); - moveCtx.fill(); + dragCtx.lineWidth = options.edgeLineWidth; + dragCtx.strokeStyle = options.edgeLineColor; + dragCtx.fillStyle = options.edgeLineColor; + + dragCtx.beginPath(); + dragCtx.moveTo(sx, sy); + dragCtx.lineTo(tx, ty); + dragCtx.stroke(); + + dragCtx.beginPath(); + dragCtx.moveTo(tx, ty); + dragCtx.lineTo(lp1x, lp1y); + dragCtx.lineTo(lp2x, lp2y); + dragCtx.closePath(); + dragCtx.fill(); }; drawEdge( diff --git a/src/graph-state.ts b/src/graph-state.ts index b2d51e3..f21b997 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -1,3 +1,4 @@ +import { createQuad, Quad } from "./quad"; import { GraphEdge, GraphNode, @@ -14,12 +15,19 @@ export class GraphState { readonly container: HTMLElement; readonly bgCtx: CanvasRenderingContext2D; readonly edgeCtx: CanvasRenderingContext2D; + readonly dragCtx: CanvasRenderingContext2D; readonly nodeCtx: CanvasRenderingContext2D; readonly moveCtx: CanvasRenderingContext2D; nodes: Record = {}; edges: Record = {}; drawData: Record = {}; + quad: Quad = createQuad( + Number.MIN_VALUE, + Number.MAX_VALUE, + Number.MAX_VALUE - Number.MIN_VALUE, + Number.MAX_VALUE - Number.MIN_VALUE + ); options = defaultGraphOptions; @@ -55,15 +63,17 @@ export class GraphState { const bgCtx = this.initCtx(false); const edgeCtx = this.initCtx(); + const dragCtx = this.initCtx(); const nodeCtx = this.initCtx(); const moveCtx = this.initCtx(); - if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx) { + if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx || !dragCtx) { throw "Canvas is not supported in your browser."; } this.bgCtx = bgCtx; this.edgeCtx = edgeCtx; + this.dragCtx = dragCtx; this.nodeCtx = nodeCtx; this.moveCtx = moveCtx; } diff --git a/src/graph-view.ts b/src/graph-view.ts index 319deef..dc82f79 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -41,6 +41,7 @@ export class GraphView { container.appendChild(this.state.bgCtx.canvas); container.appendChild(this.state.edgeCtx.canvas); + container.appendChild(this.state.dragCtx.canvas); container.appendChild(this.state.nodeCtx.canvas); container.appendChild(this.state.moveCtx.canvas); @@ -90,7 +91,7 @@ export class GraphView { endDragLine(): [Node, Node] | undefined { const { hoveredId, nodes } = this.state; - this.renderer.clearMove(); + this.renderer.clearDragLine(); if (!this.state.dragLineSourceNode) return; @@ -498,6 +499,7 @@ export class GraphView { this.state.scale = scale; this.renderer.applyTransform(); + // this.renderer.drawAll(); this.renderer.requestDraw(); } @@ -510,9 +512,9 @@ export class GraphView { // const ovw = this.state.viewW; // const ovh = this.state.viewH; - this.renderer.applyTransform(); - // requestAnimationFrame(() => { + this.renderer.applyTransform(); + // this.renderer.drawAll(); // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); // }); @@ -543,8 +545,15 @@ export class GraphView { this.state.translateX += offsetX; this.state.translateY += offsetY; + // const ovx = this.state.viewX; + // const ovy = this.state.viewY; + // const ovw = this.state.viewW; + // const ovh = this.state.viewH; + this.renderer.applyTransform(); + // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); + // this.renderer.drawAll(); this.renderer.requestDraw(); } diff --git a/src/quad.ts b/src/quad.ts new file mode 100644 index 0000000..36fa976 --- /dev/null +++ b/src/quad.ts @@ -0,0 +1,117 @@ +// A custom, incorrect Quad Tree implementation + +import { rectIntersect } from "./utils"; + +export type QuadData = { + value: T; + x: number; + y: number; + w: number; + h: number; +}; + +export class Quad { + data: T[]; + children: Quad[]; + x: number; + y: number; + w: number; + h: number; + + constructor(x: number, y: number, w: number, h: number) { + this.data = []; + this.children = []; + this.x = x; + this.y = y; + this.w = w; + this.h = h; + } + + clear() { + _clear(this); + } + + insert(value: T, x: number, y: number, w: number, h: number) { + _insert(this, { value, x, y, w, h }); + } + + getDataInRegion(x: number, y: number, w: number, h: number, out: Set) { + out.clear(); + + _getDataInRegion(this, x, y, w, h, out); + } +} + +function _clear(node: Quad) { + node.data.length = 0; + + for (const child of node.children) { + _clear(child); + } +} + +function _insert(node: Quad, data: QuadData) { + // if not intersecting, return + if ( + !rectIntersect( + node.x, + node.y, + node.w, + node.h, + data.x, + data.y, + data.w, + data.h + ) + ) + return; + + // if no children and data size is smaller than the limit (4), insert data to the node + if (node.children.length === 0 && node.data.length < 4) { + node.data.push(data); + return; + } + + // if no children, create the children + if (node.children.length === 0) { + const hw = node.w * 0.5; + const hh = node.h * 0.5; + + const tl = new Quad(node.x, node.y, hw, hh); + const tr = new Quad(node.x + hw, node.y, hw, hh); + const bl = new Quad(node.x, node.y + hh, hw, hh); + const br = new Quad(node.x + hw, node.y + hh, hw, hh); + + node.children.push(tl); + node.children.push(tr); + node.children.push(bl); + node.children.push(br); + } + + for (let i = 0; i < 4; i++) { + _insert(node.children[i], data); + } +} + +function _getDataInRegion( + node: Quad, + x: number, + y: number, + w: number, + h: number, + hs: Set +) { + if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; + + for (const data of node.data) { + hs.add(data); + } + + for (const child of node.children) { + _getDataInRegion(child, x, y, w, h, hs); + } +} + +export function createQuad(x: number, y: number, w: number, h: number) { + return new Quad(x, y, w, h); +} From 17958c73ce6cdd07e1bd7e5e7608f0fa4dc35c4b Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 17 Nov 2022 19:00:46 +0700 Subject: [PATCH 31/56] quad tree first attempt --- src/graph-handler.ts | 36 ++++++++++++++++++---------- src/graph-renderer.ts | 16 +++++++++---- src/graph-state.ts | 9 +++---- src/graph-view.ts | 22 +++++++++++++++++ src/quad.ts | 56 +++++++++++++++++++++++++++++++++++++------ 5 files changed, 111 insertions(+), 28 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 3d76668..78b2f92 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -48,7 +48,6 @@ export class GraphHandler { } const vp = this.view.getViewPosFromWindowPos(e.x, e.y); - const cp = this.view.getCanvasPosFromWindowPos(e.x, e.y); if (dragLineSourceNode) { this.state.dragLineX = vp[0]; @@ -58,7 +57,7 @@ export class GraphHandler { } if (moveNodeIds.length === 0) { - requestAnimationFrame(() => this.checkHover(cp[0], cp[1])); + requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); return; } @@ -102,21 +101,32 @@ export class GraphHandler { const prevId = this.state.hoveredId; this.state.hoveredId = 0; - for (const node of Object.values(nodes)) { - if (!this.renderer.isNodeInView(node)) continue; + const [cx, cy] = this.view.getCanvasPosFromViewPos(vx, vy); + this.state.quad.getDataInRegion(vx - 1, vy - 1, 2, 2, this.state.drawIds); - if (this.isNodeHovered(vx, vy, node)) { - this.state.hoveredId = node.id; - } + for (const id of this.state.drawIds) { + if (nodes[id] && this.isNodeHovered(cx, cy, nodes[id])) + this.state.hoveredId = id; + + if (edges[id] && this.isEdgeHovered(cx, cy, edges[id])) + this.state.hoveredId = id; } - for (const edge of Object.values(edges)) { - if (!this.renderer.isEdgeInView(edge)) continue; + // for (const node of Object.values(nodes)) { + // if (!this.renderer.isNodeInView(node)) continue; - if (this.isEdgeHovered(vx, vy, edge)) { - this.state.hoveredId = edge.id; - } - } + // if (this.isNodeHovered(vx, vy, node)) { + // this.state.hoveredId = node.id; + // } + // } + + // for (const edge of Object.values(edges)) { + // if (!this.renderer.isEdgeInView(edge)) continue; + + // if (this.isEdgeHovered(vx, vy, edge)) { + // this.state.hoveredId = edge.id; + // } + // } if (this.state.hoveredId === prevId) return; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 99c8363..f59ecd9 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -312,10 +312,18 @@ export class GraphRenderer { this.drawBackground(vx, vy, vw, vh); - for (const edge of Object.values(edges)) - this.drawEdge(edge, false, vx, vy, vw, vh); - for (const node of Object.values(nodes)) - this.drawNode(node, false, vx, vy, vw, vh); + this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); + // console.log(this.state.drawIds.size); + + for (const id of this.state.drawIds) { + if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); + if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); + } + + // for (const edge of Object.values(edges)) + // this.drawEdge(edge, false, vx, vy, vw, vh); + // for (const node of Object.values(nodes)) + // this.drawNode(node, false, vx, vy, vw, vh); }; redrawNodes = (excludeIds?: Set) => { diff --git a/src/graph-state.ts b/src/graph-state.ts index f21b997..1848b18 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -23,10 +23,10 @@ export class GraphState { edges: Record = {}; drawData: Record = {}; quad: Quad = createQuad( - Number.MIN_VALUE, - Number.MAX_VALUE, - Number.MAX_VALUE - Number.MIN_VALUE, - Number.MAX_VALUE - Number.MIN_VALUE + Number.MIN_SAFE_INTEGER, + Number.MIN_SAFE_INTEGER, + Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER, + Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER ); options = defaultGraphOptions; @@ -51,6 +51,7 @@ export class GraphState { dragLineSourceNode: Node | undefined = undefined; dragLineX = 0; dragLineY = 0; + drawIds = new Set(); constructor(container: HTMLElement, options: Partial = {}) { this.options = { diff --git a/src/graph-view.ts b/src/graph-view.ts index dc82f79..eb7e0fc 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -273,6 +273,14 @@ export class GraphView { targetOfEdgeIds: new Set() }; + this.state.quad.insert( + node.id, + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height + ); + this.renderer.drawNode(node); return true; @@ -302,8 +310,21 @@ export class GraphView { this.renderer.createEdgePath(edge, shape); + const source = nodes[edge.sourceId]; + const target = nodes[edge.targetId]; + + this.state.quad.insert( + edge.id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), shape.width), + Math.max(Math.abs(source.y - target.y), shape.height) + ); + this.renderer.drawEdge(edge); + // console.log(this.state.quad); + return true; } @@ -469,6 +490,7 @@ export class GraphView { this.state.selectedIds.clear(); this.state.moveNodeIds = []; this.state.dragLineSourceNode = undefined; + this.state.quad.clear(); this.renderer.clearNodes(); this.renderer.clearEdges(); diff --git a/src/quad.ts b/src/quad.ts index 36fa976..f94ece7 100644 --- a/src/quad.ts +++ b/src/quad.ts @@ -2,6 +2,8 @@ import { rectIntersect } from "./utils"; +const MAX_DEPTH = 64; + export type QuadData = { value: T; x: number; @@ -11,7 +13,7 @@ export type QuadData = { }; export class Quad { - data: T[]; + data: QuadData[]; children: Quad[]; x: number; y: number; @@ -32,7 +34,11 @@ export class Quad { } insert(value: T, x: number, y: number, w: number, h: number) { - _insert(this, { value, x, y, w, h }); + _insert(this, { value, x, y, w, h }, 0); + } + + remove(value: T, x: number, y: number, w: number, h: number) { + _remove(this, value, x, y, w, h); } getDataInRegion(x: number, y: number, w: number, h: number, out: Set) { @@ -50,7 +56,32 @@ function _clear(node: Quad) { } } -function _insert(node: Quad, data: QuadData) { +function _remove( + node: Quad, + value: unknown, + x: number, + y: number, + w: number, + h: number +) { + // if not intersecting, return + if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; + + for (let i = 0; i < node.data.length; i++) { + if (node.data[i].value === value) { + node.data.splice(i, 1); + return; + } + } + + for (const child of node.children) { + _remove(child, value, x, y, w, h); + } +} + +function _insert(node: Quad, data: QuadData, depth: number) { + if (depth > MAX_DEPTH) return; + // if not intersecting, return if ( !rectIntersect( @@ -67,13 +98,18 @@ function _insert(node: Quad, data: QuadData) { return; // if no children and data size is smaller than the limit (4), insert data to the node - if (node.children.length === 0 && node.data.length < 4) { + if ( + depth === MAX_DEPTH || + (node.children.length === 0 && node.data.length < 4) + ) { node.data.push(data); return; } + const dataToInsert: QuadData[] = []; + // if no children, create the children - if (node.children.length === 0) { + if (node.children.length === 0 && node.data.length >= 4) { const hw = node.w * 0.5; const hh = node.h * 0.5; @@ -86,10 +122,16 @@ function _insert(node: Quad, data: QuadData) { node.children.push(tr); node.children.push(bl); node.children.push(br); + + for (const dt of node.data) dataToInsert.push(dt); } + dataToInsert.push(data); + + node.data = []; + for (let i = 0; i < 4; i++) { - _insert(node.children[i], data); + for (const dt of dataToInsert) _insert(node.children[i], dt, depth + 1); } } @@ -104,7 +146,7 @@ function _getDataInRegion( if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; for (const data of node.data) { - hs.add(data); + hs.add(data.value); } for (const child of node.children) { From cd989688457b587ff3fd977e993eb53fa944f105 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 17 Nov 2022 19:07:02 +0700 Subject: [PATCH 32/56] delete old files --- old-example/index.css | 72 --- old-example/index.html | 71 --- old-example/index.ts | 312 ------------ old-example/node-types.ts | 130 ----- old-example/old/event-handler.ts | 197 -------- old-example/old/graph-renderer.ts | 548 ---------------------- old-example/old/graph-view-old.ts | 120 ----- old-example/old/index.ts | 2 - old-example/old/intersections.ts | 152 ------ old-example/old/old-example/index.css | 59 --- old-example/old/old-example/index.html | 96 ---- old-example/old/old-example/index.ts | 128 ----- old-example/old/old-example/node-types.ts | 76 --- old-example/old/old-example/utils.ts | 68 --- old-example/old/state.ts | 151 ------ old-example/old/types.ts | 115 ----- old-example/tsconfig.json | 31 -- old-example/types.ts | 11 - old-example/utils.ts | 75 --- old-src/event-handler.ts | 130 ----- old-src/graph-renderer.ts | 440 ----------------- old-src/graph-state.ts | 3 - old-src/graph-view-old.ts | 120 ----- old-src/graph-view.ts | 321 ------------- old-src/index.ts | 2 - old-src/intersections.ts | 152 ------ old-src/state.ts | 151 ------ old-src/types.ts | 147 ------ old-src/utils.ts | 194 -------- 29 files changed, 4074 deletions(-) delete mode 100644 old-example/index.css delete mode 100644 old-example/index.html delete mode 100644 old-example/index.ts delete mode 100644 old-example/node-types.ts delete mode 100644 old-example/old/event-handler.ts delete mode 100644 old-example/old/graph-renderer.ts delete mode 100644 old-example/old/graph-view-old.ts delete mode 100644 old-example/old/index.ts delete mode 100644 old-example/old/intersections.ts delete mode 100644 old-example/old/old-example/index.css delete mode 100644 old-example/old/old-example/index.html delete mode 100644 old-example/old/old-example/index.ts delete mode 100644 old-example/old/old-example/node-types.ts delete mode 100644 old-example/old/old-example/utils.ts delete mode 100644 old-example/old/state.ts delete mode 100644 old-example/old/types.ts delete mode 100644 old-example/tsconfig.json delete mode 100644 old-example/types.ts delete mode 100644 old-example/utils.ts delete mode 100644 old-src/event-handler.ts delete mode 100644 old-src/graph-renderer.ts delete mode 100644 old-src/graph-state.ts delete mode 100644 old-src/graph-view-old.ts delete mode 100644 old-src/graph-view.ts delete mode 100644 old-src/index.ts delete mode 100644 old-src/intersections.ts delete mode 100644 old-src/state.ts delete mode 100644 old-src/types.ts delete mode 100644 old-src/utils.ts diff --git a/old-example/index.css b/old-example/index.css deleted file mode 100644 index 93751e9..0000000 --- a/old-example/index.css +++ /dev/null @@ -1,72 +0,0 @@ -html, -body { - width: 100%; - height: 100%; - - margin: 0; - padding: 0; - - font-family: sans-serif; - font-size: 16px; -} - -*, -*:before, -*:after { - box-sizing: border-box; -} - -#graph { - width: 100%; - height: 100%; -} - -#container { - width: 100%; - height: 100%; - position: relative; -} - -#hints { - position: absolute; - bottom: 0; - left: 0; - margin: 1em; - font-size: 0.9em; - color: #718096; -} - -#buttons { - position: absolute; - top: 0; - left: 0; - margin: 1em; -} - -.generate-input { - margin-top: 1em; -} - -#generate-textbox { - padding: 0.5em; - width: 7.5em; - text-align: right; -} - -button { - padding: 0.5em; - cursor: pointer; - background-color: white; - border: 2px solid black; -} - -button.active { - border: 2px solid #2563eb; -} - -.zoom-input { -} - -.info { - margin-top: 1em; -} diff --git a/old-example/index.html b/old-example/index.html deleted file mode 100644 index e3c0009..0000000 --- a/old-example/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - web-digraph example - - - - - -
-
- -
-
- - - -
- -
- -
-
- -
-
-
- Node count: - 0 -
- -
- Edge count: - 0 -
-
- -
- - - -
-
-
- - - - diff --git a/old-example/index.ts b/old-example/index.ts deleted file mode 100644 index aa85894..0000000 --- a/old-example/index.ts +++ /dev/null @@ -1,312 +0,0 @@ -import { randomize } from "./utils"; -import { - GraphNode, - GraphEdge, - GraphView, - initDefaultGraphEvents, - createGraphView -} from "../src"; -import { normalEdgeShape, normalNodeShape } from "./node-types"; -import { ExampleEdge, ExampleNode } from "./types"; - -const graphDiv = document.getElementById("graph") as HTMLDivElement; -const nodeCountSpan = document.getElementById("node-count-span"); -const edgeCountSpan = document.getElementById("edge-count-span"); -const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; -const generateTextbox = document.getElementById( - "generate-textbox" -) as HTMLInputElement; -const generateButton = document.getElementById( - "generate-button" -) as HTMLButtonElement; -const moveButton = document.getElementById("move-tool") as HTMLButtonElement; -const createButton = document.getElementById( - "create-tool" -) as HTMLButtonElement; - -type Action = "move" | "create"; -let action: Action = "move"; - -function setAction(newAction: Action) { - action = newAction; - - moveButton.classList.remove("active"); - createButton.classList.remove("active"); - - switch (action) { - case "move": - moveButton.classList.add("active"); - break; - case "create": - createButton.classList.add("active"); - break; - } -} - -moveButton.addEventListener("click", e => { - e.stopPropagation(); - setAction("move"); -}); -createButton.addEventListener("click", e => { - e.stopPropagation(); - setAction("create"); -}); - -let lastNodeId = 0; -let lastEdgeId = 0; - -let nodes: ExampleNode[] = [ - // { - // id: 1, - // x: 0, - // y: 0, - // shape: normalNodeShape, - // label: "Node 1" - // }, - // { - // id: 2, - // x: 500, - // y: 0, - // shape: normalNodeShape, - // label: "Node 2" - // } -]; -let edges: ExampleEdge[] = [ - // { - // id: 1, - // source: nodes[0], - // target: nodes[1], - // shape: normalEdgeShape, - // label: "1" - // } -]; - -let isDragging = false; -let movingNode: GraphNode | undefined; -let dragSourceNode: GraphNode | undefined; -const pos: [number, number] = [0, 0]; -const startPos: [number, number] = [0, 0]; - -const graphView = createGraphView(graphDiv, nodes, edges); - -graphView.canvas.addEventListener( - "mousedown", - e => { - isDragging = true; - - startPos[0] = e.x; - startPos[1] = e.y; - - if (action === "move" && graphView.hoveredNode) { - movingNode = graphView.hoveredNode; - - graphView.beginMoveSelectedNode(graphView.hoveredNode); - } - - if (action === "create") { - if (graphView.hoveredNode) { - dragSourceNode = graphView.hoveredNode; - - graphView.beginDragLine( - graphView.hoveredNode.x, - graphView.hoveredNode.y - ); - } - } - }, - { - passive: true - } -); -graphView.canvas.addEventListener( - "mouseup", - e => { - if (isDragging && action === "move" && movingNode) { - graphView.endMoveNodes(); - } - - if (isDragging && action === "create" && dragSourceNode) { - graphView.endDragLine(); - - if ( - graphView.hoveredNode && - graphView.hoveredNode !== dragSourceNode && - !edges.find( - edge => - edge.source === dragSourceNode && - edge.target === graphView.hoveredNode - ) - ) { - lastEdgeId++; - - edges.push({ - id: lastEdgeId, - source: dragSourceNode, - target: graphView.hoveredNode, - shape: normalEdgeShape, - label: lastEdgeId.toString() - }); - } - } - - if (action === "create" && !dragSourceNode && !graphView.hoveredNode) { - graphView.setViewPosFromWindowPos(pos, e.x, e.y); - - lastNodeId++; - - nodes.push({ - id: lastNodeId, - x: pos[0], - y: pos[1], - shape: normalNodeShape, - label: `Node ${lastNodeId}` - }); - } - - isDragging = false; - movingNode = undefined; - dragSourceNode = undefined; - }, - { passive: true } -); -graphView.canvas.addEventListener( - "mousemove", - e => { - if (!isDragging) return; - if (action === "create") return; - - const dx = e.x - startPos[0]; - const dy = e.y - startPos[1]; - - if (movingNode) { - movingNode.x += dx / graphView.transform[0]; - movingNode.y += dy / graphView.transform[0]; - } else { - graphView.moveBy(dx, dy); - } - - startPos[0] = e.x; - startPos[1] = e.y; - }, - { - passive: true - } -); -graphView.canvas.addEventListener( - "wheel", - e => { - e.preventDefault(); - graphView.setViewPosFromWindowPos(pos, e.x, e.y); - - graphView.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); - }, - { - passive: false - } -); - -// graphView.requestDraw(); - -function updateNodeCount(): void { - if (!nodeCountSpan) return; - - nodeCountSpan.innerHTML = nodes.length.toString(); -} - -function updateEdgeCount(): void { - if (!edgeCountSpan) return; - - edgeCountSpan.innerHTML = edges.length.toString(); -} - -// function handleCreateNode(x: number, y: number) { -// lastId += 1; - -// const newNode: GENode = { -// id: lastId, -// x, -// y, -// type: "empty", -// text: `Node ID: ${lastId}` -// }; - -// nodes = [...nodes, newNode]; -// graphView.setData(nodes, edges); - -// updateNodeCount(); -// } - -// function handleCreateEdge(sourceNode: GENode, targetNode: GENode) { -// lastId += 1; - -// const newEdge: GEEdge = { -// id: lastId, -// sourceNode, -// targetNode, -// type: "normal", -// text: lastId.toString() -// }; - -// edges = [...edges, newEdge]; -// graphView.setData(nodes, edges); - -// updateEdgeCount(); -// } - -// function handleDeleteNode(node: GENode) { -// nodes = nodes.filter(n => n !== node); -// edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node); - -// graphView.setData(nodes, edges); - -// updateNodeCount(); -// updateEdgeCount(); -// } - -// function handleDeleteEdge(edge: GEEdge) { -// edges = edges.filter(e => e.id !== edge.id); - -// graphView.setData(nodes, edges); - -// updateEdgeCount(); -// } - -// function handleMoveNode(node: GENode, newX: number, newY: number) { -// node.x = newX; -// node.y = newY; -// } - -// function handleViewZoom() { -// zoomSlider.value = graphView.getScale().toString(); -// } - -window.addEventListener("resize", () => { - graphView.resize(window.innerWidth, window.innerHeight); -}); - -// zoomSlider.addEventListener("input", e => { -// const target = e.target as HTMLInputElement; - -// graphView.zoomTo(Number(target.value)); -// }); - -if (generateButton) { - generateButton.addEventListener("click", () => { - const value = parseInt(generateTextbox.value, 10); - const columns = Math.ceil(Math.sqrt(value)); - - const r = randomize(value, columns); - - lastNodeId = r.lastNodeId; - lastEdgeId = r.lastEdgeId; - nodes = r.nodes; - edges = r.edges; - - graphView.nodes = nodes; - graphView.edges = edges; - // console.log({ nodes, edges }); - - updateNodeCount(); - updateEdgeCount(); - }); -} diff --git a/old-example/node-types.ts b/old-example/node-types.ts deleted file mode 100644 index f7e77c5..0000000 --- a/old-example/node-types.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { - NodeShape, - EdgeShape, - circleIntersection, - rectIntersection, - createPathFromPoints, - polygonIntersection, - renderNodeContentFromField -} from "../src"; -import { ExampleNode } from "./types"; - -const normalNodePath = new Path2D(); -normalNodePath.arc(100, 100, 100, 0, Math.PI * 2); - -export const normalNodeShape: NodeShape = { - paths: [normalNodePath], - setIntersectionPoint: circleIntersection, - size: [200, 200], - renderContent: renderNodeContentFromField("label", [200, 200]) -}; - -const rectNodePath = new Path2D(); -rectNodePath.rect(0, 0, 200, 120); - -export const rectNodeShape: NodeShape = { - paths: [rectNodePath], - setIntersectionPoint: rectIntersection, - size: [200, 120], - renderContent: renderNodeContentFromField("label", [200, 120]) -}; - -const randomNodePoints: [number, number][] = [ - [0, 10], - [20, 15], - [15, 200], - [175, 180], - [200, 120], - [140, 0] -]; - -export const randomNodeShape: NodeShape = { - paths: [createPathFromPoints(randomNodePoints)], - setIntersectionPoint: polygonIntersection(randomNodePoints), - size: [200, 200], - renderContent: renderNodeContentFromField("label", [200, 200]) -}; - -const normalEdgePath = new Path2D(); -normalEdgePath.arc(25, 25, 25, 0, Math.PI * 2); - -export const normalEdgeShape: EdgeShape = { - paths: [normalEdgePath], - size: [50, 50], - renderContent: renderNodeContentFromField("label", [50, 50]) -}; - -// export const nodeTypes: GEShapeTypes = { -// empty: [ -// { -// shape: GEShapeName.CIRCLE, -// r: 80 -// } -// ], -// decision: [ -// { -// shape: GEShapeName.RECTANGLE, -// width: 150, -// height: 120 -// } -// ], -// unknown: [ -// { -// shape: GEShapeName.POLYGON, -// points: [ -// [0, -80], -// [80, 0], -// [0, 80], -// [-80, 0] -// ] -// } -// ], -// complex: [ -// { -// shape: GEShapeName.CIRCLE, -// r: 80 -// }, -// { -// shape: GEShapeName.CIRCLE, -// r: 60, -// color: "#9AE6B4" -// }, -// { -// shape: GEShapeName.CIRCLE, -// r: 40, -// color: "white" -// } -// ] -// }; - -// export const edgeTypes: GEShapeTypes = { -// normal: [ -// { -// shape: GEShapeName.POLYGON, -// points: [ -// [0, -25], -// [25, 0], -// [0, 25], -// [-25, 0] -// ] -// } -// ], -// round: [ -// { -// shape: GEShapeName.CIRCLE, -// r: 25 -// } -// ], -// double: [ -// { -// shape: GEShapeName.CIRCLE, -// r: 25, -// color: "#E9D8FD" -// }, -// { -// shape: GEShapeName.CIRCLE, -// r: 15, -// color: "white" -// } -// ] -// }; diff --git a/old-example/old/event-handler.ts b/old-example/old/event-handler.ts deleted file mode 100644 index b92d1b1..0000000 --- a/old-example/old/event-handler.ts +++ /dev/null @@ -1,197 +0,0 @@ -import { GEState } from "./state"; -import { GEGraphRenderer } from "./graph-renderer"; - -export class GEEventHandler { - state: GEState; - canvas: HTMLCanvasElement; - renderer: GEGraphRenderer; - - constructor( - view: GEState, - canvas: HTMLCanvasElement, - renderer: GEGraphRenderer - ) { - this.state = view; - this.canvas = canvas; - this.renderer = renderer; - } - - init(): void { - this.canvas.addEventListener("mousedown", this.handleMouseDown, { - passive: true - }); - window.addEventListener("mouseup", this.handleMouseUp, { passive: true }); - window.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); - window.addEventListener("keydown", this.handleKeyDown, { passive: true }); - window.addEventListener("keyup", this.handleKeyUp, { passive: true }); - this.canvas.addEventListener("wheel", this.handleCanvasWheel, { - passive: false - }); - } - - destroy(): void { - this.canvas.removeEventListener("mousedown", this.handleMouseDown); - window.removeEventListener("mouseup", this.handleMouseUp); - window.removeEventListener("mousemove", this.handleMouseMove); - window.removeEventListener("keydown", this.handleKeyDown); - window.removeEventListener("keyup", this.handleKeyUp); - this.canvas.removeEventListener("wheel", this.handleCanvasWheel); - } - - handleMouseDown = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); - - this.state.isDragging = true; - - if ( - this.state.selectedNode !== this.state.hoveredNode || - this.state.selectedEdge !== this.state.hoveredEdge - ) { - this.state.selectedNode = this.state.hoveredNode; - this.state.selectedEdge = this.state.hoveredEdge; - - this.state.options.onSelectionChange?.( - this.state.selectedNode, - this.state.selectedEdge - ); - } - - if (this.state.selectedNode) { - const node = this.state.selectedNode; - - if (this.state.isShiftDown) { - this.state.isCreatingEdge = true; - this.state.dragLineSourceNode = node; - this.state.dragLineTargetX = node.x; - this.state.dragLineTargetY = node.y; - } else { - this.state.moveNodeX = node.x; - this.state.moveNodeY = node.y; - } - } - - this.renderer.requestDraw(); - }; - - handleMouseMove = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); - - if (this.state.isMovingNode()) { - this.state.moveNodeX += evt.movementX / this.state.scale; - this.state.moveNodeY += evt.movementY / this.state.scale; - } else if (this.state.isMovingView()) { - this.state.translateX += evt.movementX; - this.state.translateY += evt.movementY; - } - - this.renderer.requestDraw(); - this.updateCursorStyle(); - }; - - handleMouseUp = (evt: MouseEvent): void => { - this.state.setPointerPosition(evt.clientX, evt.clientY); - - if ( - this.state.isCreatingEdge && - this.state.hoveredNode && - this.state.hoveredNode !== this.state.dragLineSourceNode - ) { - const sourceNode = this.state.dragLineSourceNode; - const targetNode = this.state.hoveredNode; - - this.state.options.onCreateEdge?.(sourceNode, targetNode, evt); - } else if ( - this.state.isShiftDown && - !this.state.isCreatingEdge && - !this.state.hoveredNode && - !this.state.hoveredEdge - ) { - this.state.options.onCreateNode?.( - this.state.pointerViewX, - this.state.pointerViewY, - evt - ); - } else if (this.state.isMovingNode()) { - const node = this.state.selectedNode; - - this.state.options.onMoveNode?.( - node, - this.state.moveNodeX, - this.state.moveNodeY - ); - } - - this.state.isDragging = false; - this.state.isCreatingEdge = false; - - this.renderer.requestDraw(); - }; - - updateCursorStyle = (): void => { - const { options } = this.state; - - if (this.state.hoveredNode || this.state.hoveredEdge) { - this.canvas.style.cursor = options.cursorPointer; - } else if (!this.state.isShiftDown) { - this.canvas.style.cursor = options.cursorGrab; - } else { - this.canvas.style.cursor = options.cursorCrosshair; - } - }; - - handleKeyDown = (evt: KeyboardEvent): void => { - if (evt.key === "Shift" || evt.keyCode === 16) { - this.state.isShiftDown = true; - this.updateCursorStyle(); - } - - if ( - evt.key === "Backspace" || - evt.keyCode === 8 || - evt.key === "Delete" || - evt.keyCode === 46 - ) { - if (this.state.selectedNode) { - const node = this.state.selectedNode; - - this.state.options.onDeleteNode?.(node); - this.state.selectedNode = undefined; - } - - if (this.state.selectedEdge) { - const edge = this.state.selectedEdge; - const source = edge.sourceNode; - const target = edge.targetNode; - - this.state.options.onDeleteEdge?.(edge, source, target); - this.state.selectedEdge = undefined; - } - - this.renderer.requestDraw(); - this.updateCursorStyle(); - } - }; - - handleKeyUp = (evt: KeyboardEvent): void => { - if (evt.key === "Shift" || evt.keyCode === 16) { - this.state.isShiftDown = false; - this.updateCursorStyle(); - } - }; - - handleCanvasWheel = (evt: WheelEvent): void => { - evt.preventDefault(); - - this.state.zoomTo( - this.state.scale - evt.deltaY * 0.001, - this.state.pointerViewX, - this.state.pointerViewY - ); - - this.state.options.onViewZoom?.(); - - this.renderer.requestDraw(); - }; -} diff --git a/old-example/old/graph-renderer.ts b/old-example/old/graph-renderer.ts deleted file mode 100644 index 93940a3..0000000 --- a/old-example/old/graph-renderer.ts +++ /dev/null @@ -1,548 +0,0 @@ -import { - GENode, - GEEdge, - GEGridType, - GEShapes, - GEShape, - GEShapeName -} from "./types"; -import { GEState } from "./state"; -import { - intersectLineCircleCenter, - intersectLineRectCenter, - instersectLinePolygonCenter -} from "./intersections"; - -const TEXT_ALIGN = "center"; -const TEXT_BASELINE = "middle"; -const LINE_CAP_ROUND = "round"; -const LINE_CAP_SQUARE = "square"; - -const tmpPoint: [number, number] = [0, 0]; - -export class GEGraphRenderer { - state: GEState; - canvas: HTMLCanvasElement; - ctx: CanvasRenderingContext2D; - - constructor(view: GEState, canvas: HTMLCanvasElement) { - this.state = view; - this.canvas = canvas; - this.ctx = canvas.getContext("2d", { alpha: false }); - } - - requestDraw(): void { - if (!this.state.isDrawing) { - requestAnimationFrame(this.draw); - } - - this.state.isDrawing = true; - } - - draw = (): void => { - this.state.isDrawing = false; - - this.drawBackground(); - - this.ctx.transform( - this.state.scale, - 0, - 0, - this.state.scale, - this.state.translateX, - this.state.translateY - ); - - this.drawGraph(); - - this.ctx.resetTransform(); - }; - - drawBackground(): void { - const { canvas, ctx } = this; - const { translateX, translateY, scale, options } = this.state; - - ctx.fillStyle = options.backgroundColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - if (!options.showGrid) return; - - const lw = options.gridLineWidth * scale; - const gap = options.gridGap * scale; - - const offsetX = (translateX % gap) - lw; - const offsetY = (translateY % gap) - lw; - - ctx.strokeStyle = options.gridColor; - ctx.lineWidth = lw; - - if (options.gridType === GEGridType.DOTS) { - ctx.beginPath(); - - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, offsetY); - ctx.lineTo(i, canvas.height + lw); - } - - ctx.lineCap = LINE_CAP_ROUND; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([0]); - ctx.lineCap = LINE_CAP_SQUARE; - } else { - ctx.beginPath(); - - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, 0); - ctx.lineTo(i, canvas.height); - } - - for (let i = offsetY; i < canvas.height + lw; i += gap) { - ctx.moveTo(0, i); - ctx.lineTo(canvas.width, i); - } - - ctx.stroke(); - } - } - - drawGraph(): void { - const { nodes, edges, options } = this.state; - - const prevhoveredNode = this.state.hoveredNode; - const prevhoveredEdge = this.state.hoveredEdge; - - this.state.hoveredNode = undefined; - this.state.hoveredEdge = undefined; - - edges.forEach(this.drawEdge); - this.drawDragLine(); - nodes.forEach(this.drawNode); - - // This event is done here because we are using canvas to check hover. - // Please let me know if there is a better way. - if ( - !this.state.isMovingNode() && - !this.state.isMovingView() && - (this.state.hoveredNode !== prevhoveredNode || - this.state.hoveredEdge !== prevhoveredEdge) - ) { - options.onHoverChange?.( - this.state.hoveredNode, - this.state.hoveredEdge, - this.state.pointerViewX, - this.state.pointerViewY, - this.state.pointerCanvasX, - this.state.pointerCanvasY, - this.state.pointerScreenX, - this.state.pointerScreenY - ); - } - } - - getShapeBound(shapes: GEShapes): number { - const shape = shapes[0]; - - if (shape.shape === GEShapeName.CIRCLE) return shape.r; - if (shape.shape === GEShapeName.RECTANGLE) - return Math.max(shape.width, shape.height); - - let r = 0; - - shape.points.forEach(p => { - r = Math.max(r, Math.max(p[0], p[1])); - }); - - return r; - } - - isNodeOutOfView(node: GENode): boolean { - const { canvas } = this; - const { translateX, translateY, scale, options } = this.state; - - const r = this.getShapeBound(options.nodeTypes[node.type]); - - return ( - (node.x + r) * scale + translateX < 0 || - (node.y + r) * scale + translateY < 0 || - (node.x - r) * scale + translateX > canvas.width || - (node.y - r) * scale + translateY > canvas.height - ); - } - - isEdgeOutOfView(edge: GEEdge): boolean { - const { canvas } = this; - const { translateX, translateY, scale, options } = this.state; - - const source = edge.sourceNode; - const target = edge.targetNode; - - const sourceX = source.x * scale + translateX; - const sourceY = source.y * scale + translateY; - const targetX = target.x * scale + translateX; - const targetY = target.y * scale + translateY; - - const r = this.getShapeBound(options.edgeTypes[edge.type]); - - return ( - (sourceX < -r && targetX < -r) || - (sourceY < -r && targetY < -r) || - (sourceX > canvas.width + r && targetX > canvas.width + r) || - (sourceY > canvas.height + r && targetY > canvas.height + r) - ); - } - - shapePath = (x: number, y: number, shape: GEShape): void => { - const { ctx } = this; - - if (shape.shape === GEShapeName.CIRCLE) { - ctx.arc(x, y, shape.r, 0, Math.PI * 2); - } else if (shape.shape === GEShapeName.RECTANGLE) { - ctx.rect( - x - shape.width * 0.5, - y - shape.height * 0.5, - shape.width, - shape.height - ); - } else { - ctx.moveTo(x + shape.points[0][0], y + shape.points[0][1]); - - for (let i = 1; i < shape.points.length; i++) { - ctx.lineTo(x + shape.points[i][0], y + shape.points[i][1]); - } - - ctx.lineTo(x + shape.points[0][0], y + shape.points[0][1]); - - ctx.closePath(); - } - }; - - drawDragLine(): void { - if (!this.state.isCreatingEdge) return; - - const { ctx } = this; - const { pointerViewX, pointerViewY, options } = this.state; - - const targetX = pointerViewX; - const targetY = pointerViewY; - - const source = this.state.dragLineSourceNode; - const dx = targetX - source.x; - const dy = targetY - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - // calculate the start and end points of the line - const startX = source.x; - const startY = source.y; - const endX = targetX - cosr * 3; - const endY = targetY - sinr * 3; - const edgeLineOffset = - options.edgeArrowLength * Math.cos(options.edgeArrowRadian); - const lineEndX = targetX - cosr * edgeLineOffset; - const lineEndY = targetY - sinr * edgeLineOffset; - - ctx.lineWidth = options.edgeLineWidth; - - ctx.beginPath(); - ctx.moveTo(startX, startY); - ctx.lineTo(lineEndX, lineEndY); - ctx.moveTo(endX, endY); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) - ); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) - ); - ctx.lineTo(endX, endY); - ctx.closePath(); - - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - - ctx.stroke(); - ctx.fill(); - } - - getInstersectionPoint = ( - sourceX: number, - sourceY: number, - targetX: number, - targetY: number, - shape: GEShape - ): [number, number] => { - if (shape.shape === GEShapeName.CIRCLE) { - const int = intersectLineCircleCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.r, - tmpPoint - ); - - if (int) return tmpPoint; - } else if (shape.shape === GEShapeName.RECTANGLE) { - const int = intersectLineRectCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.width, - shape.height, - tmpPoint - ); - - if (int) return tmpPoint; - } else { - const int = instersectLinePolygonCenter( - sourceX, - sourceY, - targetX, - targetY, - shape.points, - tmpPoint - ); - - if (int) return tmpPoint; - } - - return [targetX, targetY]; - }; - - drawSubShapes = (shapes: GEShapes, x: number, y: number): void => { - const { ctx } = this; - const { options } = this.state; - - if (shapes.length <= 1) return; - - for (let i = 1; i < shapes.length; i++) { - const sh = shapes[i]; - - ctx.beginPath(); - this.shapePath(x, y, sh); - - ctx.fillStyle = sh.color ? sh.color : options.defaultSubShapeColor; - ctx.fill(); - } - }; - - drawSelectedShape = ( - shape: GEShape, - x: number, - y: number, - color: string - ): void => { - const { ctx } = this; - - ctx.beginPath(); - this.shapePath(x, y, shape); - ctx.fillStyle = color; - ctx.globalAlpha = 0.8; - ctx.fill(); - ctx.globalAlpha = 1.0; - }; - - drawNode = (node: GENode): void => { - if (this.isNodeOutOfView(node)) return; - - const { ctx } = this; - const { - pointerCanvasX, - pointerCanvasY, - options, - moveNodeX, - moveNodeY, - selectedNode - } = this.state; - - const isMovingNode = this.state.isMovingNode() && selectedNode === node; - const x = isMovingNode ? moveNodeX : node.x; - const y = isMovingNode ? moveNodeY : node.y; - - const shapes = options.nodeTypes[node.type]; - - ctx.strokeStyle = options.nodeStrokeColor; - ctx.lineWidth = options.nodeLineWidth; - - ctx.beginPath(); - this.shapePath(x, y, shapes[0]); - - if (ctx.isPointInPath(pointerCanvasX, pointerCanvasY)) { - this.state.hoveredNode = node; - } - - const selected = node === this.state.selectedNode; - const hovered = node === this.state.hoveredNode; - - ctx.strokeStyle = - selected || hovered ? options.nodeSelectedColor : options.nodeStrokeColor; - ctx.fillStyle = shapes[0].color || options.nodeColor; - - ctx.fill(); - ctx.stroke(); - - this.drawSubShapes(shapes, x, y); - - if (selected) { - this.drawSelectedShape(shapes[0], x, y, options.nodeSelectedColor); - } - - if (selected) { - ctx.fillStyle = options.nodeSelectedTextColor; - } else { - ctx.fillStyle = options.nodeTextColor; - } - - ctx.font = options.nodeTextStyle; - ctx.textAlign = TEXT_ALIGN; - ctx.textBaseline = TEXT_BASELINE; - - ctx.fillText(node.text, x, y); - }; - - drawEdge = (edge: GEEdge): void => { - if (this.isEdgeOutOfView(edge)) return; - - const { ctx } = this; - const { - pointerCanvasX, - pointerCanvasY, - options, - selectedNode, - moveNodeX, - moveNodeY - } = this.state; - - const source = edge.sourceNode; - const target = edge.targetNode; - - const isMovingSourceNode = - this.state.isMovingNode() && source === selectedNode; - - const sourceX = isMovingSourceNode ? moveNodeX : source.x; - const sourceY = isMovingSourceNode ? moveNodeY : source.y; - - const isMovingTargetNode = - this.state.isMovingNode() && target === selectedNode; - - const targetX = isMovingTargetNode ? moveNodeX : target.x; - const targetY = isMovingTargetNode ? moveNodeY : target.y; - - const dx = targetX - sourceX; - const dy = targetY - sourceY; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - // calculate the start and end points of the line - const [startX, startY] = this.getInstersectionPoint( - targetX, - targetY, - sourceX, - sourceY, - options.nodeTypes[source.type][0] - ); - const [endX0, endY0] = this.getInstersectionPoint( - sourceX, - sourceY, - targetX, - targetY, - options.nodeTypes[target.type][0] - ); - - const endX = endX0 - cosr * 3; - const endY = endY0 - sinr * 3; - const edgeLineOffset = - options.edgeArrowLength * Math.cos(options.edgeArrowRadian); - const lineEndX = endX - cosr * edgeLineOffset; - const lineEndY = endY - sinr * edgeLineOffset; - - ctx.lineWidth = options.edgeLineWidth; - - const midX = (startX + endX) * 0.5; - const midY = (startY + endY) * 0.5; - - // this is just to check if the rect is hovered - ctx.beginPath(); - this.shapePath(midX, midY, options.edgeTypes[edge.type][0]); - - if ( - ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || - ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) - ) { - this.state.hoveredEdge = edge; - } - - ctx.beginPath(); - ctx.moveTo(startX, startY); - ctx.lineTo(lineEndX, lineEndY); - ctx.moveTo(endX, endY); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad - options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad - options.edgeArrowRadian) - ); - ctx.lineTo( - endX - options.edgeArrowLength * Math.cos(rad + options.edgeArrowRadian), - endY - options.edgeArrowLength * Math.sin(rad + options.edgeArrowRadian) - ); - ctx.lineTo(endX, endY); - ctx.closePath(); - - if ( - ctx.isPointInPath(pointerCanvasX, pointerCanvasY) || - ctx.isPointInStroke(pointerCanvasX, pointerCanvasY) - ) { - this.state.hoveredEdge = edge; - } - - const selected = edge === this.state.selectedEdge; - const hovered = edge === this.state.hoveredEdge; - const shapes = options.edgeTypes[edge.type]; - - if (selected || hovered) { - ctx.strokeStyle = options.edgeLineSelectedColor; - ctx.fillStyle = options.edgeLineSelectedColor; - } else { - ctx.strokeStyle = options.edgeLineColor; - ctx.fillStyle = options.edgeLineColor; - } - - ctx.stroke(); - ctx.fill(); - - ctx.beginPath(); - this.shapePath(midX, midY, shapes[0]); - - ctx.fillStyle = shapes[0].color || options.edgeShapeFillColor; - - ctx.fill(); - ctx.stroke(); - - this.drawSubShapes(shapes, midX, midY); - - if (selected) { - this.drawSelectedShape( - shapes[0], - midX, - midY, - options.edgeLineSelectedColor - ); - } - - if (selected) { - ctx.fillStyle = options.edgeSelectedTextColor; - } else { - ctx.fillStyle = options.edgeTextColor; - } - ctx.font = options.edgeTextStyle; - ctx.textAlign = TEXT_ALIGN; - ctx.textBaseline = TEXT_BASELINE; - ctx.fillText(edge.text, midX, midY); - }; -} diff --git a/old-example/old/graph-view-old.ts b/old-example/old/graph-view-old.ts deleted file mode 100644 index ea6b5ff..0000000 --- a/old-example/old/graph-view-old.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { GEState } from "./state"; -import { GEGraphRenderer } from "./graph-renderer"; -import { GEEventHandler } from "./event-handler"; -import { GENode, GEEdge, GEViewOptionsParams } from "./types"; - -export class GEView { - readonly canvas: HTMLCanvasElement; - - private _state: GEState; - private _renderer: GEGraphRenderer; - private _eventHandler: GEEventHandler; - - constructor(options?: GEViewOptionsParams) { - this.canvas = document.createElement("canvas"); - this._state = new GEState(); - this._renderer = new GEGraphRenderer(this._state, this.canvas); - this._eventHandler = new GEEventHandler( - this._state, - this.canvas, - this._renderer - ); - - if (options) { - this._state.setOptions(options); - } - } - - getTranslateX(): number { - return this._state.translateX; - } - - getTanslateY(): number { - return this._state.translateY; - } - getScale(): number { - return this._state.scale; - } - - zoomTo(value: number): void { - const { width, height } = this.canvas; - const { translateX, translateY, scale } = this._state; - - const centerX = (width * 0.5 - translateX) / scale; - const centerY = (height * 0.5 - translateY) / scale; - - this._state.zoomTo(value, centerX, centerY); - - this.requestDraw(); - } - - init(container: HTMLElement): void { - container.appendChild(this.canvas); - - this.canvas.textContent = "Canvas is not supported in your browser."; - this.canvas.width = container.clientWidth; - this.canvas.height = container.clientHeight; - - this._state.setBoundingRect(this.canvas); - this._eventHandler.init(); - this.requestDraw(); - } - - destroy(): void { - this._eventHandler.destroy(); - } - - requestDraw(): void { - this._renderer.requestDraw(); - } - - resize(width: number, height: number): void { - this.canvas.width = width; - this.canvas.height = height; - - this._state.setBoundingRect(this.canvas); - - this.requestDraw(); - } - - setData(nodes: GENode[], edges: GEEdge[]): void { - this._state.setData(nodes, edges); - this.requestDraw(); - } - - setOptions(options: GEViewOptionsParams): void { - this._state.setOptions(options); - this.requestDraw(); - } - - setSelection(node: GENode | undefined, edge: GEEdge | undefined): void { - if (node && edge) return; - - this._state.selectedNode = node; - this._state.selectedEdge = edge; - - this.requestDraw(); - } - - setSelectedNode(node: GENode | undefined): void { - this._state.selectedNode = node; - this._state.selectedEdge = undefined; - - this.requestDraw(); - } - - getSelectedNode(): GENode | undefined { - return this._state.selectedNode; - } - - setSelectedEdge(edge: GEEdge | undefined): void { - this._state.selectedNode = undefined; - this._state.selectedEdge = edge; - - this.requestDraw(); - } - - getSelectedEdge(): GEEdge | undefined { - return this._state.selectedEdge; - } -} diff --git a/old-example/old/index.ts b/old-example/old/index.ts deleted file mode 100644 index 2c40899..0000000 --- a/old-example/old/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./types"; -export * from "./graph-view-old"; diff --git a/old-example/old/intersections.ts b/old-example/old/intersections.ts deleted file mode 100644 index 02fa7ab..0000000 --- a/old-example/old/intersections.ts +++ /dev/null @@ -1,152 +0,0 @@ -// http://paulbourke.net/geometry/pointlineplane/javascript.txt -export function intersect( - x1: number, - y1: number, - x2: number, - y2: number, - x3: number, - y3: number, - x4: number, - y4: number, - outPoint: [number, number] -): boolean { - // Check if none of the lines are of length 0 - if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; - - const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); - - // Lines are parallel - if (denominator === 0) return false; - - const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; - const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; - - // is the intersection along the segments - if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; - - // Return a object with the x and y coordinates of the intersection - outPoint[0] = x1 + ua * (x2 - x1); - outPoint[1] = y1 + ua * (y2 - y1); - - return true; -} - -export function intersectLineRectCenter( - x1: number, - y1: number, - x2: number, - y2: number, - w: number, - h: number, - outPoint: [number, number] -): boolean { - const wh = w * 0.5; - const hh = h * 0.5; - - const i1 = intersect( - x1, - y1, - x2, - y2, - x2 - wh, - y2 - hh, - x2 + wh, - y2 - hh, - outPoint - ); - - if (i1) return true; - - const i2 = intersect( - x1, - y1, - x2, - y2, - x2 + wh, - y2 - hh, - x2 + wh, - y2 + hh, - outPoint - ); - - if (i2) return true; - - const i3 = intersect( - x1, - y1, - x2, - y2, - x2 + wh, - y2 + hh, - x2 - wh, - y2 + hh, - outPoint - ); - - if (i3) return true; - - const i4 = intersect( - x1, - y1, - x2, - y2, - x2 - wh, - y2 + hh, - x2 - wh, - y2 - hh, - outPoint - ); - - if (i4) return true; - - return false; -} - -export function instersectLinePolygonCenter( - x1: number, - y1: number, - x2: number, - y2: number, - points: [number, number][], - outPoint: [number, number] -): boolean { - const len = points.length; - - for (let i = 0; i < len; i++) { - const nextIndex = (i + 1) % len; - - const x3 = x2 + points[i][0]; - const y3 = y2 + points[i][1]; - const x4 = x2 + points[nextIndex][0]; - const y4 = y2 + points[nextIndex][1]; - - const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint); - - if (int) return true; - } - - return false; -} - -export function intersectLineCircleCenter( - x1: number, - y1: number, - x2: number, - y2: number, - r: number, - outPoint: [number, number] -): boolean { - const dx = x2 - x1; - const dy = y2 - y1; - - if (dx * dx + dy * dy <= r * r) return false; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - outPoint[0] = x2 - cosr * r; - outPoint[1] = y2 - sinr * r; - - return true; -} diff --git a/old-example/old/old-example/index.css b/old-example/old/old-example/index.css deleted file mode 100644 index b6aad5a..0000000 --- a/old-example/old/old-example/index.css +++ /dev/null @@ -1,59 +0,0 @@ -html, body { - width: 100%; - height: 100%; - - margin: 0; - padding: 0; - - font-family: sans-serif; - font-size: 16px; -} - -#graph { - width: 100%; - height: 100%; -} - -#container { - width: 100%; - height: 100%; - position: relative; -} - -#hints { - position: absolute; - bottom: 0; - left: 0; - margin: 1em; - font-size: 0.9em; - color: #718096 -} - -#buttons { - position: absolute; - top: 0; - left: 0; - margin: 1em; -} - -.generate-input { - margin-top: 1em; -} - -#generate-textbox { - padding: 0.5em; - width: 7.5em; - text-align: right; -} - -button { - padding: 0.5em; - cursor: pointer; -} - -.zoom-input { -} - -.info { - margin-top: 1em; -} diff --git a/old-example/old/old-example/index.html b/old-example/old/old-example/index.html deleted file mode 100644 index 6bc6b54..0000000 --- a/old-example/old/old-example/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - web-digraph example - - - - - - - -
- -
- -
- -
- - - -
- -
- - - - - -
- -
- -
- Node count: - 0 - -
- -
- Edge count: - 0 - -
- -
- -
- -
- -
- Press and hold shift, and then click on empty place to create a new node. - -
- -
- Press and hold shift, and then click and drag a node to another node to - create a new edge. -
- -
- -
- - - - - - - diff --git a/old-example/old/old-example/index.ts b/old-example/old/old-example/index.ts deleted file mode 100644 index 64999ce..0000000 --- a/old-example/old/old-example/index.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { GEView, GENode, GEEdge } from "../src/index"; -import { nodeTypes, edgeTypes } from "./node-types"; -import { randomize } from "./utils"; - -const graphDiv = document.getElementById("graph"); -const nodeCountSpan = document.getElementById("node-count-span"); -const edgeCountSpan = document.getElementById("edge-count-span"); -const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; -const generateTextbox = document.getElementById( - "generate-textbox" -) as HTMLInputElement; -const generateButton = document.getElementById("generate-button"); - -let nodes: GENode[] = []; -let edges: GEEdge[] = []; -let lastId = 0; - -const graphView = new GEView(); - -function updateNodeCount(): void { - nodeCountSpan.innerHTML = nodes.length.toString(); -} - -function updateEdgeCount(): void { - edgeCountSpan.innerHTML = edges.length.toString(); -} - -function handleCreateNode(x: number, y: number) { - lastId += 1; - - const newNode: GENode = { - id: lastId, - x, - y, - type: "empty", - text: `Node ID: ${lastId}` - }; - - nodes = [...nodes, newNode]; - graphView.setData(nodes, edges); - - updateNodeCount(); -} - -function handleCreateEdge(sourceNode: GENode, targetNode: GENode) { - lastId += 1; - - const newEdge: GEEdge = { - id: lastId, - sourceNode, - targetNode, - type: "normal", - text: lastId.toString() - }; - - edges = [...edges, newEdge]; - graphView.setData(nodes, edges); - - updateEdgeCount(); -} - -function handleDeleteNode(node: GENode) { - nodes = nodes.filter(n => n !== node); - edges = edges.filter(e => e.sourceNode !== node && e.targetNode !== node); - - graphView.setData(nodes, edges); - - updateNodeCount(); - updateEdgeCount(); -} - -function handleDeleteEdge(edge: GEEdge) { - edges = edges.filter(e => e.id !== edge.id); - - graphView.setData(nodes, edges); - - updateEdgeCount(); -} - -function handleMoveNode(node: GENode, newX: number, newY: number) { - node.x = newX; - node.y = newY; -} - -function handleViewZoom() { - zoomSlider.value = graphView.getScale().toString(); -} - -graphView.setOptions({ - minScale: 0.2, - maxScale: 3.0, - nodeTypes, - edgeTypes, - onViewZoom: handleViewZoom, - onCreateNode: handleCreateNode, - onCreateEdge: handleCreateEdge, - onDeleteNode: handleDeleteNode, - onDeleteEdge: handleDeleteEdge, - onMoveNode: handleMoveNode -}); - -graphView.init(graphDiv); - -window.addEventListener("resize", () => { - graphView.resize(window.innerWidth, window.innerHeight); -}); - -zoomSlider.addEventListener("input", e => { - const target = e.target as HTMLInputElement; - - graphView.zoomTo(Number(target.value)); -}); - -generateButton.addEventListener("click", () => { - const value = parseInt(generateTextbox.value, 10); - const columns = Math.ceil(Math.sqrt(value)); - - const r = randomize(value, columns); - - lastId = r.lastId; - nodes = r.nodes; - edges = r.edges; - - graphView.setData(r.nodes, r.edges); - - updateNodeCount(); - updateEdgeCount(); -}); diff --git a/old-example/old/old-example/node-types.ts b/old-example/old/old-example/node-types.ts deleted file mode 100644 index fe2d324..0000000 --- a/old-example/old/old-example/node-types.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { GEShapeTypes, GEShapeName } from "../src/types"; - -export const nodeTypes: GEShapeTypes = { - empty: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - } - ], - decision: [ - { - shape: GEShapeName.RECTANGLE, - width: 150, - height: 120 - } - ], - unknown: [ - { - shape: GEShapeName.POLYGON, - points: [ - [0, -80], - [80, 0], - [0, 80], - [-80, 0] - ] - } - ], - complex: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - }, - { - shape: GEShapeName.CIRCLE, - r: 60, - color: "#9AE6B4" - }, - { - shape: GEShapeName.CIRCLE, - r: 40, - color: "white" - } - ] -}; - -export const edgeTypes: GEShapeTypes = { - normal: [ - { - shape: GEShapeName.POLYGON, - points: [ - [0, -25], - [25, 0], - [0, 25], - [-25, 0] - ] - } - ], - round: [ - { - shape: GEShapeName.CIRCLE, - r: 25 - } - ], - double: [ - { - shape: GEShapeName.CIRCLE, - r: 25, - color: "#E9D8FD" - }, - { - shape: GEShapeName.CIRCLE, - r: 15, - color: "white" - } - ] -}; diff --git a/old-example/old/old-example/utils.ts b/old-example/old/old-example/utils.ts deleted file mode 100644 index 57fcc64..0000000 --- a/old-example/old/old-example/utils.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { GENode, GEEdge } from "../src/types"; - -export function getRandomIntInclusive(minF: number, maxF: number): number { - const min = Math.ceil(minF); - const max = Math.floor(maxF); - return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive -} - -export function randomize( - nodeCount = 1000, - cols = 40 -): { - nodes: GENode[]; - edges: GEEdge[]; - lastId: number; -} { - const nodes = []; - const edges = []; - let lastId = 0; - - for (let i = 0; i < nodeCount; i++) { - const col = i % cols; - const row = Math.floor(i / cols); - - const tmp = getRandomIntInclusive(0, 3); - const nodeType = - tmp === 0 - ? "empty" - : tmp === 1 - ? "decision" - : tmp === 2 - ? "unknown" - : "complex"; - - const tmp2 = getRandomIntInclusive(0, 2); - const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; - - lastId++; - const currNode: GENode = { - id: lastId, - x: col * 320, - y: row * 320, - type: nodeType, - text: `Node ID: ${lastId}` - }; - - nodes.push(currNode); - - if (i > 0) { - const prevNode = nodes[i - 1]; - - lastId++; - edges.push({ - id: lastId, - sourceNode: prevNode, - targetNode: currNode, - type: edgeType, - text: lastId.toString() - }); - } - } - - return { - nodes, - edges, - lastId - }; -} diff --git a/old-example/old/state.ts b/old-example/old/state.ts deleted file mode 100644 index 02e06bc..0000000 --- a/old-example/old/state.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { - GEViewOptions, - GEViewOptionsParams, - GEGridType, - GEShapeName, - GENode, - GEEdge -} from "./types"; - -export class GEState { - nodes: GENode[]; - edges: GEEdge[]; - - options: GEViewOptions; - - isDragging = false; - isShiftDown = false; - isDrawing = false; - - moveNodeX = 0; - moveNodeY = 0; - - // transform - translateX = 0; - translateY = 0; - scale = 1; - - // pointer position - pointerScreenX = 0; - pointerScreenY = 0; - pointerCanvasX = 0; - pointerCanvasY = 0; - pointerViewX = 0; - pointerViewY = 0; - boundingClientRect: DOMRect; - - // selection - selectedNode: GENode | undefined = undefined; - selectedEdge: GEEdge | undefined = undefined; - hoveredNode: GENode | undefined = undefined; - hoveredEdge: GEEdge | undefined = undefined; - - // drag line when creating edge - isCreatingEdge = false; - dragLineSourceNode: GENode | undefined = undefined; - dragLineTargetX = 0; - dragLineTargetY = 0; - - constructor() { - this.nodes = []; - this.edges = []; - - this.options = this.getDefaultOptions(); - } - - isMovingNode(): boolean { - return this.isDragging && this.selectedNode && !this.isCreatingEdge; - } - - isMovingView(): boolean { - return !this.isShiftDown && this.isDragging && !this.selectedNode; - } - - setData(nodes: GENode[], edges: GEEdge[]): void { - this.nodes = nodes; - this.edges = edges; - } - - setOptions(options: GEViewOptionsParams): void { - Object.keys(options).forEach(k => { - this.options[k] = options[k]; - }); - } - - getDefaultOptions(): GEViewOptions { - return { - edgeArrowLength: 16, - edgeArrowRadian: Math.PI / 6, - backgroundColor: "#F7FAFC", - showGrid: true, - gridType: GEGridType.DOTS, - gridColor: "#CBD5E0", - gridLineWidth: 8, - gridGap: 64, - defaultSubShapeColor: "green", - nodeLineWidth: 2, - nodeColor: "white", - nodeSelectedColor: "#4299E1", - nodeStrokeColor: "#1A202C", - nodeTextColor: "#1A202C", - nodeSelectedTextColor: "white", - nodeTextStyle: "16px sans-serif", - edgeLineWidth: 3, - edgeLineColor: "#2B6CB0", - edgeLineSelectedColor: "#4299E1", - edgeShapeFillColor: "white", - edgeTextColor: "#1A202C", - edgeSelectedTextColor: "white", - edgeTextStyle: "16px sans-serif", - minScale: 0.2, - maxScale: 1.8, - cursorGrab: "grab", - cursorPointer: "pointer", - cursorCrosshair: "crosshair", - nodeTypes: { - empty: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - } - ] - }, - edgeTypes: { - empty: [ - { - shape: GEShapeName.RECTANGLE, - width: 30, - height: 20 - } - ] - } - }; - } - - setBoundingRect(canvas: HTMLCanvasElement): void { - this.boundingClientRect = canvas.getBoundingClientRect(); - } - - setPointerPosition(screenX: number, screenY: number): void { - this.pointerScreenX = screenX; - this.pointerScreenY = screenY; - this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left); - this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top); - this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale; - this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale; - } - - zoomTo(scale: number, viewX: number, viewY: number): void { - const { maxScale, minScale } = this.options; - - const newScale = Math.min(maxScale, Math.max(minScale, scale)); - - const deltaScale = newScale - this.scale; - const offsetX = -(viewX * deltaScale); - const offsetY = -(viewY * deltaScale); - - this.translateX += offsetX; - this.translateY += offsetY; - this.scale += deltaScale; - } -} diff --git a/old-example/old/types.ts b/old-example/old/types.ts deleted file mode 100644 index d7ff422..0000000 --- a/old-example/old/types.ts +++ /dev/null @@ -1,115 +0,0 @@ -export type Point = [number, number]; - -export enum GEShapeName { - CIRCLE, - RECTANGLE, - POLYGON -} - -export type GECircleShape = { - shape: GEShapeName.CIRCLE; - r: number; - color?: string; -}; - -export type GERectangleShape = { - shape: GEShapeName.RECTANGLE; - width: number; - height: number; - color?: string; -}; - -export type GEPolygonShape = { - shape: GEShapeName.POLYGON; - points: Point[]; - color?: string; -}; - -export type GEShape = GECircleShape | GERectangleShape | GEPolygonShape; - -export type GEShapes = { 0: GEShape } & GEShape[]; - -export type GEShapeTypes = Record; - -export type GENode = { - id: number; - x: number; - y: number; - text: string; - type: string; -}; - -export type GEEdge = { - id: number; - text: string; - sourceNode: GENode; - targetNode: GENode; - type: string; -}; - -export enum GEGridType { - LINES, - DOTS -} - -export type GEViewOptions = { - edgeArrowLength: number; - edgeArrowRadian: number; - backgroundColor: string; - showGrid: boolean; - gridType: GEGridType; - gridColor: string; - gridLineWidth: number; - gridGap: number; - defaultSubShapeColor: string; - nodeLineWidth: number; - nodeColor: string; - nodeSelectedColor: string; - nodeStrokeColor: string; - nodeTextColor: string; - nodeSelectedTextColor: string; - nodeTextStyle: string; - edgeLineWidth: number; - edgeLineColor: string; - edgeLineSelectedColor: string; - edgeShapeFillColor: string; - edgeTextColor: string; - edgeSelectedTextColor: string; - edgeTextStyle: string; - minScale: number; - maxScale: number; - cursorGrab: string; - cursorPointer: string; - cursorCrosshair: string; - nodeTypes: GEShapeTypes; - edgeTypes: GEShapeTypes; - onViewMoved?: () => void; - onViewZoom?: () => void; - onCreateNode?: (x: number, y: number, evt: MouseEvent) => void; - onMoveNode?: (node: GENode, newX: number, newY: number) => void; - onDeleteNode?: (node: GENode) => void; - onCreateEdge?: ( - sourceNode: GENode, - targetNode: GENode, - evt: MouseEvent - ) => void; - onDeleteEdge?: (edge: GEEdge, sourceNode: GENode, targetNode: GENode) => void; - onSelectionChange?: ( - selectedNode: GENode | undefined, - selectedEdge: GEEdge | undefined - ) => void; - onHoverChange?: ( - hoveredNode: GENode | undefined, - hoveredEdge: GEEdge | undefined, - viewX: number, - viewY: number, - canvasX: number, - canvasY: number, - clientX: number, - clientY: number - ) => void; -}; - -export type GEViewOptionsParams = { - [T in keyof GEViewOptions]?: GEViewOptions[T]; -}; diff --git a/old-example/tsconfig.json b/old-example/tsconfig.json deleted file mode 100644 index 5a3c8d9..0000000 --- a/old-example/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs - "compilerOptions": { - "module": "esnext", - "target": "esnext", - "lib": ["dom", "esnext"], - // output .js.map sourcemap files for consumers - "sourceMap": true, - // stricter type-checking for stronger correctness. Recommended by TS - "strict": true, - // linter checks for common issues - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative - "noUnusedLocals": true, - "noUnusedParameters": true, - // use Node's module resolution algorithm, instead of the legacy TS one - "moduleResolution": "node", - // transpile JSX to React.createElement - "jsx": "react", - // interop between ESM and CJS modules. Recommended by TS - "esModuleInterop": true, - // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS - "skipLibCheck": true, - // error out if import and file system have a casing mismatch. Recommended by TS - "forceConsistentCasingInFileNames": true, - // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc` - "noEmit": true, - "downlevelIteration": true - } -} diff --git a/old-example/types.ts b/old-example/types.ts deleted file mode 100644 index b4ea39f..0000000 --- a/old-example/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { GraphEdge, GraphNode } from "../src"; - -export type ExampleNode = GraphNode & { - id: number; - label: string; -}; - -export type ExampleEdge = GraphEdge & { - id: number; - label: string; -}; diff --git a/old-example/utils.ts b/old-example/utils.ts deleted file mode 100644 index bbe36c3..0000000 --- a/old-example/utils.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { GraphEdge, GraphNode } from "../src"; -import { - normalEdgeShape, - normalNodeShape, - randomNodeShape, - rectNodeShape -} from "./node-types"; -import { ExampleEdge, ExampleNode } from "./types"; - -export function getRandomIntInclusive(minF: number, maxF: number): number { - const min = Math.ceil(minF); - const max = Math.floor(maxF); - return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive -} - -export function randomize( - nodeCount = 1000, - cols = 40 -): { - nodes: ExampleNode[]; - edges: ExampleEdge[]; - lastNodeId: number; - lastEdgeId: number; -} { - const nodes: ExampleNode[] = []; - const edges: ExampleEdge[] = []; - let lastNodeId = 0; - let lastEdgeId = 0; - - for (let i = 0; i < nodeCount; i++) { - const col = i % cols; - const row = Math.floor(i / cols); - - const tmp = getRandomIntInclusive(0, 2); - const nodeShape = - tmp === 0 ? normalNodeShape : tmp === 1 ? rectNodeShape : randomNodeShape; - - // const tmp2 = getRandomIntInclusive(0, 2); - // const edgeType = tmp2 === 0 ? "normal" : tmp2 === 1 ? "round" : "double"; - const edgeShape = normalEdgeShape; - - lastNodeId++; - - const currNode: ExampleNode = { - id: lastNodeId, - x: col * 320, - y: row * 320, - shape: nodeShape, - label: `Node ${lastNodeId}` - }; - - nodes.push(currNode); - - if (i > 0) { - const prevNode = nodes[i - 1]; - - lastEdgeId++; - - edges.push({ - id: lastEdgeId, - source: prevNode, - target: currNode, - shape: edgeShape, - label: lastEdgeId.toString() - }); - } - } - - return { - nodes, - edges, - lastNodeId, - lastEdgeId - }; -} diff --git a/old-src/event-handler.ts b/old-src/event-handler.ts deleted file mode 100644 index 3458e4c..0000000 --- a/old-src/event-handler.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { GraphEdge, GraphNode, GraphView } from "./graph-view"; - -export class DefaultGraphEventHandler< - Node extends GraphNode, - Edge extends GraphEdge -> { - readonly view: GraphView; - - private isDragging = false; - private isShiftDown = false; - private pos: [number, number] = [0, 0]; - - constructor(view: GraphView) { - this.view = view; - } - - isMovingView = () => { - return ( - this.isDragging && - !this.isShiftDown && - !this.view.hoveredNode && - !this.view.hoveredEdge && - !this.view.isCreatingEdge - ); - }; - - handleMouseDown = (e: MouseEvent) => { - const { view } = this; - - this.isDragging = true; - this.startPos[0] = e.x; - this.startPos[1] = e.y; - this.startA[0] = view.transform[1]; - this.startA[1] = view.transform[2]; - - view.requestDraw(); - }; - - handleMouseUp = (e: MouseEvent) => { - const { view } = this; - - this.isDragging = false; - - view.requestDraw(); - }; - - count = 0; - startPos: [number, number] = [0, 0]; - startA: [number, number] = [0, 0]; - - handleMouseMove = (e: MouseEvent) => { - const { view } = this; - - if (!this.isDragging) return; - - // console.log(this.count++); - - if (this.isMovingView()) { - const deltaX = e.x - this.startPos[0]; - const deltaY = e.y - this.startPos[1]; - view.moveTo(this.startA[0] + deltaX, this.startA[1] + deltaY); - // const a = view.getViewPosFromWindowPos(e.clientX, e.clientY); - // view.moveTo(a[0], a[1]); - // view.moveBy(e.movementX, e.movementY); - // view.transform[1] += e.movementX / 2; - // view.transform[2] += e.movementY / 2; - } - - view.requestDraw(); - }; - - handleWheel = (e: WheelEvent) => { - e.preventDefault(); - - const { view } = this; - - view.setViewPosFromWindowPos(this.pos, e.x, e.y); - - view.zoomTo(view.transform[0] - e.deltaY * 0.001, this.pos[0], this.pos[1]); - - view.requestDraw(); - }; - - handleKeyDown = (e: KeyboardEvent) => { - // - }; - - handleKeyUp = (e: KeyboardEvent) => { - // - }; - - init = () => { - const { canvas } = this.view; - - canvas.addEventListener("mousedown", this.handleMouseDown, { - passive: true - }); - window.addEventListener("mouseup", this.handleMouseUp, { passive: true }); - window.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); - window.addEventListener("keydown", this.handleKeyDown, { passive: true }); - window.addEventListener("keyup", this.handleKeyUp, { passive: true }); - canvas.addEventListener("wheel", this.handleWheel, { - passive: false - }); - }; - - destroy = () => { - const { canvas } = this.view; - - canvas.removeEventListener("mousedown", this.handleMouseDown); - window.removeEventListener("mouseup", this.handleMouseUp); - window.removeEventListener("mousemove", this.handleMouseMove); - window.removeEventListener("keydown", this.handleKeyDown); - window.removeEventListener("keyup", this.handleKeyUp); - canvas.removeEventListener("wheel", this.handleWheel); - }; -} - -export function initDefaultGraphEvents< - Node extends GraphNode, - Edge extends GraphEdge ->(view: GraphView) { - const handler = new DefaultGraphEventHandler(view); - - handler.init(); - - return handler.destroy; -} diff --git a/old-src/graph-renderer.ts b/old-src/graph-renderer.ts deleted file mode 100644 index 3b4ab8b..0000000 --- a/old-src/graph-renderer.ts +++ /dev/null @@ -1,440 +0,0 @@ -import { GraphEdge, GraphNode, GraphShape, GraphView } from "./graph-view"; -import { getIntersectionsOfLineAndRect } from "./utils"; - -const LINE_CAP_ROUND = "round"; -const LINE_CAP_SQUARE = "square"; -const BG_COLOR = "#F7FAFC"; -const GRID_COLOR = "#CBD5E0"; - -const NODE_COLOR = "#fff"; -const LINE_COLOR = "#000"; -const HOVER_LINE_COLOR = "#4299E1"; -const EDGE_SIZE = 16; -const NODE_STROKE_WIDTH = 2; -const TEXT_COLOR = "#000"; -const TEXT_FONT = "16px sans-serif"; -const TEXT_ALIGN = "center"; -const TEXT_BASELINE = "middle"; - -const linePath = new Path2D(); -linePath.rect(0, 0, 1, 1); - -const oneOver3 = 1 / 3; -const twoOver3 = 1 - oneOver3; -const lineArrowPath = new Path2D(); -lineArrowPath.moveTo(-oneOver3, -0.5); -lineArrowPath.lineTo(-oneOver3, 0.5); -lineArrowPath.lineTo(twoOver3, 0); -lineArrowPath.closePath(); - -export class GraphRenderer { - view: GraphView; - canvasPos: [number, number] = [0, 0]; - viewPos: [number, number] = [0, 0]; - out: [number, number] = [0, 0]; - int: [[number, number], [number, number]] = [ - [0, 0], - [0, 0] - ]; - - constructor(view: GraphView) { - this.view = view; - } - - setToViewTransform() { - const { ctx } = this.view; - const [scale, translateX, translateY] = this.view.transform; - - ctx.setTransform(scale, 0, 0, scale, translateX, translateY); - } - - draw() { - const { nodes, edges, pointerPos, ctx, movingNode } = this.view; - - this.view.setCanvasPosFromWindowPos( - this.canvasPos, - pointerPos[0], - pointerPos[1] - ); - this.view.setViewPosFromWindowPos( - this.viewPos, - this.canvasPos[0], - this.canvasPos[1] - ); - - this.view.hoveredNode = movingNode; - this.view.hoveredEdge = undefined; - - this.drawBackground(); - - this.setToViewTransform(); - - for (const edge of edges) { - this.drawEdge(edge); - } - - for (const node of nodes) { - this.drawNode(node); - } - - if (this.view.hoveredEdge) { - this.drawEdge(this.view.hoveredEdge, true); - } - - if (this.view.hoveredNode) { - this.drawNode(this.view.hoveredNode, true); - } - - if (this.view.isCreatingEdge) { - this.drawEdgeLine( - this.view.dragLineSourcePos[0], - this.view.dragLineSourcePos[1], - this.viewPos[0], - this.viewPos[1] - ); - } - - ctx.resetTransform(); - } - - drawBackground() { - const { canvas, ctx, transform } = this.view; - const [scale, translateX, translateY] = transform; - - ctx.fillStyle = BG_COLOR; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - const lw = 8 * scale; - const gap = 64 * scale; - - const offsetX = (translateX % gap) - lw; - const offsetY = (translateY % gap) - lw; - - ctx.strokeStyle = GRID_COLOR; - ctx.lineWidth = lw; - - ctx.beginPath(); - - for (let i = offsetX; i < canvas.width + lw; i += gap) { - ctx.moveTo(i, offsetY); - ctx.lineTo(i, canvas.height + lw); - } - - ctx.lineCap = LINE_CAP_ROUND; - ctx.setLineDash([0, gap]); - ctx.stroke(); - ctx.setLineDash([0]); - ctx.lineCap = LINE_CAP_SQUARE; - } - - drawEdgeLine( - startX: number, - startY: number, - endX: number, - endY: number, - hovered = false, - arrowX = endX, - arrowY = endY - ) { - const { ctx } = this.view; - const [scale, translateX, translateY] = this.view.transform; - - const dx = endX - startX; - const dy = endY - startY; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const lineLen = dy === 0 ? dx : Math.abs(dy / sinr); - const halfWidth = NODE_STROKE_WIDTH * 0.5; - - ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; - - ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); - ctx.rotate(rad); - ctx.scale( - lineLen - (endX === arrowX && endY === arrowY ? EDGE_SIZE : 0), - NODE_STROKE_WIDTH - ); - - ctx.fill(linePath); - - const offset = EDGE_SIZE * twoOver3 + 1; - - ctx.setTransform( - scale * EDGE_SIZE, - 0, - 0, - scale * EDGE_SIZE, - translateX + (arrowX - offset * cosr) * scale, - translateY + (arrowY - offset * sinr) * scale - ); - - ctx.rotate(rad); - - ctx.fill(lineArrowPath); - } - - drawShape(nodeOrEdge: Node | Edge, shape: GraphShape, hovered = false) { - const { canvasPos } = this; - const { ctx, movingNode } = this.view; - const { paths, render, renderContent } = shape; - - ctx.fillStyle = NODE_COLOR; - ctx.strokeStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; - ctx.lineWidth = NODE_STROKE_WIDTH; - - if (render) { - render(ctx, nodeOrEdge, hovered); - } else if (paths) { - for (const path of paths) { - ctx.fill(path); - ctx.stroke(path); - } - } - - if (renderContent) { - ctx.fillStyle = TEXT_COLOR; - ctx.font = TEXT_FONT; - ctx.textAlign = TEXT_ALIGN; - ctx.textBaseline = TEXT_BASELINE; - - renderContent(ctx, nodeOrEdge, hovered); - } - - if (movingNode || hovered) return; - - if (paths) { - for (const path of paths) { - if (ctx.isPointInPath(path, canvasPos[0], canvasPos[1])) { - if ("x" in nodeOrEdge) { - this.view.hoveredEdge = undefined; - this.view.hoveredNode = nodeOrEdge; - } else { - this.view.hoveredEdge = nodeOrEdge; - } - } - } - } else if (render) { - if (ctx.isPointInPath(canvasPos[0], canvasPos[1])) { - if ("x" in nodeOrEdge) { - this.view.hoveredEdge = undefined; - this.view.hoveredNode = nodeOrEdge; - } else { - this.view.hoveredEdge = nodeOrEdge; - } - } - } - } - - getCloserPoint( - x: number, - y: number, - p1: [number, number], - p2: [number, number] - ): [number, number] { - const dx1 = p1[0] - x; - const dy1 = p1[1] - y; - - const s1 = dx1 * dx1 + dy1 * dy1; - - const dx2 = p2[0] - x; - const dy2 = p2[1] - y; - - const s2 = dx2 * dx2 + dy2 * dy2; - - return s1 > s2 ? p2 : p1; - } - - drawEdge(edge: Edge, hovered = false) { - const { canvasPos } = this; - const { ctx, canvas, movingNode } = this.view; - const [scale, translateX, translateY] = this.view.transform; - const { size } = edge.shape; - - const source = edge.source; - const target = edge.target; - - const viewWidth = canvas.width / scale; - const viewHeight = canvas.height / scale; - const viewLeft = -translateX / scale; - const viewTop = -translateY / scale; - const viewRight = viewLeft + viewWidth; - const viewBottom = viewTop + viewHeight; - - const rad = Math.atan2(target.y - source.y, target.x - source.x); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - source.shape.setIntersectionPoint(this.out, source, target); - const [initialStartX, initialStartY] = this.out; - - target.shape.setIntersectionPoint(this.out, target, source); - const [initialEndX, initialEndY] = this.out; - - // First get the intersection of line and the view rect - const count = getIntersectionsOfLineAndRect( - this.int, - initialStartX, - initialStartY, - initialEndX, - initialEndY, - viewLeft + viewWidth * 0.5, - viewTop + viewHeight * 0.5, - viewWidth, - viewHeight - ); - - // Do not render if it is out of view - if ( - count > 0 || - (initialStartX > viewLeft && - initialStartX < viewRight && - initialStartY > viewTop && - initialStartY < viewBottom) - ) { - let startX = initialStartX; - let startY = initialStartY; - let endX = initialEndX; - let endY = initialEndY; - - if (count === 1) { - if ( - startX < viewLeft || - startX > viewRight || - startY < viewTop || - startY > viewBottom - ) { - startX = this.int[0][0]; - startY = this.int[0][1]; - } else { - endX = this.int[0][0]; - endY = this.int[0][1]; - } - } else if (count === 2) { - const startPoint = this.getCloserPoint( - startX, - startY, - this.int[0], - this.int[1] - ); - - const endPoint = startPoint === this.int[0] ? this.int[1] : this.int[0]; - - startX = startPoint[0]; - startY = startPoint[1]; - endX = endPoint[0]; - endY = endPoint[1]; - } - - const dx = endX - startX; - const dy = endY - startY; - - const lineLen = Math.abs(dy) < 0.00001 ? dx : Math.abs(dy / sinr); - const halfWidth = NODE_STROKE_WIDTH * 0.5; - - ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; - - ctx.translate(startX + halfWidth * sinr, startY - halfWidth * cosr); - ctx.rotate(rad); - ctx.scale( - lineLen - - (endX === initialEndX && endY === initialEndY ? EDGE_SIZE : 0), - NODE_STROKE_WIDTH - ); - - ctx.fill(linePath); - - if ( - !movingNode && - !hovered && - ctx.isPointInPath(linePath, canvasPos[0], canvasPos[1]) - ) { - this.view.hoveredEdge = edge; - } - - this.setToViewTransform(); - } - - if ( - !this.isOutOfView(initialEndX, initialEndY, EDGE_SIZE * 2, EDGE_SIZE * 2) - ) { - const offset = EDGE_SIZE * twoOver3 + 1; - - ctx.transform( - EDGE_SIZE, - 0, - 0, - EDGE_SIZE, - initialEndX - offset * cosr, - initialEndY - offset * sinr - ); - - ctx.rotate(rad); - - ctx.fillStyle = hovered ? HOVER_LINE_COLOR : LINE_COLOR; - - ctx.fill(lineArrowPath); - - if ( - !movingNode && - edge && - !hovered && - ctx.isPointInPath(lineArrowPath, canvasPos[0], canvasPos[1]) - ) { - this.view.hoveredEdge = edge; - } - - this.setToViewTransform(); - } - - const midX = (initialStartX + initialEndX) * 0.5; - const midY = (initialStartY + initialEndY) * 0.5; - - if (this.isOutOfView(midX, midY, edge.shape.size[0], edge.shape.size[1])) { - this.setToViewTransform(); - return; - } - - const rx = size[0] * 0.5; - const ry = size[1] * 0.5; - - ctx.translate(midX - rx, midY - ry); - - this.drawShape(edge, edge.shape as GraphShape, hovered); - - this.setToViewTransform(); - } - - isOutOfView(x: number, y: number, w: number, h: number) { - const { canvas } = this.view; - const [scale, translateX, translateY] = this.view.transform; - - const rx = w * 0.5 + NODE_STROKE_WIDTH * 0.5; - const ry = h * 0.5 + NODE_STROKE_WIDTH * 0.5; - - return ( - (x + rx) * scale + translateX < 0 || - (y + ry) * scale + translateY < 0 || - (x - rx) * scale + translateX > canvas.width || - (y - ry) * scale + translateY > canvas.height - ); - } - - drawNode(node: Node, hovered = false) { - const { ctx } = this.view; - const { size } = node.shape; - - if (this.isOutOfView(node.x, node.y, size[0], size[1])) return; - - const rx = size[0] * 0.5; - const ry = size[1] * 0.5; - - ctx.translate(node.x - rx, node.y - ry); - - this.drawShape(node, node.shape as GraphShape, hovered); - - this.setToViewTransform(); - } -} diff --git a/old-src/graph-state.ts b/old-src/graph-state.ts deleted file mode 100644 index 266c5e6..0000000 --- a/old-src/graph-state.ts +++ /dev/null @@ -1,3 +0,0 @@ -type GraphState = { - isDrawing: boolean; -}; diff --git a/old-src/graph-view-old.ts b/old-src/graph-view-old.ts deleted file mode 100644 index ea6b5ff..0000000 --- a/old-src/graph-view-old.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { GEState } from "./state"; -import { GEGraphRenderer } from "./graph-renderer"; -import { GEEventHandler } from "./event-handler"; -import { GENode, GEEdge, GEViewOptionsParams } from "./types"; - -export class GEView { - readonly canvas: HTMLCanvasElement; - - private _state: GEState; - private _renderer: GEGraphRenderer; - private _eventHandler: GEEventHandler; - - constructor(options?: GEViewOptionsParams) { - this.canvas = document.createElement("canvas"); - this._state = new GEState(); - this._renderer = new GEGraphRenderer(this._state, this.canvas); - this._eventHandler = new GEEventHandler( - this._state, - this.canvas, - this._renderer - ); - - if (options) { - this._state.setOptions(options); - } - } - - getTranslateX(): number { - return this._state.translateX; - } - - getTanslateY(): number { - return this._state.translateY; - } - getScale(): number { - return this._state.scale; - } - - zoomTo(value: number): void { - const { width, height } = this.canvas; - const { translateX, translateY, scale } = this._state; - - const centerX = (width * 0.5 - translateX) / scale; - const centerY = (height * 0.5 - translateY) / scale; - - this._state.zoomTo(value, centerX, centerY); - - this.requestDraw(); - } - - init(container: HTMLElement): void { - container.appendChild(this.canvas); - - this.canvas.textContent = "Canvas is not supported in your browser."; - this.canvas.width = container.clientWidth; - this.canvas.height = container.clientHeight; - - this._state.setBoundingRect(this.canvas); - this._eventHandler.init(); - this.requestDraw(); - } - - destroy(): void { - this._eventHandler.destroy(); - } - - requestDraw(): void { - this._renderer.requestDraw(); - } - - resize(width: number, height: number): void { - this.canvas.width = width; - this.canvas.height = height; - - this._state.setBoundingRect(this.canvas); - - this.requestDraw(); - } - - setData(nodes: GENode[], edges: GEEdge[]): void { - this._state.setData(nodes, edges); - this.requestDraw(); - } - - setOptions(options: GEViewOptionsParams): void { - this._state.setOptions(options); - this.requestDraw(); - } - - setSelection(node: GENode | undefined, edge: GEEdge | undefined): void { - if (node && edge) return; - - this._state.selectedNode = node; - this._state.selectedEdge = edge; - - this.requestDraw(); - } - - setSelectedNode(node: GENode | undefined): void { - this._state.selectedNode = node; - this._state.selectedEdge = undefined; - - this.requestDraw(); - } - - getSelectedNode(): GENode | undefined { - return this._state.selectedNode; - } - - setSelectedEdge(edge: GEEdge | undefined): void { - this._state.selectedNode = undefined; - this._state.selectedEdge = edge; - - this.requestDraw(); - } - - getSelectedEdge(): GEEdge | undefined { - return this._state.selectedEdge; - } -} diff --git a/old-src/graph-view.ts b/old-src/graph-view.ts deleted file mode 100644 index 52f9d50..0000000 --- a/old-src/graph-view.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { GraphRenderer } from "./graph-renderer"; - -export type GraphShape = { - paths?: Path2D[]; - render?: ( - ctx: CanvasRenderingContext2D, - nodeOrEdge: Node | Edge, - isHovered: boolean - ) => void; - renderContent?: ( - ctx: CanvasRenderingContext2D, - nodeOrEdge: Node | Edge, - isHovered: boolean - ) => void; - size: [number, number]; -}; - -export type NodeShape = { - paths?: Path2D[]; - render?: ( - ctx: CanvasRenderingContext2D, - node: Node, - isHovered: boolean - ) => void; - renderContent?: ( - ctx: CanvasRenderingContext2D, - node: Node, - isHovered: boolean - ) => void; - setIntersectionPoint: ( - out: [number, number], - self: Node, - other: Node - ) => void; - size: [number, number]; -}; - -export type EdgeShape = { - paths?: Path2D[]; - render?: ( - ctx: CanvasRenderingContext2D, - edge: Edge, - isHovered: boolean - ) => void; - renderContent?: ( - ctx: CanvasRenderingContext2D, - node: Edge, - isHovered: boolean - ) => void; - size: [number, number]; -}; - -export type GraphNode = { - x: number; - y: number; - shape: NodeShape; -}; - -export type GraphEdge = { - source: GraphNode; - target: GraphNode; - shape: EdgeShape; -}; - -// const FPS = 60; -// const MPF = 1000 / FPS; -// const SPF = MPF * 0.001; - -export class GraphView { - readonly canvas: HTMLCanvasElement; - readonly ctx: CanvasRenderingContext2D; - - transform: [number, number, number] = [1, 0, 0]; // [scale, tx, ty] - nodes: Node[]; - edges: Edge[]; - hoveredNode: Node | undefined = undefined; - hoveredEdge: Edge | undefined = undefined; - pointerPos: [number, number] = [0, 0]; - movingNode: Node | undefined = undefined; - isCreatingEdge = false; - dragLineSourcePos: [number, number] = [0, 0]; - - private isDrawing = false; - private boundingRect: DOMRect; - private renderer: GraphRenderer; - // private viewMoveTarget: [number, number] = [0, 0]; - - // private startTime = 0; - // private lastTime = 0; - // private counter = 0; - - constructor(container: HTMLElement, nodes: Node[], edges: Edge[]) { - this.nodes = nodes; - this.edges = edges; - - this.canvas = document.createElement("canvas"); - - const ctx = this.canvas.getContext("2d", { alpha: false }); - - if (!ctx) { - throw "Canvas is not supported in your browser."; - } - - this.ctx = ctx; - - this.canvas.textContent = "Canvas is not supported in your browser."; - this.canvas.width = container.clientWidth; - this.canvas.height = container.clientHeight; - this.boundingRect = this.canvas.getBoundingClientRect(); - - container.appendChild(this.canvas); - - window.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); - - this.renderer = new GraphRenderer(this); - this.startDraw(); - } - - destroy = () => { - window.removeEventListener("mousemove", this.handleMouseMove); - }; - - private handleMouseMove = (e: MouseEvent) => { - this.pointerPos[0] = e.x; - this.pointerPos[1] = e.y; - }; - - private requestDrawHandler = () => { - this.isDrawing = false; - this.draw(); - }; - - requestDraw() { - if (!this.isDrawing) { - requestAnimationFrame(this.requestDrawHandler); - } - - this.isDrawing = true; - } - - // private update = (dt: number) => { - // const sx = this.viewMoveTarget[0] - this.transform[1]; - // const sy = this.viewMoveTarget[1] - this.transform[2]; - - // const vx = sx; - // const vy = sy; - - // this.transform[1] += vx * dt; - // this.transform[2] += vy * dt; - - // if ( - // this.transform[1] >= this.viewMoveTarget[0] && - // this.transform[2] >= this.viewMoveTarget[1] - // ) { - // this.isMovingView = false; - // } - // }; - - // private run = (timestamp: number) => { - // const current = timestamp; - // const dt = current - this.lastTime; - - // this.counter += dt; - // this.lastTime = current; - - // while (this.counter > MPF) { - // this.update(SPF); - - // this.counter -= MPF; - // } - - // this.draw(); - - // requestAnimationFrame(this.run); - // }; - - // startDraw = () => { - // requestAnimationFrame(timestamp => { - // this.startTime = timestamp; - // this.lastTime = this.startTime; - - // requestAnimationFrame(this.run); - // }); - // }; - - startDraw = () => { - requestAnimationFrame(this.startDraw); - - this.draw(); - }; - - draw = () => { - this.renderer.draw(); - }; - - resize(width: number, height: number): void { - this.canvas.width = width; - this.canvas.height = height; - - this.boundingRect = this.canvas.getBoundingClientRect(); - } - - moveBy(x: number, y: number) { - this.moveTo(this.transform[1] + x, this.transform[2] + y); - // this.viewMoveTarget[0] += x; - // this.viewMoveTarget[1] += y; - } - - moveTo(x: number, y: number) { - this.transform[1] = x; - this.transform[2] = y; - // this.viewMoveTarget[0] = x; - // this.viewMoveTarget[1] = y; - } - - zoomBy(value: number, viewX?: number, viewY?: number) { - this.zoomTo(this.transform[0] + value, viewX, viewY); - } - - zoomTo(value: number, viewX?: number, viewY?: number) { - const { width, height } = this.canvas; - const [scale, translateX, translateY] = this.transform; - - viewX = viewX || (width * 0.5 - translateX) / scale; - viewY = viewY || (height * 0.5 - translateY) / scale; - - const newScale = Math.min(1000.0, Math.max(0.1, value)); - - const deltaScale = newScale - scale; - const offsetX = -(viewX * deltaScale); - const offsetY = -(viewY * deltaScale); - - this.transform[0] += deltaScale; - this.transform[1] += offsetX; - this.transform[2] += offsetY; - } - - beginDragLine(x: number, y: number) { - this.isCreatingEdge = true; - this.dragLineSourcePos[0] = x; - this.dragLineSourcePos[1] = y; - } - - endDragLine() { - this.isCreatingEdge = false; - } - - beginMoveNode(node: Node) { - this.movingNode = node; - } - - endMoveNode() { - this.movingNode = undefined; - } - - setViewPosFromWindowPos( - out: [number, number], - windowX: number, - windowY: number - ) { - const { left, top } = this.boundingRect; - const [scale, translateX, translateY] = this.transform; - - out[0] = (windowX - left - translateX) / scale; - out[1] = (windowY - top - translateY) / scale; - } - - setViewPosFromCanvasPos( - out: [number, number], - canvasX: number, - canvasY: number - ) { - const [scale, translateX, translateY] = this.transform; - - out[0] = (canvasX - translateX) / scale; - out[1] = (canvasY - translateY) / scale; - } - - getViewPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.boundingRect; - const [scale, translateX, translateY] = this.transform; - - return [ - (windowX - left - translateX) / scale, - (windowY - top - translateY) / scale - ]; - } - - getViewPosFromCanvasPos(canvasX: number, canvasY: number) { - const [scale, translateX, translateY] = this.transform; - - return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; - } - - setCanvasPosFromWindowPos( - out: [number, number], - windowX: number, - windowY: number - ) { - const { left, top } = this.boundingRect; - - out[0] = windowX - left; - out[1] = windowY - top; - } - - getCanvasPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.boundingRect; - - return [windowX - left, windowY - top]; - } -} - -export function createGraphView( - container: HTMLElement, - nodes: Node[], - edges: Edge[] -) { - return new GraphView(container, nodes, edges); -} diff --git a/old-src/index.ts b/old-src/index.ts deleted file mode 100644 index 963f942..0000000 --- a/old-src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./graph-view"; -export * from "./utils"; diff --git a/old-src/intersections.ts b/old-src/intersections.ts deleted file mode 100644 index 02fa7ab..0000000 --- a/old-src/intersections.ts +++ /dev/null @@ -1,152 +0,0 @@ -// http://paulbourke.net/geometry/pointlineplane/javascript.txt -export function intersect( - x1: number, - y1: number, - x2: number, - y2: number, - x3: number, - y3: number, - x4: number, - y4: number, - outPoint: [number, number] -): boolean { - // Check if none of the lines are of length 0 - if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; - - const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); - - // Lines are parallel - if (denominator === 0) return false; - - const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; - const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; - - // is the intersection along the segments - if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; - - // Return a object with the x and y coordinates of the intersection - outPoint[0] = x1 + ua * (x2 - x1); - outPoint[1] = y1 + ua * (y2 - y1); - - return true; -} - -export function intersectLineRectCenter( - x1: number, - y1: number, - x2: number, - y2: number, - w: number, - h: number, - outPoint: [number, number] -): boolean { - const wh = w * 0.5; - const hh = h * 0.5; - - const i1 = intersect( - x1, - y1, - x2, - y2, - x2 - wh, - y2 - hh, - x2 + wh, - y2 - hh, - outPoint - ); - - if (i1) return true; - - const i2 = intersect( - x1, - y1, - x2, - y2, - x2 + wh, - y2 - hh, - x2 + wh, - y2 + hh, - outPoint - ); - - if (i2) return true; - - const i3 = intersect( - x1, - y1, - x2, - y2, - x2 + wh, - y2 + hh, - x2 - wh, - y2 + hh, - outPoint - ); - - if (i3) return true; - - const i4 = intersect( - x1, - y1, - x2, - y2, - x2 - wh, - y2 + hh, - x2 - wh, - y2 - hh, - outPoint - ); - - if (i4) return true; - - return false; -} - -export function instersectLinePolygonCenter( - x1: number, - y1: number, - x2: number, - y2: number, - points: [number, number][], - outPoint: [number, number] -): boolean { - const len = points.length; - - for (let i = 0; i < len; i++) { - const nextIndex = (i + 1) % len; - - const x3 = x2 + points[i][0]; - const y3 = y2 + points[i][1]; - const x4 = x2 + points[nextIndex][0]; - const y4 = y2 + points[nextIndex][1]; - - const int = intersect(x1, y1, x2, y2, x3, y3, x4, y4, outPoint); - - if (int) return true; - } - - return false; -} - -export function intersectLineCircleCenter( - x1: number, - y1: number, - x2: number, - y2: number, - r: number, - outPoint: [number, number] -): boolean { - const dx = x2 - x1; - const dy = y2 - y1; - - if (dx * dx + dy * dy <= r * r) return false; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - outPoint[0] = x2 - cosr * r; - outPoint[1] = y2 - sinr * r; - - return true; -} diff --git a/old-src/state.ts b/old-src/state.ts deleted file mode 100644 index 02e06bc..0000000 --- a/old-src/state.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { - GEViewOptions, - GEViewOptionsParams, - GEGridType, - GEShapeName, - GENode, - GEEdge -} from "./types"; - -export class GEState { - nodes: GENode[]; - edges: GEEdge[]; - - options: GEViewOptions; - - isDragging = false; - isShiftDown = false; - isDrawing = false; - - moveNodeX = 0; - moveNodeY = 0; - - // transform - translateX = 0; - translateY = 0; - scale = 1; - - // pointer position - pointerScreenX = 0; - pointerScreenY = 0; - pointerCanvasX = 0; - pointerCanvasY = 0; - pointerViewX = 0; - pointerViewY = 0; - boundingClientRect: DOMRect; - - // selection - selectedNode: GENode | undefined = undefined; - selectedEdge: GEEdge | undefined = undefined; - hoveredNode: GENode | undefined = undefined; - hoveredEdge: GEEdge | undefined = undefined; - - // drag line when creating edge - isCreatingEdge = false; - dragLineSourceNode: GENode | undefined = undefined; - dragLineTargetX = 0; - dragLineTargetY = 0; - - constructor() { - this.nodes = []; - this.edges = []; - - this.options = this.getDefaultOptions(); - } - - isMovingNode(): boolean { - return this.isDragging && this.selectedNode && !this.isCreatingEdge; - } - - isMovingView(): boolean { - return !this.isShiftDown && this.isDragging && !this.selectedNode; - } - - setData(nodes: GENode[], edges: GEEdge[]): void { - this.nodes = nodes; - this.edges = edges; - } - - setOptions(options: GEViewOptionsParams): void { - Object.keys(options).forEach(k => { - this.options[k] = options[k]; - }); - } - - getDefaultOptions(): GEViewOptions { - return { - edgeArrowLength: 16, - edgeArrowRadian: Math.PI / 6, - backgroundColor: "#F7FAFC", - showGrid: true, - gridType: GEGridType.DOTS, - gridColor: "#CBD5E0", - gridLineWidth: 8, - gridGap: 64, - defaultSubShapeColor: "green", - nodeLineWidth: 2, - nodeColor: "white", - nodeSelectedColor: "#4299E1", - nodeStrokeColor: "#1A202C", - nodeTextColor: "#1A202C", - nodeSelectedTextColor: "white", - nodeTextStyle: "16px sans-serif", - edgeLineWidth: 3, - edgeLineColor: "#2B6CB0", - edgeLineSelectedColor: "#4299E1", - edgeShapeFillColor: "white", - edgeTextColor: "#1A202C", - edgeSelectedTextColor: "white", - edgeTextStyle: "16px sans-serif", - minScale: 0.2, - maxScale: 1.8, - cursorGrab: "grab", - cursorPointer: "pointer", - cursorCrosshair: "crosshair", - nodeTypes: { - empty: [ - { - shape: GEShapeName.CIRCLE, - r: 80 - } - ] - }, - edgeTypes: { - empty: [ - { - shape: GEShapeName.RECTANGLE, - width: 30, - height: 20 - } - ] - } - }; - } - - setBoundingRect(canvas: HTMLCanvasElement): void { - this.boundingClientRect = canvas.getBoundingClientRect(); - } - - setPointerPosition(screenX: number, screenY: number): void { - this.pointerScreenX = screenX; - this.pointerScreenY = screenY; - this.pointerCanvasX = Math.floor(screenX - this.boundingClientRect.left); - this.pointerCanvasY = Math.floor(screenY - this.boundingClientRect.top); - this.pointerViewX = (this.pointerCanvasX - this.translateX) / this.scale; - this.pointerViewY = (this.pointerCanvasY - this.translateY) / this.scale; - } - - zoomTo(scale: number, viewX: number, viewY: number): void { - const { maxScale, minScale } = this.options; - - const newScale = Math.min(maxScale, Math.max(minScale, scale)); - - const deltaScale = newScale - this.scale; - const offsetX = -(viewX * deltaScale); - const offsetY = -(viewY * deltaScale); - - this.translateX += offsetX; - this.translateY += offsetY; - this.scale += deltaScale; - } -} diff --git a/old-src/types.ts b/old-src/types.ts deleted file mode 100644 index 138320b..0000000 --- a/old-src/types.ts +++ /dev/null @@ -1,147 +0,0 @@ -export type Point = [number, number]; - -export enum GEShapeName { - CIRCLE, - RECTANGLE, - POLYGON -} - -export type GECircleShape = { - shape: GEShapeName.CIRCLE; - r: number; - color?: string; -}; - -export type GERectangleShape = { - shape: GEShapeName.RECTANGLE; - width: number; - height: number; - color?: string; -}; - -export type GEPolygonShape = { - shape: GEShapeName.POLYGON; - points: Point[]; - color?: string; -}; - -export type GEShape = GECircleShape | GERectangleShape | GEPolygonShape; - -export type GEShapes = { 0: GEShape } & GEShape[]; - -export type GEShapeTypes = Record; - -export type GENode = { - id: number; - x: number; - y: number; - text: string; - type: string; -}; - -export type GEEdge = { - id: number; - text: string; - sourceNode: GENode; - targetNode: GENode; - type: string; -}; - -export enum GEGridType { - LINES, - DOTS -} - -export type GraphViewOptions = { - edgeArrowLength: number; - edgeArrowRadian: number; - backgroundColor: string; - showGrid: boolean; - gridColor: string; - gridLineWidth: number; - gridGap: number; - defaultSubShapeColor: string; - nodeLineWidth: number; - nodeColor: string; - nodeSelectedColor: string; - nodeStrokeColor: string; - nodeTextColor: string; - nodeSelectedTextColor: string; - nodeTextStyle: string; - edgeLineWidth: number; - edgeLineColor: string; - edgeLineSelectedColor: string; - edgeShapeFillColor: string; - edgeTextColor: string; - edgeSelectedTextColor: string; - edgeTextStyle: string; - minScale: number; - maxScale: number; - cursorGrab: string; - cursorPointer: string; - cursorCrosshair: string; - nodeTypes: GEShapeTypes; - edgeTypes: GEShapeTypes; -}; - -export type GEViewOptions = { - edgeArrowLength: number; - edgeArrowRadian: number; - backgroundColor: string; - showGrid: boolean; - gridType: GEGridType; - gridColor: string; - gridLineWidth: number; - gridGap: number; - defaultSubShapeColor: string; - nodeLineWidth: number; - nodeColor: string; - nodeSelectedColor: string; - nodeStrokeColor: string; - nodeTextColor: string; - nodeSelectedTextColor: string; - nodeTextStyle: string; - edgeLineWidth: number; - edgeLineColor: string; - edgeLineSelectedColor: string; - edgeShapeFillColor: string; - edgeTextColor: string; - edgeSelectedTextColor: string; - edgeTextStyle: string; - minScale: number; - maxScale: number; - cursorGrab: string; - cursorPointer: string; - cursorCrosshair: string; - nodeTypes: GEShapeTypes; - edgeTypes: GEShapeTypes; - onViewMoved?: () => void; - onViewZoom?: () => void; - onCreateNode?: (x: number, y: number, evt: MouseEvent) => void; - onMoveNode?: (node: GENode, newX: number, newY: number) => void; - onDeleteNode?: (node: GENode) => void; - onCreateEdge?: ( - sourceNode: GENode, - targetNode: GENode, - evt: MouseEvent - ) => void; - onDeleteEdge?: (edge: GEEdge, sourceNode: GENode, targetNode: GENode) => void; - onSelectionChange?: ( - selectedNode: GENode | undefined, - selectedEdge: GEEdge | undefined - ) => void; - onHoverChange?: ( - hoveredNode: GENode | undefined, - hoveredEdge: GEEdge | undefined, - viewX: number, - viewY: number, - canvasX: number, - canvasY: number, - clientX: number, - clientY: number - ) => void; -}; - -export type GEViewOptionsParams = { - [T in keyof GEViewOptions]?: GEViewOptions[T]; -}; diff --git a/old-src/utils.ts b/old-src/utils.ts deleted file mode 100644 index 69915c5..0000000 --- a/old-src/utils.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { GraphEdge, GraphNode } from "./graph-view"; - -// http://paulbourke.net/geometry/pointlineplane/javascript.txt -export function intersect( - out: [number, number], - x1: number, - y1: number, - x2: number, - y2: number, - x3: number, - y3: number, - x4: number, - y4: number -): boolean { - // Check if none of the lines are of length 0 - if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; - - const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); - - // Lines are parallel - if (denominator === 0) return false; - - const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; - const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; - - // is the intersection along the segments - if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; - - // Return a object with the x and y coordinates of the intersection - out[0] = x1 + ua * (x2 - x1); - out[1] = y1 + ua * (y2 - y1); - - return true; -} - -// return number of intersection points, max of 2 -export function getIntersectionsOfLineAndRect( - out: [[number, number], [number, number]], - lineX1: number, - lineY1: number, - lineX2: number, - lineY2: number, - rectX: number, - rectY: number, - rectW: number, - rectH: number -): number { - const wh = rectW * 0.5; - const hh = rectH * 0.5; - - const x1 = lineX1; - const y1 = lineY1; - const x2 = lineX2; - const y2 = lineY2; - const left = rectX - wh; - const top = rectY - hh; - const right = rectX + wh; - const bottom = rectY + hh; - - let i = 0; - - if (intersect(out[i], x1, y1, x2, y2, left, top, right, top)) { - i++; - } - - if (intersect(out[i], x1, y1, x2, y2, right, top, right, bottom)) { - i++; - - if (i === 2) return i; - } - - if (intersect(out[i], x1, y1, x2, y2, right, bottom, left, bottom)) { - i++; - - if (i === 2) return i; - } - - if (intersect(out[i], x1, y1, x2, y2, left, bottom, left, top)) { - i++; - } - - return i; -} - -export function circleIntersection( - out: [number, number], - self: Node, - other: Node -) { - const dx = other.x - self.x; - const dy = other.y - self.y; - const r = (self.shape.size ? self.shape.size[0] : 100) * 0.5; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - out[0] = self.x + cosr * r; - out[1] = self.y + sinr * r; -} - -export function rectIntersection( - out: [number, number], - self: Node, - other: Node -) { - const wh = self.shape.size[0] * 0.5; - const hh = self.shape.size[1] * 0.5; - - const x1 = other.x; - const y1 = other.y; - const x2 = self.x; - const y2 = self.y; - - if (intersect(out, x1, y1, x2, y2, x2 - wh, y2 - hh, x2 + wh, y2 - hh)) - return; - - if (intersect(out, x1, y1, x2, y2, x2 + wh, y2 - hh, x2 + wh, y2 + hh)) - return; - - if (intersect(out, x1, y1, x2, y2, x2 + wh, y2 + hh, x2 - wh, y2 + hh)) - return; - - intersect(out, x1, y1, x2, y2, x2 - wh, y2 + hh, x2 - wh, y2 - hh); -} - -export function polygonIntersection( - points: [number, number][] -) { - return function (out: [number, number], self: Node, other: Node) { - const len = points.length; - - const wh = self.shape.size[0] * 0.5; - const hh = self.shape.size[1] * 0.5; - - const x1 = other.x; - const y1 = other.y; - const x2 = self.x; - const y2 = self.y; - - for (let i = 0; i < len; i++) { - const nextIndex = (i + 1) % len; - - const x3 = x2 - wh + points[i][0]; - const y3 = y2 - hh + points[i][1]; - const x4 = x2 - wh + points[nextIndex][0]; - const y4 = y2 - hh + points[nextIndex][1]; - - const int = intersect(out, x1, y1, x2, y2, x3, y3, x4, y4); - - if (int) return; - } - }; -} - -export function createPathFromPoints(points: [number, number][]) { - const r = new Path2D(); - - r.moveTo(points[0][0], points[0][1]); - - for (let i = 1; i < points.length; i++) { - r.lineTo(points[i][0], points[i][1]); - } - - r.closePath(); - - return r; -} - -export function renderNodeContentFromField( - field: keyof Node, - size: [number, number] -) { - return (ctx: CanvasRenderingContext2D, node: Node) => { - ctx.fillText( - node[field as keyof Node] as unknown as string, - size[0] * 0.5, - size[1] * 0.5 - ); - }; -} - -export function renderEdgeContentFromField( - field: keyof Edge, - size: [number, number] -) { - return (ctx: CanvasRenderingContext2D, edge: Edge) => { - ctx.fillText( - edge[field as keyof Edge] as unknown as string, - size[0] * 0.5, - size[1] * 0.5 - ); - }; -} From cdb3ac0a2be450dd9257b6fd04f3d4d2470bc181 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 17 Nov 2022 19:43:57 +0700 Subject: [PATCH 33/56] checkpoint --- src/graph-handler.ts | 16 ---------------- src/graph-renderer.ts | 35 +++++++++++++++-------------------- src/graph-state.ts | 1 - src/quad.ts | 7 ++++--- 4 files changed, 19 insertions(+), 40 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 78b2f92..90e7e7d 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -112,22 +112,6 @@ export class GraphHandler { this.state.hoveredId = id; } - // for (const node of Object.values(nodes)) { - // if (!this.renderer.isNodeInView(node)) continue; - - // if (this.isNodeHovered(vx, vy, node)) { - // this.state.hoveredId = node.id; - // } - // } - - // for (const edge of Object.values(edges)) { - // if (!this.renderer.isEdgeInView(edge)) continue; - - // if (this.isEdgeHovered(vx, vy, edge)) { - // this.state.hoveredId = edge.id; - // } - // } - if (this.state.hoveredId === prevId) return; const currId = this.state.hoveredId; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index f59ecd9..a56b30c 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -10,25 +10,35 @@ import { } from "./types"; import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; +export enum RedrawType { + ALL = 0, + NODES, + EDGES, + MOVE +} + export class GraphRenderer { private state: GraphState; private view: GraphView; + private isDrawing = false; + constructor(view: GraphView, state: GraphState) { this.view = view; this.state = state; } - requestDraw(handler = this.requestDrawHandler) { - if (!this.state.isDrawing) { - requestAnimationFrame(handler); + requestDraw() { + if (!this.isDrawing) { + requestAnimationFrame(this.requestDrawHandler); } - this.state.isDrawing = true; + this.isDrawing = true; } requestDrawHandler = () => { - this.state.isDrawing = false; + this.isDrawing = false; + this.drawAll(); }; @@ -237,11 +247,6 @@ export class GraphRenderer { const nvb = nvy + nvh; const nvl = nvx; - // const ct = Math.max(ovt, nvt); - // const cr = Math.min(ovr, nvr); - // const cb = Math.min(ovb, nvb); - // const cl = Math.max(ovl, nvl); - const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; bgCtx.drawImage(bgCtx.canvas, ovx, ovy, nvw, nvh); @@ -264,7 +269,6 @@ export class GraphRenderer { const tb = ovt; const tl = nvl; - // console.log("atas"); this.drawAll(tl, tt, tr - tl, tb - tt); } @@ -274,7 +278,6 @@ export class GraphRenderer { const rb = Math.min(nvb, ovb); const rl = ovr; - // console.log("kanan"); this.drawAll(rl, rt, rr - rl, rb - rt); } @@ -284,7 +287,6 @@ export class GraphRenderer { const bb = nvb; const bl = nvl; - // console.log(bt, br, bb, bl); this.drawAll(bl, bt, br - bl, bb - bt); } @@ -294,7 +296,6 @@ export class GraphRenderer { const lb = Math.min(nvb, ovb); const ll = nvl; - // console.log(lt, lr, lb, ll); this.drawAll(ll, lt, lr - ll, lb - lt); } }; @@ -313,17 +314,11 @@ export class GraphRenderer { this.drawBackground(vx, vy, vw, vh); this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); - // console.log(this.state.drawIds.size); for (const id of this.state.drawIds) { if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); } - - // for (const edge of Object.values(edges)) - // this.drawEdge(edge, false, vx, vy, vw, vh); - // for (const node of Object.values(nodes)) - // this.drawNode(node, false, vx, vy, vw, vh); }; redrawNodes = (excludeIds?: Set) => { diff --git a/src/graph-state.ts b/src/graph-state.ts index 1848b18..94e4e8f 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -41,7 +41,6 @@ export class GraphState { viewH = 0; boundingRect: DOMRect; - isDrawing = false; isMovingView = false; hoveredId = 0; selectedIds = new Set(); diff --git a/src/quad.ts b/src/quad.ts index f94ece7..04138ab 100644 --- a/src/quad.ts +++ b/src/quad.ts @@ -3,6 +3,7 @@ import { rectIntersect } from "./utils"; const MAX_DEPTH = 64; +const DATA_PER_CHILD = 4; export type QuadData = { value: T; @@ -97,10 +98,10 @@ function _insert(node: Quad, data: QuadData, depth: number) { ) return; - // if no children and data size is smaller than the limit (4), insert data to the node + // if no children and data size is smaller than the limit, insert data to the node if ( depth === MAX_DEPTH || - (node.children.length === 0 && node.data.length < 4) + (node.children.length === 0 && node.data.length < DATA_PER_CHILD) ) { node.data.push(data); return; @@ -109,7 +110,7 @@ function _insert(node: Quad, data: QuadData, depth: number) { const dataToInsert: QuadData[] = []; // if no children, create the children - if (node.children.length === 0 && node.data.length >= 4) { + if (node.children.length === 0 && node.data.length >= DATA_PER_CHILD) { const hw = node.w * 0.5; const hh = node.h * 0.5; From f88519cc04ac24d6098d365c37238d1b24ba546c Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 00:02:28 +0700 Subject: [PATCH 34/56] bg, transform, graph width and height, clipping --- example/index.ts | 205 ++++++------ old/graph-handler.ts | 159 ++++++++++ old/graph-renderer.ts | 709 ++++++++++++++++++++++++++++++++++++++++++ old/graph-state.ts | 123 ++++++++ old/graph-view.ts | 613 ++++++++++++++++++++++++++++++++++++ old/index.ts | 2 + old/quad.ts | 160 ++++++++++ old/types.ts | 164 ++++++++++ old/utils.ts | 69 ++++ old/vite-env.d.ts | 1 + src/graph-handler.ts | 111 ++----- src/graph-renderer.ts | 648 ++++---------------------------------- src/graph-state.ts | 14 +- src/graph-view.ts | 490 ++--------------------------- src/types.ts | 4 + 15 files changed, 2226 insertions(+), 1246 deletions(-) create mode 100644 old/graph-handler.ts create mode 100644 old/graph-renderer.ts create mode 100644 old/graph-state.ts create mode 100644 old/graph-view.ts create mode 100644 old/index.ts create mode 100644 old/quad.ts create mode 100644 old/types.ts create mode 100644 old/utils.ts create mode 100644 old/vite-env.d.ts diff --git a/example/index.ts b/example/index.ts index 5156961..529a9aa 100644 --- a/example/index.ts +++ b/example/index.ts @@ -24,123 +24,124 @@ const deleteButton = document.getElementById( let graphView: GraphView; -let lastId = 0; -let mode: "move" | "create" = "move"; - -function generate(nodeCount = 100) { - let id = 1; - - graphView.clear(); - - const columns = Math.ceil(Math.sqrt(nodeCount)); - - for (let i = 0; i < nodeCount; i++) { - const row = (i / columns) | 0; - const col = i % columns; - - graphView.addNode( - { - id, - x: col * 320, - y: row * 320 - }, - nodeShapes[getRandomInt(0, nodeShapes.length)] - ); - - id++; - - if (i > 0) { - graphView.addEdge( - { - id, - sourceId: id - (i > 1 ? 3 : 2), - targetId: id - 1 - }, - edgeShapes[getRandomInt(0, edgeShapes.length)] - ); - - id++; - } - } - - lastId = id - 1; -} +const lastId = 0; +const mode: "move" | "create" = "move"; + +// function generate(nodeCount = 100) { +// let id = 1; + +// graphView.clear(); + +// const columns = Math.ceil(Math.sqrt(nodeCount)); + +// for (let i = 0; i < nodeCount; i++) { +// const row = (i / columns) | 0; +// const col = i % columns; + +// graphView.addNode( +// { +// id, +// x: col * 320, +// y: row * 320 +// }, +// nodeShapes[getRandomInt(0, nodeShapes.length)] +// ); + +// id++; + +// if (i > 0) { +// graphView.addEdge( +// { +// id, +// sourceId: id - (i > 1 ? 3 : 2), +// targetId: id - 1 +// }, +// edgeShapes[getRandomInt(0, edgeShapes.length)] +// ); + +// id++; +// } +// } + +// lastId = id - 1; +// } function main() { graphView = createGraphView(graphDiv); - generate(100); + // generate(100); - generateButton.addEventListener("click", () => { - const len = parseInt(nodeCountInput.value, 10); + // generateButton.addEventListener("click", () => { + // const len = parseInt(nodeCountInput.value, 10); - generate(len); - }); + // generate(len); + // }); - toggleModeButton.addEventListener("click", () => { - if (mode === "create") mode = "move"; - else mode = "create"; - }); + // toggleModeButton.addEventListener("click", () => { + // if (mode === "create") mode = "move"; + // else mode = "create"; + // }); - deleteButton.addEventListener("click", () => { - const selectedIds = graphView.getSelection(); + // deleteButton.addEventListener("click", () => { + // const selectedIds = graphView.getSelection(); - for (const id of selectedIds) { - graphView.remove(id); - } - }); + // for (const id of selectedIds) { + // graphView.remove(id); + // } + // }); graphDiv.addEventListener("mousedown", e => { - const pos = graphView.getViewPosFromWindowPos(e.x, e.y); - const hoveredId = graphView.getHoveredId(); - - if (hoveredId) { - graphView.addSelection(hoveredId); - // graphView.select(hoveredId); - } else { - graphView.clearSelection(); - } - - if (mode === "move") { - if (!hoveredId) graphView.beginMoveView(); - else - graphView.beginMoveNodes( - graphView.getSelectedNodeIds(), - pos[0], - pos[1] - ); - } else if (mode === "create") { - if (!hoveredId) { - lastId++; - - graphView.addNode( - { id: lastId, x: pos[0], y: pos[1] }, - nodeShapes[getRandomInt(0, nodeShapes.length)] - ); - } else { - graphView.beginDragLine(); - } - } + // const pos = graphView.getViewPosFromWindowPos(e.x, e.y); + // const hoveredId = graphView.getHoveredId(); + + // if (hoveredId) { + // graphView.addSelection(hoveredId); + // // graphView.select(hoveredId); + // } else { + // graphView.clearSelection(); + // } + + // if (mode === "move") { + // if (!hoveredId) + graphView.beginMoveView(); + // else + // graphView.beginMoveNodes( + // graphView.getSelectedNodeIds(), + // pos[0], + // pos[1] + // ); + // } else if (mode === "create") { + // if (!hoveredId) { + // lastId++; + + // graphView.addNode( + // { id: lastId, x: pos[0], y: pos[1] }, + // nodeShapes[getRandomInt(0, nodeShapes.length)] + // ); + // } else { + // graphView.beginDragLine(); + // } + // } }); graphDiv.addEventListener("mouseup", () => { graphView.endMoveView(); - graphView.endMoveNodes(); - - const dragLineNodes = graphView.endDragLine(); - - if (dragLineNodes) { - lastId++; - - graphView.addEdge( - { - id: lastId, - sourceId: dragLineNodes[0].id, - targetId: dragLineNodes[1].id - }, - edgeShapes[getRandomInt(0, edgeShapes.length)] - ); - } + // graphView.endMoveNodes(); + + // const dragLineNodes = graphView.endDragLine(); + + // if (dragLineNodes) { + // lastId++; + + // graphView.addEdge( + // { + // id: lastId, + // sourceId: dragLineNodes[0].id, + // targetId: dragLineNodes[1].id + // }, + // edgeShapes[getRandomInt(0, edgeShapes.length)] + // ); + // } }); } diff --git a/old/graph-handler.ts b/old/graph-handler.ts new file mode 100644 index 0000000..90e7e7d --- /dev/null +++ b/old/graph-handler.ts @@ -0,0 +1,159 @@ +import { GraphRenderer } from "./graph-renderer"; +import { GraphState } from "./graph-state"; +import { GraphView } from "./graph-view"; +import { + EdgeDrawData, + GraphEdge, + NodeDrawData, + GraphNode, + GraphDataType +} from "./types"; + +export class GraphHandler { + private state: GraphState; + private view: GraphView; + private renderer: GraphRenderer; + + private vp: [number, number] = [0, 0]; + private cp: [number, number] = [0, 0]; + private dp: [number, number] = [0, 0]; + + constructor( + view: GraphView, + state: GraphState, + renderer: GraphRenderer + ) { + this.view = view; + this.state = state; + this.renderer = renderer; + } + + moveBy = () => { + this.view.moveBy(this.dp[0], this.dp[1]); + }; + + handleMouseMove = (e: MouseEvent) => { + const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = + this.state; + + // this.dp[0] = e.movementX; + // this.dp[1] = e.movementY; + + if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { + // requestAnimationFrame(() => { + this.view.moveBy(e.movementX, e.movementY); + // }); + + return; + } + + const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + + if (dragLineSourceNode) { + this.state.dragLineX = vp[0]; + this.state.dragLineY = vp[1]; + + requestAnimationFrame(this.renderer.drawDragLine); + } + + if (moveNodeIds.length === 0) { + requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); + + return; + } + + const dx = vp[0] - moveX; + const dy = vp[1] - moveY; + + this.state.moveX = vp[0]; + this.state.moveY = vp[1]; + + this.renderer.clearMove(); + + for (const id of moveNodeIds) { + this.view.moveNode(id, dx, dy); + } + }; + + private isEdgeHovered(x: number, y: number, edge: Edge) { + const { edgeCtx, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + + return ( + edgeCtx.isPointInPath(data.path, x, y) || + edgeCtx.isPointInStroke(data.linePath, x, y) || + edgeCtx.isPointInPath(data.arrowPath, x, y) + ); + } + + private isNodeHovered(x: number, y: number, node: Node) { + const { nodeCtx, drawData } = this.state; + + const data = drawData[node.id] as NodeDrawData; + + return nodeCtx.isPointInPath(data.path, x, y); + } + + private checkHover(vx: number, vy: number) { + const { nodes, edges } = this.state; + + const prevId = this.state.hoveredId; + this.state.hoveredId = 0; + + const [cx, cy] = this.view.getCanvasPosFromViewPos(vx, vy); + this.state.quad.getDataInRegion(vx - 1, vy - 1, 2, 2, this.state.drawIds); + + for (const id of this.state.drawIds) { + if (nodes[id] && this.isNodeHovered(cx, cy, nodes[id])) + this.state.hoveredId = id; + + if (edges[id] && this.isEdgeHovered(cx, cy, edges[id])) + this.state.hoveredId = id; + } + + if (this.state.hoveredId === prevId) return; + + const currId = this.state.hoveredId; + const prev = this.state.drawData[prevId]; + const curr = this.state.drawData[currId]; + + if (prev) { + if (prev.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[prevId]); + } else if (prev.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[prevId]); + } + } + + if (curr) { + if (curr.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[currId]); + } else if (curr.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[currId]); + } + } + } + + handleWheel = (e: WheelEvent) => { + const pos = this.view.getViewPosFromWindowPos(e.x, e.y); + + this.view.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + }; + + init() { + const { container } = this.state; + + container.addEventListener("mousemove", this.handleMouseMove, { + passive: true + }); + container.addEventListener("wheel", this.handleWheel, { passive: true }); + } + + destroy() { + const { container } = this.state; + + container.removeEventListener("mousemove", this.handleMouseMove); + container.removeEventListener("wheel", this.handleWheel); + } +} diff --git a/old/graph-renderer.ts b/old/graph-renderer.ts new file mode 100644 index 0000000..a56b30c --- /dev/null +++ b/old/graph-renderer.ts @@ -0,0 +1,709 @@ +import { GraphState } from "./graph-state"; +import { GraphView } from "./graph-view"; +import { + EdgeDrawData, + GraphDataType, + GraphEdge, + GraphNode, + GraphShape, + NodeDrawData +} from "./types"; +import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; + +export enum RedrawType { + ALL = 0, + NODES, + EDGES, + MOVE +} + +export class GraphRenderer { + private state: GraphState; + private view: GraphView; + + private isDrawing = false; + + constructor(view: GraphView, state: GraphState) { + this.view = view; + this.state = state; + } + + requestDraw() { + if (!this.isDrawing) { + requestAnimationFrame(this.requestDrawHandler); + } + + this.isDrawing = true; + } + + requestDrawHandler = () => { + this.isDrawing = false; + + this.drawAll(); + }; + + applyTransform() { + const { + scale, + translateX, + translateY, + bgCtx, + nodeCtx, + dragCtx, + edgeCtx, + moveCtx + } = this.state; + + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + + this.state.setView(); + } + + getIntersectionPoint( + sx: number, + sy: number, + tx: number, + ty: number, + path: Path2D + ) { + const { bgCtx } = this.state; + + const dx = tx - sx; + const dy = ty - sy; + + const e = (Math.abs(dx) + Math.abs(dy)) | 0; + + let start = 0; + let end = e; + + while (start <= end) { + const mid = ((start + end) / 2) | 0; + + const x = sx + (mid / e) * dx; + const y = sy + (mid / e) * dy; + const [cx, cy] = this.view.getCanvasPosFromViewPos(x, y); + + if (bgCtx.isPointInPath(path, cx, cy)) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return start / e; + } + + createEdgePath(edge: Edge, shape: GraphShape) { + const { options, nodes, drawData } = this.state; + const { sourceId, targetId } = edge; + + const source = nodes[sourceId]; + const target = nodes[targetId] as Node; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const sip = this.getIntersectionPoint( + target.x, + target.y, + source.x, + source.y, + drawData[source.id].path + ); + const lineSourceX = + target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; + const lineSourceY = + target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; + + const tip = this.getIntersectionPoint( + source.x, + source.y, + target.x, + target.y, + drawData[target.id].path + ); + const lineTargetX = + source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; + const lineTargetY = + source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; + + const shapeX = + (lineSourceX + lineTargetX - options.edgeArrowHeight * cosr) * 0.5; + const shapeY = + (lineSourceY + lineTargetY - options.edgeArrowHeight * sinr) * 0.5; + + const path = shape.createPath( + shapeX, + shapeY, + shape.width, + shape.height, + edge.id + ); + + const linePath = this.createEdgeLinePath( + lineSourceX, + lineSourceY, + lineTargetX - options.edgeArrowHeight * cosr, + lineTargetY - options.edgeArrowHeight * sinr + ); + + const arrowPath = this.createEdgeArrowPath( + lineTargetX, + lineTargetY, + sinr, + cosr + ); + + const data = drawData[edge.id] as EdgeDrawData | undefined; + + if (!data) { + drawData[edge.id] = { + type: GraphDataType.EDGE, + shape, + path, + linePath, + arrowPath, + lineSourceX, + lineSourceY, + lineTargetX, + lineTargetY, + shapeX, + shapeY + }; + } else { + data.type = GraphDataType.EDGE; + data.shape = shape; + data.path = path; + data.linePath = linePath; + data.arrowPath = arrowPath; + data.lineSourceX = lineSourceX; + data.lineSourceY = lineSourceY; + data.lineTargetX = lineTargetX; + data.lineTargetY = lineTargetY; + data.shapeX = shapeX; + data.shapeY = shapeY; + } + } + + createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { + const p = new Path2D(); + + p.moveTo(sx, sy); + p.lineTo(tx, ty); + + return p; + } + + createEdgeArrowPath(ix: number, iy: number, sinr: number, cosr: number) { + const { options } = this.state; + + const ll = options.edgeArrowWidth * 0.5; + const lsx = ix - options.edgeArrowHeight * cosr; + const lsy = iy - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + const p = new Path2D(); + + p.moveTo(ix, iy); + p.lineTo(lp1x, lp1y); + p.lineTo(lp2x, lp2y); + p.closePath(); + + return p; + } + + clear = (ctx: CanvasRenderingContext2D) => { + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + }; + + drawUncoveredRegion = ( + ovx: number, + ovy: number, + ovw: number, + ovh: number, + nvx = this.state.viewX, + nvy = this.state.viewY, + nvw = this.state.viewW, + nvh = this.state.viewH + ) => { + const ovt = ovy; + const ovr = ovx + ovw; + const ovb = ovy + ovh; + const ovl = ovx; + + const nvt = nvy; + const nvr = nvx + nvw; + const nvb = nvy + nvh; + const nvl = nvx; + + const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; + + bgCtx.drawImage(bgCtx.canvas, ovx, ovy, nvw, nvh); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); + moveCtx.drawImage(edgeCtx.canvas, nvx, nvy, nvw, nvh); + edgeCtx.clearRect(nvx, nvy, nvw, nvh); + edgeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); + moveCtx.drawImage(nodeCtx.canvas, nvx, nvy, nvw, nvh); + nodeCtx.clearRect(nvx, nvy, nvw, nvh); + nodeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); + + moveCtx.clearRect(nvx, nvy, nvw, nvh); + + if (nvt < ovt) { + const tt = nvt; + const tr = nvr; + const tb = ovt; + const tl = nvl; + + this.drawAll(tl, tt, tr - tl, tb - tt); + } + + if (nvr > ovr) { + const rt = Math.max(nvt, ovt); + const rr = nvr; + const rb = Math.min(nvb, ovb); + const rl = ovr; + + this.drawAll(rl, rt, rr - rl, rb - rt); + } + + if (nvb > ovb) { + const bt = ovb; + const br = nvr; + const bb = nvb; + const bl = nvl; + + this.drawAll(bl, bt, br - bl, bb - bt); + } + + if (nvl < ovl) { + const lt = Math.max(nvt, ovt); + const lr = ovl; + const lb = Math.min(nvb, ovb); + const ll = nvl; + + this.drawAll(ll, lt, lr - ll, lb - lt); + } + }; + + drawAll = ( + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) => { + const { edgeCtx, nodeCtx, nodes, edges } = this.state; + + nodeCtx.clearRect(vx, vy, vw, vh); + edgeCtx.clearRect(vx, vy, vw, vh); + + this.drawBackground(vx, vy, vw, vh); + + this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); + + for (const id of this.state.drawIds) { + if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); + if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); + } + }; + + redrawNodes = (excludeIds?: Set) => { + const { nodes, nodeCtx, viewX, viewY, viewW, viewH } = this.state; + + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + + for (const node of Object.values(nodes)) { + if (excludeIds && excludeIds.has(node.id)) continue; + + this.drawNode(node); + } + }; + + redrawEdges = (excludeIds?: Set) => { + const { edges, edgeCtx, viewX, viewY, viewW, viewH } = this.state; + + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + + for (const edge of Object.values(edges)) { + if (excludeIds && excludeIds.has(edge.id)) continue; + + this.drawEdge(edge); + } + }; + + clearNodes = () => { + const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearEdges = () => { + const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearDragLine = () => { + const { dragCtx, viewX, viewY, viewW, viewH } = this.state; + dragCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearMove = () => { + const { moveCtx, viewX, viewY, viewW, viewH } = this.state; + moveCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + drawDragLine = () => { + const { + dragCtx, + options, + dragLineSourceNode, + dragLineX, + dragLineY, + viewX, + viewY, + viewW, + viewH + } = this.state; + + if (!dragLineSourceNode) return; + + dragCtx.clearRect(viewX, viewY, viewW, viewH); + + const sx = dragLineSourceNode.x; + const sy = dragLineSourceNode.y; + const tx = dragLineX; + const ty = dragLineY; + + const dx = tx - sx; + const dy = ty - sy; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ll = options.edgeArrowWidth * 0.5; + const lsx = tx - options.edgeArrowHeight * cosr; + const lsy = ty - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + dragCtx.lineWidth = options.edgeLineWidth; + dragCtx.strokeStyle = options.edgeLineColor; + dragCtx.fillStyle = options.edgeLineColor; + + dragCtx.beginPath(); + dragCtx.moveTo(sx, sy); + dragCtx.lineTo(tx, ty); + dragCtx.stroke(); + + dragCtx.beginPath(); + dragCtx.moveTo(tx, ty); + dragCtx.lineTo(lp1x, lp1y); + dragCtx.lineTo(lp2x, lp2y); + dragCtx.closePath(); + dragCtx.fill(); + }; + + drawEdge( + edge: Edge, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { edgeCtx, moveCtx, options, drawData } = this.state; + + const ctx = isMove ? moveCtx : edgeCtx; + + const selected = this.state.selectedIds.has(edge.id); + const hovered = this.state.hoveredId === edge.id; + + const data = drawData[edge.id] as EdgeDrawData; + + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + + // draw edge line + if (this.isEdgeLineInView(edge, vx, vy, vw, vh)) { + ctx.stroke(data.linePath); + } + + // draw edge arrow + if (this.isEdgeArrowInView(edge, vx, vy, vw, vh)) { + ctx.fillStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + + ctx.fill(data.arrowPath); + } + + // draw shape and content + const shape = data.shape; + + if (this.isEdgeShapeInView(edge, vx, vy, vw, vh)) { + // draw shape + + ctx.fillStyle = selected + ? options.edgeSelectedShapeColor + : options.edgeShapeColor; + ctx.fill(data.path); + ctx.stroke(data.path); + + // draw content + ctx.fillStyle = selected + ? options.edgeSelectedContentColor + : options.edgeContentColor; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; + + shape.drawContent( + ctx, + data.shapeX, + data.shapeY, + shape.width, + shape.height, + edge.id + ); + } + } + + isNodeInView( + node: Node, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { drawData } = this.state; + + const { shape } = drawData[node.id] as NodeDrawData; + + return rectIntersect( + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ); + } + + isEdgeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + return ( + this.isEdgeArrowInView(edge, vx, vy, vw, vh) || + this.isEdgeLineInView(edge, vx, vy, vw, vh) || + this.isEdgeShapeInView(edge, vx, vy, vw, vh) + ); + } + + isEdgeLineInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + + const sx = data.lineSourceX; + const sy = data.lineSourceY; + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + + return ( + isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || + lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) + ); + } + + isEdgeArrowInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); + + return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); + } + + isEdgeShapeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, drawData } = this.state; + + const data = drawData[edge.id] as EdgeDrawData; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + + const shape = data.shape; + + return rectIntersect( + data.shapeX - shape.width * 0.5, + data.shapeY - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ); + } + + drawNode( + node: Node, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { nodeCtx, moveCtx, options, drawData } = this.state; + + const ctx = isMove ? moveCtx : nodeCtx; + + const selected = this.state.selectedIds.has(node.id); + const hovered = this.state.hoveredId === node.id; + + const data = drawData[node.id] as NodeDrawData; + + // check is in view + const shape = data.shape; + if (this.isNodeInView(node, vx, vy, vw, vh)) { + // draw shape + ctx.strokeStyle = selected + ? options.nodeSelectedLineColor + : hovered + ? options.nodeHoveredLineColor + : options.nodeLineColor; + ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; + + ctx.fill(data.path); + ctx.stroke(data.path); + + // draw content + + ctx.fillStyle = selected + ? options.nodeSelectedContentColor + : options.nodeContentColor; + ctx.textAlign = options.nodeTextAlign; + ctx.textBaseline = options.nodeTextBaseline; + ctx.font = options.nodeFont; + + shape.drawContent( + ctx, + node.x, + node.y, + shape.width, + shape.height, + node.id + ); + } + } + + drawBackground( + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { bgCtx, options } = this.state; + + bgCtx.fillStyle = options.bgColor; + bgCtx.fillRect(vx, vy, vw, vh); + + if (!options.bgShowDots) return; + + const lw = options.bgLineWidth; + const gap = options.bgLineGap; + + bgCtx.strokeStyle = options.bgDotColor; + bgCtx.lineWidth = lw; + + const bl = vx - lw * 0.5; + const br = vx + vw + lw * 0.5; + const bt = vy - lw * 0.5; + const bb = vy + vh + lw * 0.5; + + const ll = bl - (((bl % gap) - gap) % gap); + const lr = br - (((br % gap) + gap) % gap); + const lt = bt - (((bt % gap) - gap) % gap); + const lb = bb - (((bb % gap) + gap) % gap); + + bgCtx.beginPath(); + + for (let i = ll; i <= lr; i += gap) { + bgCtx.moveTo(i, lt); + bgCtx.lineTo(i, lb + gap); + } + + bgCtx.lineCap = "round"; + bgCtx.setLineDash([0, gap]); + bgCtx.stroke(); + bgCtx.setLineDash([]); + bgCtx.lineCap = "square"; + } +} diff --git a/old/graph-state.ts b/old/graph-state.ts new file mode 100644 index 0000000..94e4e8f --- /dev/null +++ b/old/graph-state.ts @@ -0,0 +1,123 @@ +import { createQuad, Quad } from "./quad"; +import { + GraphEdge, + GraphNode, + GraphOptions, + defaultGraphOptions, + NodeDrawData, + EdgeDrawData +} from "./types"; + +export class GraphState { + // readonly canvas: HTMLCanvasElement; + // readonly ctx: CanvasRenderingContext2D; + + readonly container: HTMLElement; + readonly bgCtx: CanvasRenderingContext2D; + readonly edgeCtx: CanvasRenderingContext2D; + readonly dragCtx: CanvasRenderingContext2D; + readonly nodeCtx: CanvasRenderingContext2D; + readonly moveCtx: CanvasRenderingContext2D; + + nodes: Record = {}; + edges: Record = {}; + drawData: Record = {}; + quad: Quad = createQuad( + Number.MIN_SAFE_INTEGER, + Number.MIN_SAFE_INTEGER, + Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER, + Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER + ); + + options = defaultGraphOptions; + + translateX = 0; + translateY = 0; + scale = 1; + + viewX = 0; + viewY = 0; + viewW = 0; + viewH = 0; + boundingRect: DOMRect; + + isMovingView = false; + hoveredId = 0; + selectedIds = new Set(); + moveNodeIds: number[] = []; + moveX = 0; + moveY = 0; + dragLineSourceNode: Node | undefined = undefined; + dragLineX = 0; + dragLineY = 0; + drawIds = new Set(); + + constructor(container: HTMLElement, options: Partial = {}) { + this.options = { + ...this.options, + ...options + }; + + this.boundingRect = container.getBoundingClientRect(); + this.container = container; + + const bgCtx = this.initCtx(false); + const edgeCtx = this.initCtx(); + const dragCtx = this.initCtx(); + const nodeCtx = this.initCtx(); + const moveCtx = this.initCtx(); + + if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx || !dragCtx) { + throw "Canvas is not supported in your browser."; + } + + this.bgCtx = bgCtx; + this.edgeCtx = edgeCtx; + this.dragCtx = dragCtx; + this.nodeCtx = nodeCtx; + this.moveCtx = moveCtx; + } + + initCtx(alpha = true) { + const { container } = this; + + const canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + canvas.style.top = "0"; + canvas.style.left = "0"; + canvas.textContent = "Canvas is not supported in your browser."; + canvas.width = container.clientWidth; + canvas.height = container.clientHeight; + + const ctx = canvas.getContext("2d", { alpha }); + + return ctx; + } + + createCanvas(container: HTMLElement): CanvasRenderingContext2D { + const canvas = document.createElement("canvas"); + + canvas.textContent = "Canvas is not supported in your browser."; + canvas.width = container.clientWidth; + canvas.height = container.clientHeight; + + const ctx = canvas.getContext("2d", { alpha: false }); + + if (!ctx) { + throw "Canvas is not supported in your browser."; + } + + container.append(canvas); + + return ctx; + } + + setView() { + const { container, translateX, translateY, scale } = this; + + this.viewX = -translateX / scale; + this.viewY = -translateY / scale; + this.viewW = container.clientWidth / scale; + this.viewH = container.clientHeight / scale; + } +} diff --git a/old/graph-view.ts b/old/graph-view.ts new file mode 100644 index 0000000..eb7e0fc --- /dev/null +++ b/old/graph-view.ts @@ -0,0 +1,613 @@ +import { GraphHandler } from "./graph-handler"; +import { GraphRenderer } from "./graph-renderer"; +import { GraphState } from "./graph-state"; +import { + defaultEdgeShape, + defaultNodeShape, + GraphEdge, + GraphNode, + GraphShape, + GraphOptions, + GraphDataType, + NodeDrawData +} from "./types"; + +export function createNodeShape(shape?: Partial): GraphShape { + return { + ...defaultNodeShape, + ...shape + }; +} + +export function createEdgeShape(shape?: Partial): GraphShape { + return { + ...defaultEdgeShape, + ...shape + }; +} + +export class GraphView { + private state: GraphState; + private renderer: GraphRenderer; + private handler: GraphHandler; + + constructor(container: HTMLElement, options: Partial = {}) { + this.state = new GraphState(container, options); + this.renderer = new GraphRenderer(this, this.state); + this.handler = new GraphHandler(this, this.state, this.renderer); + + this.renderer.applyTransform(); + this.renderer.drawAll(); + + container.appendChild(this.state.bgCtx.canvas); + container.appendChild(this.state.edgeCtx.canvas); + container.appendChild(this.state.dragCtx.canvas); + container.appendChild(this.state.nodeCtx.canvas); + container.appendChild(this.state.moveCtx.canvas); + + const resizeObserver = new ResizeObserver(() => { + this.resize(); + }); + + resizeObserver.observe(container); + + this.handler.init(); + } + + destroy() { + this.handler.destroy(); + } + + resize(): void { + this.state.bgCtx.canvas.width = this.state.container.clientWidth; + this.state.bgCtx.canvas.height = this.state.container.clientHeight; + this.state.edgeCtx.canvas.width = this.state.container.clientWidth; + this.state.edgeCtx.canvas.height = this.state.container.clientHeight; + this.state.nodeCtx.canvas.width = this.state.container.clientWidth; + this.state.nodeCtx.canvas.height = this.state.container.clientHeight; + this.state.moveCtx.canvas.width = this.state.container.clientWidth; + this.state.moveCtx.canvas.height = this.state.container.clientHeight; + + this.state.boundingRect = this.state.container.getBoundingClientRect(); + + this.renderer.applyTransform(); + this.renderer.drawAll(); + } + + beginDragLine() { + const { hoveredId, nodes } = this.state; + + if (!hoveredId) return; + + const node = nodes[hoveredId]; + + if (!node) return; + + this.state.dragLineSourceNode = node; + this.state.dragLineX = node.x; + this.state.dragLineY = node.y; + } + + endDragLine(): [Node, Node] | undefined { + const { hoveredId, nodes } = this.state; + + this.renderer.clearDragLine(); + + if (!this.state.dragLineSourceNode) return; + + let r = 0; + if (hoveredId > 0 && hoveredId !== this.state.dragLineSourceNode.id) { + r = hoveredId; + } + + const s = this.state.dragLineSourceNode; + + this.state.dragLineSourceNode = undefined; + + const rn = nodes[r]; + return rn ? [s, rn] : undefined; + } + + beginMoveView() { + this.state.isMovingView = true; + } + + endMoveView() { + this.state.isMovingView = false; + } + + beginMoveNodes(nodeIds: number[], vx: number, vy: number) { + const { drawData, nodes, edges } = this.state; + + const affectedIds = new Set(nodeIds); + + this.renderer.redrawNodes(affectedIds); + + affectedIds.clear(); + + for (const id of nodeIds) { + const dd = drawData[id] as NodeDrawData; + + for (const eid of dd.sourceOfEdgeIds) { + affectedIds.add(eid); + } + + for (const eid of dd.targetOfEdgeIds) { + affectedIds.add(eid); + } + } + + this.renderer.redrawEdges(affectedIds); + + for (const eid of affectedIds) { + this.renderer.drawEdge(edges[eid], true); + } + + for (const nid of nodeIds) { + this.renderer.drawNode(nodes[nid], true); + } + + this.state.moveNodeIds = nodeIds; + this.state.moveX = vx; + this.state.moveY = vy; + } + + endMoveNodes() { + const { moveNodeIds, drawData, nodes, edges } = this.state; + + for (const id of moveNodeIds) { + this.renderer.drawNode(nodes[id]); + } + + const isRendered: Record = {}; + + for (const id of moveNodeIds) { + const dd = drawData[id] as NodeDrawData; + + for (const eid of dd.sourceOfEdgeIds) { + if (isRendered[eid]) continue; + + isRendered[eid] = true; + this.renderer.drawEdge(edges[eid]); + } + + for (const eid of dd.targetOfEdgeIds) { + if (isRendered[eid]) continue; + + isRendered[eid] = true; + this.renderer.drawEdge(edges[eid]); + } + } + + this.renderer.clearMove(); + + this.state.moveNodeIds.length = 0; + } + + getHoveredId() { + return this.state.hoveredId; + } + + select(id: number) { + const { nodes, edges, selectedIds } = this.state; + + const affectedIds = Array.from(selectedIds); + affectedIds.push(id); + + selectedIds.clear(); + selectedIds.add(id); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + } + + addSelection(id: number) { + const { nodes, edges, selectedIds } = this.state; + + selectedIds.add(id); + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + + removeSelection(id: number) { + const { nodes, edges, selectedIds } = this.state; + + selectedIds.delete(id); + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + + clearSelection() { + const { nodes, edges, selectedIds } = this.state; + + const affectedIds = Array.from(selectedIds); + + selectedIds.clear(); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + } + + getSelection() { + return Array.from(this.state.selectedIds); + } + + getSelectedNodeIds() { + return this.getSelection().filter(id => { + return this.state.nodes[id] !== undefined; + }); + } + + getSelectedEdgeIds() { + return this.getSelection().filter(id => { + return this.state.edges[id] !== undefined; + }); + } + + addNode(node: Node, shape: GraphShape): boolean { + const { nodes, edges, drawData } = this.state; + + if (nodes[node.id] || edges[node.id]) return false; + + nodes[node.id] = node; + + const path = shape.createPath( + node.x, + node.y, + shape.width, + shape.height, + node.id + ); + + drawData[node.id] = { + type: GraphDataType.NODE, + shape, + path, + sourceOfEdgeIds: new Set(), + targetOfEdgeIds: new Set() + }; + + this.state.quad.insert( + node.id, + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height + ); + + this.renderer.drawNode(node); + + return true; + } + + addEdge(edge: Edge, shape: GraphShape): boolean { + const { nodes, edges, drawData } = this.state; + + if (nodes[edge.id] || edges[edge.id]) return false; + if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; + + const snd = drawData[edge.sourceId] as NodeDrawData; + const tnd = drawData[edge.targetId] as NodeDrawData; + + for (const eid of snd.sourceOfEdgeIds) { + if (edges[eid].targetId === edge.targetId) return false; + } + + for (const eid of tnd.targetOfEdgeIds) { + if (edges[eid].sourceId === edge.sourceId) return false; + } + + edges[edge.id] = edge; + + snd.sourceOfEdgeIds.add(edge.id); + tnd.targetOfEdgeIds.add(edge.id); + + this.renderer.createEdgePath(edge, shape); + + const source = nodes[edge.sourceId]; + const target = nodes[edge.targetId]; + + this.state.quad.insert( + edge.id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), shape.width), + Math.max(Math.abs(source.y - target.y), shape.height) + ); + + this.renderer.drawEdge(edge); + + // console.log(this.state.quad); + + return true; + } + + moveNode(id: number, dx: number, dy: number): boolean { + const { drawData, nodes, edges } = this.state; + + if (!nodes[id]) return false; + + const node = nodes[id]; + const ndd = drawData[id] as NodeDrawData; + + node.x += dx; + node.y += dy; + + const shape = ndd.shape; + + const path = shape.createPath( + node.x, + node.y, + shape.width, + shape.height, + node.id + ); + + ndd.path = path; + + for (const edgeId of ndd.sourceOfEdgeIds) { + const edge = edges[edgeId]; + const edd = drawData[edgeId]; + + this.renderer.createEdgePath(edge, edd.shape); + + this.renderer.drawEdge(edge, true); + } + + for (const edgeId of ndd.targetOfEdgeIds) { + const edge = edges[edgeId]; + const edd = drawData[edgeId]; + + this.renderer.createEdgePath(edge, edd.shape); + + this.renderer.drawEdge(edge, true); + } + + this.renderer.drawNode(node, true); + + return true; + } + + updateNode(id: number, node: Partial): boolean { + const { nodes } = this.state; + + if (!nodes[id]) return false; + const cur = nodes[id]; + + if ((node.x && node.x !== cur.x) || (node.y && node.y !== cur.y)) { + this.moveNode( + id, + node.x ? node.x - cur.x : 0, + node.y ? node.y - cur.y : 0 + ); + } + + for (const k in node) { + if (k === "id") continue; + + cur[k] = node[k] as Node[Extract]; + } + + return true; + } + + updateEdge(id: number, edge: Partial): boolean { + const { edges } = this.state; + + if (!edges[id]) return false; + const cur = edges[id]; + + if ( + (edge.sourceId && edge.sourceId !== cur.sourceId) || + (edge.targetId && edge.targetId !== cur.targetId) + ) { + this.renderer.redrawEdges(); + } + + for (const k in edge) { + if (k === "id") continue; + + cur[k] = edge[k] as Edge[Extract]; + } + + return true; + } + + remove(id: number): boolean { + if (this.state.nodes[id]) return this.removeNode(id); + if (this.state.edges[id]) return this.removeEdge(id); + + return false; + } + + removeNode(id: number): boolean { + const { nodes, drawData } = this.state; + + if (!nodes[id]) return false; + const ndd = drawData[id] as NodeDrawData; + + for (const edgeId of ndd.sourceOfEdgeIds) { + this.removeEdge(edgeId); + } + + for (const edgeId of ndd.targetOfEdgeIds) { + this.removeEdge(edgeId); + } + + delete this.state.nodes[id]; + delete this.state.drawData[id]; + + requestAnimationFrame(() => this.renderer.redrawNodes()); + + return true; + } + + removeEdge(id: number): boolean { + const { edges, drawData } = this.state; + + if (!edges[id]) return false; + const edge = edges[id]; + + const sndd = drawData[edge.sourceId] as NodeDrawData; + sndd.sourceOfEdgeIds.delete(id); + + const tndd = drawData[edge.targetId] as NodeDrawData; + tndd.targetOfEdgeIds.delete(id); + + delete this.state.edges[id]; + delete this.state.drawData[id]; + + requestAnimationFrame(() => this.renderer.redrawEdges()); + + return true; + } + + getNode(id: number): Node | undefined { + return this.state.nodes[id]; + } + + getEdge(id: number): Edge | undefined { + return this.state.edges[id]; + } + + getData() { + return { + nodes: Object.values(this.state.nodes), + edges: Object.values(this.state.edges) + }; + } + + clear() { + this.state.nodes = {}; + this.state.edges = {}; + this.state.drawData = {}; + this.state.selectedIds.clear(); + this.state.moveNodeIds = []; + this.state.dragLineSourceNode = undefined; + this.state.quad.clear(); + + this.renderer.clearNodes(); + this.renderer.clearEdges(); + } + + getTranslateX() { + return this.state.translateX; + } + + getTranslateY() { + return this.state.translateY; + } + + getScale() { + return this.state.scale; + } + + setTransform(translateX: number, translateY: number, scale: number) { + if ( + translateX === this.state.translateX && + translateY === this.state.translateY && + scale === this.state.scale + ) + return; + + this.state.translateX = translateX; + this.state.translateY = translateY; + this.state.scale = scale; + + this.renderer.applyTransform(); + // this.renderer.drawAll(); + this.renderer.requestDraw(); + } + + moveBy(x: number, y: number) { + this.state.translateX += x; + this.state.translateY += y; + + // const ovx = this.state.viewX; + // const ovy = this.state.viewY; + // const ovw = this.state.viewW; + // const ovh = this.state.viewH; + + // requestAnimationFrame(() => { + this.renderer.applyTransform(); + // this.renderer.drawAll(); + // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); + // }); + + this.renderer.requestDraw(); + } + + zoomBy(value: number, targetX?: number, targetY?: number) { + this.zoomTo(this.state.scale + value, targetX, targetY); + } + + zoomTo(value: number, targetX?: number, targetY?: number) { + const { scale, translateX, translateY, options } = this.state; + const { width, height } = this.state.bgCtx.canvas; + + targetX = targetX || (width * 0.5 - translateX) / scale; + targetY = targetY || (height * 0.5 - translateY) / scale; + + const newScale = Math.min( + options.maxScale, + Math.max(options.minScale, value) + ); + + const deltaScale = newScale - scale; + const offsetX = -(targetX * deltaScale); + const offsetY = -(targetY * deltaScale); + + this.state.scale += deltaScale; + this.state.translateX += offsetX; + this.state.translateY += offsetY; + + // const ovx = this.state.viewX; + // const ovy = this.state.viewY; + // const ovw = this.state.viewW; + // const ovh = this.state.viewH; + + this.renderer.applyTransform(); + // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); + + // this.renderer.drawAll(); + this.renderer.requestDraw(); + } + + getViewPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.state.boundingRect; + const { scale, translateX, translateY } = this.state; + + return [ + (windowX - left - translateX) / scale, + (windowY - top - translateY) / scale + ]; + } + + getViewPosFromCanvasPos(canvasX: number, canvasY: number) { + const { scale, translateX, translateY } = this.state; + + return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; + } + + getCanvasPosFromViewPos(viewX: number, viewY: number) { + const { scale, translateX, translateY } = this.state; + + return [viewX * scale + translateX, viewY * scale + translateY]; + } + + getCanvasPosFromWindowPos(windowX: number, windowY: number) { + const { left, top } = this.state.boundingRect; + + return [windowX - left, windowY - top]; + } +} + +export function createGraphView(container: HTMLElement) { + return new GraphView(container); +} diff --git a/old/index.ts b/old/index.ts new file mode 100644 index 0000000..03b1b5a --- /dev/null +++ b/old/index.ts @@ -0,0 +1,2 @@ +export * from "./graph-view"; +export * from "./types"; diff --git a/old/quad.ts b/old/quad.ts new file mode 100644 index 0000000..04138ab --- /dev/null +++ b/old/quad.ts @@ -0,0 +1,160 @@ +// A custom, incorrect Quad Tree implementation + +import { rectIntersect } from "./utils"; + +const MAX_DEPTH = 64; +const DATA_PER_CHILD = 4; + +export type QuadData = { + value: T; + x: number; + y: number; + w: number; + h: number; +}; + +export class Quad { + data: QuadData[]; + children: Quad[]; + x: number; + y: number; + w: number; + h: number; + + constructor(x: number, y: number, w: number, h: number) { + this.data = []; + this.children = []; + this.x = x; + this.y = y; + this.w = w; + this.h = h; + } + + clear() { + _clear(this); + } + + insert(value: T, x: number, y: number, w: number, h: number) { + _insert(this, { value, x, y, w, h }, 0); + } + + remove(value: T, x: number, y: number, w: number, h: number) { + _remove(this, value, x, y, w, h); + } + + getDataInRegion(x: number, y: number, w: number, h: number, out: Set) { + out.clear(); + + _getDataInRegion(this, x, y, w, h, out); + } +} + +function _clear(node: Quad) { + node.data.length = 0; + + for (const child of node.children) { + _clear(child); + } +} + +function _remove( + node: Quad, + value: unknown, + x: number, + y: number, + w: number, + h: number +) { + // if not intersecting, return + if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; + + for (let i = 0; i < node.data.length; i++) { + if (node.data[i].value === value) { + node.data.splice(i, 1); + return; + } + } + + for (const child of node.children) { + _remove(child, value, x, y, w, h); + } +} + +function _insert(node: Quad, data: QuadData, depth: number) { + if (depth > MAX_DEPTH) return; + + // if not intersecting, return + if ( + !rectIntersect( + node.x, + node.y, + node.w, + node.h, + data.x, + data.y, + data.w, + data.h + ) + ) + return; + + // if no children and data size is smaller than the limit, insert data to the node + if ( + depth === MAX_DEPTH || + (node.children.length === 0 && node.data.length < DATA_PER_CHILD) + ) { + node.data.push(data); + return; + } + + const dataToInsert: QuadData[] = []; + + // if no children, create the children + if (node.children.length === 0 && node.data.length >= DATA_PER_CHILD) { + const hw = node.w * 0.5; + const hh = node.h * 0.5; + + const tl = new Quad(node.x, node.y, hw, hh); + const tr = new Quad(node.x + hw, node.y, hw, hh); + const bl = new Quad(node.x, node.y + hh, hw, hh); + const br = new Quad(node.x + hw, node.y + hh, hw, hh); + + node.children.push(tl); + node.children.push(tr); + node.children.push(bl); + node.children.push(br); + + for (const dt of node.data) dataToInsert.push(dt); + } + + dataToInsert.push(data); + + node.data = []; + + for (let i = 0; i < 4; i++) { + for (const dt of dataToInsert) _insert(node.children[i], dt, depth + 1); + } +} + +function _getDataInRegion( + node: Quad, + x: number, + y: number, + w: number, + h: number, + hs: Set +) { + if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; + + for (const data of node.data) { + hs.add(data.value); + } + + for (const child of node.children) { + _getDataInRegion(child, x, y, w, h, hs); + } +} + +export function createQuad(x: number, y: number, w: number, h: number) { + return new Quad(x, y, w, h); +} diff --git a/old/types.ts b/old/types.ts new file mode 100644 index 0000000..d839b0f --- /dev/null +++ b/old/types.ts @@ -0,0 +1,164 @@ +export type GraphNode = { + id: number; + x: number; + y: number; +}; + +export type GraphEdge = { + id: number; + sourceId: number; + targetId: number; +}; + +export enum GraphDataType { + NODE, + EDGE +} + +export type NodeDrawData = { + type: GraphDataType.NODE; + sourceOfEdgeIds: Set; + targetOfEdgeIds: Set; + path: Path2D; + shape: GraphShape; +}; + +export type EdgeDrawData = { + type: GraphDataType.EDGE; + shape: GraphShape; + path: Path2D; + linePath: Path2D; + arrowPath: Path2D; + lineSourceX: number; + lineSourceY: number; + lineTargetX: number; + lineTargetY: number; + shapeX: number; + shapeY: number; +}; + +export type GraphShape = { + width: number; + height: number; + drawContent: ( + ctx: CanvasRenderingContext2D, + x: number, + y: number, + w: number, + h: number, + id: number + ) => void; + createPath: ( + x: number, + y: number, + w: number, + h: number, + id: number + ) => Path2D; +}; + +export const defaultNodeShape: GraphShape = { + width: 160, + height: 160, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(`Node ID: ${id}`, x, y, w); + }, + createPath: (x, y, w) => { + const p = new Path2D(); + + p.arc(x, y, w * 0.5, 0, Math.PI * 2); + p.closePath(); + + return p; + } +}; + +export const defaultEdgeShape: GraphShape = { + width: 48, + height: 48, + drawContent: (ctx, x, y, w, _h, id) => { + ctx.fillText(id.toString(), x, y, w); + }, + createPath: (x, y, w, h) => { + const wh = w * 0.5; + const hh = h * 0.5; + + const p = new Path2D(); + + p.moveTo(x - wh, y); + p.lineTo(x, y + wh); + p.lineTo(x + wh, y); + p.lineTo(x, y - hh); + p.closePath(); + + return p; + } +}; + +export type GraphOptions = { + bgColor: string; + bgDotColor: string; + bgLineWidth: number; + bgLineGap: number; + bgShowDots: boolean; + minScale: number; + maxScale: number; + edgeLineWidth: number; + edgeLineColor: string; + edgeArrowHeight: number; + edgeArrowWidth: number; + edgeShapeColor: string; + edgeContentColor: string; + edgeTextAlign: CanvasTextAlign; + edgeTextBaseline: CanvasTextBaseline; + edgeFont: string; + edgeHoveredLineColor: string; + edgeSelectedLineColor: string; + edgeSelectedShapeColor: string; + edgeSelectedContentColor: string; + nodeLineWidth: number; + nodeLineColor: string; + nodeColor: string; + nodeContentColor: string; + nodeTextAlign: CanvasTextAlign; + nodeTextBaseline: CanvasTextBaseline; + nodeFont: string; + nodeHoveredLineColor: string; + nodeSelectedLineColor: string; + nodeSelectedColor: string; + nodeSelectedContentColor: string; +}; + +export const defaultGraphOptions: GraphOptions = { + bgColor: "#f1f5f9", + bgDotColor: "#64748b", + bgLineWidth: 4, + bgLineGap: 64, + bgShowDots: true, + minScale: 0.25, + maxScale: 10, + edgeLineColor: "black", + edgeLineWidth: 2, + edgeArrowHeight: 20, + edgeArrowWidth: 18, + edgeShapeColor: "white", + edgeContentColor: "black", + edgeTextAlign: "center", + edgeTextBaseline: "middle", + edgeFont: "16px sans-serif", + edgeHoveredLineColor: "#3b82f6", + edgeSelectedLineColor: "#2563eb", + edgeSelectedShapeColor: "#3b82f6", + edgeSelectedContentColor: "white", + nodeLineColor: "black", + nodeLineWidth: 2, + nodeColor: "white", + nodeContentColor: "black", + nodeTextAlign: "center", + nodeTextBaseline: "middle", + nodeFont: "16px sans-serif", + nodeHoveredLineColor: "#3b82f6", + nodeSelectedLineColor: "#2563eb", + nodeSelectedColor: "#3b82f6", + nodeSelectedContentColor: "white" +}; diff --git a/old/utils.ts b/old/utils.ts new file mode 100644 index 0000000..7a76c70 --- /dev/null +++ b/old/utils.ts @@ -0,0 +1,69 @@ +export function rectIntersect( + x1: number, + y1: number, + w1: number, + h1: number, + x2: number, + y2: number, + w2: number, + h2: number +) { + return x1 + w1 >= x2 && x1 <= x2 + w2 && y1 + h1 >= y2 && y1 <= y2 + h2; +} + +export function isLineInsideRect( + x1: number, + y1: number, + x2: number, + y2: number, + rx: number, + ry: number, + rw: number, + rh: number +) { + return ( + x1 >= rx && + x1 <= rx + rw && + x2 >= rx && + x2 <= rx + rw && + y1 >= ry && + y1 <= ry + rh && + y2 >= ry && + y1 <= ry + rh + ); +} + +// Ref: http://paulbourke.net/geometry/pointlineplane/javascript.txt +export function lineIntersect( + x1: number, + y1: number, + x2: number, + y2: number, + x3: number, + y3: number, + x4: number, + y4: number, + outPoint?: [number, number] +): boolean { + // Check if none of the lines are of length 0 + if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; + + const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); + + // Lines are parallel + if (denominator === 0) return false; + + const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; + const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; + + // is the intersection along the segments + if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; + + if (outPoint) { + // Return a object with the x and y coordinates of the intersection + outPoint[0] = x1 + ua * (x2 - x1); + outPoint[1] = y1 + ua * (y2 - y1); + } + + return true; +} diff --git a/old/vite-env.d.ts b/old/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/old/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 90e7e7d..a0838b8 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -15,8 +15,6 @@ export class GraphHandler { private renderer: GraphRenderer; private vp: [number, number] = [0, 0]; - private cp: [number, number] = [0, 0]; - private dp: [number, number] = [0, 0]; constructor( view: GraphView, @@ -28,117 +26,48 @@ export class GraphHandler { this.renderer = renderer; } - moveBy = () => { - this.view.moveBy(this.dp[0], this.dp[1]); - }; - handleMouseMove = (e: MouseEvent) => { const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = this.state; - // this.dp[0] = e.movementX; - // this.dp[1] = e.movementY; - if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { - // requestAnimationFrame(() => { this.view.moveBy(e.movementX, e.movementY); - // }); return; } - const vp = this.view.getViewPosFromWindowPos(e.x, e.y); + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); - if (dragLineSourceNode) { - this.state.dragLineX = vp[0]; - this.state.dragLineY = vp[1]; + // if (dragLineSourceNode) { + // this.state.dragLineX = vp[0]; + // this.state.dragLineY = vp[1]; - requestAnimationFrame(this.renderer.drawDragLine); - } + // requestAnimationFrame(this.renderer.drawDragLine); + // } - if (moveNodeIds.length === 0) { - requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); + // if (moveNodeIds.length === 0) { + // requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); - return; - } + // return; + // } - const dx = vp[0] - moveX; - const dy = vp[1] - moveY; + // const dx = vp[0] - moveX; + // const dy = vp[1] - moveY; - this.state.moveX = vp[0]; - this.state.moveY = vp[1]; + // this.state.moveX = vp[0]; + // this.state.moveY = vp[1]; - this.renderer.clearMove(); + // this.renderer.clearMove(); - for (const id of moveNodeIds) { - this.view.moveNode(id, dx, dy); - } + // for (const id of moveNodeIds) { + // this.view.moveNode(id, dx, dy); + // } }; - private isEdgeHovered(x: number, y: number, edge: Edge) { - const { edgeCtx, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - return ( - edgeCtx.isPointInPath(data.path, x, y) || - edgeCtx.isPointInStroke(data.linePath, x, y) || - edgeCtx.isPointInPath(data.arrowPath, x, y) - ); - } - - private isNodeHovered(x: number, y: number, node: Node) { - const { nodeCtx, drawData } = this.state; - - const data = drawData[node.id] as NodeDrawData; - - return nodeCtx.isPointInPath(data.path, x, y); - } - - private checkHover(vx: number, vy: number) { - const { nodes, edges } = this.state; - - const prevId = this.state.hoveredId; - this.state.hoveredId = 0; - - const [cx, cy] = this.view.getCanvasPosFromViewPos(vx, vy); - this.state.quad.getDataInRegion(vx - 1, vy - 1, 2, 2, this.state.drawIds); - - for (const id of this.state.drawIds) { - if (nodes[id] && this.isNodeHovered(cx, cy, nodes[id])) - this.state.hoveredId = id; - - if (edges[id] && this.isEdgeHovered(cx, cy, edges[id])) - this.state.hoveredId = id; - } - - if (this.state.hoveredId === prevId) return; - - const currId = this.state.hoveredId; - const prev = this.state.drawData[prevId]; - const curr = this.state.drawData[currId]; - - if (prev) { - if (prev.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[prevId]); - } else if (prev.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[prevId]); - } - } - - if (curr) { - if (curr.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[currId]); - } else if (curr.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[currId]); - } - } - } - handleWheel = (e: WheelEvent) => { - const pos = this.view.getViewPosFromWindowPos(e.x, e.y); + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); - this.view.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); + this.view.zoomBy(-e.deltaY * 0.001, this.vp[0], this.vp[1]); }; init() { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index a56b30c..53e3ab6 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -51,7 +51,12 @@ export class GraphRenderer { nodeCtx, dragCtx, edgeCtx, - moveCtx + moveCtx, + options, + viewX, + viewY, + viewW, + viewH } = this.state; bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); @@ -60,620 +65,83 @@ export class GraphRenderer { edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - this.state.setView(); - } - - getIntersectionPoint( - sx: number, - sy: number, - tx: number, - ty: number, - path: Path2D - ) { - const { bgCtx } = this.state; - - const dx = tx - sx; - const dy = ty - sy; - - const e = (Math.abs(dx) + Math.abs(dy)) | 0; - - let start = 0; - let end = e; - - while (start <= end) { - const mid = ((start + end) / 2) | 0; - - const x = sx + (mid / e) * dx; - const y = sy + (mid / e) * dy; - const [cx, cy] = this.view.getCanvasPosFromViewPos(x, y); - - if (bgCtx.isPointInPath(path, cx, cy)) { - end = mid - 1; - } else { - start = mid + 1; - } + const xt = -options.height * 0.5; + const xr = options.width * 0.5; + const xb = options.height * 0.5; + const xl = -options.width * 0.5; + + const dl = Math.max(viewX, xl); + const dt = Math.max(viewY, xt); + const dr = Math.min(viewX + viewW, xr); + const db = Math.min(viewY + viewH, xb); + + if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { + nodeCtx.beginPath(); + nodeCtx.rect(dl, dt, dr - dl, db - dt); + nodeCtx.clip(); + edgeCtx.beginPath(); + edgeCtx.rect(dl, dt, dr - dl, db - dt); + edgeCtx.clip(); + dragCtx.beginPath(); + dragCtx.rect(dl, dt, dr - dl, db - dt); + dragCtx.clip(); + moveCtx.beginPath(); + moveCtx.rect(dl, dt, dr - dl, db - dt); + moveCtx.clip(); } - return start / e; - } - - createEdgePath(edge: Edge, shape: GraphShape) { - const { options, nodes, drawData } = this.state; - const { sourceId, targetId } = edge; - - const source = nodes[sourceId]; - const target = nodes[targetId] as Node; - - const dx = target.x - source.x; - const dy = target.y - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const sip = this.getIntersectionPoint( - target.x, - target.y, - source.x, - source.y, - drawData[source.id].path - ); - const lineSourceX = - target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; - const lineSourceY = - target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; - - const tip = this.getIntersectionPoint( - source.x, - source.y, - target.x, - target.y, - drawData[target.id].path - ); - const lineTargetX = - source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; - const lineTargetY = - source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; - - const shapeX = - (lineSourceX + lineTargetX - options.edgeArrowHeight * cosr) * 0.5; - const shapeY = - (lineSourceY + lineTargetY - options.edgeArrowHeight * sinr) * 0.5; - - const path = shape.createPath( - shapeX, - shapeY, - shape.width, - shape.height, - edge.id - ); - - const linePath = this.createEdgeLinePath( - lineSourceX, - lineSourceY, - lineTargetX - options.edgeArrowHeight * cosr, - lineTargetY - options.edgeArrowHeight * sinr - ); - - const arrowPath = this.createEdgeArrowPath( - lineTargetX, - lineTargetY, - sinr, - cosr - ); - - const data = drawData[edge.id] as EdgeDrawData | undefined; - - if (!data) { - drawData[edge.id] = { - type: GraphDataType.EDGE, - shape, - path, - linePath, - arrowPath, - lineSourceX, - lineSourceY, - lineTargetX, - lineTargetY, - shapeX, - shapeY - }; - } else { - data.type = GraphDataType.EDGE; - data.shape = shape; - data.path = path; - data.linePath = linePath; - data.arrowPath = arrowPath; - data.lineSourceX = lineSourceX; - data.lineSourceY = lineSourceY; - data.lineTargetX = lineTargetX; - data.lineTargetY = lineTargetY; - data.shapeX = shapeX; - data.shapeY = shapeY; - } - } - - createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { - const p = new Path2D(); - - p.moveTo(sx, sy); - p.lineTo(tx, ty); - - return p; - } - - createEdgeArrowPath(ix: number, iy: number, sinr: number, cosr: number) { - const { options } = this.state; - - const ll = options.edgeArrowWidth * 0.5; - const lsx = ix - options.edgeArrowHeight * cosr; - const lsy = iy - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - const p = new Path2D(); - - p.moveTo(ix, iy); - p.lineTo(lp1x, lp1y); - p.lineTo(lp2x, lp2y); - p.closePath(); - - return p; + this.state.setView(); } - clear = (ctx: CanvasRenderingContext2D) => { - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - }; - - drawUncoveredRegion = ( - ovx: number, - ovy: number, - ovw: number, - ovh: number, - nvx = this.state.viewX, - nvy = this.state.viewY, - nvw = this.state.viewW, - nvh = this.state.viewH - ) => { - const ovt = ovy; - const ovr = ovx + ovw; - const ovb = ovy + ovh; - const ovl = ovx; - - const nvt = nvy; - const nvr = nvx + nvw; - const nvb = nvy + nvh; - const nvl = nvx; - - const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; - - bgCtx.drawImage(bgCtx.canvas, ovx, ovy, nvw, nvh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - moveCtx.drawImage(edgeCtx.canvas, nvx, nvy, nvw, nvh); - edgeCtx.clearRect(nvx, nvy, nvw, nvh); - edgeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - moveCtx.drawImage(nodeCtx.canvas, nvx, nvy, nvw, nvh); - nodeCtx.clearRect(nvx, nvy, nvw, nvh); - nodeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - - if (nvt < ovt) { - const tt = nvt; - const tr = nvr; - const tb = ovt; - const tl = nvl; - - this.drawAll(tl, tt, tr - tl, tb - tt); - } - - if (nvr > ovr) { - const rt = Math.max(nvt, ovt); - const rr = nvr; - const rb = Math.min(nvb, ovb); - const rl = ovr; - - this.drawAll(rl, rt, rr - rl, rb - rt); - } - - if (nvb > ovb) { - const bt = ovb; - const br = nvr; - const bb = nvb; - const bl = nvl; - - this.drawAll(bl, bt, br - bl, bb - bt); - } - - if (nvl < ovl) { - const lt = Math.max(nvt, ovt); - const lr = ovl; - const lb = Math.min(nvb, ovb); - const ll = nvl; - - this.drawAll(ll, lt, lr - ll, lb - lt); - } - }; - drawAll = ( vx = this.state.viewX, vy = this.state.viewY, vw = this.state.viewW, vh = this.state.viewH ) => { - const { edgeCtx, nodeCtx, nodes, edges } = this.state; + // const { edgeCtx, nodeCtx, nodes, edges } = this.state; - nodeCtx.clearRect(vx, vy, vw, vh); - edgeCtx.clearRect(vx, vy, vw, vh); + // nodeCtx.clearRect(vx, vy, vw, vh); + // edgeCtx.clearRect(vx, vy, vw, vh); this.drawBackground(vx, vy, vw, vh); - this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); + // this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); - for (const id of this.state.drawIds) { - if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); - if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); - } + // for (const id of this.state.drawIds) { + // if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); + // if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); + // } }; - redrawNodes = (excludeIds?: Set) => { - const { nodes, nodeCtx, viewX, viewY, viewW, viewH } = this.state; - - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - - for (const node of Object.values(nodes)) { - if (excludeIds && excludeIds.has(node.id)) continue; - - this.drawNode(node); - } - }; - - redrawEdges = (excludeIds?: Set) => { - const { edges, edgeCtx, viewX, viewY, viewW, viewH } = this.state; - - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - - for (const edge of Object.values(edges)) { - if (excludeIds && excludeIds.has(edge.id)) continue; - - this.drawEdge(edge); - } - }; - - clearNodes = () => { - const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearEdges = () => { - const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearDragLine = () => { - const { dragCtx, viewX, viewY, viewW, viewH } = this.state; - dragCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearMove = () => { - const { moveCtx, viewX, viewY, viewW, viewH } = this.state; - moveCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - drawDragLine = () => { - const { - dragCtx, - options, - dragLineSourceNode, - dragLineX, - dragLineY, - viewX, - viewY, - viewW, - viewH - } = this.state; - - if (!dragLineSourceNode) return; - - dragCtx.clearRect(viewX, viewY, viewW, viewH); - - const sx = dragLineSourceNode.x; - const sy = dragLineSourceNode.y; - const tx = dragLineX; - const ty = dragLineY; - - const dx = tx - sx; - const dy = ty - sy; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const ll = options.edgeArrowWidth * 0.5; - const lsx = tx - options.edgeArrowHeight * cosr; - const lsy = ty - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - dragCtx.lineWidth = options.edgeLineWidth; - dragCtx.strokeStyle = options.edgeLineColor; - dragCtx.fillStyle = options.edgeLineColor; - - dragCtx.beginPath(); - dragCtx.moveTo(sx, sy); - dragCtx.lineTo(tx, ty); - dragCtx.stroke(); - - dragCtx.beginPath(); - dragCtx.moveTo(tx, ty); - dragCtx.lineTo(lp1x, lp1y); - dragCtx.lineTo(lp2x, lp2y); - dragCtx.closePath(); - dragCtx.fill(); - }; - - drawEdge( - edge: Edge, - isMove = false, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { edgeCtx, moveCtx, options, drawData } = this.state; - - const ctx = isMove ? moveCtx : edgeCtx; - - const selected = this.state.selectedIds.has(edge.id); - const hovered = this.state.hoveredId === edge.id; - - const data = drawData[edge.id] as EdgeDrawData; - - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - - // draw edge line - if (this.isEdgeLineInView(edge, vx, vy, vw, vh)) { - ctx.stroke(data.linePath); - } - - // draw edge arrow - if (this.isEdgeArrowInView(edge, vx, vy, vw, vh)) { - ctx.fillStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - - ctx.fill(data.arrowPath); - } - - // draw shape and content - const shape = data.shape; - - if (this.isEdgeShapeInView(edge, vx, vy, vw, vh)) { - // draw shape - - ctx.fillStyle = selected - ? options.edgeSelectedShapeColor - : options.edgeShapeColor; - ctx.fill(data.path); - ctx.stroke(data.path); - - // draw content - ctx.fillStyle = selected - ? options.edgeSelectedContentColor - : options.edgeContentColor; - ctx.textAlign = options.edgeTextAlign; - ctx.textBaseline = options.edgeTextBaseline; - ctx.font = options.edgeFont; - - shape.drawContent( - ctx, - data.shapeX, - data.shapeY, - shape.width, - shape.height, - edge.id - ); - } - } - - isNodeInView( - node: Node, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { drawData } = this.state; - - const { shape } = drawData[node.id] as NodeDrawData; - - return rectIntersect( - node.x - shape.width * 0.5, - node.y - shape.height * 0.5, - shape.width, - shape.height, - vx, - vy, - vw, - vh - ); - } - - isEdgeInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - return ( - this.isEdgeArrowInView(edge, vx, vy, vw, vh) || - this.isEdgeLineInView(edge, vx, vy, vw, vh) || - this.isEdgeShapeInView(edge, vx, vy, vw, vh) - ); - } - - isEdgeLineInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - const sx = data.lineSourceX; - const sy = data.lineSourceY; - const tx = data.lineTargetX; - const ty = data.lineTargetY; - - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - - return ( - isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || - lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) - ); - } - - isEdgeArrowInView( - edge: Edge, + drawBackground( vx = this.state.viewX, vy = this.state.viewY, vw = this.state.viewW, vh = this.state.viewH ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - const tx = data.lineTargetX; - const ty = data.lineTargetY; + const { bgCtx, options } = this.state; - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); + const xt = -options.height * 0.5; + const xr = options.width * 0.5; + const xb = options.height * 0.5; + const xl = -options.width * 0.5; - return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); - } + const dl = Math.max(vx, xl); + const dt = Math.max(vy, xt); + const dr = Math.min(vx + vw, xr); + const db = Math.min(vy + vh, xb); - isEdgeShapeInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - - const shape = data.shape; - - return rectIntersect( - data.shapeX - shape.width * 0.5, - data.shapeY - shape.height * 0.5, - shape.width, - shape.height, - vx, - vy, - vw, - vh - ); - } + if (dl > vx || dt > vy || dr < vx + vw || db < vy + vh) { + bgCtx.fillStyle = "white"; + bgCtx.fillRect(vx, vy, vw, vh); - drawNode( - node: Node, - isMove = false, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { nodeCtx, moveCtx, options, drawData } = this.state; - - const ctx = isMove ? moveCtx : nodeCtx; - - const selected = this.state.selectedIds.has(node.id); - const hovered = this.state.hoveredId === node.id; - - const data = drawData[node.id] as NodeDrawData; - - // check is in view - const shape = data.shape; - if (this.isNodeInView(node, vx, vy, vw, vh)) { - // draw shape - ctx.strokeStyle = selected - ? options.nodeSelectedLineColor - : hovered - ? options.nodeHoveredLineColor - : options.nodeLineColor; - ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; - ctx.lineWidth = options.nodeLineWidth; - - ctx.fill(data.path); - ctx.stroke(data.path); - - // draw content - - ctx.fillStyle = selected - ? options.nodeSelectedContentColor - : options.nodeContentColor; - ctx.textAlign = options.nodeTextAlign; - ctx.textBaseline = options.nodeTextBaseline; - ctx.font = options.nodeFont; - - shape.drawContent( - ctx, - node.x, - node.y, - shape.width, - shape.height, - node.id - ); + bgCtx.fillStyle = "black"; + bgCtx.fillRect(dl - 4, dt - 4, dr - dl + 8, db - dt + 8); } - } - - drawBackground( - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { bgCtx, options } = this.state; bgCtx.fillStyle = options.bgColor; - bgCtx.fillRect(vx, vy, vw, vh); + bgCtx.fillRect(dl, dt, dr - dl, db - dt); if (!options.bgShowDots) return; @@ -683,10 +151,10 @@ export class GraphRenderer { bgCtx.strokeStyle = options.bgDotColor; bgCtx.lineWidth = lw; - const bl = vx - lw * 0.5; - const br = vx + vw + lw * 0.5; - const bt = vy - lw * 0.5; - const bb = vy + vh + lw * 0.5; + const bl = dl - lw * 0.5; + const br = dr + lw * 0.5; + const bt = dt - lw * 0.5; + const bb = db + lw * 0.5; const ll = bl - (((bl % gap) - gap) % gap); const lr = br - (((br % gap) + gap) % gap); diff --git a/src/graph-state.ts b/src/graph-state.ts index 94e4e8f..ddd594c 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -22,12 +22,7 @@ export class GraphState { nodes: Record = {}; edges: Record = {}; drawData: Record = {}; - quad: Quad = createQuad( - Number.MIN_SAFE_INTEGER, - Number.MIN_SAFE_INTEGER, - Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER, - Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER - ); + quad: Quad; options = defaultGraphOptions; @@ -76,6 +71,13 @@ export class GraphState { this.dragCtx = dragCtx; this.nodeCtx = nodeCtx; this.moveCtx = moveCtx; + + this.quad = createQuad( + -this.options.width * 0.5, + -this.options.height * 0.5, + this.options.width, + this.options.height + ); } initCtx(alpha = true) { diff --git a/src/graph-view.ts b/src/graph-view.ts index eb7e0fc..d4f3a8e 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -54,10 +54,6 @@ export class GraphView { this.handler.init(); } - destroy() { - this.handler.destroy(); - } - resize(): void { this.state.bgCtx.canvas.width = this.state.container.clientWidth; this.state.bgCtx.canvas.height = this.state.container.clientHeight; @@ -74,428 +70,46 @@ export class GraphView { this.renderer.drawAll(); } - beginDragLine() { - const { hoveredId, nodes } = this.state; - - if (!hoveredId) return; - - const node = nodes[hoveredId]; - - if (!node) return; - - this.state.dragLineSourceNode = node; - this.state.dragLineX = node.x; - this.state.dragLineY = node.y; - } - - endDragLine(): [Node, Node] | undefined { - const { hoveredId, nodes } = this.state; - - this.renderer.clearDragLine(); - - if (!this.state.dragLineSourceNode) return; - - let r = 0; - if (hoveredId > 0 && hoveredId !== this.state.dragLineSourceNode.id) { - r = hoveredId; - } - - const s = this.state.dragLineSourceNode; - - this.state.dragLineSourceNode = undefined; - - const rn = nodes[r]; - return rn ? [s, rn] : undefined; - } - - beginMoveView() { - this.state.isMovingView = true; - } - - endMoveView() { - this.state.isMovingView = false; - } - - beginMoveNodes(nodeIds: number[], vx: number, vy: number) { - const { drawData, nodes, edges } = this.state; - - const affectedIds = new Set(nodeIds); - - this.renderer.redrawNodes(affectedIds); - - affectedIds.clear(); - - for (const id of nodeIds) { - const dd = drawData[id] as NodeDrawData; - - for (const eid of dd.sourceOfEdgeIds) { - affectedIds.add(eid); - } - - for (const eid of dd.targetOfEdgeIds) { - affectedIds.add(eid); - } - } - - this.renderer.redrawEdges(affectedIds); - - for (const eid of affectedIds) { - this.renderer.drawEdge(edges[eid], true); - } - - for (const nid of nodeIds) { - this.renderer.drawNode(nodes[nid], true); - } - - this.state.moveNodeIds = nodeIds; - this.state.moveX = vx; - this.state.moveY = vy; - } - - endMoveNodes() { - const { moveNodeIds, drawData, nodes, edges } = this.state; - - for (const id of moveNodeIds) { - this.renderer.drawNode(nodes[id]); - } - - const isRendered: Record = {}; - - for (const id of moveNodeIds) { - const dd = drawData[id] as NodeDrawData; - - for (const eid of dd.sourceOfEdgeIds) { - if (isRendered[eid]) continue; - - isRendered[eid] = true; - this.renderer.drawEdge(edges[eid]); - } - - for (const eid of dd.targetOfEdgeIds) { - if (isRendered[eid]) continue; - - isRendered[eid] = true; - this.renderer.drawEdge(edges[eid]); - } - } - - this.renderer.clearMove(); - - this.state.moveNodeIds.length = 0; - } - - getHoveredId() { - return this.state.hoveredId; - } - - select(id: number) { - const { nodes, edges, selectedIds } = this.state; - - const affectedIds = Array.from(selectedIds); - affectedIds.push(id); - - selectedIds.clear(); - selectedIds.add(id); - - for (const id of affectedIds) { - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - } - - addSelection(id: number) { - const { nodes, edges, selectedIds } = this.state; - - selectedIds.add(id); - - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - - removeSelection(id: number) { - const { nodes, edges, selectedIds } = this.state; - - selectedIds.delete(id); - - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - - clearSelection() { - const { nodes, edges, selectedIds } = this.state; - - const affectedIds = Array.from(selectedIds); - - selectedIds.clear(); - - for (const id of affectedIds) { - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - } - - getSelection() { - return Array.from(this.state.selectedIds); - } - - getSelectedNodeIds() { - return this.getSelection().filter(id => { - return this.state.nodes[id] !== undefined; - }); - } - - getSelectedEdgeIds() { - return this.getSelection().filter(id => { - return this.state.edges[id] !== undefined; - }); - } - - addNode(node: Node, shape: GraphShape): boolean { - const { nodes, edges, drawData } = this.state; - - if (nodes[node.id] || edges[node.id]) return false; - - nodes[node.id] = node; - - const path = shape.createPath( - node.x, - node.y, - shape.width, - shape.height, - node.id - ); - - drawData[node.id] = { - type: GraphDataType.NODE, - shape, - path, - sourceOfEdgeIds: new Set(), - targetOfEdgeIds: new Set() - }; - - this.state.quad.insert( - node.id, - node.x - shape.width * 0.5, - node.y - shape.height * 0.5, - shape.width, - shape.height - ); - - this.renderer.drawNode(node); - - return true; - } - - addEdge(edge: Edge, shape: GraphShape): boolean { - const { nodes, edges, drawData } = this.state; - - if (nodes[edge.id] || edges[edge.id]) return false; - if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; - - const snd = drawData[edge.sourceId] as NodeDrawData; - const tnd = drawData[edge.targetId] as NodeDrawData; - - for (const eid of snd.sourceOfEdgeIds) { - if (edges[eid].targetId === edge.targetId) return false; - } - - for (const eid of tnd.targetOfEdgeIds) { - if (edges[eid].sourceId === edge.sourceId) return false; - } - - edges[edge.id] = edge; - - snd.sourceOfEdgeIds.add(edge.id); - tnd.targetOfEdgeIds.add(edge.id); - - this.renderer.createEdgePath(edge, shape); - - const source = nodes[edge.sourceId]; - const target = nodes[edge.targetId]; - - this.state.quad.insert( - edge.id, - Math.min(source.x, target.x), - Math.min(source.y, target.y), - Math.max(Math.abs(source.x - target.x), shape.width), - Math.max(Math.abs(source.y - target.y), shape.height) - ); - - this.renderer.drawEdge(edge); - - // console.log(this.state.quad); - - return true; - } - - moveNode(id: number, dx: number, dy: number): boolean { - const { drawData, nodes, edges } = this.state; - - if (!nodes[id]) return false; - - const node = nodes[id]; - const ndd = drawData[id] as NodeDrawData; - - node.x += dx; - node.y += dy; - - const shape = ndd.shape; - - const path = shape.createPath( - node.x, - node.y, - shape.width, - shape.height, - node.id - ); - - ndd.path = path; - - for (const edgeId of ndd.sourceOfEdgeIds) { - const edge = edges[edgeId]; - const edd = drawData[edgeId]; - - this.renderer.createEdgePath(edge, edd.shape); - - this.renderer.drawEdge(edge, true); - } - - for (const edgeId of ndd.targetOfEdgeIds) { - const edge = edges[edgeId]; - const edd = drawData[edgeId]; - - this.renderer.createEdgePath(edge, edd.shape); - - this.renderer.drawEdge(edge, true); - } - - this.renderer.drawNode(node, true); - - return true; - } - - updateNode(id: number, node: Partial): boolean { - const { nodes } = this.state; - - if (!nodes[id]) return false; - const cur = nodes[id]; - - if ((node.x && node.x !== cur.x) || (node.y && node.y !== cur.y)) { - this.moveNode( - id, - node.x ? node.x - cur.x : 0, - node.y ? node.y - cur.y : 0 - ); - } - - for (const k in node) { - if (k === "id") continue; - - cur[k] = node[k] as Node[Extract]; - } - - return true; - } - - updateEdge(id: number, edge: Partial): boolean { - const { edges } = this.state; - - if (!edges[id]) return false; - const cur = edges[id]; - - if ( - (edge.sourceId && edge.sourceId !== cur.sourceId) || - (edge.targetId && edge.targetId !== cur.targetId) - ) { - this.renderer.redrawEdges(); - } - - for (const k in edge) { - if (k === "id") continue; - - cur[k] = edge[k] as Edge[Extract]; - } - - return true; - } - - remove(id: number): boolean { - if (this.state.nodes[id]) return this.removeNode(id); - if (this.state.edges[id]) return this.removeEdge(id); - - return false; - } - - removeNode(id: number): boolean { - const { nodes, drawData } = this.state; - - if (!nodes[id]) return false; - const ndd = drawData[id] as NodeDrawData; - - for (const edgeId of ndd.sourceOfEdgeIds) { - this.removeEdge(edgeId); - } - - for (const edgeId of ndd.targetOfEdgeIds) { - this.removeEdge(edgeId); - } - - delete this.state.nodes[id]; - delete this.state.drawData[id]; - - requestAnimationFrame(() => this.renderer.redrawNodes()); + viewPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.state.boundingRect; + const { scale, translateX, translateY } = this.state; - return true; + out[0] = (windowX - left - translateX) / scale; + out[1] = (windowY - top - translateY) / scale; } - removeEdge(id: number): boolean { - const { edges, drawData } = this.state; - - if (!edges[id]) return false; - const edge = edges[id]; - - const sndd = drawData[edge.sourceId] as NodeDrawData; - sndd.sourceOfEdgeIds.delete(id); - - const tndd = drawData[edge.targetId] as NodeDrawData; - tndd.targetOfEdgeIds.delete(id); - - delete this.state.edges[id]; - delete this.state.drawData[id]; - - requestAnimationFrame(() => this.renderer.redrawEdges()); + viewPosFromCanvasPos( + out: [number, number], + canvasX: number, + canvasY: number + ) { + const { scale, translateX, translateY } = this.state; - return true; + out[0] = (canvasX - translateX) / scale; + out[1] = (canvasY - translateY) / scale; } - getNode(id: number): Node | undefined { - return this.state.nodes[id]; - } + canvasPosFromViewPos(out: [number, number], viewX: number, viewY: number) { + const { scale, translateX, translateY } = this.state; - getEdge(id: number): Edge | undefined { - return this.state.edges[id]; + out[0] = viewX * scale + translateX; + out[1] = viewY * scale + translateY; } - getData() { - return { - nodes: Object.values(this.state.nodes), - edges: Object.values(this.state.edges) - }; - } + canvasPosFromWindowPos( + out: [number, number], + windowX: number, + windowY: number + ) { + const { left, top } = this.state.boundingRect; - clear() { - this.state.nodes = {}; - this.state.edges = {}; - this.state.drawData = {}; - this.state.selectedIds.clear(); - this.state.moveNodeIds = []; - this.state.dragLineSourceNode = undefined; - this.state.quad.clear(); - - this.renderer.clearNodes(); - this.renderer.clearEdges(); + out[0] = windowX - left; + out[1] = windowY - top; } - getTranslateX() { return this.state.translateX; } @@ -521,7 +135,6 @@ export class GraphView { this.state.scale = scale; this.renderer.applyTransform(); - // this.renderer.drawAll(); this.renderer.requestDraw(); } @@ -529,16 +142,7 @@ export class GraphView { this.state.translateX += x; this.state.translateY += y; - // const ovx = this.state.viewX; - // const ovy = this.state.viewY; - // const ovw = this.state.viewW; - // const ovh = this.state.viewH; - - // requestAnimationFrame(() => { this.renderer.applyTransform(); - // this.renderer.drawAll(); - // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); - // }); this.renderer.requestDraw(); } @@ -567,44 +171,16 @@ export class GraphView { this.state.translateX += offsetX; this.state.translateY += offsetY; - // const ovx = this.state.viewX; - // const ovy = this.state.viewY; - // const ovw = this.state.viewW; - // const ovh = this.state.viewH; - this.renderer.applyTransform(); - // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); - - // this.renderer.drawAll(); this.renderer.requestDraw(); } - getViewPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.state.boundingRect; - const { scale, translateX, translateY } = this.state; - - return [ - (windowX - left - translateX) / scale, - (windowY - top - translateY) / scale - ]; - } - - getViewPosFromCanvasPos(canvasX: number, canvasY: number) { - const { scale, translateX, translateY } = this.state; - - return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; - } - - getCanvasPosFromViewPos(viewX: number, viewY: number) { - const { scale, translateX, translateY } = this.state; - - return [viewX * scale + translateX, viewY * scale + translateY]; + beginMoveView() { + this.state.isMovingView = true; } - getCanvasPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.state.boundingRect; - - return [windowX - left, windowY - top]; + endMoveView() { + this.state.isMovingView = false; } } diff --git a/src/types.ts b/src/types.ts index d839b0f..0fcff7a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -96,6 +96,8 @@ export const defaultEdgeShape: GraphShape = { }; export type GraphOptions = { + width: number; + height: number; bgColor: string; bgDotColor: string; bgLineWidth: number; @@ -130,6 +132,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { + width: 100000, + height: 100000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From 39402fab5e7d2bc7d241806a371fd682d67e5fae Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 00:23:58 +0700 Subject: [PATCH 35/56] adding nodes --- example/index.ts | 72 +++++++++++++------------- src/graph-renderer.ts | 115 +++++++++++++++++++++++++++++++++++++++--- src/graph-state.ts | 3 +- src/graph-view.ts | 88 +++++++++++++++++++++++++++++++- src/types.ts | 8 +-- 5 files changed, 236 insertions(+), 50 deletions(-) diff --git a/example/index.ts b/example/index.ts index 529a9aa..ecff387 100644 --- a/example/index.ts +++ b/example/index.ts @@ -24,58 +24,58 @@ const deleteButton = document.getElementById( let graphView: GraphView; -const lastId = 0; +let lastId = 0; const mode: "move" | "create" = "move"; -// function generate(nodeCount = 100) { -// let id = 1; +function generate(nodeCount = 100) { + let id = 1; -// graphView.clear(); + graphView.clear(); -// const columns = Math.ceil(Math.sqrt(nodeCount)); + const columns = Math.ceil(Math.sqrt(nodeCount)); -// for (let i = 0; i < nodeCount; i++) { -// const row = (i / columns) | 0; -// const col = i % columns; + for (let i = 0; i < nodeCount; i++) { + const row = (i / columns) | 0; + const col = i % columns; -// graphView.addNode( -// { -// id, -// x: col * 320, -// y: row * 320 -// }, -// nodeShapes[getRandomInt(0, nodeShapes.length)] -// ); + graphView.addNode( + { + id, + x: col * 320, + y: row * 320 + }, + nodeShapes[getRandomInt(0, nodeShapes.length)] + ); -// id++; + id++; -// if (i > 0) { -// graphView.addEdge( -// { -// id, -// sourceId: id - (i > 1 ? 3 : 2), -// targetId: id - 1 -// }, -// edgeShapes[getRandomInt(0, edgeShapes.length)] -// ); + // if (i > 0) { + // graphView.addEdge( + // { + // id, + // sourceId: id - (i > 1 ? 3 : 2), + // targetId: id - 1 + // }, + // edgeShapes[getRandomInt(0, edgeShapes.length)] + // ); -// id++; -// } -// } + // id++; + // } + } -// lastId = id - 1; -// } + lastId = id - 1; +} function main() { graphView = createGraphView(graphDiv); - // generate(100); + generate(100); - // generateButton.addEventListener("click", () => { - // const len = parseInt(nodeCountInput.value, 10); + generateButton.addEventListener("click", () => { + const len = parseInt(nodeCountInput.value, 10); - // generate(len); - // }); + generate(len); + }); // toggleModeButton.addEventListener("click", () => { // if (mode === "create") mode = "move"; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 53e3ab6..3655ae2 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -99,21 +99,77 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) => { - // const { edgeCtx, nodeCtx, nodes, edges } = this.state; + const { edgeCtx, nodeCtx, nodes, edges } = this.state; - // nodeCtx.clearRect(vx, vy, vw, vh); - // edgeCtx.clearRect(vx, vy, vw, vh); + nodeCtx.clearRect(vx, vy, vw, vh); + edgeCtx.clearRect(vx, vy, vw, vh); this.drawBackground(vx, vy, vw, vh); - // this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); + this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); - // for (const id of this.state.drawIds) { - // if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); - // if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); - // } + for (const id of this.state.drawIds) { + if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); + // if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); + } }; + drawNode( + node: Node, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { nodeCtx, moveCtx, options, nodeData } = this.state; + + if (!this.isNodeInView(node, vx, vy, vw, vh)) return; + + const ctx = isMove ? moveCtx : nodeCtx; + + const selected = this.state.selectedIds.has(node.id); + const hovered = this.state.hoveredId === node.id; + + const data = nodeData[node.id]; + + // check is in view + const shape = data.shape; + + // draw shape + ctx.strokeStyle = selected + ? options.nodeSelectedLineColor + : hovered + ? options.nodeHoveredLineColor + : options.nodeLineColor; + ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; + ctx.lineWidth = options.nodeLineWidth; + + if (!data.path) { + data.path = shape.createPath( + node.x, + node.y, + shape.width, + shape.height, + node.id + ); + } + + ctx.fill(data.path); + ctx.stroke(data.path); + + // draw content + + ctx.fillStyle = selected + ? options.nodeSelectedContentColor + : options.nodeContentColor; + ctx.textAlign = options.nodeTextAlign; + ctx.textBaseline = options.nodeTextBaseline; + ctx.font = options.nodeFont; + + shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); + } + drawBackground( vx = this.state.viewX, vy = this.state.viewY, @@ -174,4 +230,47 @@ export class GraphRenderer { bgCtx.setLineDash([]); bgCtx.lineCap = "square"; } + + clearNodes = () => { + const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearEdges = () => { + const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearDragLine = () => { + const { dragCtx, viewX, viewY, viewW, viewH } = this.state; + dragCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + clearMove = () => { + const { moveCtx, viewX, viewY, viewW, viewH } = this.state; + moveCtx.clearRect(viewX, viewY, viewW, viewH); + }; + + isNodeInView( + node: Node, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { nodeData } = this.state; + + const { shape } = nodeData[node.id]; + + return rectIntersect( + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ); + } } diff --git a/src/graph-state.ts b/src/graph-state.ts index ddd594c..e0a2192 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -21,7 +21,8 @@ export class GraphState { nodes: Record = {}; edges: Record = {}; - drawData: Record = {}; + nodeData: Record = {}; + edgeData: Record = {}; quad: Quad; options = defaultGraphOptions; diff --git a/src/graph-view.ts b/src/graph-view.ts index d4f3a8e..c22af1b 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -54,6 +54,10 @@ export class GraphView { this.handler.init(); } + destroy() { + this.handler.destroy(); + } + resize(): void { this.state.bgCtx.canvas.width = this.state.container.clientWidth; this.state.bgCtx.canvas.height = this.state.container.clientHeight; @@ -70,6 +74,89 @@ export class GraphView { this.renderer.drawAll(); } + addNode(node: Node, shape: GraphShape): boolean { + const { nodes, edges, nodeData } = this.state; + + if (nodes[node.id] || edges[node.id]) return false; + + nodes[node.id] = node; + + nodeData[node.id] = { + type: GraphDataType.NODE, + shape, + sourceOfEdgeIds: new Set(), + targetOfEdgeIds: new Set() + }; + + this.state.quad.insert( + node.id, + node.x - shape.width * 0.5, + node.y - shape.height * 0.5, + shape.width, + shape.height + ); + + this.renderer.drawNode(node); + + return true; + } + + // addEdge(edge: Edge, shape: GraphShape): boolean { + // const { nodes, edges, drawData } = this.state; + + // if (nodes[edge.id] || edges[edge.id]) return false; + // if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; + + // const snd = drawData[edge.sourceId] as NodeDrawData; + // const tnd = drawData[edge.targetId] as NodeDrawData; + + // for (const eid of snd.sourceOfEdgeIds) { + // if (edges[eid].targetId === edge.targetId) return false; + // } + + // for (const eid of tnd.targetOfEdgeIds) { + // if (edges[eid].sourceId === edge.sourceId) return false; + // } + + // edges[edge.id] = edge; + + // snd.sourceOfEdgeIds.add(edge.id); + // tnd.targetOfEdgeIds.add(edge.id); + + // this.renderer.createEdgePath(edge, shape); + + // const source = nodes[edge.sourceId]; + // const target = nodes[edge.targetId]; + + // this.state.quad.insert( + // edge.id, + // Math.min(source.x, target.x), + // Math.min(source.y, target.y), + // Math.max(Math.abs(source.x - target.x), shape.width), + // Math.max(Math.abs(source.y - target.y), shape.height) + // ); + + // this.renderer.drawEdge(edge); + + // // console.log(this.state.quad); + + // return true; + // } + + clear() { + this.state.nodes = {}; + this.state.edges = {}; + this.state.nodeData = {}; + this.state.edgeData = {}; + this.state.selectedIds.clear(); + this.state.moveNodeIds = []; + this.state.dragLineSourceNode = undefined; + this.state.quad.clear(); + + this.renderer.clearNodes(); + this.renderer.clearEdges(); + } + viewPosFromWindowPos( out: [number, number], windowX: number, @@ -143,7 +230,6 @@ export class GraphView { this.state.translateY += y; this.renderer.applyTransform(); - this.renderer.requestDraw(); } diff --git a/src/types.ts b/src/types.ts index 0fcff7a..cb2603c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -19,16 +19,16 @@ export type NodeDrawData = { type: GraphDataType.NODE; sourceOfEdgeIds: Set; targetOfEdgeIds: Set; - path: Path2D; + path?: Path2D; shape: GraphShape; }; export type EdgeDrawData = { type: GraphDataType.EDGE; shape: GraphShape; - path: Path2D; - linePath: Path2D; - arrowPath: Path2D; + path?: Path2D; + linePath?: Path2D; + arrowPath?: Path2D; lineSourceX: number; lineSourceY: number; lineTargetX: number; From 2eb362a09b09f81f3c8ab21919d06f88ea882eaa Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 11:56:30 +0700 Subject: [PATCH 36/56] add batch and edges --- example/index.ts | 27 +-- old/graph-renderer.ts | 7 - src/graph-renderer.ts | 466 +++++++++++++++++++++++++++++++++++++----- src/graph-view.ts | 95 +++++---- src/quad.ts | 2 +- src/types.ts | 16 +- 6 files changed, 497 insertions(+), 116 deletions(-) diff --git a/example/index.ts b/example/index.ts index ecff387..10459fb 100644 --- a/example/index.ts +++ b/example/index.ts @@ -30,6 +30,7 @@ const mode: "move" | "create" = "move"; function generate(nodeCount = 100) { let id = 1; + graphView.startBatch(); graphView.clear(); const columns = Math.ceil(Math.sqrt(nodeCount)); @@ -49,20 +50,22 @@ function generate(nodeCount = 100) { id++; - // if (i > 0) { - // graphView.addEdge( - // { - // id, - // sourceId: id - (i > 1 ? 3 : 2), - // targetId: id - 1 - // }, - // edgeShapes[getRandomInt(0, edgeShapes.length)] - // ); - - // id++; - // } + if (i > 0) { + graphView.addEdge( + { + id, + sourceId: id - (i > 1 ? 3 : 2), + targetId: id - 1 + }, + edgeShapes[getRandomInt(0, edgeShapes.length)] + ); + + id++; + } } + graphView.endBatch(); + lastId = id - 1; } diff --git a/old/graph-renderer.ts b/old/graph-renderer.ts index a56b30c..3eb1475 100644 --- a/old/graph-renderer.ts +++ b/old/graph-renderer.ts @@ -10,13 +10,6 @@ import { } from "./types"; import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; -export enum RedrawType { - ALL = 0, - NODES, - EDGES, - MOVE -} - export class GraphRenderer { private state: GraphState; private view: GraphView; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 3655ae2..a4d59af 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -14,7 +14,7 @@ export enum RedrawType { ALL = 0, NODES, EDGES, - MOVE + NODES_AND_EDGES } export class GraphRenderer { @@ -22,14 +22,17 @@ export class GraphRenderer { private view: GraphView; private isDrawing = false; + private redrawType = RedrawType.ALL; + private cp: [number, number] = [0, 0]; constructor(view: GraphView, state: GraphState) { this.view = view; this.state = state; } - requestDraw() { + requestDraw(redrawType = RedrawType.ALL) { if (!this.isDrawing) { + this.redrawType = redrawType; requestAnimationFrame(this.requestDrawHandler); } @@ -39,7 +42,7 @@ export class GraphRenderer { requestDrawHandler = () => { this.isDrawing = false; - this.drawAll(); + this.draw(this.redrawType); }; applyTransform() { @@ -51,49 +54,47 @@ export class GraphRenderer { nodeCtx, dragCtx, edgeCtx, - moveCtx, - options, - viewX, - viewY, - viewW, - viewH + moveCtx } = this.state; + this.state.setView(); + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - const xt = -options.height * 0.5; - const xr = options.width * 0.5; - const xb = options.height * 0.5; - const xl = -options.width * 0.5; - - const dl = Math.max(viewX, xl); - const dt = Math.max(viewY, xt); - const dr = Math.min(viewX + viewW, xr); - const db = Math.min(viewY + viewH, xb); - - if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { - nodeCtx.beginPath(); - nodeCtx.rect(dl, dt, dr - dl, db - dt); - nodeCtx.clip(); - edgeCtx.beginPath(); - edgeCtx.rect(dl, dt, dr - dl, db - dt); - edgeCtx.clip(); - dragCtx.beginPath(); - dragCtx.rect(dl, dt, dr - dl, db - dt); - dragCtx.clip(); - moveCtx.beginPath(); - moveCtx.rect(dl, dt, dr - dl, db - dt); - moveCtx.clip(); - } - - this.state.setView(); + // const { options, viewX, viewY, viewW, viewH } = this.state; + + // const xt = -options.height * 0.5; + // const xr = options.width * 0.5; + // const xb = options.height * 0.5; + // const xl = -options.width * 0.5; + + // const dl = Math.max(viewX, xl); + // const dt = Math.max(viewY, xt); + // const dr = Math.min(viewX + viewW, xr); + // const db = Math.min(viewY + viewH, xb); + + // if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { + // nodeCtx.beginPath(); + // nodeCtx.rect(dl, dt, dr - dl, db - dt); + // nodeCtx.clip(); + // edgeCtx.beginPath(); + // edgeCtx.rect(dl, dt, dr - dl, db - dt); + // edgeCtx.clip(); + // dragCtx.beginPath(); + // dragCtx.rect(dl, dt, dr - dl, db - dt); + // dragCtx.clip(); + // moveCtx.beginPath(); + // moveCtx.rect(dl, dt, dr - dl, db - dt); + // moveCtx.clip(); + // } } - drawAll = ( + draw = ( + redrawType = RedrawType.ALL, vx = this.state.viewX, vy = this.state.viewY, vw = this.state.viewW, @@ -101,16 +102,19 @@ export class GraphRenderer { ) => { const { edgeCtx, nodeCtx, nodes, edges } = this.state; - nodeCtx.clearRect(vx, vy, vw, vh); - edgeCtx.clearRect(vx, vy, vw, vh); - - this.drawBackground(vx, vy, vw, vh); + if (redrawType === RedrawType.ALL) this.drawBackground(vx, vy, vw, vh); this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); + if (redrawType !== RedrawType.EDGES) nodeCtx.clearRect(vx, vy, vw, vh); + if (redrawType !== RedrawType.NODES) edgeCtx.clearRect(vx, vy, vw, vh); + for (const id of this.state.drawIds) { - if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); - // if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); + if (redrawType !== RedrawType.EDGES && nodes[id]) + this.drawNode(nodes[id], false, vx, vy, vw, vh); + + if (redrawType !== RedrawType.NODES && edges[id]) + this.drawEdge(edges[id], false, vx, vy, vw, vh); } }; @@ -146,17 +150,13 @@ export class GraphRenderer { ctx.lineWidth = options.nodeLineWidth; if (!data.path) { - data.path = shape.createPath( - node.x, - node.y, - shape.width, - shape.height, - node.id - ); + this.createNodePath(node); } - ctx.fill(data.path); - ctx.stroke(data.path); + if (data.path) { + ctx.fill(data.path); + ctx.stroke(data.path); + } // draw content @@ -170,6 +170,79 @@ export class GraphRenderer { shape.drawContent(ctx, node.x, node.y, shape.width, shape.height, node.id); } + drawEdge( + edge: Edge, + isMove = false, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { edgeCtx, moveCtx, options, edgeData } = this.state; + + const ctx = isMove ? moveCtx : edgeCtx; + + const selected = this.state.selectedIds.has(edge.id); + const hovered = this.state.hoveredId === edge.id; + + const data = edgeData[edge.id]; + + ctx.lineWidth = options.edgeLineWidth; + ctx.strokeStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + + // draw edge line + if (this.isEdgeLineInView(edge, vx, vy, vw, vh)) { + if (data.linePath) ctx.stroke(data.linePath); + } + + // draw edge arrow + if (this.isEdgeArrowInView(edge, vx, vy, vw, vh)) { + ctx.fillStyle = selected + ? options.edgeSelectedLineColor + : hovered + ? options.edgeHoveredLineColor + : options.edgeLineColor; + + if (data.arrowPath) ctx.fill(data.arrowPath); + } + + // draw shape and content + const shape = data.shape; + + if (this.isEdgeShapeInView(edge, vx, vy, vw, vh)) { + if (!data.path || !data.shapeX || !data.shapeY) return; + + // draw shape + ctx.fillStyle = selected + ? options.edgeSelectedShapeColor + : options.edgeShapeColor; + + ctx.fill(data.path); + ctx.stroke(data.path); + + // draw content + ctx.fillStyle = selected + ? options.edgeSelectedContentColor + : options.edgeContentColor; + ctx.textAlign = options.edgeTextAlign; + ctx.textBaseline = options.edgeTextBaseline; + ctx.font = options.edgeFont; + + shape.drawContent( + ctx, + data.shapeX, + data.shapeY, + shape.width, + shape.height, + edge.id + ); + } + } + drawBackground( vx = this.state.viewX, vy = this.state.viewY, @@ -273,4 +346,295 @@ export class GraphRenderer { vh ); } + + createNodePath(node: Node) { + const { nodeData } = this.state; + + const data = nodeData[node.id]; + + data.path = data.shape.createPath( + node.x, + node.y, + data.shape.width, + data.shape.height, + node.id + ); + } + + isEdgeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + return ( + this.isEdgeArrowInView(edge, vx, vy, vw, vh) || + this.isEdgeLineInView(edge, vx, vy, vw, vh) || + this.isEdgeShapeInView(edge, vx, vy, vw, vh) + ); + } + + isEdgeLineInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, edgeData } = this.state; + + const data = edgeData[edge.id]; + + if ( + data.lineSourceX === undefined || + data.lineSourceY === undefined || + data.lineTargetX === undefined || + data.lineTargetY === undefined + ) + this.createEdgePath(edge, data.shape); + + if ( + data.lineSourceX === undefined || + data.lineSourceY === undefined || + data.lineTargetX === undefined || + data.lineTargetY === undefined + ) + return; + + const sx = data.lineSourceX; + const sy = data.lineSourceY; + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + + return ( + isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || + lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || + lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) + ); + } + + isEdgeArrowInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, edgeData } = this.state; + + const data = edgeData[edge.id]; + + if (data.lineTargetX === undefined || data.lineTargetY === undefined) + this.createEdgePath(edge, data.shape); + if (data.lineTargetX === undefined || data.lineTargetY === undefined) + return; + + const tx = data.lineTargetX; + const ty = data.lineTargetY; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); + + return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); + } + + isEdgeShapeInView( + edge: Edge, + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) { + const { options, edgeData } = this.state; + + const data = edgeData[edge.id]; + + if (data.shapeX === undefined || data.shapeY === undefined) + this.createEdgePath(edge, data.shape); + if (data.shapeX === undefined || data.shapeY === undefined) return; + + const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); + vx -= lsz; + vy -= lsz; + vw += lsz * 2; + vh += lsz * 2; + + const shape = data.shape; + + return rectIntersect( + data.shapeX - shape.width * 0.5, + data.shapeY - shape.height * 0.5, + shape.width, + shape.height, + vx, + vy, + vw, + vh + ); + } + + createEdgePath(edge: Edge, shape: GraphShape) { + const { options, nodes, nodeData, edgeData } = this.state; + const { sourceId, targetId } = edge; + + const source = nodes[sourceId]; + const sourceData = nodeData[sourceId]; + + const target = nodes[targetId]; + const targetData = nodeData[targetId]; + + if (!sourceData.path) this.createNodePath(source); + if (!targetData.path) this.createNodePath(target); + + if (!sourceData.path) return; + if (!targetData.path) return; + + const dx = target.x - source.x; + const dy = target.y - source.y; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const sip = this.getIntersectionPoint( + target.x, + target.y, + source.x, + source.y, + sourceData.path + ); + const lineSourceX = + target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; + const lineSourceY = + target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; + + const tip = this.getIntersectionPoint( + source.x, + source.y, + target.x, + target.y, + targetData.path + ); + const lineTargetX = + source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; + const lineTargetY = + source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; + + const shapeX = + (lineSourceX + lineTargetX - options.edgeArrowHeight * cosr) * 0.5; + const shapeY = + (lineSourceY + lineTargetY - options.edgeArrowHeight * sinr) * 0.5; + + const path = shape.createPath( + shapeX, + shapeY, + shape.width, + shape.height, + edge.id + ); + + const linePath = this.createEdgeLinePath( + lineSourceX, + lineSourceY, + lineTargetX - options.edgeArrowHeight * cosr, + lineTargetY - options.edgeArrowHeight * sinr + ); + + const arrowPath = this.createEdgeArrowPath( + lineTargetX, + lineTargetY, + sinr, + cosr + ); + + const data = edgeData[edge.id]; + + data.path = path; + data.linePath = linePath; + data.arrowPath = arrowPath; + data.lineSourceX = lineSourceX; + data.lineSourceY = lineSourceY; + data.lineTargetX = lineTargetX; + data.lineTargetY = lineTargetY; + data.shapeX = shapeX; + data.shapeY = shapeY; + } + + createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { + const p = new Path2D(); + + p.moveTo(sx, sy); + p.lineTo(tx, ty); + + return p; + } + + createEdgeArrowPath(ix: number, iy: number, sinr: number, cosr: number) { + const { options } = this.state; + + const ll = options.edgeArrowWidth * 0.5; + const lsx = ix - options.edgeArrowHeight * cosr; + const lsy = iy - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + const p = new Path2D(); + + p.moveTo(ix, iy); + p.lineTo(lp1x, lp1y); + p.lineTo(lp2x, lp2y); + p.closePath(); + + return p; + } + + getIntersectionPoint( + sx: number, + sy: number, + tx: number, + ty: number, + path: Path2D + ) { + const { bgCtx } = this.state; + + const dx = tx - sx; + const dy = ty - sy; + + const e = (Math.abs(dx) + Math.abs(dy)) | 0; + + let start = 0; + let end = e; + + while (start <= end) { + const mid = ((start + end) / 2) | 0; + + const x = sx + (mid / e) * dx; + const y = sy + (mid / e) * dy; + + this.view.canvasPosFromViewPos(this.cp, x, y); + + if (bgCtx.isPointInPath(path, this.cp[0], this.cp[1])) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return start / e; + } } diff --git a/src/graph-view.ts b/src/graph-view.ts index c22af1b..bb0e3df 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,5 +1,5 @@ import { GraphHandler } from "./graph-handler"; -import { GraphRenderer } from "./graph-renderer"; +import { GraphRenderer, RedrawType } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { defaultEdgeShape, @@ -8,8 +8,7 @@ import { GraphNode, GraphShape, GraphOptions, - GraphDataType, - NodeDrawData + GraphDataType } from "./types"; export function createNodeShape(shape?: Partial): GraphShape { @@ -30,6 +29,7 @@ export class GraphView { private state: GraphState; private renderer: GraphRenderer; private handler: GraphHandler; + private isBatching = false; constructor(container: HTMLElement, options: Partial = {}) { this.state = new GraphState(container, options); @@ -37,7 +37,7 @@ export class GraphView { this.handler = new GraphHandler(this, this.state, this.renderer); this.renderer.applyTransform(); - this.renderer.drawAll(); + this.renderer.draw(); container.appendChild(this.state.bgCtx.canvas); container.appendChild(this.state.edgeCtx.canvas); @@ -71,7 +71,17 @@ export class GraphView { this.state.boundingRect = this.state.container.getBoundingClientRect(); this.renderer.applyTransform(); - this.renderer.drawAll(); + this.renderer.draw(); + } + + startBatch() { + this.isBatching = true; + } + + endBatch(redrawType: RedrawType = RedrawType.ALL) { + this.isBatching = false; + + this.renderer.requestDraw(redrawType); } addNode(node: Node, shape: GraphShape): boolean { @@ -96,52 +106,61 @@ export class GraphView { shape.height ); - this.renderer.drawNode(node); + if (!this.isBatching) this.renderer.drawNode(node); return true; } - // addEdge(edge: Edge, shape: GraphShape): boolean { - // const { nodes, edges, drawData } = this.state; + addEdge(edge: Edge, shape: GraphShape): boolean { + const { nodes, edges, nodeData, edgeData } = this.state; - // if (nodes[edge.id] || edges[edge.id]) return false; - // if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; + if (nodes[edge.id] || edges[edge.id]) return false; + if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; - // const snd = drawData[edge.sourceId] as NodeDrawData; - // const tnd = drawData[edge.targetId] as NodeDrawData; + const snd = nodeData[edge.sourceId]; + const tnd = nodeData[edge.targetId]; - // for (const eid of snd.sourceOfEdgeIds) { - // if (edges[eid].targetId === edge.targetId) return false; - // } + for (const eid of snd.sourceOfEdgeIds) { + if (edges[eid].targetId === edge.targetId) return false; + } - // for (const eid of tnd.targetOfEdgeIds) { - // if (edges[eid].sourceId === edge.sourceId) return false; - // } + for (const eid of tnd.targetOfEdgeIds) { + if (edges[eid].sourceId === edge.sourceId) return false; + } - // edges[edge.id] = edge; + edges[edge.id] = edge; - // snd.sourceOfEdgeIds.add(edge.id); - // tnd.targetOfEdgeIds.add(edge.id); + snd.sourceOfEdgeIds.add(edge.id); + tnd.targetOfEdgeIds.add(edge.id); - // this.renderer.createEdgePath(edge, shape); + edgeData[edge.id] = { + type: GraphDataType.EDGE, + shape + }; - // const source = nodes[edge.sourceId]; - // const target = nodes[edge.targetId]; + const source = nodes[edge.sourceId]; + const target = nodes[edge.targetId]; - // this.state.quad.insert( - // edge.id, - // Math.min(source.x, target.x), - // Math.min(source.y, target.y), - // Math.max(Math.abs(source.x - target.x), shape.width), - // Math.max(Math.abs(source.y - target.y), shape.height) - // ); + // console.log( + // edge.id, + // Math.min(source.x, target.x), + // Math.min(source.y, target.y), + // Math.max(Math.abs(source.x - target.x), shape.width), + // Math.max(Math.abs(source.y - target.y), shape.height) + // ); - // this.renderer.drawEdge(edge); + this.state.quad.insert( + edge.id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), shape.width), + Math.max(Math.abs(source.y - target.y), shape.height) + ); - // // console.log(this.state.quad); + if (!this.isBatching) this.renderer.drawEdge(edge); - // return true; - // } + return true; + } clear() { this.state.nodes = {}; @@ -153,8 +172,10 @@ export class GraphView { this.state.dragLineSourceNode = undefined; this.state.quad.clear(); - this.renderer.clearNodes(); - this.renderer.clearEdges(); + if (!this.isBatching) { + this.renderer.clearNodes(); + this.renderer.clearEdges(); + } } viewPosFromWindowPos( diff --git a/src/quad.ts b/src/quad.ts index 04138ab..2b4cd28 100644 --- a/src/quad.ts +++ b/src/quad.ts @@ -2,7 +2,7 @@ import { rectIntersect } from "./utils"; -const MAX_DEPTH = 64; +const MAX_DEPTH = 8; const DATA_PER_CHILD = 4; export type QuadData = { diff --git a/src/types.ts b/src/types.ts index cb2603c..c4c9899 100644 --- a/src/types.ts +++ b/src/types.ts @@ -29,12 +29,12 @@ export type EdgeDrawData = { path?: Path2D; linePath?: Path2D; arrowPath?: Path2D; - lineSourceX: number; - lineSourceY: number; - lineTargetX: number; - lineTargetY: number; - shapeX: number; - shapeY: number; + lineSourceX?: number; + lineSourceY?: number; + lineTargetX?: number; + lineTargetY?: number; + shapeX?: number; + shapeY?: number; }; export type GraphShape = { @@ -132,8 +132,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 100000, - height: 100000, + width: 10000, + height: 10000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From a4004c9242d45166b5c853868169e5ec6194b2c5 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 15:33:51 +0700 Subject: [PATCH 37/56] hover --- src/graph-handler.ts | 77 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index a0838b8..60a441e 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -15,6 +15,7 @@ export class GraphHandler { private renderer: GraphRenderer; private vp: [number, number] = [0, 0]; + private cp: [number, number] = [0, 0]; constructor( view: GraphView, @@ -45,11 +46,11 @@ export class GraphHandler { // requestAnimationFrame(this.renderer.drawDragLine); // } - // if (moveNodeIds.length === 0) { - // requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); + if (moveNodeIds.length === 0) { + requestAnimationFrame(this.checkHover); - // return; - // } + return; + } // const dx = vp[0] - moveX; // const dy = vp[1] - moveY; @@ -64,6 +65,74 @@ export class GraphHandler { // } }; + private isEdgeHovered(x: number, y: number, edge: Edge): boolean { + const { edgeCtx, edgeData } = this.state; + + const data = edgeData[edge.id]; + + if (!data.path || !data.linePath || !data.arrowPath) return false; + + return ( + edgeCtx.isPointInPath(data.path, x, y) || + edgeCtx.isPointInStroke(data.linePath, x, y) || + edgeCtx.isPointInPath(data.arrowPath, x, y) + ); + } + + private isNodeHovered(x: number, y: number, node: Node): boolean { + const { nodeCtx, nodeData } = this.state; + + const data = nodeData[node.id]; + + return data.path ? nodeCtx.isPointInPath(data.path, x, y) : false; + } + + private checkHover = () => { + const { nodes, edges } = this.state; + + const prevId = this.state.hoveredId; + this.state.hoveredId = 0; + + this.view.canvasPosFromViewPos(this.cp, this.vp[0], this.vp[1]); + this.state.quad.getDataInRegion( + this.vp[0] - 1, + this.vp[1] - 1, + 2, + 2, + this.state.drawIds + ); + + for (const id of this.state.drawIds) { + if (nodes[id] && this.isNodeHovered(this.cp[0], this.cp[1], nodes[id])) + this.state.hoveredId = id; + + if (edges[id] && this.isEdgeHovered(this.cp[0], this.cp[1], edges[id])) + this.state.hoveredId = id; + } + + if (this.state.hoveredId === prevId) return; + + const currId = this.state.hoveredId; + const prev = this.state.nodeData[prevId] || this.state.edgeData[prevId]; + const curr = this.state.nodeData[currId] || this.state.edgeData[currId]; + + if (prev) { + if (prev.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[prevId]); + } else if (prev.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[prevId]); + } + } + + if (curr) { + if (curr.type === GraphDataType.NODE) { + this.renderer.drawNode(nodes[currId]); + } else if (curr.type === GraphDataType.EDGE) { + this.renderer.drawEdge(edges[currId]); + } + } + }; + handleWheel = (e: WheelEvent) => { this.view.viewPosFromWindowPos(this.vp, e.x, e.y); From 95be17d632dabdc8bc69128903d26b0db746022f Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 17:39:11 +0700 Subject: [PATCH 38/56] delete, drag line, update, move --- example/index.ts | 120 ++++++------ src/graph-handler.ts | 30 +-- src/graph-renderer.ts | 104 ++++++++++- src/graph-view.ts | 421 +++++++++++++++++++++++++++++++++++++++++- src/quad.ts | 15 ++ 5 files changed, 609 insertions(+), 81 deletions(-) diff --git a/example/index.ts b/example/index.ts index 10459fb..4d2ce94 100644 --- a/example/index.ts +++ b/example/index.ts @@ -25,7 +25,7 @@ const deleteButton = document.getElementById( let graphView: GraphView; let lastId = 0; -const mode: "move" | "create" = "move"; +let mode: "move" | "create" = "move"; function generate(nodeCount = 100) { let id = 1; @@ -80,71 +80,75 @@ function main() { generate(len); }); - // toggleModeButton.addEventListener("click", () => { - // if (mode === "create") mode = "move"; - // else mode = "create"; - // }); + toggleModeButton.addEventListener("click", () => { + if (mode === "create") mode = "move"; + else mode = "create"; + }); + + deleteButton.addEventListener("click", () => { + const selectedIds = graphView.getSelection(); - // deleteButton.addEventListener("click", () => { - // const selectedIds = graphView.getSelection(); + graphView.startBatch(); - // for (const id of selectedIds) { - // graphView.remove(id); - // } - // }); + for (const id of selectedIds) { + graphView.remove(id); + } + + graphView.endBatch(); + }); + const pos: [number, number] = [0, 0]; graphDiv.addEventListener("mousedown", e => { - // const pos = graphView.getViewPosFromWindowPos(e.x, e.y); - // const hoveredId = graphView.getHoveredId(); - - // if (hoveredId) { - // graphView.addSelection(hoveredId); - // // graphView.select(hoveredId); - // } else { - // graphView.clearSelection(); - // } - - // if (mode === "move") { - // if (!hoveredId) - graphView.beginMoveView(); - // else - // graphView.beginMoveNodes( - // graphView.getSelectedNodeIds(), - // pos[0], - // pos[1] - // ); - // } else if (mode === "create") { - // if (!hoveredId) { - // lastId++; - - // graphView.addNode( - // { id: lastId, x: pos[0], y: pos[1] }, - // nodeShapes[getRandomInt(0, nodeShapes.length)] - // ); - // } else { - // graphView.beginDragLine(); - // } - // } + graphView.viewPosFromWindowPos(pos, e.x, e.y); + const hoveredId = graphView.getHoveredId(); + + if (hoveredId) { + graphView.addSelection(hoveredId); + // graphView.select(hoveredId); + } else { + graphView.clearSelection(); + } + + if (mode === "move") { + if (!hoveredId) graphView.beginMoveView(); + else + graphView.beginMoveNodes( + graphView.getSelectedNodeIds(), + pos[0], + pos[1] + ); + } else if (mode === "create") { + if (!hoveredId) { + lastId++; + + graphView.addNode( + { id: lastId, x: pos[0], y: pos[1] }, + nodeShapes[getRandomInt(0, nodeShapes.length)] + ); + } else { + graphView.beginDragLine(); + } + } }); graphDiv.addEventListener("mouseup", () => { graphView.endMoveView(); - // graphView.endMoveNodes(); - - // const dragLineNodes = graphView.endDragLine(); - - // if (dragLineNodes) { - // lastId++; - - // graphView.addEdge( - // { - // id: lastId, - // sourceId: dragLineNodes[0].id, - // targetId: dragLineNodes[1].id - // }, - // edgeShapes[getRandomInt(0, edgeShapes.length)] - // ); - // } + graphView.endMoveNodes(); + + const dragLineNodes = graphView.endDragLine(); + + if (dragLineNodes) { + lastId++; + + graphView.addEdge( + { + id: lastId, + sourceId: dragLineNodes[0].id, + targetId: dragLineNodes[1].id + }, + edgeShapes[getRandomInt(0, edgeShapes.length)] + ); + } }); } diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 60a441e..2b06916 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -1,4 +1,4 @@ -import { GraphRenderer } from "./graph-renderer"; +import { GraphRenderer, RedrawType } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; import { @@ -39,12 +39,12 @@ export class GraphHandler { this.view.viewPosFromWindowPos(this.vp, e.x, e.y); - // if (dragLineSourceNode) { - // this.state.dragLineX = vp[0]; - // this.state.dragLineY = vp[1]; + if (dragLineSourceNode) { + this.state.dragLineX = this.vp[0]; + this.state.dragLineY = this.vp[1]; - // requestAnimationFrame(this.renderer.drawDragLine); - // } + requestAnimationFrame(this.renderer.drawDragLine); + } if (moveNodeIds.length === 0) { requestAnimationFrame(this.checkHover); @@ -52,17 +52,19 @@ export class GraphHandler { return; } - // const dx = vp[0] - moveX; - // const dy = vp[1] - moveY; + const dx = this.vp[0] - moveX; + const dy = this.vp[1] - moveY; + + this.state.moveX = this.vp[0]; + this.state.moveY = this.vp[1]; - // this.state.moveX = vp[0]; - // this.state.moveY = vp[1]; + this.view.startBatch(); - // this.renderer.clearMove(); + for (const id of moveNodeIds) { + this.view.moveNode(id, dx, dy); + } - // for (const id of moveNodeIds) { - // this.view.moveNode(id, dx, dy); - // } + this.view.endBatch(RedrawType.MOVE); }; private isEdgeHovered(x: number, y: number, edge: Edge): boolean { diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index a4d59af..427a699 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -14,7 +14,8 @@ export enum RedrawType { ALL = 0, NODES, EDGES, - NODES_AND_EDGES + NODES_AND_EDGES, + MOVE } export class GraphRenderer { @@ -25,6 +26,8 @@ export class GraphRenderer { private redrawType = RedrawType.ALL; private cp: [number, number] = [0, 0]; + private moveEdgeIds = new Set(); + constructor(view: GraphView, state: GraphState) { this.view = view; this.state = state; @@ -95,6 +98,7 @@ export class GraphRenderer { draw = ( redrawType = RedrawType.ALL, + excludeIds?: Set, vx = this.state.viewX, vy = this.state.viewY, vw = this.state.viewW, @@ -102,6 +106,11 @@ export class GraphRenderer { ) => { const { edgeCtx, nodeCtx, nodes, edges } = this.state; + if (redrawType === RedrawType.MOVE) { + this.drawMove(); + return; + } + if (redrawType === RedrawType.ALL) this.drawBackground(vx, vy, vw, vh); this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); @@ -110,6 +119,8 @@ export class GraphRenderer { if (redrawType !== RedrawType.NODES) edgeCtx.clearRect(vx, vy, vw, vh); for (const id of this.state.drawIds) { + if (excludeIds && excludeIds.has(id)) continue; + if (redrawType !== RedrawType.EDGES && nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); @@ -118,6 +129,43 @@ export class GraphRenderer { } }; + drawMove = ( + vx = this.state.viewX, + vy = this.state.viewY, + vw = this.state.viewW, + vh = this.state.viewH + ) => { + const { nodes, edges, nodeData, moveCtx } = this.state; + + moveCtx.clearRect(vx, vy, vw, vh); + + this.moveEdgeIds.clear(); + + for (const nodeId of this.state.moveNodeIds) { + const ndd = nodeData[nodeId]; + + for (const eid of ndd.sourceOfEdgeIds) { + this.moveEdgeIds.add(eid); + } + + for (const eid of ndd.targetOfEdgeIds) { + this.moveEdgeIds.add(eid); + } + } + + for (const id of this.moveEdgeIds) { + const edge = edges[id]; + + this.drawEdge(edge, true, vx, vy, vw, vh); + } + + for (const id of this.state.moveNodeIds) { + const node = nodes[id]; + + this.drawNode(node, true, vx, vy, vw, vh); + } + }; + drawNode( node: Node, isMove = false, @@ -637,4 +685,58 @@ export class GraphRenderer { return start / e; } + + drawDragLine = () => { + const { + dragCtx, + options, + dragLineSourceNode, + dragLineX, + dragLineY, + viewX, + viewY, + viewW, + viewH + } = this.state; + + if (!dragLineSourceNode) return; + + dragCtx.clearRect(viewX, viewY, viewW, viewH); + + const sx = dragLineSourceNode.x; + const sy = dragLineSourceNode.y; + const tx = dragLineX; + const ty = dragLineY; + + const dx = tx - sx; + const dy = ty - sy; + + const rad = Math.atan2(dy, dx); + const sinr = Math.sin(rad); + const cosr = Math.cos(rad); + + const ll = options.edgeArrowWidth * 0.5; + const lsx = tx - options.edgeArrowHeight * cosr; + const lsy = ty - options.edgeArrowHeight * sinr; + const lp1x = lsx + ll * sinr; + const lp1y = lsy - ll * cosr; + const lp2x = lsx - ll * sinr; + const lp2y = lsy + ll * cosr; + + dragCtx.lineWidth = options.edgeLineWidth; + dragCtx.strokeStyle = options.edgeLineColor; + dragCtx.fillStyle = options.edgeLineColor; + + dragCtx.beginPath(); + dragCtx.moveTo(sx, sy); + dragCtx.lineTo(tx, ty); + dragCtx.stroke(); + + dragCtx.beginPath(); + dragCtx.moveTo(tx, ty); + dragCtx.lineTo(lp1x, lp1y); + dragCtx.lineTo(lp2x, lp2y); + dragCtx.closePath(); + dragCtx.fill(); + }; } diff --git a/src/graph-view.ts b/src/graph-view.ts index bb0e3df..749007d 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -141,14 +141,6 @@ export class GraphView { const source = nodes[edge.sourceId]; const target = nodes[edge.targetId]; - // console.log( - // edge.id, - // Math.min(source.x, target.x), - // Math.min(source.y, target.y), - // Math.max(Math.abs(source.x - target.x), shape.width), - // Math.max(Math.abs(source.y - target.y), shape.height) - // ); - this.state.quad.insert( edge.id, Math.min(source.x, target.x), @@ -162,6 +154,262 @@ export class GraphView { return true; } + updateNode(id: number, node: Partial): boolean { + const { nodes } = this.state; + + if (!nodes[id]) return false; + const cur = nodes[id]; + + if ((node.x && node.x !== cur.x) || (node.y && node.y !== cur.y)) { + this.moveNode( + id, + node.x ? node.x - cur.x : 0, + node.y ? node.y - cur.y : 0 + ); + } + + for (const k in node) { + if (k === "id") continue; + + cur[k] = node[k] as Node[Extract]; + } + + return true; + } + + moveNode(id: number, dx: number, dy: number): boolean { + const { nodeData, edgeData, nodes, edges } = this.state; + + if (!nodes[id]) return false; + + const node = nodes[id]; + const ndd = nodeData[id]; + + ndd.path = undefined; + + for (const edgeId of ndd.sourceOfEdgeIds) { + const edge = edges[edgeId]; + const source = node; + const target = nodes[edge.targetId]; + const edd = edgeData[edgeId]; + + this.state.quad.move( + edge.id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), edd.shape.width), + Math.max(Math.abs(source.y - target.y), edd.shape.height), + Math.min(source.x + dx, target.x), + Math.min(source.y + dy, target.y), + Math.max(Math.abs(source.x + dx - target.x), edd.shape.width), + Math.max(Math.abs(source.y + dy - target.y), edd.shape.height) + ); + + edd.arrowPath = undefined; + edd.linePath = undefined; + edd.path = undefined; + edd.lineSourceX = undefined; + edd.lineSourceY = undefined; + edd.lineTargetX = undefined; + edd.lineTargetY = undefined; + edd.shapeX = undefined; + edd.shapeY = undefined; + } + + for (const edgeId of ndd.targetOfEdgeIds) { + const edge = edges[edgeId]; + const source = nodes[edge.sourceId]; + const target = node; + const edd = edgeData[edgeId]; + + this.state.quad.move( + edge.id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), edd.shape.width), + Math.max(Math.abs(source.y - target.y), edd.shape.height), + Math.min(source.x, target.x + dx), + Math.min(source.y, target.y + dy), + Math.max(Math.abs(source.x - target.x + dx), edd.shape.width), + Math.max(Math.abs(source.y - target.y + dy), edd.shape.height) + ); + + edd.arrowPath = undefined; + edd.linePath = undefined; + edd.path = undefined; + edd.lineSourceX = undefined; + edd.lineSourceY = undefined; + edd.lineTargetX = undefined; + edd.lineTargetY = undefined; + edd.shapeX = undefined; + edd.shapeY = undefined; + } + + this.state.quad.move( + node.id, + node.x - ndd.shape.width * 0.5, + node.y - ndd.shape.height * 0.5, + ndd.shape.width, + ndd.shape.height, + node.x + dx - ndd.shape.width * 0.5, + node.y + dy - ndd.shape.height * 0.5, + ndd.shape.width, + ndd.shape.height + ); + + node.x += dx; + node.y += dy; + + if (!this.isBatching) this.renderer.draw(RedrawType.NODES_AND_EDGES); + + return true; + } + + updateEdge(id: number, edge: Partial): boolean { + const { edges } = this.state; + + if (!edges[id]) return false; + const cur = edges[id]; + + if ( + (edge.sourceId && edge.sourceId !== cur.sourceId) || + (edge.targetId && edge.targetId !== cur.targetId) + ) { + this.changeEdgeSourceAndTarget(id, cur.sourceId, cur.targetId); + } + + for (const k in edge) { + if (k === "id") continue; + + cur[k] = edge[k] as Edge[Extract]; + } + + if (!this.isBatching) this.renderer.draw(RedrawType.EDGES); + + return true; + } + + changeEdgeSourceAndTarget( + id: number, + sourceId: number, + targetId: number + ): boolean { + const { nodes, edges, edgeData } = this.state; + + if (!edges[id]) return false; + if (!nodes[sourceId] || !nodes[targetId]) return false; + + const cur = edges[id]; + + if (sourceId === cur.sourceId && targetId === cur.targetId) return false; + + const data = edgeData[id]; + const curSource = nodes[cur.sourceId]; + const curTarget = nodes[cur.targetId]; + const newSource = nodes[cur.sourceId]; + const newTarget = nodes[cur.targetId]; + + this.state.quad.move( + id, + Math.min(curSource.x, curTarget.x), + Math.min(curSource.y, curTarget.y), + Math.max(Math.abs(curSource.x - curTarget.x), data.shape.width), + Math.max(Math.abs(curSource.y - curTarget.y), data.shape.height), + Math.min(newSource.x, newTarget.x), + Math.min(newSource.y, newTarget.y), + Math.max(Math.abs(newSource.x - newTarget.x), data.shape.width), + Math.max(Math.abs(newSource.y - newTarget.y), data.shape.height) + ); + + cur.sourceId = sourceId; + cur.targetId = targetId; + + data.arrowPath = undefined; + data.linePath = undefined; + data.path = undefined; + data.lineSourceX = undefined; + data.lineSourceY = undefined; + data.lineTargetX = undefined; + data.lineTargetY = undefined; + data.shapeX = undefined; + data.shapeY = undefined; + + if (!this.isBatching) this.renderer.draw(RedrawType.EDGES); + + return true; + } + + remove(id: number): boolean { + if (this.state.nodes[id]) return this.removeNode(id); + if (this.state.edges[id]) return this.removeEdge(id); + + return false; + } + + removeNode(id: number): boolean { + const { nodes, nodeData } = this.state; + + if (!nodes[id]) return false; + + const node = nodes[id]; + const data = nodeData[id]; + + for (const edgeId of data.sourceOfEdgeIds) { + this.removeEdge(edgeId); + } + + for (const edgeId of data.targetOfEdgeIds) { + this.removeEdge(edgeId); + } + + this.state.quad.remove( + id, + node.x - data.shape.width * 0.5, + node.y - data.shape.height * 0.5, + data.shape.width, + data.shape.height + ); + + delete this.state.nodes[id]; + delete this.state.nodeData[id]; + + if (!this.isBatching) this.renderer.draw(RedrawType.NODES); + + return true; + } + + removeEdge(id: number): boolean { + const { nodes, edges, nodeData, edgeData } = this.state; + + if (!edges[id]) return false; + const edge = edges[id]; + + const sndd = nodeData[edge.sourceId]; + sndd.sourceOfEdgeIds.delete(id); + + const tndd = nodeData[edge.targetId]; + tndd.targetOfEdgeIds.delete(id); + + const data = edgeData[id]; + const source = nodes[edge.sourceId]; + const target = nodes[edge.targetId]; + + this.state.quad.remove( + id, + Math.min(source.x, target.x), + Math.min(source.y, target.y), + Math.max(Math.abs(source.x - target.x), data.shape.width), + Math.max(Math.abs(source.y - target.y), data.shape.height) + ); + + delete this.state.edges[id]; + delete this.state.edgeData[id]; + + if (!this.isBatching) this.renderer.draw(RedrawType.EDGES); + + return true; + } + clear() { this.state.nodes = {}; this.state.edges = {}; @@ -178,6 +426,163 @@ export class GraphView { } } + getHoveredId() { + return this.state.hoveredId; + } + + select(id: number) { + const { nodes, edges, selectedIds } = this.state; + + if (this.isBatching) { + selectedIds.clear(); + selectedIds.add(id); + + return; + } + + const affectedIds = Array.from(selectedIds); + affectedIds.push(id); + + selectedIds.clear(); + selectedIds.add(id); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + } + + addSelection(id: number) { + const { nodes, edges, selectedIds } = this.state; + + selectedIds.add(id); + + if (this.isBatching) return; + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + + removeSelection(id: number) { + const { nodes, edges, selectedIds } = this.state; + + selectedIds.delete(id); + + if (this.isBatching) return; + + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + + clearSelection() { + const { nodes, edges, selectedIds } = this.state; + + if (this.isBatching) { + selectedIds.clear(); + + return; + } + + const affectedIds = Array.from(selectedIds); + + selectedIds.clear(); + + for (const id of affectedIds) { + if (nodes[id]) this.renderer.drawNode(nodes[id]); + if (edges[id]) this.renderer.drawEdge(edges[id]); + } + } + + getSelection() { + return Array.from(this.state.selectedIds); + } + + getSelectedNodeIds() { + return this.getSelection().filter(id => { + return this.state.nodes[id] !== undefined; + }); + } + + getSelectedEdgeIds() { + return this.getSelection().filter(id => { + return this.state.edges[id] !== undefined; + }); + } + + beginMoveNodes(nodeIds: number[], vx: number, vy: number) { + const { nodeData, nodes, edges } = this.state; + + const affectedIds = new Set(nodeIds); + + this.renderer.draw(RedrawType.NODES, affectedIds); + + affectedIds.clear(); + + for (const id of nodeIds) { + const dd = nodeData[id]; + + for (const eid of dd.sourceOfEdgeIds) { + affectedIds.add(eid); + } + + for (const eid of dd.targetOfEdgeIds) { + affectedIds.add(eid); + } + } + + this.renderer.draw(RedrawType.EDGES, affectedIds); + + for (const eid of affectedIds) { + this.renderer.drawEdge(edges[eid], true); + } + + for (const nid of nodeIds) { + this.renderer.drawNode(nodes[nid], true); + } + + this.state.moveNodeIds = nodeIds; + this.state.moveX = vx; + this.state.moveY = vy; + } + + endMoveNodes() { + this.state.moveNodeIds.length = 0; + + this.renderer.clearMove(); + this.renderer.draw(RedrawType.NODES_AND_EDGES); + } + + beginDragLine() { + const { hoveredId, nodes } = this.state; + + if (!hoveredId) return; + + const node = nodes[hoveredId]; + + if (!node) return; + + this.state.dragLineSourceNode = node; + this.state.dragLineX = node.x; + this.state.dragLineY = node.y; + } + + endDragLine(): [Node, Node] | undefined { + const { hoveredId, nodes } = this.state; + + this.renderer.clearDragLine(); + + if (!this.state.dragLineSourceNode) return; + + const source = this.state.dragLineSourceNode; + this.state.dragLineSourceNode = undefined; + + if (!hoveredId || hoveredId === source.id) return; + + const target = nodes[hoveredId]; + + return target ? [source, target] : undefined; + } + viewPosFromWindowPos( out: [number, number], windowX: number, diff --git a/src/quad.ts b/src/quad.ts index 2b4cd28..31870ad 100644 --- a/src/quad.ts +++ b/src/quad.ts @@ -42,6 +42,21 @@ export class Quad { _remove(this, value, x, y, w, h); } + move( + value: T, + oldX: number, + oldY: number, + oldW: number, + oldH: number, + newX: number, + newY: number, + newW: number, + newH: number + ) { + this.remove(value, oldX, oldY, oldW, oldH); + this.insert(value, newX, newY, newW, newH); + } + getDataInRegion(x: number, y: number, w: number, h: number, out: Set) { out.clear(); From e435844214828b047bfb02eeac113ed5bdf4e465 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 17:52:49 +0700 Subject: [PATCH 39/56] updates --- src/graph-renderer.ts | 15 --------------- src/graph-view.ts | 5 ++--- src/quad.ts | 27 +++++++++++---------------- src/types.ts | 4 ++-- 4 files changed, 15 insertions(+), 36 deletions(-) diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 427a699..7e0bfd7 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -352,26 +352,11 @@ export class GraphRenderer { bgCtx.lineCap = "square"; } - clearNodes = () => { - const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearEdges = () => { - const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - clearDragLine = () => { const { dragCtx, viewX, viewY, viewW, viewH } = this.state; dragCtx.clearRect(viewX, viewY, viewW, viewH); }; - clearMove = () => { - const { moveCtx, viewX, viewY, viewW, viewH } = this.state; - moveCtx.clearRect(viewX, viewY, viewW, viewH); - }; - isNodeInView( node: Node, vx = this.state.viewX, diff --git a/src/graph-view.ts b/src/graph-view.ts index 749007d..f0d8d64 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -421,8 +421,7 @@ export class GraphView { this.state.quad.clear(); if (!this.isBatching) { - this.renderer.clearNodes(); - this.renderer.clearEdges(); + this.renderer.draw(RedrawType.NODES_AND_EDGES); } } @@ -548,7 +547,7 @@ export class GraphView { endMoveNodes() { this.state.moveNodeIds.length = 0; - this.renderer.clearMove(); + this.renderer.draw(RedrawType.MOVE); this.renderer.draw(RedrawType.NODES_AND_EDGES); } diff --git a/src/quad.ts b/src/quad.ts index 31870ad..98b00ae 100644 --- a/src/quad.ts +++ b/src/quad.ts @@ -14,7 +14,7 @@ export type QuadData = { }; export class Quad { - data: QuadData[]; + data: Map>; children: Quad[]; x: number; y: number; @@ -22,7 +22,7 @@ export class Quad { h: number; constructor(x: number, y: number, w: number, h: number) { - this.data = []; + this.data = new Map(); this.children = []; this.x = x; this.y = y; @@ -65,7 +65,7 @@ export class Quad { } function _clear(node: Quad) { - node.data.length = 0; + node.data.clear(); for (const child of node.children) { _clear(child); @@ -83,12 +83,7 @@ function _remove( // if not intersecting, return if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; - for (let i = 0; i < node.data.length; i++) { - if (node.data[i].value === value) { - node.data.splice(i, 1); - return; - } - } + node.data.delete(value); for (const child of node.children) { _remove(child, value, x, y, w, h); @@ -116,16 +111,16 @@ function _insert(node: Quad, data: QuadData, depth: number) { // if no children and data size is smaller than the limit, insert data to the node if ( depth === MAX_DEPTH || - (node.children.length === 0 && node.data.length < DATA_PER_CHILD) + (node.children.length === 0 && node.data.size < DATA_PER_CHILD) ) { - node.data.push(data); + node.data.set(data.value, data); return; } const dataToInsert: QuadData[] = []; // if no children, create the children - if (node.children.length === 0 && node.data.length >= DATA_PER_CHILD) { + if (node.children.length === 0 && node.data.size >= DATA_PER_CHILD) { const hw = node.w * 0.5; const hh = node.h * 0.5; @@ -139,12 +134,12 @@ function _insert(node: Quad, data: QuadData, depth: number) { node.children.push(bl); node.children.push(br); - for (const dt of node.data) dataToInsert.push(dt); + for (const dt of node.data.entries()) dataToInsert.push(dt[1]); } dataToInsert.push(data); - node.data = []; + node.data.clear(); for (let i = 0; i < 4; i++) { for (const dt of dataToInsert) _insert(node.children[i], dt, depth + 1); @@ -161,8 +156,8 @@ function _getDataInRegion( ) { if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; - for (const data of node.data) { - hs.add(data.value); + for (const data of node.data.entries()) { + hs.add(data[0]); } for (const child of node.children) { diff --git a/src/types.ts b/src/types.ts index c4c9899..c52e569 100644 --- a/src/types.ts +++ b/src/types.ts @@ -132,8 +132,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 10000, - height: 10000, + width: 100000, + height: 100000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From ac4fec8f0799801a0a1c21598f1d24bc7fb79db0 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Fri, 18 Nov 2022 21:01:53 +0700 Subject: [PATCH 40/56] clipping when out of the graph size --- src/graph-handler.ts | 8 +---- src/graph-renderer.ts | 81 ++++++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 43 deletions(-) diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 2b06916..c3f1977 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -1,13 +1,7 @@ import { GraphRenderer, RedrawType } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { - EdgeDrawData, - GraphEdge, - NodeDrawData, - GraphNode, - GraphDataType -} from "./types"; +import { GraphEdge, GraphNode, GraphDataType } from "./types"; export class GraphHandler { private state: GraphState; diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 7e0bfd7..4888449 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,13 +1,6 @@ import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { - EdgeDrawData, - GraphDataType, - GraphEdge, - GraphNode, - GraphShape, - NodeDrawData -} from "./types"; +import { GraphEdge, GraphNode, GraphShape } from "./types"; import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; export enum RedrawType { @@ -62,38 +55,55 @@ export class GraphRenderer { this.state.setView(); + const { options, viewX, viewY, viewW, viewH } = this.state; + + const xt = -options.height * 0.5; + const xr = options.width * 0.5; + const xb = options.height * 0.5; + const xl = -options.width * 0.5; + + const dl = Math.max(viewX, xl); + const dt = Math.max(viewY, xt); + const dr = Math.min(viewX + viewW, xr); + const db = Math.min(viewY + viewH, xb); + + if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { + nodeCtx.restore(); + nodeCtx.save(); + + edgeCtx.restore(); + edgeCtx.save(); + + moveCtx.restore(); + moveCtx.save(); + + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + + nodeCtx.clearRect(viewX, viewY, viewW, viewH); + nodeCtx.beginPath(); + nodeCtx.rect(dl, dt, dr - dl, db - dt); + nodeCtx.clip(); + edgeCtx.clearRect(viewX, viewY, viewW, viewH); + edgeCtx.beginPath(); + edgeCtx.rect(dl, dt, dr - dl, db - dt); + edgeCtx.clip(); + moveCtx.clearRect(viewX, viewY, viewW, viewH); + moveCtx.beginPath(); + moveCtx.rect(dl, dt, dr - dl, db - dt); + moveCtx.clip(); + + return; + } + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - - // const { options, viewX, viewY, viewW, viewH } = this.state; - - // const xt = -options.height * 0.5; - // const xr = options.width * 0.5; - // const xb = options.height * 0.5; - // const xl = -options.width * 0.5; - - // const dl = Math.max(viewX, xl); - // const dt = Math.max(viewY, xt); - // const dr = Math.min(viewX + viewW, xr); - // const db = Math.min(viewY + viewH, xb); - - // if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { - // nodeCtx.beginPath(); - // nodeCtx.rect(dl, dt, dr - dl, db - dt); - // nodeCtx.clip(); - // edgeCtx.beginPath(); - // edgeCtx.rect(dl, dt, dr - dl, db - dt); - // edgeCtx.clip(); - // dragCtx.beginPath(); - // dragCtx.rect(dl, dt, dr - dl, db - dt); - // dragCtx.clip(); - // moveCtx.beginPath(); - // moveCtx.rect(dl, dt, dr - dl, db - dt); - // moveCtx.clip(); - // } } draw = ( @@ -207,7 +217,6 @@ export class GraphRenderer { } // draw content - ctx.fillStyle = selected ? options.nodeSelectedContentColor : options.nodeContentColor; From f3709b6c2c6038a036c833fa1e3f0cfb931451f8 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:23:44 +0700 Subject: [PATCH 41/56] fix move and adjust --- src/graph-renderer.ts | 21 ++++++++++++++++----- src/graph-view.ts | 14 +++++--------- src/types.ts | 4 ++-- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 4888449..01c7b42 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -20,15 +20,18 @@ export class GraphRenderer { private cp: [number, number] = [0, 0]; private moveEdgeIds = new Set(); + private exludeIds: Set | undefined = new Set(); constructor(view: GraphView, state: GraphState) { this.view = view; this.state = state; } - requestDraw(redrawType = RedrawType.ALL) { + requestDraw(redrawType = RedrawType.ALL, excludeIds?: Set) { if (!this.isDrawing) { this.redrawType = redrawType; + this.exludeIds = excludeIds; + requestAnimationFrame(this.requestDrawHandler); } @@ -38,7 +41,7 @@ export class GraphRenderer { requestDrawHandler = () => { this.isDrawing = false; - this.draw(this.redrawType); + this.draw(this.redrawType, this.exludeIds); }; applyTransform() { @@ -74,6 +77,9 @@ export class GraphRenderer { edgeCtx.restore(); edgeCtx.save(); + dragCtx.restore(); + dragCtx.save(); + moveCtx.restore(); moveCtx.save(); @@ -91,6 +97,10 @@ export class GraphRenderer { edgeCtx.beginPath(); edgeCtx.rect(dl, dt, dr - dl, db - dt); edgeCtx.clip(); + dragCtx.clearRect(viewX, viewY, viewW, viewH); + dragCtx.beginPath(); + dragCtx.rect(dl, dt, dr - dl, db - dt); + dragCtx.clip(); moveCtx.clearRect(viewX, viewY, viewW, viewH); moveCtx.beginPath(); moveCtx.rect(dl, dt, dr - dl, db - dt); @@ -145,9 +155,10 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) => { - const { nodes, edges, nodeData, moveCtx } = this.state; + const { nodes, edges, nodeData, moveCtx, dragCtx } = this.state; moveCtx.clearRect(vx, vy, vw, vh); + dragCtx.clearRect(vx, vy, vw, vh); this.moveEdgeIds.clear(); @@ -235,9 +246,9 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) { - const { edgeCtx, moveCtx, options, edgeData } = this.state; + const { edgeCtx, dragCtx, options, edgeData } = this.state; - const ctx = isMove ? moveCtx : edgeCtx; + const ctx = isMove ? dragCtx : edgeCtx; const selected = this.state.selectedIds.has(edge.id); const hovered = this.state.hoveredId === edge.id; diff --git a/src/graph-view.ts b/src/graph-view.ts index f0d8d64..7b46cd8 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -513,10 +513,6 @@ export class GraphView { const affectedIds = new Set(nodeIds); - this.renderer.draw(RedrawType.NODES, affectedIds); - - affectedIds.clear(); - for (const id of nodeIds) { const dd = nodeData[id]; @@ -529,14 +525,14 @@ export class GraphView { } } - this.renderer.draw(RedrawType.EDGES, affectedIds); + this.renderer.requestDraw(RedrawType.NODES_AND_EDGES, affectedIds); - for (const eid of affectedIds) { - this.renderer.drawEdge(edges[eid], true); + for (const id of affectedIds) { + if (edges[id]) this.renderer.drawEdge(edges[id], true); } - for (const nid of nodeIds) { - this.renderer.drawNode(nodes[nid], true); + for (const id of nodeIds) { + this.renderer.drawNode(nodes[id], true); } this.state.moveNodeIds = nodeIds; diff --git a/src/types.ts b/src/types.ts index c52e569..c4c9899 100644 --- a/src/types.ts +++ b/src/types.ts @@ -132,8 +132,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 100000, - height: 100000, + width: 10000, + height: 10000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From 60fd6667b53e0aba8dd1794dbcd0f16159e2db10 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:28:27 +0700 Subject: [PATCH 42/56] rename var --- src/graph-renderer.ts | 88 +++++++++++++++++++++---------------------- src/graph-state.ts | 14 +++---- src/graph-view.ts | 8 ++-- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 01c7b42..8f977f9 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -51,9 +51,9 @@ export class GraphRenderer { translateY, bgCtx, nodeCtx, - dragCtx, + moveEdgeCtx, edgeCtx, - moveCtx + moveNodeCtx } = this.state; this.state.setView(); @@ -77,17 +77,17 @@ export class GraphRenderer { edgeCtx.restore(); edgeCtx.save(); - dragCtx.restore(); - dragCtx.save(); + moveEdgeCtx.restore(); + moveEdgeCtx.save(); - moveCtx.restore(); - moveCtx.save(); + moveNodeCtx.restore(); + moveNodeCtx.save(); bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveEdgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveNodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.clearRect(viewX, viewY, viewW, viewH); nodeCtx.beginPath(); @@ -97,23 +97,23 @@ export class GraphRenderer { edgeCtx.beginPath(); edgeCtx.rect(dl, dt, dr - dl, db - dt); edgeCtx.clip(); - dragCtx.clearRect(viewX, viewY, viewW, viewH); - dragCtx.beginPath(); - dragCtx.rect(dl, dt, dr - dl, db - dt); - dragCtx.clip(); - moveCtx.clearRect(viewX, viewY, viewW, viewH); - moveCtx.beginPath(); - moveCtx.rect(dl, dt, dr - dl, db - dt); - moveCtx.clip(); + moveEdgeCtx.clearRect(viewX, viewY, viewW, viewH); + moveEdgeCtx.beginPath(); + moveEdgeCtx.rect(dl, dt, dr - dl, db - dt); + moveEdgeCtx.clip(); + moveNodeCtx.clearRect(viewX, viewY, viewW, viewH); + moveNodeCtx.beginPath(); + moveNodeCtx.rect(dl, dt, dr - dl, db - dt); + moveNodeCtx.clip(); return; } bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveEdgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + moveNodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); } draw = ( @@ -155,10 +155,10 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) => { - const { nodes, edges, nodeData, moveCtx, dragCtx } = this.state; + const { nodes, edges, nodeData, moveNodeCtx, moveEdgeCtx } = this.state; - moveCtx.clearRect(vx, vy, vw, vh); - dragCtx.clearRect(vx, vy, vw, vh); + moveNodeCtx.clearRect(vx, vy, vw, vh); + moveEdgeCtx.clearRect(vx, vy, vw, vh); this.moveEdgeIds.clear(); @@ -195,11 +195,11 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) { - const { nodeCtx, moveCtx, options, nodeData } = this.state; + const { nodeCtx, moveNodeCtx, options, nodeData } = this.state; if (!this.isNodeInView(node, vx, vy, vw, vh)) return; - const ctx = isMove ? moveCtx : nodeCtx; + const ctx = isMove ? moveNodeCtx : nodeCtx; const selected = this.state.selectedIds.has(node.id); const hovered = this.state.hoveredId === node.id; @@ -246,9 +246,9 @@ export class GraphRenderer { vw = this.state.viewW, vh = this.state.viewH ) { - const { edgeCtx, dragCtx, options, edgeData } = this.state; + const { edgeCtx, moveEdgeCtx, options, edgeData } = this.state; - const ctx = isMove ? dragCtx : edgeCtx; + const ctx = isMove ? moveEdgeCtx : edgeCtx; const selected = this.state.selectedIds.has(edge.id); const hovered = this.state.hoveredId === edge.id; @@ -373,8 +373,8 @@ export class GraphRenderer { } clearDragLine = () => { - const { dragCtx, viewX, viewY, viewW, viewH } = this.state; - dragCtx.clearRect(viewX, viewY, viewW, viewH); + const { moveEdgeCtx, viewX, viewY, viewW, viewH } = this.state; + moveEdgeCtx.clearRect(viewX, viewY, viewW, viewH); }; isNodeInView( @@ -693,7 +693,7 @@ export class GraphRenderer { drawDragLine = () => { const { - dragCtx, + moveEdgeCtx, options, dragLineSourceNode, dragLineX, @@ -706,7 +706,7 @@ export class GraphRenderer { if (!dragLineSourceNode) return; - dragCtx.clearRect(viewX, viewY, viewW, viewH); + moveEdgeCtx.clearRect(viewX, viewY, viewW, viewH); const sx = dragLineSourceNode.x; const sy = dragLineSourceNode.y; @@ -728,20 +728,20 @@ export class GraphRenderer { const lp2x = lsx - ll * sinr; const lp2y = lsy + ll * cosr; - dragCtx.lineWidth = options.edgeLineWidth; - dragCtx.strokeStyle = options.edgeLineColor; - dragCtx.fillStyle = options.edgeLineColor; - - dragCtx.beginPath(); - dragCtx.moveTo(sx, sy); - dragCtx.lineTo(tx, ty); - dragCtx.stroke(); - - dragCtx.beginPath(); - dragCtx.moveTo(tx, ty); - dragCtx.lineTo(lp1x, lp1y); - dragCtx.lineTo(lp2x, lp2y); - dragCtx.closePath(); - dragCtx.fill(); + moveEdgeCtx.lineWidth = options.edgeLineWidth; + moveEdgeCtx.strokeStyle = options.edgeLineColor; + moveEdgeCtx.fillStyle = options.edgeLineColor; + + moveEdgeCtx.beginPath(); + moveEdgeCtx.moveTo(sx, sy); + moveEdgeCtx.lineTo(tx, ty); + moveEdgeCtx.stroke(); + + moveEdgeCtx.beginPath(); + moveEdgeCtx.moveTo(tx, ty); + moveEdgeCtx.lineTo(lp1x, lp1y); + moveEdgeCtx.lineTo(lp2x, lp2y); + moveEdgeCtx.closePath(); + moveEdgeCtx.fill(); }; } diff --git a/src/graph-state.ts b/src/graph-state.ts index e0a2192..3a1aa33 100644 --- a/src/graph-state.ts +++ b/src/graph-state.ts @@ -15,9 +15,9 @@ export class GraphState { readonly container: HTMLElement; readonly bgCtx: CanvasRenderingContext2D; readonly edgeCtx: CanvasRenderingContext2D; - readonly dragCtx: CanvasRenderingContext2D; + readonly moveEdgeCtx: CanvasRenderingContext2D; readonly nodeCtx: CanvasRenderingContext2D; - readonly moveCtx: CanvasRenderingContext2D; + readonly moveNodeCtx: CanvasRenderingContext2D; nodes: Record = {}; edges: Record = {}; @@ -59,19 +59,19 @@ export class GraphState { const bgCtx = this.initCtx(false); const edgeCtx = this.initCtx(); - const dragCtx = this.initCtx(); + const moveEdgeCtx = this.initCtx(); const nodeCtx = this.initCtx(); - const moveCtx = this.initCtx(); + const moveNodeCtx = this.initCtx(); - if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx || !dragCtx) { + if (!bgCtx || !edgeCtx || !nodeCtx || !moveNodeCtx || !moveEdgeCtx) { throw "Canvas is not supported in your browser."; } this.bgCtx = bgCtx; this.edgeCtx = edgeCtx; - this.dragCtx = dragCtx; + this.moveEdgeCtx = moveEdgeCtx; this.nodeCtx = nodeCtx; - this.moveCtx = moveCtx; + this.moveNodeCtx = moveNodeCtx; this.quad = createQuad( -this.options.width * 0.5, diff --git a/src/graph-view.ts b/src/graph-view.ts index 7b46cd8..7dc5ba9 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -41,9 +41,9 @@ export class GraphView { container.appendChild(this.state.bgCtx.canvas); container.appendChild(this.state.edgeCtx.canvas); - container.appendChild(this.state.dragCtx.canvas); + container.appendChild(this.state.moveEdgeCtx.canvas); container.appendChild(this.state.nodeCtx.canvas); - container.appendChild(this.state.moveCtx.canvas); + container.appendChild(this.state.moveNodeCtx.canvas); const resizeObserver = new ResizeObserver(() => { this.resize(); @@ -65,8 +65,8 @@ export class GraphView { this.state.edgeCtx.canvas.height = this.state.container.clientHeight; this.state.nodeCtx.canvas.width = this.state.container.clientWidth; this.state.nodeCtx.canvas.height = this.state.container.clientHeight; - this.state.moveCtx.canvas.width = this.state.container.clientWidth; - this.state.moveCtx.canvas.height = this.state.container.clientHeight; + this.state.moveNodeCtx.canvas.width = this.state.container.clientWidth; + this.state.moveNodeCtx.canvas.height = this.state.container.clientHeight; this.state.boundingRect = this.state.container.getBoundingClientRect(); From f84ae34ead224730f816a9f148815b0b92e7ab49 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:33:26 +0700 Subject: [PATCH 43/56] update --- src/graph-renderer.ts | 11 ++++++++--- src/types.ts | 10 ++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 8f977f9..e0a06b5 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -330,11 +330,16 @@ export class GraphRenderer { const db = Math.min(vy + vh, xb); if (dl > vx || dt > vy || dr < vx + vw || db < vy + vh) { - bgCtx.fillStyle = "white"; + bgCtx.fillStyle = options.bgOutboundColor; bgCtx.fillRect(vx, vy, vw, vh); - bgCtx.fillStyle = "black"; - bgCtx.fillRect(dl - 4, dt - 4, dr - dl + 8, db - dt + 8); + bgCtx.fillStyle = options.bgBorderColor; + bgCtx.fillRect( + dl - options.bgBorderWidth, + dt - options.bgBorderWidth, + dr - dl + options.bgBorderWidth * 2, + db - dt + options.bgBorderWidth * 2 + ); } bgCtx.fillStyle = options.bgColor; diff --git a/src/types.ts b/src/types.ts index c4c9899..a29253e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -103,6 +103,9 @@ export type GraphOptions = { bgLineWidth: number; bgLineGap: number; bgShowDots: boolean; + bgBorderWidth: number; + bgBorderColor: string; + bgOutboundColor: string; minScale: number; maxScale: number; edgeLineWidth: number; @@ -132,13 +135,16 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 10000, - height: 10000, + width: 100000, + height: 100000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, bgLineGap: 64, bgShowDots: true, + bgBorderWidth: 8, + bgBorderColor: "#0f172a", + bgOutboundColor: "#93c5fd", minScale: 0.25, maxScale: 10, edgeLineColor: "black", From cc3c49c4683df0510e66bde0fb8d3b236386f03a Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:44:19 +0700 Subject: [PATCH 44/56] refactor --- src/graph-renderer.ts | 64 ++++++++++++++++++------------------------- src/types.ts | 4 +-- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index e0a06b5..6a28cd7 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -44,6 +44,27 @@ export class GraphRenderer { this.draw(this.redrawType, this.exludeIds); }; + applyClip( + ctx: CanvasRenderingContext2D, + dx: number, + dy: number, + dw: number, + dh: number + ) { + const { scale, translateX, translateY, viewX, viewY, viewW, viewH } = + this.state; + + ctx.restore(); + ctx.save(); + + ctx.setTransform(scale, 0, 0, scale, translateX, translateY); + + ctx.clearRect(viewX, viewY, viewW, viewH); + ctx.beginPath(); + ctx.rect(dx, dy, dw, dh); + ctx.clip(); + } + applyTransform() { const { scale, @@ -71,49 +92,18 @@ export class GraphRenderer { const db = Math.min(viewY + viewH, xb); if (dl > viewX || dt > viewY || dr < viewX + viewW || db < viewY + viewH) { - nodeCtx.restore(); - nodeCtx.save(); - - edgeCtx.restore(); - edgeCtx.save(); - - moveEdgeCtx.restore(); - moveEdgeCtx.save(); - - moveNodeCtx.restore(); - moveNodeCtx.save(); - + bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); + this.applyClip(nodeCtx, dl, dt, dr - dl, db - dt); + this.applyClip(edgeCtx, dl, dt, dr - dl, db - dt); + this.applyClip(moveNodeCtx, dl, dt, dr - dl, db - dt); + this.applyClip(moveEdgeCtx, dl, dt, dr - dl, db - dt); + } else { bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveEdgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); moveNodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - nodeCtx.beginPath(); - nodeCtx.rect(dl, dt, dr - dl, db - dt); - nodeCtx.clip(); - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - edgeCtx.beginPath(); - edgeCtx.rect(dl, dt, dr - dl, db - dt); - edgeCtx.clip(); - moveEdgeCtx.clearRect(viewX, viewY, viewW, viewH); - moveEdgeCtx.beginPath(); - moveEdgeCtx.rect(dl, dt, dr - dl, db - dt); - moveEdgeCtx.clip(); - moveNodeCtx.clearRect(viewX, viewY, viewW, viewH); - moveNodeCtx.beginPath(); - moveNodeCtx.rect(dl, dt, dr - dl, db - dt); - moveNodeCtx.clip(); - - return; } - - bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - moveEdgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - moveNodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); } draw = ( diff --git a/src/types.ts b/src/types.ts index a29253e..a0a5ac1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -135,8 +135,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 100000, - height: 100000, + width: 1000, + height: 1000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From eb93a3a0f967ed6546a3baa131f8361dc62d0432 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:46:20 +0700 Subject: [PATCH 45/56] set default graph size --- src/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types.ts b/src/types.ts index a0a5ac1..5e0acd3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -135,8 +135,8 @@ export type GraphOptions = { }; export const defaultGraphOptions: GraphOptions = { - width: 1000, - height: 1000, + width: 10000, + height: 10000, bgColor: "#f1f5f9", bgDotColor: "#64748b", bgLineWidth: 4, From 1a267a5b96bb4b847be86348cee6ef11b042eea8 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:49:33 +0700 Subject: [PATCH 46/56] show 0 on center initially --- src/graph-view.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/graph-view.ts b/src/graph-view.ts index 7dc5ba9..5ea3798 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -36,7 +36,11 @@ export class GraphView { this.renderer = new GraphRenderer(this, this.state); this.handler = new GraphHandler(this, this.state, this.renderer); - this.renderer.applyTransform(); + this.setTransform( + container.clientWidth * 0.5, + container.clientHeight * 0.5, + 1 + ); this.renderer.draw(); container.appendChild(this.state.bgCtx.canvas); From e91270dc6aafd082de2c834b5908381eee5216fd Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 00:58:55 +0700 Subject: [PATCH 47/56] update example to centerize generated nodes --- example/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/example/index.ts b/example/index.ts index 4d2ce94..4a7cfbb 100644 --- a/example/index.ts +++ b/example/index.ts @@ -34,6 +34,10 @@ function generate(nodeCount = 100) { graphView.clear(); const columns = Math.ceil(Math.sqrt(nodeCount)); + const rows = Math.floor(nodeCount / columns); + + const startX = (1 - columns) * 160; + const startY = (1 - rows) * 160; for (let i = 0; i < nodeCount; i++) { const row = (i / columns) | 0; @@ -42,8 +46,8 @@ function generate(nodeCount = 100) { graphView.addNode( { id, - x: col * 320, - y: row * 320 + x: startX + col * 320, + y: startY + row * 320 }, nodeShapes[getRandomInt(0, nodeShapes.length)] ); From 7f11db841886853c9aaa2a5ba0304d0e020fbcae Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 01:05:17 +0700 Subject: [PATCH 48/56] set options --- example/index.ts | 5 ++++- src/graph-view.ts | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/example/index.ts b/example/index.ts index 4a7cfbb..bafc7f3 100644 --- a/example/index.ts +++ b/example/index.ts @@ -74,7 +74,10 @@ function generate(nodeCount = 100) { } function main() { - graphView = createGraphView(graphDiv); + graphView = createGraphView(graphDiv, { + width: 100000, + height: 100000 + }); generate(100); diff --git a/src/graph-view.ts b/src/graph-view.ts index 5ea3798..5412825 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -62,6 +62,15 @@ export class GraphView { this.handler.destroy(); } + setOptions(options: Partial = {}) { + this.state.options = { + ...this.state.options, + ...options + }; + + if (!this.isBatching) this.renderer.requestDraw(); + } + resize(): void { this.state.bgCtx.canvas.width = this.state.container.clientWidth; this.state.bgCtx.canvas.height = this.state.container.clientHeight; @@ -695,6 +704,9 @@ export class GraphView { } } -export function createGraphView(container: HTMLElement) { - return new GraphView(container); +export function createGraphView( + container: HTMLElement, + options: Partial = {} +) { + return new GraphView(container, options); } From a8a677de9147e8aeef757f65d24f00d94379ea1b Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 08:18:37 +0700 Subject: [PATCH 49/56] fix build script and config --- .gitignore | 2 +- package.json | 1 + vite.config.ts | 56 +++++++++++++++++++++++++++++--------------------- 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index f26f715..57dab5b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ lerna-debug.log* node_modules dist -dist-ssr +dist-* *.local coverage docs diff --git a/package.json b/package.json index 7f6e505..5921523 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "start": "vite", "dev": "vite", "build": "vite build && npm run build-typedef", + "build:example": "BUILD_TYPE=example vite build", "build-typedef": "tsc ./src/vite-env.d.ts ./src/index.ts --declaration --emitDeclarationOnly --target ESNext --esModuleInterop --outDir dist", "test": "vitest --coverage", "lint": "eslint src test example", diff --git a/vite.config.ts b/vite.config.ts index a26dbd9..04913a8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,28 +4,38 @@ import { defineConfig } from "vite"; import { resolve } from "path"; -export default defineConfig({ - test: { - environment: "jsdom", - watch: false, - globals: true, - coverage: { - include: ["src/**/*.ts"], - all: true, - statements: 0, - branches: 0, - functions: 0, - lines: 0 - } - }, - build: { - target: "ESNext", - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(__dirname, "src/index.ts"), - name: "Web Digraph", - // the proper extensions will be added - fileName: "web-digraph" - } +export default defineConfig(() => { + if (process.env.BUILD_TYPE === "example") { + return { + build: { + outDir: "dist-example" + } + }; + } else { + return { + test: { + environment: "jsdom", + watch: false, + globals: true, + coverage: { + include: ["src/**/*.ts"], + all: true, + statements: 0, + branches: 0, + functions: 0, + lines: 0 + } + }, + build: { + target: "ESNext", + lib: { + // Could also be a dictionary or array of multiple entry points + entry: resolve(__dirname, "src/index.ts"), + name: "Web Digraph", + // the proper extensions will be added + fileName: "web-digraph" + } + } + }; } }); From 77e5e146cbf7b7bbc7056f0a1f2a5c642a7890e7 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 08:20:57 +0700 Subject: [PATCH 50/56] retrigger ci From 28fb06442801bca775dea2b15b1ca69fe418d3b3 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 08:32:41 +0700 Subject: [PATCH 51/56] add temporary warning on README --- README.md | 49 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 53454ce..120ca29 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,36 @@ # web-digraph + > A library to create a simple directed graph editor. See the demo at [https://web-digraph.netlify.app/](https://web-digraph.netlify.app/). +## :warning: This README is outdated! Will update it soon. + ## Overview + There is a really long story about how this library ends up being created. Please just pretend you already know the story and that it makes sense. This library is basically almost a copy of [react-digraph](https://github.com/uber/react-digraph), just less features, less polished, and less everything, but using canvas instead of svg for rendering, and also not using react, because we love imperative things. React is for the weak. ## Features + - Built with Typescript. - Small size (at least compared to `react-digraph`, because of no D3 dependency, and much less features). - Imperative API and class-based (yes, this is a feature). ## Installation + ```bash npm install --save web-digraph ``` ## Usage + - Import the GEView class and needed types. + ```js import { GEView, GEShapeTypes, GEShapeName, GENode, GEEdge } from "web-digraph"; ``` + - Define the node and edge types. I suggest putting this node and edge types definition in its own file because it may get long. + ```js const nodeTypes = { empty: [ @@ -61,11 +71,15 @@ const edgeTypes = { ] }; ``` + - Create a new instance of GEView class. + ```js const graphView = new GEView(); ``` + - Set options. This is the minimal needed options needed for the graph to work properly. For the event handler (like `handleCreateNode`), see the example for detail. + ```js graphView.setOptions({ nodeTypes, @@ -77,12 +91,15 @@ graphView.setOptions({ onMoveNode: handleMoveNode }); ``` + - Init the graph view, passing it the parent element to put it into the dom. + ```js graphView.init(document.body); ``` ## Options + ```typescript edgeArrowLength: number; edgeArrowRadian: number; @@ -142,31 +159,35 @@ onHoverChange?: ( ``` ## GENode + If you want to use your own Node data type, you can. Just make sure that your custom type have all the properties of GENode. The same also apply to GEEdge. -| Prop | Type | Required | Notes | -| ---------------------- | :------------------------: | :----------: | :-----------------------------------------------: | -| `id` | `number` | `true` | A unique identifier number. | -| `text` | `string` | `true` | The text inside the node. | -| `x` | `number` | `true` | X coordinate of the node. | -| `y` | `number` | `true` | Y coordinate of the node. | -| `type` | `string` | `true` | Node type, for displaying the shape | +| Prop | Type | Required | Notes | +| ------ | :------: | :------: | :---------------------------------: | +| `id` | `number` | `true` | A unique identifier number. | +| `text` | `string` | `true` | The text inside the node. | +| `x` | `number` | `true` | X coordinate of the node. | +| `y` | `number` | `true` | Y coordinate of the node. | +| `type` | `string` | `true` | Node type, for displaying the shape | ## GEEdge -| Prop | Type | Required | Notes | -| ---------------------- | :------------------------: | :----------: | :-----------------------------------------------: | -| `id` | `number` | `true` | A unique identifier number. | -| `sourceNode` | `GENode` | `true` | The source node object | -| `targetNode` | `GENode` | `true` | The target node object. | -| `type` | `string` | `true` | Edge type, for displaying the shape. | -| `text` | `string` | `true` | Text to render on the edge. | + +| Prop | Type | Required | Notes | +| ------------ | :------: | :------: | :----------------------------------: | +| `id` | `number` | `true` | A unique identifier number. | +| `sourceNode` | `GENode` | `true` | The source node object | +| `targetNode` | `GENode` | `true` | The target node object. | +| `type` | `string` | `true` | Edge type, for displaying the shape. | +| `text` | `string` | `true` | Text to render on the edge. | ## Limitations + - Currently does not work on mobile. - No swap edge (`react-digraph` has it, but i don't think it is needed). - Only support circle, rectangle and polygon shape. ## FAQ + **Q**: Why not just use react-digraph if this is basically an inferior version of react-digraph? **A**: Size and performance are the main reasons. React-digraph depends on D3, which is heavy. Also they use react and svg, which is not performant when the nodes and edges count are really big. Try 1000 nodes on react-digraph's example and then try 9999 nodes on web-digraph's example and you will see the difference. From 6e7a13a1a0f05f2dc1f0538dbc7b6f551cde03c8 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Sat, 19 Nov 2022 10:20:37 +0700 Subject: [PATCH 52/56] update example and some functions --- example/index.ts | 67 ++++++++++++++++++++++++++++++---- index.html | 85 ++++++++++++++++++++++++++++++++++++++------ src/graph-handler.ts | 10 ++++-- src/graph-view.ts | 46 +++++++++++++++++------- 4 files changed, 175 insertions(+), 33 deletions(-) diff --git a/example/index.ts b/example/index.ts index bafc7f3..cd3b098 100644 --- a/example/index.ts +++ b/example/index.ts @@ -18,14 +18,30 @@ const generateButton = document.getElementById( const toggleModeButton = document.getElementById( "toggle-mode-button" ) as HTMLButtonElement; +const toggleMultiselectButton = document.getElementById( + "toggle-multiselect-button" +) as HTMLButtonElement; const deleteButton = document.getElementById( "delete-button" ) as HTMLButtonElement; +const nodeCountText = document.getElementById( + "node-count-text" +) as HTMLSpanElement; +const edgeCountText = document.getElementById( + "edge-count-text" +) as HTMLSpanElement; +const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; let graphView: GraphView; let lastId = 0; let mode: "move" | "create" = "move"; +let isMultiselect = false; + +function updateCountText() { + nodeCountText.innerText = graphView.getNodeCount().toString(); + edgeCountText.innerText = graphView.getEdgeCount().toString(); +} function generate(nodeCount = 100) { let id = 1; @@ -70,26 +86,49 @@ function generate(nodeCount = 100) { graphView.endBatch(); + updateCountText(); + lastId = id - 1; } function main() { graphView = createGraphView(graphDiv, { width: 100000, - height: 100000 + height: 100000, + minScale: 0.2, + maxScale: 3.0 }); - generate(100); - generateButton.addEventListener("click", () => { const len = parseInt(nodeCountInput.value, 10); generate(len); }); + zoomSlider.addEventListener("input", e => { + const target = e.target as HTMLInputElement; + + graphView.zoomTo(Number(target.value)); + }); + toggleModeButton.addEventListener("click", () => { - if (mode === "create") mode = "move"; - else mode = "create"; + if (mode === "create") { + mode = "move"; + toggleModeButton.classList.remove("active"); + } else { + mode = "create"; + toggleModeButton.classList.add("active"); + } + }); + + toggleMultiselectButton.addEventListener("click", () => { + if (isMultiselect) { + isMultiselect = false; + toggleMultiselectButton.classList.remove("active"); + } else { + isMultiselect = true; + toggleMultiselectButton.classList.add("active"); + } }); deleteButton.addEventListener("click", () => { @@ -102,6 +141,8 @@ function main() { } graphView.endBatch(); + + updateCountText(); }); const pos: [number, number] = [0, 0]; @@ -110,8 +151,8 @@ function main() { const hoveredId = graphView.getHoveredId(); if (hoveredId) { - graphView.addSelection(hoveredId); - // graphView.select(hoveredId); + if (isMultiselect) graphView.addSelection(hoveredId); + else graphView.select(hoveredId); } else { graphView.clearSelection(); } @@ -132,6 +173,8 @@ function main() { { id: lastId, x: pos[0], y: pos[1] }, nodeShapes[getRandomInt(0, nodeShapes.length)] ); + + updateCountText(); } else { graphView.beginDragLine(); } @@ -155,8 +198,18 @@ function main() { }, edgeShapes[getRandomInt(0, edgeShapes.length)] ); + + updateCountText(); } }); + + graphDiv.addEventListener( + "wheel", + () => { + zoomSlider.value = graphView.getScale().toString(); + }, + { passive: true } + ); } main(); diff --git a/index.html b/index.html index ad0a793..32b9548 100644 --- a/index.html +++ b/index.html @@ -35,6 +35,19 @@ right: 0; bottom: 0; } + + .action-button { + padding: 0.5rem 1rem; + cursor: pointer; + width: 8rem; + background-color: white; + border: 1px solid black; + } + + .action-button.active { + background-color: black; + color: white; + } Web Digraph example @@ -43,16 +56,68 @@
- - - - +
+ + +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
Node count: 0
+
Edge count: 0
diff --git a/src/graph-handler.ts b/src/graph-handler.ts index c3f1977..dbd5048 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -21,17 +21,17 @@ export class GraphHandler { this.renderer = renderer; } - handleMouseMove = (e: MouseEvent) => { + handleMove = (dwx: number, dwy: number, wx: number, wy: number) => { const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = this.state; if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { - this.view.moveBy(e.movementX, e.movementY); + this.view.moveBy(dwx, dwy); return; } - this.view.viewPosFromWindowPos(this.vp, e.x, e.y); + this.view.viewPosFromWindowPos(this.vp, wx, wy); if (dragLineSourceNode) { this.state.dragLineX = this.vp[0]; @@ -61,6 +61,10 @@ export class GraphHandler { this.view.endBatch(RedrawType.MOVE); }; + handleMouseMove = (e: MouseEvent) => { + this.handleMove(e.movementX, e.movementY, e.x, e.y); + }; + private isEdgeHovered(x: number, y: number, edge: Edge): boolean { const { edgeCtx, edgeData } = this.state; diff --git a/src/graph-view.ts b/src/graph-view.ts index 5412825..baa1625 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -31,6 +31,9 @@ export class GraphView { private handler: GraphHandler; private isBatching = false; + private nodeCount = 0; + private edgeCount = 0; + constructor(container: HTMLElement, options: Partial = {}) { this.state = new GraphState(container, options); this.renderer = new GraphRenderer(this, this.state); @@ -119,6 +122,8 @@ export class GraphView { shape.height ); + this.nodeCount += 1; + if (!this.isBatching) this.renderer.drawNode(node); return true; @@ -162,6 +167,8 @@ export class GraphView { Math.max(Math.abs(source.y - target.y), shape.height) ); + this.edgeCount += 1; + if (!this.isBatching) this.renderer.drawEdge(edge); return true; @@ -386,6 +393,8 @@ export class GraphView { delete this.state.nodes[id]; delete this.state.nodeData[id]; + this.nodeCount -= 1; + if (!this.isBatching) this.renderer.draw(RedrawType.NODES); return true; @@ -418,6 +427,8 @@ export class GraphView { delete this.state.edges[id]; delete this.state.edgeData[id]; + this.edgeCount -= 1; + if (!this.isBatching) this.renderer.draw(RedrawType.EDGES); return true; @@ -438,6 +449,14 @@ export class GraphView { } } + getNodeCount() { + return this.nodeCount; + } + + getEdgeCount() { + return this.edgeCount; + } + getHoveredId() { return this.state.hoveredId; } @@ -522,7 +541,7 @@ export class GraphView { } beginMoveNodes(nodeIds: number[], vx: number, vy: number) { - const { nodeData, nodes, edges } = this.state; + const { nodeData } = this.state; const affectedIds = new Set(nodeIds); @@ -538,26 +557,23 @@ export class GraphView { } } - this.renderer.requestDraw(RedrawType.NODES_AND_EDGES, affectedIds); - - for (const id of affectedIds) { - if (edges[id]) this.renderer.drawEdge(edges[id], true); - } - - for (const id of nodeIds) { - this.renderer.drawNode(nodes[id], true); - } - this.state.moveNodeIds = nodeIds; this.state.moveX = vx; this.state.moveY = vy; + + requestAnimationFrame(() => { + this.renderer.draw(RedrawType.NODES_AND_EDGES, affectedIds); + this.renderer.draw(RedrawType.MOVE); + }); } endMoveNodes() { this.state.moveNodeIds.length = 0; - this.renderer.draw(RedrawType.MOVE); - this.renderer.draw(RedrawType.NODES_AND_EDGES); + requestAnimationFrame(() => { + this.renderer.draw(RedrawType.MOVE); + this.renderer.draw(RedrawType.NODES_AND_EDGES); + }); } beginDragLine() { @@ -702,6 +718,10 @@ export class GraphView { endMoveView() { this.state.isMovingView = false; } + + isMovingView() { + return this.state.isMovingView; + } } export function createGraphView( From 741b8d9947f2aacc6b18f803e01f7314f7725f87 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Wed, 23 Nov 2022 19:50:13 +0700 Subject: [PATCH 53/56] touch event first try --- example/index.ts | 66 +++++++++++++++++++++ index.html | 11 +++- package.json | 2 +- src/graph-handler.ts | 136 +++++++++++++++++++++++++++++++++++++++++-- src/graph-view.ts | 18 ++---- 5 files changed, 213 insertions(+), 20 deletions(-) diff --git a/example/index.ts b/example/index.ts index cd3b098..275488c 100644 --- a/example/index.ts +++ b/example/index.ts @@ -145,6 +145,10 @@ function main() { updateCountText(); }); + window.addEventListener("resize", () => { + graphView.resize(); + }); + const pos: [number, number] = [0, 0]; graphDiv.addEventListener("mousedown", e => { graphView.viewPosFromWindowPos(pos, e.x, e.y); @@ -181,6 +185,44 @@ function main() { } }); + graphDiv.addEventListener("touchstart", e => { + e.preventDefault(); + const t = e.targetTouches[0]; + + graphView.viewPosFromWindowPos(pos, t.clientX, t.clientY); + const hoveredId = graphView.getHoveredId(); + + if (hoveredId) { + if (isMultiselect) graphView.addSelection(hoveredId); + else graphView.select(hoveredId); + } else { + graphView.clearSelection(); + } + + if (mode === "move") { + if (!hoveredId) graphView.beginMoveView(); + else + graphView.beginMoveNodes( + graphView.getSelectedNodeIds(), + pos[0], + pos[1] + ); + } else if (mode === "create") { + if (!hoveredId) { + lastId++; + + graphView.addNode( + { id: lastId, x: pos[0], y: pos[1] }, + nodeShapes[getRandomInt(0, nodeShapes.length)] + ); + + updateCountText(); + } else { + graphView.beginDragLine(); + } + } + }); + graphDiv.addEventListener("mouseup", () => { graphView.endMoveView(); graphView.endMoveNodes(); @@ -203,6 +245,30 @@ function main() { } }); + graphDiv.addEventListener("touchend", e => { + e.preventDefault(); + + graphView.endMoveView(); + graphView.endMoveNodes(); + + const dragLineNodes = graphView.endDragLine(); + + if (dragLineNodes) { + lastId++; + + graphView.addEdge( + { + id: lastId, + sourceId: dragLineNodes[0].id, + targetId: dragLineNodes[1].id + }, + edgeShapes[getRandomInt(0, edgeShapes.length)] + ); + + updateCountText(); + } + }); + graphDiv.addEventListener( "wheel", () => { diff --git a/index.html b/index.html index 32b9548..6b2f7ff 100644 --- a/index.html +++ b/index.html @@ -115,7 +115,16 @@ -
+
Node count: 0
Edge count: 0
diff --git a/package.json b/package.json index 5921523..0a0e8de 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "sideEffects": false, "scripts": { "start": "vite", - "dev": "vite", + "dev": "vite --host", "build": "vite build && npm run build-typedef", "build:example": "BUILD_TYPE=example vite build", "build-typedef": "tsc ./src/vite-env.d.ts ./src/index.ts --declaration --emitDeclarationOnly --target ESNext --esModuleInterop --outDir dist", diff --git a/src/graph-handler.ts b/src/graph-handler.ts index dbd5048..85c02e7 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -11,6 +11,10 @@ export class GraphHandler { private vp: [number, number] = [0, 0]; private cp: [number, number] = [0, 0]; + private prev: [number, number] = [0, 0]; + private evCache: PointerEvent[] = []; + private prevDiff = -1; + constructor( view: GraphView, state: GraphState, @@ -41,7 +45,7 @@ export class GraphHandler { } if (moveNodeIds.length === 0) { - requestAnimationFrame(this.checkHover); + this.checkHover(); return; } @@ -65,6 +69,122 @@ export class GraphHandler { this.handleMove(e.movementX, e.movementY, e.x, e.y); }; + handleMouseDown = (e: MouseEvent) => { + const { moveNodeIds } = this.state; + + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); + + if (moveNodeIds.length === 0) { + this.checkHover(); + } + }; + + handleTouchStart = (e: TouchEvent) => { + const { moveNodeIds } = this.state; + + e.preventDefault(); + + const touch = e.targetTouches[0]; + + this.view.viewPosFromWindowPos(this.vp, touch.clientX, touch.clientY); + + this.prev[0] = touch.clientX; + this.prev[1] = touch.clientY; + + if (moveNodeIds.length === 0) { + this.checkHover(); + } + }; + + handleTouchMove = (e: TouchEvent) => { + const touch = e.targetTouches[0]; + + const dx = touch.clientX - this.prev[0]; + const dy = touch.clientY - this.prev[1]; + + this.prev[0] = touch.clientX; + this.prev[1] = touch.clientY; + + this.handleMove(dx, dy, touch.clientX, touch.clientY); + }; + + pointerdownHandler = (ev: PointerEvent) => { + // The pointerdown event signals the start of a touch interaction. + // This event is cached to support 2-finger gestures + this.evCache.push(ev); + }; + + pointermoveHandler = (ev: PointerEvent) => { + // This function implements a 2-pointer horizontal pinch/zoom gesture. + // + // If the distance between the two pointers has increased (zoom in), + // the target element's background is changed to "pink" and if the + // distance is decreasing (zoom out), the color is changed to "lightblue". + // + // This function sets the target element's border to "dashed" to visually + // indicate the pointer's target received a move event. + + // Find this event in the cache and update its record with this event + const index = this.evCache.findIndex( + cachedEv => cachedEv.pointerId === ev.pointerId + ); + this.evCache[index] = ev; + + // If two pointers are down, check for pinch gestures + if (this.evCache.length === 2) { + // Calculate the distance between the two pointers + const curDiff = Math.abs( + this.evCache[0].clientX - this.evCache[1].clientX + ); + + if (this.prevDiff > 0) { + const cx = (this.evCache[0].clientX + this.evCache[1].clientX) * 0.5; + const cy = (this.evCache[0].clientY + this.evCache[1].clientY) * 0.5; + + this.view.viewPosFromWindowPos(this.vp, cx, cy); + + if (curDiff > this.prevDiff) { + // The distance between the two pointers has increased + + const diff = curDiff - this.prevDiff; + + this.view.zoomBy(diff * 0.01, this.vp[0], this.vp[1]); + } + if (curDiff < this.prevDiff) { + // The distance between the two pointers has decreased + + const diff = this.prevDiff - curDiff; + + this.view.zoomBy(-diff * 0.01, this.vp[0], this.vp[1]); + } + } + + // Cache the distance for the next move event + this.prevDiff = curDiff; + } + }; + + pointerupHandler = (ev: PointerEvent) => { + // Remove this pointer from the cache and reset the target's + // background and border + this.removeEvent(ev); + this.state.container.style.background = "white"; + this.state.container.style.border = "1px solid black"; + + // If the number of pointers down is less than two then reset diff tracker + if (this.evCache.length < 2) { + this.prevDiff = -1; + } + }; + + removeEvent = (ev: PointerEvent) => { + // Remove this event from the target's cache + const index = this.evCache.findIndex( + cachedEv => cachedEv.pointerId === ev.pointerId + ); + this.evCache.splice(index, 1); + }; + private isEdgeHovered(x: number, y: number, edge: Edge): boolean { const { edgeCtx, edgeData } = this.state; @@ -142,10 +262,18 @@ export class GraphHandler { init() { const { container } = this.state; - container.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); + container.addEventListener("mousedown", this.handleMouseDown); + container.addEventListener("mousemove", this.handleMouseMove); + container.addEventListener("touchstart", this.handleTouchStart); + container.addEventListener("touchmove", this.handleTouchMove); container.addEventListener("wheel", this.handleWheel, { passive: true }); + + container.addEventListener("pointerdown", this.pointerdownHandler); + container.addEventListener("pointermove", this.pointermoveHandler); + container.addEventListener("pointerup", this.pointerupHandler); + container.addEventListener("pointercancel", this.pointerupHandler); + container.addEventListener("pointerout", this.pointerupHandler); + container.addEventListener("pointerleave", this.pointerupHandler); } destroy() { diff --git a/src/graph-view.ts b/src/graph-view.ts index baa1625..957c0e7 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -52,12 +52,6 @@ export class GraphView { container.appendChild(this.state.nodeCtx.canvas); container.appendChild(this.state.moveNodeCtx.canvas); - const resizeObserver = new ResizeObserver(() => { - this.resize(); - }); - - resizeObserver.observe(container); - this.handler.init(); } @@ -561,19 +555,15 @@ export class GraphView { this.state.moveX = vx; this.state.moveY = vy; - requestAnimationFrame(() => { - this.renderer.draw(RedrawType.NODES_AND_EDGES, affectedIds); - this.renderer.draw(RedrawType.MOVE); - }); + this.renderer.draw(RedrawType.NODES_AND_EDGES, affectedIds); + this.renderer.draw(RedrawType.MOVE); } endMoveNodes() { this.state.moveNodeIds.length = 0; - requestAnimationFrame(() => { - this.renderer.draw(RedrawType.MOVE); - this.renderer.draw(RedrawType.NODES_AND_EDGES); - }); + this.renderer.draw(RedrawType.MOVE); + this.renderer.draw(RedrawType.NODES_AND_EDGES); } beginDragLine() { From 9deaefc570d4417f549d88b7241a9a9b0a241f18 Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 24 Nov 2022 14:37:22 +0700 Subject: [PATCH 54/56] change to graph event handler and support touch input --- README.md | 14 +- example/index.ts | 193 +++--------- index.html | 4 +- old/graph-handler.ts | 159 ---------- old/graph-renderer.ts | 702 ------------------------------------------ old/graph-state.ts | 123 -------- old/graph-view.ts | 613 ------------------------------------ old/index.ts | 2 - old/quad.ts | 160 ---------- old/types.ts | 164 ---------- old/utils.ts | 69 ----- old/vite-env.d.ts | 1 - src/graph-handler.ts | 294 +++++++++--------- src/graph-renderer.ts | 10 +- src/graph-view.ts | 43 ++- src/types.ts | 28 +- src/utils.ts | 4 + 17 files changed, 266 insertions(+), 2317 deletions(-) delete mode 100644 old/graph-handler.ts delete mode 100644 old/graph-renderer.ts delete mode 100644 old/graph-state.ts delete mode 100644 old/graph-view.ts delete mode 100644 old/index.ts delete mode 100644 old/quad.ts delete mode 100644 old/types.ts delete mode 100644 old/utils.ts delete mode 100644 old/vite-env.d.ts diff --git a/README.md b/README.md index 120ca29..38ff7ec 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,16 @@ > A library to create a simple directed graph editor. See the demo at [https://web-digraph.netlify.app/](https://web-digraph.netlify.app/). -## :warning: This README is outdated! Will update it soon. - ## Overview -There is a really long story about how this library ends up being created. Please just pretend you already know the story and that it makes sense. -This library is basically almost a copy of [react-digraph](https://github.com/uber/react-digraph), just less features, less polished, and less everything, but using canvas instead of svg for rendering, and also not using react, because we love imperative things. React is for the weak. +Initially, this library was basically a copy of [react-digraph](https://github.com/uber/react-digraph), but with less features, less polished, and less everything. but using canvas instead of svg for rendering, and also not using react, because we love imperative things. React is for the weak. ## Features - Built with Typescript. - Small size (at least compared to `react-digraph`, because of no D3 dependency, and much less features). - Imperative API and class-based (yes, this is a feature). +- Touch input support. ## Installation @@ -23,7 +21,7 @@ npm install --save web-digraph ## Usage -- Import the GEView class and needed types. +- Import the GraphView class and needed types. ```js import { GEView, GEShapeTypes, GEShapeName, GENode, GEEdge } from "web-digraph"; @@ -182,17 +180,15 @@ If you want to use your own Node data type, you can. Just make sure that your cu ## Limitations -- Currently does not work on mobile. - No swap edge (`react-digraph` has it, but i don't think it is needed). -- Only support circle, rectangle and polygon shape. ## FAQ **Q**: Why not just use react-digraph if this is basically an inferior version of react-digraph? -**A**: Size and performance are the main reasons. React-digraph depends on D3, which is heavy. Also they use react and svg, which is not performant when the nodes and edges count are really big. Try 1000 nodes on react-digraph's example and then try 9999 nodes on web-digraph's example and you will see the difference. +**A**: Size and performance are the main reasons. React-digraph depends on D3 and other dependencies, which make it heavy. Also they use react and svg, which is not performant when the nodes and edges count are really big. Try 1000 nodes on react-digraph's example and then try 999999 (i am not joking) nodes on web-digraph's example and you will see the difference. **Q**: Why not use react? **A**: I am not an expert on React. Never really liked React anyway, it's all just for the job. But I actually tried React first, with SVG. It ends up very slow on high node or edge count (maybe because of all the diffing and garbage created). Then I optimized it by using React.memo and update the component manually. It ends up looking just like imperative code, except far more complicated. So I decided to just throw React into the trash bin. And then after doing all that, I then found out about react-digraph and i feel like I just wasted my time. So I got angry and just go rewrite it without React, and use canvas to be cool and different. **Q**: Why not use D3? -**A**: The only thing I like about D3 is the utilities. Not really needed for doing this anyway. And it won't make that much difference because we are using canvas. It will just increase the size. +**A**: I think we don't need any D3 feature to create this... diff --git a/example/index.ts b/example/index.ts index 275488c..585601d 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,4 +1,10 @@ -import { createGraphView, GraphEdge, GraphNode, GraphView } from "../src"; +import { + createGraphView, + GraphEdge, + GraphMode, + GraphNode, + GraphView +} from "../src"; import { edgeShapes, nodeShapes } from "./shapes"; function getRandomInt(min: number, max: number) { @@ -35,8 +41,6 @@ const zoomSlider = document.getElementById("zoom-slider") as HTMLInputElement; let graphView: GraphView; let lastId = 0; -let mode: "move" | "create" = "move"; -let isMultiselect = false; function updateCountText() { nodeCountText.innerText = graphView.getNodeCount().toString(); @@ -96,9 +100,43 @@ function main() { width: 100000, height: 100000, minScale: 0.2, - maxScale: 3.0 + maxScale: 3.0, + onViewZoom() { + zoomSlider.value = graphView.getScale().toString(); + }, + onCreateNode(x, y) { + lastId++; + + graphView.addNode( + { id: lastId, x, y }, + nodeShapes[getRandomInt(0, nodeShapes.length)] + ); + + updateCountText(); + }, + onCreateEdge(sourceId, targetId) { + lastId++; + + graphView.addEdge( + { + id: lastId, + sourceId, + targetId + }, + edgeShapes[getRandomInt(0, edgeShapes.length)] + ); + + updateCountText(); + } }); + graphView.modes = new Set([ + GraphMode.MOVE_VIEW, + GraphMode.ZOOM, + GraphMode.MOVE_NODE, + GraphMode.SELECT + ]); + generateButton.addEventListener("click", () => { const len = parseInt(nodeCountInput.value, 10); @@ -112,23 +150,14 @@ function main() { }); toggleModeButton.addEventListener("click", () => { - if (mode === "create") { - mode = "move"; - toggleModeButton.classList.remove("active"); - } else { - mode = "create"; - toggleModeButton.classList.add("active"); - } + toggleModeButton.classList.toggle("active"); + graphView.toggleMode(GraphMode.CREATE_NODE); + graphView.toggleMode(GraphMode.CREATE_EDGE); }); toggleMultiselectButton.addEventListener("click", () => { - if (isMultiselect) { - isMultiselect = false; - toggleMultiselectButton.classList.remove("active"); - } else { - isMultiselect = true; - toggleMultiselectButton.classList.add("active"); - } + toggleMultiselectButton.classList.toggle("active"); + graphView.toggleMode(GraphMode.MULTISELECT); }); deleteButton.addEventListener("click", () => { @@ -148,134 +177,6 @@ function main() { window.addEventListener("resize", () => { graphView.resize(); }); - - const pos: [number, number] = [0, 0]; - graphDiv.addEventListener("mousedown", e => { - graphView.viewPosFromWindowPos(pos, e.x, e.y); - const hoveredId = graphView.getHoveredId(); - - if (hoveredId) { - if (isMultiselect) graphView.addSelection(hoveredId); - else graphView.select(hoveredId); - } else { - graphView.clearSelection(); - } - - if (mode === "move") { - if (!hoveredId) graphView.beginMoveView(); - else - graphView.beginMoveNodes( - graphView.getSelectedNodeIds(), - pos[0], - pos[1] - ); - } else if (mode === "create") { - if (!hoveredId) { - lastId++; - - graphView.addNode( - { id: lastId, x: pos[0], y: pos[1] }, - nodeShapes[getRandomInt(0, nodeShapes.length)] - ); - - updateCountText(); - } else { - graphView.beginDragLine(); - } - } - }); - - graphDiv.addEventListener("touchstart", e => { - e.preventDefault(); - const t = e.targetTouches[0]; - - graphView.viewPosFromWindowPos(pos, t.clientX, t.clientY); - const hoveredId = graphView.getHoveredId(); - - if (hoveredId) { - if (isMultiselect) graphView.addSelection(hoveredId); - else graphView.select(hoveredId); - } else { - graphView.clearSelection(); - } - - if (mode === "move") { - if (!hoveredId) graphView.beginMoveView(); - else - graphView.beginMoveNodes( - graphView.getSelectedNodeIds(), - pos[0], - pos[1] - ); - } else if (mode === "create") { - if (!hoveredId) { - lastId++; - - graphView.addNode( - { id: lastId, x: pos[0], y: pos[1] }, - nodeShapes[getRandomInt(0, nodeShapes.length)] - ); - - updateCountText(); - } else { - graphView.beginDragLine(); - } - } - }); - - graphDiv.addEventListener("mouseup", () => { - graphView.endMoveView(); - graphView.endMoveNodes(); - - const dragLineNodes = graphView.endDragLine(); - - if (dragLineNodes) { - lastId++; - - graphView.addEdge( - { - id: lastId, - sourceId: dragLineNodes[0].id, - targetId: dragLineNodes[1].id - }, - edgeShapes[getRandomInt(0, edgeShapes.length)] - ); - - updateCountText(); - } - }); - - graphDiv.addEventListener("touchend", e => { - e.preventDefault(); - - graphView.endMoveView(); - graphView.endMoveNodes(); - - const dragLineNodes = graphView.endDragLine(); - - if (dragLineNodes) { - lastId++; - - graphView.addEdge( - { - id: lastId, - sourceId: dragLineNodes[0].id, - targetId: dragLineNodes[1].id - }, - edgeShapes[getRandomInt(0, edgeShapes.length)] - ); - - updateCountText(); - } - }); - - graphDiv.addEventListener( - "wheel", - () => { - zoomSlider.value = graphView.getScale().toString(); - }, - { passive: true } - ); } main(); diff --git a/index.html b/index.html index 6b2f7ff..1087450 100644 --- a/index.html +++ b/index.html @@ -73,8 +73,10 @@ Generate
+ -
+
+
{ - private state: GraphState; - private view: GraphView; - private renderer: GraphRenderer; - - private vp: [number, number] = [0, 0]; - private cp: [number, number] = [0, 0]; - private dp: [number, number] = [0, 0]; - - constructor( - view: GraphView, - state: GraphState, - renderer: GraphRenderer - ) { - this.view = view; - this.state = state; - this.renderer = renderer; - } - - moveBy = () => { - this.view.moveBy(this.dp[0], this.dp[1]); - }; - - handleMouseMove = (e: MouseEvent) => { - const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = - this.state; - - // this.dp[0] = e.movementX; - // this.dp[1] = e.movementY; - - if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { - // requestAnimationFrame(() => { - this.view.moveBy(e.movementX, e.movementY); - // }); - - return; - } - - const vp = this.view.getViewPosFromWindowPos(e.x, e.y); - - if (dragLineSourceNode) { - this.state.dragLineX = vp[0]; - this.state.dragLineY = vp[1]; - - requestAnimationFrame(this.renderer.drawDragLine); - } - - if (moveNodeIds.length === 0) { - requestAnimationFrame(() => this.checkHover(vp[0], vp[1])); - - return; - } - - const dx = vp[0] - moveX; - const dy = vp[1] - moveY; - - this.state.moveX = vp[0]; - this.state.moveY = vp[1]; - - this.renderer.clearMove(); - - for (const id of moveNodeIds) { - this.view.moveNode(id, dx, dy); - } - }; - - private isEdgeHovered(x: number, y: number, edge: Edge) { - const { edgeCtx, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - return ( - edgeCtx.isPointInPath(data.path, x, y) || - edgeCtx.isPointInStroke(data.linePath, x, y) || - edgeCtx.isPointInPath(data.arrowPath, x, y) - ); - } - - private isNodeHovered(x: number, y: number, node: Node) { - const { nodeCtx, drawData } = this.state; - - const data = drawData[node.id] as NodeDrawData; - - return nodeCtx.isPointInPath(data.path, x, y); - } - - private checkHover(vx: number, vy: number) { - const { nodes, edges } = this.state; - - const prevId = this.state.hoveredId; - this.state.hoveredId = 0; - - const [cx, cy] = this.view.getCanvasPosFromViewPos(vx, vy); - this.state.quad.getDataInRegion(vx - 1, vy - 1, 2, 2, this.state.drawIds); - - for (const id of this.state.drawIds) { - if (nodes[id] && this.isNodeHovered(cx, cy, nodes[id])) - this.state.hoveredId = id; - - if (edges[id] && this.isEdgeHovered(cx, cy, edges[id])) - this.state.hoveredId = id; - } - - if (this.state.hoveredId === prevId) return; - - const currId = this.state.hoveredId; - const prev = this.state.drawData[prevId]; - const curr = this.state.drawData[currId]; - - if (prev) { - if (prev.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[prevId]); - } else if (prev.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[prevId]); - } - } - - if (curr) { - if (curr.type === GraphDataType.NODE) { - this.renderer.drawNode(nodes[currId]); - } else if (curr.type === GraphDataType.EDGE) { - this.renderer.drawEdge(edges[currId]); - } - } - } - - handleWheel = (e: WheelEvent) => { - const pos = this.view.getViewPosFromWindowPos(e.x, e.y); - - this.view.zoomBy(-e.deltaY * 0.001, pos[0], pos[1]); - }; - - init() { - const { container } = this.state; - - container.addEventListener("mousemove", this.handleMouseMove, { - passive: true - }); - container.addEventListener("wheel", this.handleWheel, { passive: true }); - } - - destroy() { - const { container } = this.state; - - container.removeEventListener("mousemove", this.handleMouseMove); - container.removeEventListener("wheel", this.handleWheel); - } -} diff --git a/old/graph-renderer.ts b/old/graph-renderer.ts deleted file mode 100644 index 3eb1475..0000000 --- a/old/graph-renderer.ts +++ /dev/null @@ -1,702 +0,0 @@ -import { GraphState } from "./graph-state"; -import { GraphView } from "./graph-view"; -import { - EdgeDrawData, - GraphDataType, - GraphEdge, - GraphNode, - GraphShape, - NodeDrawData -} from "./types"; -import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; - -export class GraphRenderer { - private state: GraphState; - private view: GraphView; - - private isDrawing = false; - - constructor(view: GraphView, state: GraphState) { - this.view = view; - this.state = state; - } - - requestDraw() { - if (!this.isDrawing) { - requestAnimationFrame(this.requestDrawHandler); - } - - this.isDrawing = true; - } - - requestDrawHandler = () => { - this.isDrawing = false; - - this.drawAll(); - }; - - applyTransform() { - const { - scale, - translateX, - translateY, - bgCtx, - nodeCtx, - dragCtx, - edgeCtx, - moveCtx - } = this.state; - - bgCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - nodeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - dragCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - edgeCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - moveCtx.setTransform(scale, 0, 0, scale, translateX, translateY); - - this.state.setView(); - } - - getIntersectionPoint( - sx: number, - sy: number, - tx: number, - ty: number, - path: Path2D - ) { - const { bgCtx } = this.state; - - const dx = tx - sx; - const dy = ty - sy; - - const e = (Math.abs(dx) + Math.abs(dy)) | 0; - - let start = 0; - let end = e; - - while (start <= end) { - const mid = ((start + end) / 2) | 0; - - const x = sx + (mid / e) * dx; - const y = sy + (mid / e) * dy; - const [cx, cy] = this.view.getCanvasPosFromViewPos(x, y); - - if (bgCtx.isPointInPath(path, cx, cy)) { - end = mid - 1; - } else { - start = mid + 1; - } - } - - return start / e; - } - - createEdgePath(edge: Edge, shape: GraphShape) { - const { options, nodes, drawData } = this.state; - const { sourceId, targetId } = edge; - - const source = nodes[sourceId]; - const target = nodes[targetId] as Node; - - const dx = target.x - source.x; - const dy = target.y - source.y; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const sip = this.getIntersectionPoint( - target.x, - target.y, - source.x, - source.y, - drawData[source.id].path - ); - const lineSourceX = - target.x - sip * dx + options.nodeLineWidth * cosr * 0.5; - const lineSourceY = - target.y - sip * dy + options.nodeLineWidth * sinr * 0.5; - - const tip = this.getIntersectionPoint( - source.x, - source.y, - target.x, - target.y, - drawData[target.id].path - ); - const lineTargetX = - source.x + tip * dx - options.nodeLineWidth * cosr * 0.5; - const lineTargetY = - source.y + tip * dy - options.nodeLineWidth * sinr * 0.5; - - const shapeX = - (lineSourceX + lineTargetX - options.edgeArrowHeight * cosr) * 0.5; - const shapeY = - (lineSourceY + lineTargetY - options.edgeArrowHeight * sinr) * 0.5; - - const path = shape.createPath( - shapeX, - shapeY, - shape.width, - shape.height, - edge.id - ); - - const linePath = this.createEdgeLinePath( - lineSourceX, - lineSourceY, - lineTargetX - options.edgeArrowHeight * cosr, - lineTargetY - options.edgeArrowHeight * sinr - ); - - const arrowPath = this.createEdgeArrowPath( - lineTargetX, - lineTargetY, - sinr, - cosr - ); - - const data = drawData[edge.id] as EdgeDrawData | undefined; - - if (!data) { - drawData[edge.id] = { - type: GraphDataType.EDGE, - shape, - path, - linePath, - arrowPath, - lineSourceX, - lineSourceY, - lineTargetX, - lineTargetY, - shapeX, - shapeY - }; - } else { - data.type = GraphDataType.EDGE; - data.shape = shape; - data.path = path; - data.linePath = linePath; - data.arrowPath = arrowPath; - data.lineSourceX = lineSourceX; - data.lineSourceY = lineSourceY; - data.lineTargetX = lineTargetX; - data.lineTargetY = lineTargetY; - data.shapeX = shapeX; - data.shapeY = shapeY; - } - } - - createEdgeLinePath(sx: number, sy: number, tx: number, ty: number) { - const p = new Path2D(); - - p.moveTo(sx, sy); - p.lineTo(tx, ty); - - return p; - } - - createEdgeArrowPath(ix: number, iy: number, sinr: number, cosr: number) { - const { options } = this.state; - - const ll = options.edgeArrowWidth * 0.5; - const lsx = ix - options.edgeArrowHeight * cosr; - const lsy = iy - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - const p = new Path2D(); - - p.moveTo(ix, iy); - p.lineTo(lp1x, lp1y); - p.lineTo(lp2x, lp2y); - p.closePath(); - - return p; - } - - clear = (ctx: CanvasRenderingContext2D) => { - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - }; - - drawUncoveredRegion = ( - ovx: number, - ovy: number, - ovw: number, - ovh: number, - nvx = this.state.viewX, - nvy = this.state.viewY, - nvw = this.state.viewW, - nvh = this.state.viewH - ) => { - const ovt = ovy; - const ovr = ovx + ovw; - const ovb = ovy + ovh; - const ovl = ovx; - - const nvt = nvy; - const nvr = nvx + nvw; - const nvb = nvy + nvh; - const nvl = nvx; - - const { bgCtx, nodeCtx, edgeCtx, moveCtx } = this.state; - - bgCtx.drawImage(bgCtx.canvas, ovx, ovy, nvw, nvh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - moveCtx.drawImage(edgeCtx.canvas, nvx, nvy, nvw, nvh); - edgeCtx.clearRect(nvx, nvy, nvw, nvh); - edgeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - moveCtx.drawImage(nodeCtx.canvas, nvx, nvy, nvw, nvh); - nodeCtx.clearRect(nvx, nvy, nvw, nvh); - nodeCtx.drawImage(moveCtx.canvas, ovx, ovy, ovw, ovh); - - moveCtx.clearRect(nvx, nvy, nvw, nvh); - - if (nvt < ovt) { - const tt = nvt; - const tr = nvr; - const tb = ovt; - const tl = nvl; - - this.drawAll(tl, tt, tr - tl, tb - tt); - } - - if (nvr > ovr) { - const rt = Math.max(nvt, ovt); - const rr = nvr; - const rb = Math.min(nvb, ovb); - const rl = ovr; - - this.drawAll(rl, rt, rr - rl, rb - rt); - } - - if (nvb > ovb) { - const bt = ovb; - const br = nvr; - const bb = nvb; - const bl = nvl; - - this.drawAll(bl, bt, br - bl, bb - bt); - } - - if (nvl < ovl) { - const lt = Math.max(nvt, ovt); - const lr = ovl; - const lb = Math.min(nvb, ovb); - const ll = nvl; - - this.drawAll(ll, lt, lr - ll, lb - lt); - } - }; - - drawAll = ( - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) => { - const { edgeCtx, nodeCtx, nodes, edges } = this.state; - - nodeCtx.clearRect(vx, vy, vw, vh); - edgeCtx.clearRect(vx, vy, vw, vh); - - this.drawBackground(vx, vy, vw, vh); - - this.state.quad.getDataInRegion(vx, vy, vw, vh, this.state.drawIds); - - for (const id of this.state.drawIds) { - if (nodes[id]) this.drawNode(nodes[id], false, vx, vy, vw, vh); - if (edges[id]) this.drawEdge(edges[id], false, vx, vy, vw, vh); - } - }; - - redrawNodes = (excludeIds?: Set) => { - const { nodes, nodeCtx, viewX, viewY, viewW, viewH } = this.state; - - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - - for (const node of Object.values(nodes)) { - if (excludeIds && excludeIds.has(node.id)) continue; - - this.drawNode(node); - } - }; - - redrawEdges = (excludeIds?: Set) => { - const { edges, edgeCtx, viewX, viewY, viewW, viewH } = this.state; - - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - - for (const edge of Object.values(edges)) { - if (excludeIds && excludeIds.has(edge.id)) continue; - - this.drawEdge(edge); - } - }; - - clearNodes = () => { - const { nodeCtx, viewX, viewY, viewW, viewH } = this.state; - nodeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearEdges = () => { - const { edgeCtx, viewX, viewY, viewW, viewH } = this.state; - edgeCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearDragLine = () => { - const { dragCtx, viewX, viewY, viewW, viewH } = this.state; - dragCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - clearMove = () => { - const { moveCtx, viewX, viewY, viewW, viewH } = this.state; - moveCtx.clearRect(viewX, viewY, viewW, viewH); - }; - - drawDragLine = () => { - const { - dragCtx, - options, - dragLineSourceNode, - dragLineX, - dragLineY, - viewX, - viewY, - viewW, - viewH - } = this.state; - - if (!dragLineSourceNode) return; - - dragCtx.clearRect(viewX, viewY, viewW, viewH); - - const sx = dragLineSourceNode.x; - const sy = dragLineSourceNode.y; - const tx = dragLineX; - const ty = dragLineY; - - const dx = tx - sx; - const dy = ty - sy; - - const rad = Math.atan2(dy, dx); - const sinr = Math.sin(rad); - const cosr = Math.cos(rad); - - const ll = options.edgeArrowWidth * 0.5; - const lsx = tx - options.edgeArrowHeight * cosr; - const lsy = ty - options.edgeArrowHeight * sinr; - const lp1x = lsx + ll * sinr; - const lp1y = lsy - ll * cosr; - const lp2x = lsx - ll * sinr; - const lp2y = lsy + ll * cosr; - - dragCtx.lineWidth = options.edgeLineWidth; - dragCtx.strokeStyle = options.edgeLineColor; - dragCtx.fillStyle = options.edgeLineColor; - - dragCtx.beginPath(); - dragCtx.moveTo(sx, sy); - dragCtx.lineTo(tx, ty); - dragCtx.stroke(); - - dragCtx.beginPath(); - dragCtx.moveTo(tx, ty); - dragCtx.lineTo(lp1x, lp1y); - dragCtx.lineTo(lp2x, lp2y); - dragCtx.closePath(); - dragCtx.fill(); - }; - - drawEdge( - edge: Edge, - isMove = false, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { edgeCtx, moveCtx, options, drawData } = this.state; - - const ctx = isMove ? moveCtx : edgeCtx; - - const selected = this.state.selectedIds.has(edge.id); - const hovered = this.state.hoveredId === edge.id; - - const data = drawData[edge.id] as EdgeDrawData; - - ctx.lineWidth = options.edgeLineWidth; - ctx.strokeStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - - // draw edge line - if (this.isEdgeLineInView(edge, vx, vy, vw, vh)) { - ctx.stroke(data.linePath); - } - - // draw edge arrow - if (this.isEdgeArrowInView(edge, vx, vy, vw, vh)) { - ctx.fillStyle = selected - ? options.edgeSelectedLineColor - : hovered - ? options.edgeHoveredLineColor - : options.edgeLineColor; - - ctx.fill(data.arrowPath); - } - - // draw shape and content - const shape = data.shape; - - if (this.isEdgeShapeInView(edge, vx, vy, vw, vh)) { - // draw shape - - ctx.fillStyle = selected - ? options.edgeSelectedShapeColor - : options.edgeShapeColor; - ctx.fill(data.path); - ctx.stroke(data.path); - - // draw content - ctx.fillStyle = selected - ? options.edgeSelectedContentColor - : options.edgeContentColor; - ctx.textAlign = options.edgeTextAlign; - ctx.textBaseline = options.edgeTextBaseline; - ctx.font = options.edgeFont; - - shape.drawContent( - ctx, - data.shapeX, - data.shapeY, - shape.width, - shape.height, - edge.id - ); - } - } - - isNodeInView( - node: Node, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { drawData } = this.state; - - const { shape } = drawData[node.id] as NodeDrawData; - - return rectIntersect( - node.x - shape.width * 0.5, - node.y - shape.height * 0.5, - shape.width, - shape.height, - vx, - vy, - vw, - vh - ); - } - - isEdgeInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - return ( - this.isEdgeArrowInView(edge, vx, vy, vw, vh) || - this.isEdgeLineInView(edge, vx, vy, vw, vh) || - this.isEdgeShapeInView(edge, vx, vy, vw, vh) - ); - } - - isEdgeLineInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - const sx = data.lineSourceX; - const sy = data.lineSourceY; - const tx = data.lineTargetX; - const ty = data.lineTargetY; - - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - - return ( - isLineInsideRect(sx, sy, tx, ty, vx, vy, vw, vh) || - lineIntersect(sx, sy, tx, ty, vx, vy, vx, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx, vy + vh, vx + vw, vy + vh) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy + vh, vx + vw, vy) || - lineIntersect(sx, sy, tx, ty, vx + vw, vy, vx, vy) - ); - } - - isEdgeArrowInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - const tx = data.lineTargetX; - const ty = data.lineTargetY; - - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - const sz = Math.max(options.edgeArrowWidth, options.edgeArrowHeight); - - return rectIntersect(tx - sz, ty - sz, sz * 2, sz * 2, vx, vy, vw, vh); - } - - isEdgeShapeInView( - edge: Edge, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { options, drawData } = this.state; - - const data = drawData[edge.id] as EdgeDrawData; - - const lsz = Math.max(options.edgeLineWidth, options.nodeLineWidth); - vx -= lsz; - vy -= lsz; - vw += lsz * 2; - vh += lsz * 2; - - const shape = data.shape; - - return rectIntersect( - data.shapeX - shape.width * 0.5, - data.shapeY - shape.height * 0.5, - shape.width, - shape.height, - vx, - vy, - vw, - vh - ); - } - - drawNode( - node: Node, - isMove = false, - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { nodeCtx, moveCtx, options, drawData } = this.state; - - const ctx = isMove ? moveCtx : nodeCtx; - - const selected = this.state.selectedIds.has(node.id); - const hovered = this.state.hoveredId === node.id; - - const data = drawData[node.id] as NodeDrawData; - - // check is in view - const shape = data.shape; - if (this.isNodeInView(node, vx, vy, vw, vh)) { - // draw shape - ctx.strokeStyle = selected - ? options.nodeSelectedLineColor - : hovered - ? options.nodeHoveredLineColor - : options.nodeLineColor; - ctx.fillStyle = selected ? options.nodeSelectedColor : options.nodeColor; - ctx.lineWidth = options.nodeLineWidth; - - ctx.fill(data.path); - ctx.stroke(data.path); - - // draw content - - ctx.fillStyle = selected - ? options.nodeSelectedContentColor - : options.nodeContentColor; - ctx.textAlign = options.nodeTextAlign; - ctx.textBaseline = options.nodeTextBaseline; - ctx.font = options.nodeFont; - - shape.drawContent( - ctx, - node.x, - node.y, - shape.width, - shape.height, - node.id - ); - } - } - - drawBackground( - vx = this.state.viewX, - vy = this.state.viewY, - vw = this.state.viewW, - vh = this.state.viewH - ) { - const { bgCtx, options } = this.state; - - bgCtx.fillStyle = options.bgColor; - bgCtx.fillRect(vx, vy, vw, vh); - - if (!options.bgShowDots) return; - - const lw = options.bgLineWidth; - const gap = options.bgLineGap; - - bgCtx.strokeStyle = options.bgDotColor; - bgCtx.lineWidth = lw; - - const bl = vx - lw * 0.5; - const br = vx + vw + lw * 0.5; - const bt = vy - lw * 0.5; - const bb = vy + vh + lw * 0.5; - - const ll = bl - (((bl % gap) - gap) % gap); - const lr = br - (((br % gap) + gap) % gap); - const lt = bt - (((bt % gap) - gap) % gap); - const lb = bb - (((bb % gap) + gap) % gap); - - bgCtx.beginPath(); - - for (let i = ll; i <= lr; i += gap) { - bgCtx.moveTo(i, lt); - bgCtx.lineTo(i, lb + gap); - } - - bgCtx.lineCap = "round"; - bgCtx.setLineDash([0, gap]); - bgCtx.stroke(); - bgCtx.setLineDash([]); - bgCtx.lineCap = "square"; - } -} diff --git a/old/graph-state.ts b/old/graph-state.ts deleted file mode 100644 index 94e4e8f..0000000 --- a/old/graph-state.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { createQuad, Quad } from "./quad"; -import { - GraphEdge, - GraphNode, - GraphOptions, - defaultGraphOptions, - NodeDrawData, - EdgeDrawData -} from "./types"; - -export class GraphState { - // readonly canvas: HTMLCanvasElement; - // readonly ctx: CanvasRenderingContext2D; - - readonly container: HTMLElement; - readonly bgCtx: CanvasRenderingContext2D; - readonly edgeCtx: CanvasRenderingContext2D; - readonly dragCtx: CanvasRenderingContext2D; - readonly nodeCtx: CanvasRenderingContext2D; - readonly moveCtx: CanvasRenderingContext2D; - - nodes: Record = {}; - edges: Record = {}; - drawData: Record = {}; - quad: Quad = createQuad( - Number.MIN_SAFE_INTEGER, - Number.MIN_SAFE_INTEGER, - Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER, - Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER - ); - - options = defaultGraphOptions; - - translateX = 0; - translateY = 0; - scale = 1; - - viewX = 0; - viewY = 0; - viewW = 0; - viewH = 0; - boundingRect: DOMRect; - - isMovingView = false; - hoveredId = 0; - selectedIds = new Set(); - moveNodeIds: number[] = []; - moveX = 0; - moveY = 0; - dragLineSourceNode: Node | undefined = undefined; - dragLineX = 0; - dragLineY = 0; - drawIds = new Set(); - - constructor(container: HTMLElement, options: Partial = {}) { - this.options = { - ...this.options, - ...options - }; - - this.boundingRect = container.getBoundingClientRect(); - this.container = container; - - const bgCtx = this.initCtx(false); - const edgeCtx = this.initCtx(); - const dragCtx = this.initCtx(); - const nodeCtx = this.initCtx(); - const moveCtx = this.initCtx(); - - if (!bgCtx || !edgeCtx || !nodeCtx || !moveCtx || !dragCtx) { - throw "Canvas is not supported in your browser."; - } - - this.bgCtx = bgCtx; - this.edgeCtx = edgeCtx; - this.dragCtx = dragCtx; - this.nodeCtx = nodeCtx; - this.moveCtx = moveCtx; - } - - initCtx(alpha = true) { - const { container } = this; - - const canvas = document.createElement("canvas"); - canvas.style.position = "absolute"; - canvas.style.top = "0"; - canvas.style.left = "0"; - canvas.textContent = "Canvas is not supported in your browser."; - canvas.width = container.clientWidth; - canvas.height = container.clientHeight; - - const ctx = canvas.getContext("2d", { alpha }); - - return ctx; - } - - createCanvas(container: HTMLElement): CanvasRenderingContext2D { - const canvas = document.createElement("canvas"); - - canvas.textContent = "Canvas is not supported in your browser."; - canvas.width = container.clientWidth; - canvas.height = container.clientHeight; - - const ctx = canvas.getContext("2d", { alpha: false }); - - if (!ctx) { - throw "Canvas is not supported in your browser."; - } - - container.append(canvas); - - return ctx; - } - - setView() { - const { container, translateX, translateY, scale } = this; - - this.viewX = -translateX / scale; - this.viewY = -translateY / scale; - this.viewW = container.clientWidth / scale; - this.viewH = container.clientHeight / scale; - } -} diff --git a/old/graph-view.ts b/old/graph-view.ts deleted file mode 100644 index eb7e0fc..0000000 --- a/old/graph-view.ts +++ /dev/null @@ -1,613 +0,0 @@ -import { GraphHandler } from "./graph-handler"; -import { GraphRenderer } from "./graph-renderer"; -import { GraphState } from "./graph-state"; -import { - defaultEdgeShape, - defaultNodeShape, - GraphEdge, - GraphNode, - GraphShape, - GraphOptions, - GraphDataType, - NodeDrawData -} from "./types"; - -export function createNodeShape(shape?: Partial): GraphShape { - return { - ...defaultNodeShape, - ...shape - }; -} - -export function createEdgeShape(shape?: Partial): GraphShape { - return { - ...defaultEdgeShape, - ...shape - }; -} - -export class GraphView { - private state: GraphState; - private renderer: GraphRenderer; - private handler: GraphHandler; - - constructor(container: HTMLElement, options: Partial = {}) { - this.state = new GraphState(container, options); - this.renderer = new GraphRenderer(this, this.state); - this.handler = new GraphHandler(this, this.state, this.renderer); - - this.renderer.applyTransform(); - this.renderer.drawAll(); - - container.appendChild(this.state.bgCtx.canvas); - container.appendChild(this.state.edgeCtx.canvas); - container.appendChild(this.state.dragCtx.canvas); - container.appendChild(this.state.nodeCtx.canvas); - container.appendChild(this.state.moveCtx.canvas); - - const resizeObserver = new ResizeObserver(() => { - this.resize(); - }); - - resizeObserver.observe(container); - - this.handler.init(); - } - - destroy() { - this.handler.destroy(); - } - - resize(): void { - this.state.bgCtx.canvas.width = this.state.container.clientWidth; - this.state.bgCtx.canvas.height = this.state.container.clientHeight; - this.state.edgeCtx.canvas.width = this.state.container.clientWidth; - this.state.edgeCtx.canvas.height = this.state.container.clientHeight; - this.state.nodeCtx.canvas.width = this.state.container.clientWidth; - this.state.nodeCtx.canvas.height = this.state.container.clientHeight; - this.state.moveCtx.canvas.width = this.state.container.clientWidth; - this.state.moveCtx.canvas.height = this.state.container.clientHeight; - - this.state.boundingRect = this.state.container.getBoundingClientRect(); - - this.renderer.applyTransform(); - this.renderer.drawAll(); - } - - beginDragLine() { - const { hoveredId, nodes } = this.state; - - if (!hoveredId) return; - - const node = nodes[hoveredId]; - - if (!node) return; - - this.state.dragLineSourceNode = node; - this.state.dragLineX = node.x; - this.state.dragLineY = node.y; - } - - endDragLine(): [Node, Node] | undefined { - const { hoveredId, nodes } = this.state; - - this.renderer.clearDragLine(); - - if (!this.state.dragLineSourceNode) return; - - let r = 0; - if (hoveredId > 0 && hoveredId !== this.state.dragLineSourceNode.id) { - r = hoveredId; - } - - const s = this.state.dragLineSourceNode; - - this.state.dragLineSourceNode = undefined; - - const rn = nodes[r]; - return rn ? [s, rn] : undefined; - } - - beginMoveView() { - this.state.isMovingView = true; - } - - endMoveView() { - this.state.isMovingView = false; - } - - beginMoveNodes(nodeIds: number[], vx: number, vy: number) { - const { drawData, nodes, edges } = this.state; - - const affectedIds = new Set(nodeIds); - - this.renderer.redrawNodes(affectedIds); - - affectedIds.clear(); - - for (const id of nodeIds) { - const dd = drawData[id] as NodeDrawData; - - for (const eid of dd.sourceOfEdgeIds) { - affectedIds.add(eid); - } - - for (const eid of dd.targetOfEdgeIds) { - affectedIds.add(eid); - } - } - - this.renderer.redrawEdges(affectedIds); - - for (const eid of affectedIds) { - this.renderer.drawEdge(edges[eid], true); - } - - for (const nid of nodeIds) { - this.renderer.drawNode(nodes[nid], true); - } - - this.state.moveNodeIds = nodeIds; - this.state.moveX = vx; - this.state.moveY = vy; - } - - endMoveNodes() { - const { moveNodeIds, drawData, nodes, edges } = this.state; - - for (const id of moveNodeIds) { - this.renderer.drawNode(nodes[id]); - } - - const isRendered: Record = {}; - - for (const id of moveNodeIds) { - const dd = drawData[id] as NodeDrawData; - - for (const eid of dd.sourceOfEdgeIds) { - if (isRendered[eid]) continue; - - isRendered[eid] = true; - this.renderer.drawEdge(edges[eid]); - } - - for (const eid of dd.targetOfEdgeIds) { - if (isRendered[eid]) continue; - - isRendered[eid] = true; - this.renderer.drawEdge(edges[eid]); - } - } - - this.renderer.clearMove(); - - this.state.moveNodeIds.length = 0; - } - - getHoveredId() { - return this.state.hoveredId; - } - - select(id: number) { - const { nodes, edges, selectedIds } = this.state; - - const affectedIds = Array.from(selectedIds); - affectedIds.push(id); - - selectedIds.clear(); - selectedIds.add(id); - - for (const id of affectedIds) { - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - } - - addSelection(id: number) { - const { nodes, edges, selectedIds } = this.state; - - selectedIds.add(id); - - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - - removeSelection(id: number) { - const { nodes, edges, selectedIds } = this.state; - - selectedIds.delete(id); - - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - - clearSelection() { - const { nodes, edges, selectedIds } = this.state; - - const affectedIds = Array.from(selectedIds); - - selectedIds.clear(); - - for (const id of affectedIds) { - if (nodes[id]) this.renderer.drawNode(nodes[id]); - if (edges[id]) this.renderer.drawEdge(edges[id]); - } - } - - getSelection() { - return Array.from(this.state.selectedIds); - } - - getSelectedNodeIds() { - return this.getSelection().filter(id => { - return this.state.nodes[id] !== undefined; - }); - } - - getSelectedEdgeIds() { - return this.getSelection().filter(id => { - return this.state.edges[id] !== undefined; - }); - } - - addNode(node: Node, shape: GraphShape): boolean { - const { nodes, edges, drawData } = this.state; - - if (nodes[node.id] || edges[node.id]) return false; - - nodes[node.id] = node; - - const path = shape.createPath( - node.x, - node.y, - shape.width, - shape.height, - node.id - ); - - drawData[node.id] = { - type: GraphDataType.NODE, - shape, - path, - sourceOfEdgeIds: new Set(), - targetOfEdgeIds: new Set() - }; - - this.state.quad.insert( - node.id, - node.x - shape.width * 0.5, - node.y - shape.height * 0.5, - shape.width, - shape.height - ); - - this.renderer.drawNode(node); - - return true; - } - - addEdge(edge: Edge, shape: GraphShape): boolean { - const { nodes, edges, drawData } = this.state; - - if (nodes[edge.id] || edges[edge.id]) return false; - if (!nodes[edge.sourceId] || !nodes[edge.targetId]) return false; - - const snd = drawData[edge.sourceId] as NodeDrawData; - const tnd = drawData[edge.targetId] as NodeDrawData; - - for (const eid of snd.sourceOfEdgeIds) { - if (edges[eid].targetId === edge.targetId) return false; - } - - for (const eid of tnd.targetOfEdgeIds) { - if (edges[eid].sourceId === edge.sourceId) return false; - } - - edges[edge.id] = edge; - - snd.sourceOfEdgeIds.add(edge.id); - tnd.targetOfEdgeIds.add(edge.id); - - this.renderer.createEdgePath(edge, shape); - - const source = nodes[edge.sourceId]; - const target = nodes[edge.targetId]; - - this.state.quad.insert( - edge.id, - Math.min(source.x, target.x), - Math.min(source.y, target.y), - Math.max(Math.abs(source.x - target.x), shape.width), - Math.max(Math.abs(source.y - target.y), shape.height) - ); - - this.renderer.drawEdge(edge); - - // console.log(this.state.quad); - - return true; - } - - moveNode(id: number, dx: number, dy: number): boolean { - const { drawData, nodes, edges } = this.state; - - if (!nodes[id]) return false; - - const node = nodes[id]; - const ndd = drawData[id] as NodeDrawData; - - node.x += dx; - node.y += dy; - - const shape = ndd.shape; - - const path = shape.createPath( - node.x, - node.y, - shape.width, - shape.height, - node.id - ); - - ndd.path = path; - - for (const edgeId of ndd.sourceOfEdgeIds) { - const edge = edges[edgeId]; - const edd = drawData[edgeId]; - - this.renderer.createEdgePath(edge, edd.shape); - - this.renderer.drawEdge(edge, true); - } - - for (const edgeId of ndd.targetOfEdgeIds) { - const edge = edges[edgeId]; - const edd = drawData[edgeId]; - - this.renderer.createEdgePath(edge, edd.shape); - - this.renderer.drawEdge(edge, true); - } - - this.renderer.drawNode(node, true); - - return true; - } - - updateNode(id: number, node: Partial): boolean { - const { nodes } = this.state; - - if (!nodes[id]) return false; - const cur = nodes[id]; - - if ((node.x && node.x !== cur.x) || (node.y && node.y !== cur.y)) { - this.moveNode( - id, - node.x ? node.x - cur.x : 0, - node.y ? node.y - cur.y : 0 - ); - } - - for (const k in node) { - if (k === "id") continue; - - cur[k] = node[k] as Node[Extract]; - } - - return true; - } - - updateEdge(id: number, edge: Partial): boolean { - const { edges } = this.state; - - if (!edges[id]) return false; - const cur = edges[id]; - - if ( - (edge.sourceId && edge.sourceId !== cur.sourceId) || - (edge.targetId && edge.targetId !== cur.targetId) - ) { - this.renderer.redrawEdges(); - } - - for (const k in edge) { - if (k === "id") continue; - - cur[k] = edge[k] as Edge[Extract]; - } - - return true; - } - - remove(id: number): boolean { - if (this.state.nodes[id]) return this.removeNode(id); - if (this.state.edges[id]) return this.removeEdge(id); - - return false; - } - - removeNode(id: number): boolean { - const { nodes, drawData } = this.state; - - if (!nodes[id]) return false; - const ndd = drawData[id] as NodeDrawData; - - for (const edgeId of ndd.sourceOfEdgeIds) { - this.removeEdge(edgeId); - } - - for (const edgeId of ndd.targetOfEdgeIds) { - this.removeEdge(edgeId); - } - - delete this.state.nodes[id]; - delete this.state.drawData[id]; - - requestAnimationFrame(() => this.renderer.redrawNodes()); - - return true; - } - - removeEdge(id: number): boolean { - const { edges, drawData } = this.state; - - if (!edges[id]) return false; - const edge = edges[id]; - - const sndd = drawData[edge.sourceId] as NodeDrawData; - sndd.sourceOfEdgeIds.delete(id); - - const tndd = drawData[edge.targetId] as NodeDrawData; - tndd.targetOfEdgeIds.delete(id); - - delete this.state.edges[id]; - delete this.state.drawData[id]; - - requestAnimationFrame(() => this.renderer.redrawEdges()); - - return true; - } - - getNode(id: number): Node | undefined { - return this.state.nodes[id]; - } - - getEdge(id: number): Edge | undefined { - return this.state.edges[id]; - } - - getData() { - return { - nodes: Object.values(this.state.nodes), - edges: Object.values(this.state.edges) - }; - } - - clear() { - this.state.nodes = {}; - this.state.edges = {}; - this.state.drawData = {}; - this.state.selectedIds.clear(); - this.state.moveNodeIds = []; - this.state.dragLineSourceNode = undefined; - this.state.quad.clear(); - - this.renderer.clearNodes(); - this.renderer.clearEdges(); - } - - getTranslateX() { - return this.state.translateX; - } - - getTranslateY() { - return this.state.translateY; - } - - getScale() { - return this.state.scale; - } - - setTransform(translateX: number, translateY: number, scale: number) { - if ( - translateX === this.state.translateX && - translateY === this.state.translateY && - scale === this.state.scale - ) - return; - - this.state.translateX = translateX; - this.state.translateY = translateY; - this.state.scale = scale; - - this.renderer.applyTransform(); - // this.renderer.drawAll(); - this.renderer.requestDraw(); - } - - moveBy(x: number, y: number) { - this.state.translateX += x; - this.state.translateY += y; - - // const ovx = this.state.viewX; - // const ovy = this.state.viewY; - // const ovw = this.state.viewW; - // const ovh = this.state.viewH; - - // requestAnimationFrame(() => { - this.renderer.applyTransform(); - // this.renderer.drawAll(); - // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); - // }); - - this.renderer.requestDraw(); - } - - zoomBy(value: number, targetX?: number, targetY?: number) { - this.zoomTo(this.state.scale + value, targetX, targetY); - } - - zoomTo(value: number, targetX?: number, targetY?: number) { - const { scale, translateX, translateY, options } = this.state; - const { width, height } = this.state.bgCtx.canvas; - - targetX = targetX || (width * 0.5 - translateX) / scale; - targetY = targetY || (height * 0.5 - translateY) / scale; - - const newScale = Math.min( - options.maxScale, - Math.max(options.minScale, value) - ); - - const deltaScale = newScale - scale; - const offsetX = -(targetX * deltaScale); - const offsetY = -(targetY * deltaScale); - - this.state.scale += deltaScale; - this.state.translateX += offsetX; - this.state.translateY += offsetY; - - // const ovx = this.state.viewX; - // const ovy = this.state.viewY; - // const ovw = this.state.viewW; - // const ovh = this.state.viewH; - - this.renderer.applyTransform(); - // this.renderer.drawUncoveredRegion(ovx, ovy, ovw, ovh); - - // this.renderer.drawAll(); - this.renderer.requestDraw(); - } - - getViewPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.state.boundingRect; - const { scale, translateX, translateY } = this.state; - - return [ - (windowX - left - translateX) / scale, - (windowY - top - translateY) / scale - ]; - } - - getViewPosFromCanvasPos(canvasX: number, canvasY: number) { - const { scale, translateX, translateY } = this.state; - - return [(canvasX - translateX) / scale, (canvasY - translateY) / scale]; - } - - getCanvasPosFromViewPos(viewX: number, viewY: number) { - const { scale, translateX, translateY } = this.state; - - return [viewX * scale + translateX, viewY * scale + translateY]; - } - - getCanvasPosFromWindowPos(windowX: number, windowY: number) { - const { left, top } = this.state.boundingRect; - - return [windowX - left, windowY - top]; - } -} - -export function createGraphView(container: HTMLElement) { - return new GraphView(container); -} diff --git a/old/index.ts b/old/index.ts deleted file mode 100644 index 03b1b5a..0000000 --- a/old/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./graph-view"; -export * from "./types"; diff --git a/old/quad.ts b/old/quad.ts deleted file mode 100644 index 04138ab..0000000 --- a/old/quad.ts +++ /dev/null @@ -1,160 +0,0 @@ -// A custom, incorrect Quad Tree implementation - -import { rectIntersect } from "./utils"; - -const MAX_DEPTH = 64; -const DATA_PER_CHILD = 4; - -export type QuadData = { - value: T; - x: number; - y: number; - w: number; - h: number; -}; - -export class Quad { - data: QuadData[]; - children: Quad[]; - x: number; - y: number; - w: number; - h: number; - - constructor(x: number, y: number, w: number, h: number) { - this.data = []; - this.children = []; - this.x = x; - this.y = y; - this.w = w; - this.h = h; - } - - clear() { - _clear(this); - } - - insert(value: T, x: number, y: number, w: number, h: number) { - _insert(this, { value, x, y, w, h }, 0); - } - - remove(value: T, x: number, y: number, w: number, h: number) { - _remove(this, value, x, y, w, h); - } - - getDataInRegion(x: number, y: number, w: number, h: number, out: Set) { - out.clear(); - - _getDataInRegion(this, x, y, w, h, out); - } -} - -function _clear(node: Quad) { - node.data.length = 0; - - for (const child of node.children) { - _clear(child); - } -} - -function _remove( - node: Quad, - value: unknown, - x: number, - y: number, - w: number, - h: number -) { - // if not intersecting, return - if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; - - for (let i = 0; i < node.data.length; i++) { - if (node.data[i].value === value) { - node.data.splice(i, 1); - return; - } - } - - for (const child of node.children) { - _remove(child, value, x, y, w, h); - } -} - -function _insert(node: Quad, data: QuadData, depth: number) { - if (depth > MAX_DEPTH) return; - - // if not intersecting, return - if ( - !rectIntersect( - node.x, - node.y, - node.w, - node.h, - data.x, - data.y, - data.w, - data.h - ) - ) - return; - - // if no children and data size is smaller than the limit, insert data to the node - if ( - depth === MAX_DEPTH || - (node.children.length === 0 && node.data.length < DATA_PER_CHILD) - ) { - node.data.push(data); - return; - } - - const dataToInsert: QuadData[] = []; - - // if no children, create the children - if (node.children.length === 0 && node.data.length >= DATA_PER_CHILD) { - const hw = node.w * 0.5; - const hh = node.h * 0.5; - - const tl = new Quad(node.x, node.y, hw, hh); - const tr = new Quad(node.x + hw, node.y, hw, hh); - const bl = new Quad(node.x, node.y + hh, hw, hh); - const br = new Quad(node.x + hw, node.y + hh, hw, hh); - - node.children.push(tl); - node.children.push(tr); - node.children.push(bl); - node.children.push(br); - - for (const dt of node.data) dataToInsert.push(dt); - } - - dataToInsert.push(data); - - node.data = []; - - for (let i = 0; i < 4; i++) { - for (const dt of dataToInsert) _insert(node.children[i], dt, depth + 1); - } -} - -function _getDataInRegion( - node: Quad, - x: number, - y: number, - w: number, - h: number, - hs: Set -) { - if (!rectIntersect(node.x, node.y, node.w, node.h, x, y, w, h)) return; - - for (const data of node.data) { - hs.add(data.value); - } - - for (const child of node.children) { - _getDataInRegion(child, x, y, w, h, hs); - } -} - -export function createQuad(x: number, y: number, w: number, h: number) { - return new Quad(x, y, w, h); -} diff --git a/old/types.ts b/old/types.ts deleted file mode 100644 index d839b0f..0000000 --- a/old/types.ts +++ /dev/null @@ -1,164 +0,0 @@ -export type GraphNode = { - id: number; - x: number; - y: number; -}; - -export type GraphEdge = { - id: number; - sourceId: number; - targetId: number; -}; - -export enum GraphDataType { - NODE, - EDGE -} - -export type NodeDrawData = { - type: GraphDataType.NODE; - sourceOfEdgeIds: Set; - targetOfEdgeIds: Set; - path: Path2D; - shape: GraphShape; -}; - -export type EdgeDrawData = { - type: GraphDataType.EDGE; - shape: GraphShape; - path: Path2D; - linePath: Path2D; - arrowPath: Path2D; - lineSourceX: number; - lineSourceY: number; - lineTargetX: number; - lineTargetY: number; - shapeX: number; - shapeY: number; -}; - -export type GraphShape = { - width: number; - height: number; - drawContent: ( - ctx: CanvasRenderingContext2D, - x: number, - y: number, - w: number, - h: number, - id: number - ) => void; - createPath: ( - x: number, - y: number, - w: number, - h: number, - id: number - ) => Path2D; -}; - -export const defaultNodeShape: GraphShape = { - width: 160, - height: 160, - drawContent: (ctx, x, y, w, _h, id) => { - ctx.fillText(`Node ID: ${id}`, x, y, w); - }, - createPath: (x, y, w) => { - const p = new Path2D(); - - p.arc(x, y, w * 0.5, 0, Math.PI * 2); - p.closePath(); - - return p; - } -}; - -export const defaultEdgeShape: GraphShape = { - width: 48, - height: 48, - drawContent: (ctx, x, y, w, _h, id) => { - ctx.fillText(id.toString(), x, y, w); - }, - createPath: (x, y, w, h) => { - const wh = w * 0.5; - const hh = h * 0.5; - - const p = new Path2D(); - - p.moveTo(x - wh, y); - p.lineTo(x, y + wh); - p.lineTo(x + wh, y); - p.lineTo(x, y - hh); - p.closePath(); - - return p; - } -}; - -export type GraphOptions = { - bgColor: string; - bgDotColor: string; - bgLineWidth: number; - bgLineGap: number; - bgShowDots: boolean; - minScale: number; - maxScale: number; - edgeLineWidth: number; - edgeLineColor: string; - edgeArrowHeight: number; - edgeArrowWidth: number; - edgeShapeColor: string; - edgeContentColor: string; - edgeTextAlign: CanvasTextAlign; - edgeTextBaseline: CanvasTextBaseline; - edgeFont: string; - edgeHoveredLineColor: string; - edgeSelectedLineColor: string; - edgeSelectedShapeColor: string; - edgeSelectedContentColor: string; - nodeLineWidth: number; - nodeLineColor: string; - nodeColor: string; - nodeContentColor: string; - nodeTextAlign: CanvasTextAlign; - nodeTextBaseline: CanvasTextBaseline; - nodeFont: string; - nodeHoveredLineColor: string; - nodeSelectedLineColor: string; - nodeSelectedColor: string; - nodeSelectedContentColor: string; -}; - -export const defaultGraphOptions: GraphOptions = { - bgColor: "#f1f5f9", - bgDotColor: "#64748b", - bgLineWidth: 4, - bgLineGap: 64, - bgShowDots: true, - minScale: 0.25, - maxScale: 10, - edgeLineColor: "black", - edgeLineWidth: 2, - edgeArrowHeight: 20, - edgeArrowWidth: 18, - edgeShapeColor: "white", - edgeContentColor: "black", - edgeTextAlign: "center", - edgeTextBaseline: "middle", - edgeFont: "16px sans-serif", - edgeHoveredLineColor: "#3b82f6", - edgeSelectedLineColor: "#2563eb", - edgeSelectedShapeColor: "#3b82f6", - edgeSelectedContentColor: "white", - nodeLineColor: "black", - nodeLineWidth: 2, - nodeColor: "white", - nodeContentColor: "black", - nodeTextAlign: "center", - nodeTextBaseline: "middle", - nodeFont: "16px sans-serif", - nodeHoveredLineColor: "#3b82f6", - nodeSelectedLineColor: "#2563eb", - nodeSelectedColor: "#3b82f6", - nodeSelectedContentColor: "white" -}; diff --git a/old/utils.ts b/old/utils.ts deleted file mode 100644 index 7a76c70..0000000 --- a/old/utils.ts +++ /dev/null @@ -1,69 +0,0 @@ -export function rectIntersect( - x1: number, - y1: number, - w1: number, - h1: number, - x2: number, - y2: number, - w2: number, - h2: number -) { - return x1 + w1 >= x2 && x1 <= x2 + w2 && y1 + h1 >= y2 && y1 <= y2 + h2; -} - -export function isLineInsideRect( - x1: number, - y1: number, - x2: number, - y2: number, - rx: number, - ry: number, - rw: number, - rh: number -) { - return ( - x1 >= rx && - x1 <= rx + rw && - x2 >= rx && - x2 <= rx + rw && - y1 >= ry && - y1 <= ry + rh && - y2 >= ry && - y1 <= ry + rh - ); -} - -// Ref: http://paulbourke.net/geometry/pointlineplane/javascript.txt -export function lineIntersect( - x1: number, - y1: number, - x2: number, - y2: number, - x3: number, - y3: number, - x4: number, - y4: number, - outPoint?: [number, number] -): boolean { - // Check if none of the lines are of length 0 - if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) return false; - - const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1); - - // Lines are parallel - if (denominator === 0) return false; - - const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; - const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; - - // is the intersection along the segments - if (ua < 0 || ua > 1 || ub < 0 || ub > 1) return false; - - if (outPoint) { - // Return a object with the x and y coordinates of the intersection - outPoint[0] = x1 + ua * (x2 - x1); - outPoint[1] = y1 + ua * (y2 - y1); - } - - return true; -} diff --git a/old/vite-env.d.ts b/old/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/old/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/graph-handler.ts b/src/graph-handler.ts index 85c02e7..5be8d94 100644 --- a/src/graph-handler.ts +++ b/src/graph-handler.ts @@ -1,7 +1,13 @@ -import { GraphRenderer, RedrawType } from "./graph-renderer"; +import { GraphRenderer } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { GraphEdge, GraphNode, GraphDataType } from "./types"; +import { + GraphEdge, + GraphNode, + GraphDataType, + GraphMode, + RedrawType +} from "./types"; export class GraphHandler { private state: GraphState; @@ -11,9 +17,8 @@ export class GraphHandler { private vp: [number, number] = [0, 0]; private cp: [number, number] = [0, 0]; - private prev: [number, number] = [0, 0]; - private evCache: PointerEvent[] = []; private prevDiff = -1; + private evs: Map = new Map(); constructor( view: GraphView, @@ -25,187 +30,153 @@ export class GraphHandler { this.renderer = renderer; } - handleMove = (dwx: number, dwy: number, wx: number, wy: number) => { - const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = - this.state; - - if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { - this.view.moveBy(dwx, dwy); - - return; - } - - this.view.viewPosFromWindowPos(this.vp, wx, wy); + handlePointerDown = (e: PointerEvent) => { + const { moveNodeIds } = this.state; - if (dragLineSourceNode) { - this.state.dragLineX = this.vp[0]; - this.state.dragLineY = this.vp[1]; + this.evs.set(e.pointerId, e); + if (this.evs.size > 1) return; - requestAnimationFrame(this.renderer.drawDragLine); - } + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); if (moveNodeIds.length === 0) { this.checkHover(); - - return; } - const dx = this.vp[0] - moveX; - const dy = this.vp[1] - moveY; + const { hoveredId } = this.state; - this.state.moveX = this.vp[0]; - this.state.moveY = this.vp[1]; - - this.view.startBatch(); - - for (const id of moveNodeIds) { - this.view.moveNode(id, dx, dy); + if (this.view.modes.has(GraphMode.SELECT)) { + if (this.state.hoveredId) { + if (this.view.modes.has(GraphMode.MULTISELECT)) { + this.view.addSelection(hoveredId); + } else { + this.view.select(this.state.hoveredId); + } + } else { + this.view.clearSelection(); + } } - this.view.endBatch(RedrawType.MOVE); + if (!hoveredId) { + if (this.view.modes.has(GraphMode.CREATE_NODE)) { + this.state.options.onCreateNode(this.vp[0], this.vp[1]); + } else if (this.view.modes.has(GraphMode.MOVE_VIEW)) { + this.view.beginMoveView(); + } + } else { + if (this.view.modes.has(GraphMode.CREATE_EDGE)) { + this.view.beginDragLine(); + } else if ( + this.view.modes.has(GraphMode.MOVE_NODE) && + this.state.nodes[hoveredId] + ) { + this.view.beginMoveNodes( + this.view.getSelectedNodeIds(), + this.vp[0], + this.vp[1] + ); + } else if (this.view.modes.has(GraphMode.MOVE_VIEW)) { + this.view.beginMoveView(); + } + } }; - handleMouseMove = (e: MouseEvent) => { - this.handleMove(e.movementX, e.movementY, e.x, e.y); - }; + handlePointerMove = (e: PointerEvent) => { + const { moveNodeIds, moveX, moveY, dragLineSourceNode, isMovingView } = + this.state; - handleMouseDown = (e: MouseEvent) => { - const { moveNodeIds } = this.state; + this.evs.set(e.pointerId, e); - this.view.viewPosFromWindowPos(this.vp, e.x, e.y); + if (this.evs.size > 2) return; - if (moveNodeIds.length === 0) { - this.checkHover(); - } - }; + if ( + this.evs.size === 2 && + !dragLineSourceNode && + moveNodeIds.length === 0 + ) { + let e1: PointerEvent | undefined = undefined; + let e2: PointerEvent | undefined = undefined; - handleTouchStart = (e: TouchEvent) => { - const { moveNodeIds } = this.state; + for (const x of this.evs.entries()) { + if (!e1) e1 = x[1]; + else e2 = x[1]; + } - e.preventDefault(); + if (!e1 || !e2) return; - const touch = e.targetTouches[0]; + const dx = e1.x - e2.x; + const dy = e1.y - e2.y; - this.view.viewPosFromWindowPos(this.vp, touch.clientX, touch.clientY); + const curDiff = dx * dx + dy * dy; - this.prev[0] = touch.clientX; - this.prev[1] = touch.clientY; + if (this.prevDiff > 0) { + const cx = (e1.x + e2.x) * 0.5; + const cy = (e1.y + e2.y) * 0.5; - if (moveNodeIds.length === 0) { - this.checkHover(); - } - }; + this.view.viewPosFromWindowPos(this.vp, cx, cy); - handleTouchMove = (e: TouchEvent) => { - const touch = e.targetTouches[0]; + const diff = curDiff - this.prevDiff; + this.view.zoomBy(diff * 0.00002, this.vp[0], this.vp[1]); - const dx = touch.clientX - this.prev[0]; - const dy = touch.clientY - this.prev[1]; + this.state.options.onViewZoom(); + } - this.prev[0] = touch.clientX; - this.prev[1] = touch.clientY; + this.prevDiff = curDiff; + } - this.handleMove(dx, dy, touch.clientX, touch.clientY); - }; + if (this.evs.size > 1) return; - pointerdownHandler = (ev: PointerEvent) => { - // The pointerdown event signals the start of a touch interaction. - // This event is cached to support 2-finger gestures - this.evCache.push(ev); - }; + if (isMovingView && !dragLineSourceNode && moveNodeIds.length === 0) { + this.view.moveBy(e.movementX, e.movementY); - pointermoveHandler = (ev: PointerEvent) => { - // This function implements a 2-pointer horizontal pinch/zoom gesture. - // - // If the distance between the two pointers has increased (zoom in), - // the target element's background is changed to "pink" and if the - // distance is decreasing (zoom out), the color is changed to "lightblue". - // - // This function sets the target element's border to "dashed" to visually - // indicate the pointer's target received a move event. - - // Find this event in the cache and update its record with this event - const index = this.evCache.findIndex( - cachedEv => cachedEv.pointerId === ev.pointerId - ); - this.evCache[index] = ev; + return; + } - // If two pointers are down, check for pinch gestures - if (this.evCache.length === 2) { - // Calculate the distance between the two pointers - const curDiff = Math.abs( - this.evCache[0].clientX - this.evCache[1].clientX - ); + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); - if (this.prevDiff > 0) { - const cx = (this.evCache[0].clientX + this.evCache[1].clientX) * 0.5; - const cy = (this.evCache[0].clientY + this.evCache[1].clientY) * 0.5; + if (dragLineSourceNode) { + this.state.dragLineX = this.vp[0]; + this.state.dragLineY = this.vp[1]; - this.view.viewPosFromWindowPos(this.vp, cx, cy); + requestAnimationFrame(this.renderer.drawDragLine); + } - if (curDiff > this.prevDiff) { - // The distance between the two pointers has increased + if (moveNodeIds.length === 0) { + this.checkHover(); - const diff = curDiff - this.prevDiff; + return; + } - this.view.zoomBy(diff * 0.01, this.vp[0], this.vp[1]); - } - if (curDiff < this.prevDiff) { - // The distance between the two pointers has decreased + const dx = this.vp[0] - moveX; + const dy = this.vp[1] - moveY; - const diff = this.prevDiff - curDiff; + this.state.moveX = this.vp[0]; + this.state.moveY = this.vp[1]; - this.view.zoomBy(-diff * 0.01, this.vp[0], this.vp[1]); - } - } + this.view.startBatch(); - // Cache the distance for the next move event - this.prevDiff = curDiff; + for (const id of moveNodeIds) { + this.view.moveNode(id, dx, dy); } + + this.view.endBatch(RedrawType.MOVE); }; - pointerupHandler = (ev: PointerEvent) => { - // Remove this pointer from the cache and reset the target's - // background and border - this.removeEvent(ev); - this.state.container.style.background = "white"; - this.state.container.style.border = "1px solid black"; + handlePointerUp = (e: PointerEvent) => { + this.evs.delete(e.pointerId); - // If the number of pointers down is less than two then reset diff tracker - if (this.evCache.length < 2) { + if (this.evs.size < 2) { this.prevDiff = -1; } - }; - removeEvent = (ev: PointerEvent) => { - // Remove this event from the target's cache - const index = this.evCache.findIndex( - cachedEv => cachedEv.pointerId === ev.pointerId - ); - this.evCache.splice(index, 1); - }; - - private isEdgeHovered(x: number, y: number, edge: Edge): boolean { - const { edgeCtx, edgeData } = this.state; + this.view.endMoveView(); + this.view.endMoveNodes(); - const data = edgeData[edge.id]; + const dragLineNodes = this.view.endDragLine(); - if (!data.path || !data.linePath || !data.arrowPath) return false; - - return ( - edgeCtx.isPointInPath(data.path, x, y) || - edgeCtx.isPointInStroke(data.linePath, x, y) || - edgeCtx.isPointInPath(data.arrowPath, x, y) - ); - } - - private isNodeHovered(x: number, y: number, node: Node): boolean { - const { nodeCtx, nodeData } = this.state; - - const data = nodeData[node.id]; - - return data.path ? nodeCtx.isPointInPath(data.path, x, y) : false; - } + if (dragLineNodes) { + this.state.options.onCreateEdge(dragLineNodes[0].id, dragLineNodes[1].id); + } + }; private checkHover = () => { const { nodes, edges } = this.state; @@ -223,10 +194,16 @@ export class GraphHandler { ); for (const id of this.state.drawIds) { - if (nodes[id] && this.isNodeHovered(this.cp[0], this.cp[1], nodes[id])) + if ( + nodes[id] && + this.view.isNodeHovered(this.cp[0], this.cp[1], nodes[id]) + ) this.state.hoveredId = id; - if (edges[id] && this.isEdgeHovered(this.cp[0], this.cp[1], edges[id])) + if ( + edges[id] && + this.view.isEdgeHovered(this.cp[0], this.cp[1], edges[id]) + ) this.state.hoveredId = id; } @@ -254,32 +231,39 @@ export class GraphHandler { }; handleWheel = (e: WheelEvent) => { - this.view.viewPosFromWindowPos(this.vp, e.x, e.y); + if (!this.view.modes.has(GraphMode.ZOOM)) return; + this.view.viewPosFromWindowPos(this.vp, e.x, e.y); this.view.zoomBy(-e.deltaY * 0.001, this.vp[0], this.vp[1]); + + this.state.options.onViewZoom(); }; init() { const { container } = this.state; - container.addEventListener("mousedown", this.handleMouseDown); - container.addEventListener("mousemove", this.handleMouseMove); - container.addEventListener("touchstart", this.handleTouchStart); - container.addEventListener("touchmove", this.handleTouchMove); - container.addEventListener("wheel", this.handleWheel, { passive: true }); + container.style.touchAction = "none"; - container.addEventListener("pointerdown", this.pointerdownHandler); - container.addEventListener("pointermove", this.pointermoveHandler); - container.addEventListener("pointerup", this.pointerupHandler); - container.addEventListener("pointercancel", this.pointerupHandler); - container.addEventListener("pointerout", this.pointerupHandler); - container.addEventListener("pointerleave", this.pointerupHandler); + container.addEventListener("wheel", this.handleWheel, { passive: true }); + container.addEventListener("pointerdown", this.handlePointerDown); + container.addEventListener("pointermove", this.handlePointerMove); + container.addEventListener("pointerup", this.handlePointerUp); + container.addEventListener("pointercancel", this.handlePointerUp); + container.addEventListener("pointerout", this.handlePointerUp); + container.addEventListener("pointerleave", this.handlePointerUp); } destroy() { const { container } = this.state; - container.removeEventListener("mousemove", this.handleMouseMove); + container.style.touchAction = "auto"; + container.removeEventListener("wheel", this.handleWheel); + container.removeEventListener("pointerdown", this.handlePointerDown); + container.removeEventListener("pointermove", this.handlePointerMove); + container.removeEventListener("pointerup", this.handlePointerUp); + container.removeEventListener("pointercancel", this.handlePointerUp); + container.removeEventListener("pointerout", this.handlePointerUp); + container.removeEventListener("pointerleave", this.handlePointerUp); } } diff --git a/src/graph-renderer.ts b/src/graph-renderer.ts index 6a28cd7..79a662b 100644 --- a/src/graph-renderer.ts +++ b/src/graph-renderer.ts @@ -1,16 +1,8 @@ import { GraphState } from "./graph-state"; import { GraphView } from "./graph-view"; -import { GraphEdge, GraphNode, GraphShape } from "./types"; +import { GraphEdge, GraphNode, GraphShape, RedrawType } from "./types"; import { isLineInsideRect, lineIntersect, rectIntersect } from "./utils"; -export enum RedrawType { - ALL = 0, - NODES, - EDGES, - NODES_AND_EDGES, - MOVE -} - export class GraphRenderer { private state: GraphState; private view: GraphView; diff --git a/src/graph-view.ts b/src/graph-view.ts index 957c0e7..d8c244f 100644 --- a/src/graph-view.ts +++ b/src/graph-view.ts @@ -1,5 +1,5 @@ import { GraphHandler } from "./graph-handler"; -import { GraphRenderer, RedrawType } from "./graph-renderer"; +import { GraphRenderer } from "./graph-renderer"; import { GraphState } from "./graph-state"; import { defaultEdgeShape, @@ -8,7 +8,9 @@ import { GraphNode, GraphShape, GraphOptions, - GraphDataType + GraphDataType, + GraphMode, + RedrawType } from "./types"; export function createNodeShape(shape?: Partial): GraphShape { @@ -34,6 +36,8 @@ export class GraphView { private nodeCount = 0; private edgeCount = 0; + modes = new Set(); + constructor(container: HTMLElement, options: Partial = {}) { this.state = new GraphState(container, options); this.renderer = new GraphRenderer(this, this.state); @@ -65,7 +69,7 @@ export class GraphView { ...options }; - if (!this.isBatching) this.renderer.requestDraw(); + if (!this.isBatching) this.renderer.draw(); } resize(): void { @@ -438,6 +442,9 @@ export class GraphView { this.state.dragLineSourceNode = undefined; this.state.quad.clear(); + this.nodeCount = 0; + this.edgeCount = 0; + if (!this.isBatching) { this.renderer.draw(RedrawType.NODES_AND_EDGES); } @@ -712,6 +719,36 @@ export class GraphView { isMovingView() { return this.state.isMovingView; } + + isEdgeHovered(x: number, y: number, edge: Edge): boolean { + const { edgeCtx, edgeData } = this.state; + + const data = edgeData[edge.id]; + + if (!data.path || !data.linePath || !data.arrowPath) return false; + + return ( + edgeCtx.isPointInPath(data.path, x, y) || + edgeCtx.isPointInStroke(data.linePath, x, y) || + edgeCtx.isPointInPath(data.arrowPath, x, y) + ); + } + + isNodeHovered(x: number, y: number, node: Node): boolean { + const { nodeCtx, nodeData } = this.state; + + const data = nodeData[node.id]; + + return data.path ? nodeCtx.isPointInPath(data.path, x, y) : false; + } + + toggleMode(mode: GraphMode) { + if (this.modes.has(mode)) { + this.modes.delete(mode); + } else { + this.modes.add(mode); + } + } } export function createGraphView( diff --git a/src/types.ts b/src/types.ts index 5e0acd3..aaedace 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,3 +1,5 @@ +import { noop } from "./utils"; + export type GraphNode = { id: number; x: number; @@ -95,6 +97,24 @@ export const defaultEdgeShape: GraphShape = { } }; +export enum GraphMode { + MOVE_VIEW, + ZOOM, + MOVE_NODE, + CREATE_NODE, + CREATE_EDGE, + SELECT, + MULTISELECT +} + +export enum RedrawType { + ALL = 0, + NODES, + EDGES, + NODES_AND_EDGES, + MOVE +} + export type GraphOptions = { width: number; height: number; @@ -132,6 +152,9 @@ export type GraphOptions = { nodeSelectedLineColor: string; nodeSelectedColor: string; nodeSelectedContentColor: string; + onViewZoom: () => void; + onCreateNode: (x: number, y: number) => void; + onCreateEdge: (sourceId: number, targetId: number) => void; }; export const defaultGraphOptions: GraphOptions = { @@ -170,5 +193,8 @@ export const defaultGraphOptions: GraphOptions = { nodeHoveredLineColor: "#3b82f6", nodeSelectedLineColor: "#2563eb", nodeSelectedColor: "#3b82f6", - nodeSelectedContentColor: "white" + nodeSelectedContentColor: "white", + onViewZoom: noop, + onCreateNode: noop, + onCreateEdge: noop }; diff --git a/src/utils.ts b/src/utils.ts index 7a76c70..125e88a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -67,3 +67,7 @@ export function lineIntersect( return true; } + +export function noop() { + // noop +} From 661f2fb951906f8a19aaf825f3765ca8865694ef Mon Sep 17 00:00:00 2001 From: Hartono Chandra Date: Thu, 24 Nov 2022 16:05:45 +0700 Subject: [PATCH 55/56] fix label and preview script --- index.html | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/index.html b/index.html index 1087450..8323b84 100644 --- a/index.html +++ b/index.html @@ -63,6 +63,7 @@ value="100" maxlength="6" style="padding: 0.5rem; width: 5rem; text-align: right" + aria-label="Node Count" />