diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index 0053584133..ebc50abcbd 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -4,10 +4,11 @@ on: push: branches: - '**' + - '!master' # do not run on master tags-ignore: - '*' paths-ignore: - - '**.md' + - '**.md' # ignore changes to markdown files jobs: test: diff --git a/CHANGELOG.md b/CHANGELOG.md index ba32ff81bf..8d98e86957 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.7.6](https://github.com/webern-unibas-ch/awg-app/compare/v0.7.5...v0.7.6) (2020-10-09) + +### Features + +- **shared:** add directive for external links ([6a56a04](https://github.com/webern-unibas-ch/awg-app/commit/6a56a04538bb7a015406b08994b3ea5df9b79848)) + +### Bug Fixes + +- **app:** move target blank from links to directive ([af4223f](https://github.com/webern-unibas-ch/awg-app/commit/af4223fba57ecdd08dbc8db34304896eef2533ab)) +- **core:** move analytics config also into service ([6599fba](https://github.com/webern-unibas-ch/awg-app/commit/6599fba83af1af04cfac34796d70ecdf45b51ccd)) +- **core:** move analytics handling into service ([a6faaf3](https://github.com/webern-unibas-ch/awg-app/commit/a6faaf3c61c6d8c1adcc9452b29d93c7113eb88d)) +- **core:** move analytics id to app config ([57020b8](https://github.com/webern-unibas-ch/awg-app/commit/57020b894fa9c17cf54c07e462548b01305af55b)) +- **shared:** fix errors with osm and external link directive ([769fc1a](https://github.com/webern-unibas-ch/awg-app/commit/769fc1a9d3140969ace45dd6a3461c7dc582639a)) + ### [0.7.5](https://github.com/webern-unibas-ch/awg-app/compare/v0.7.4...v0.7.5) (2020-08-28) ### Features diff --git a/package.json b/package.json index 59e71f592a..756e7a19e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "awg-app", - "version": "0.7.5", + "version": "0.7.6", "license": "MIT", "author": { "name": "Stefan Münnich", @@ -33,9 +33,10 @@ "lint": "ng lint awg-app", "lint-staged": "lint-staged", "tslint-check": "tslint-config-prettier-check ./tslint.json", - "format:check": "prettier --check \"src/**/*.ts\"", - "format:fix": "pretty-quick --staged", - "doc": "yarn compodoc --tsconfig tsconfig.base.json --theme Readthedocs --output dist/awg-app/compodoc --disableRoutesGraph", + "format:check": "prettier --check \"src/**/*.{ts,js,css,html}\"", + "format:write": "prettier --write \"src/**/*.{ts,js,css,html}\"", + "format:fix-staged": "pretty-quick --staged", + "doc": "yarn compodoc --tsconfig tsconfig.doc.json --theme Readthedocs --output dist/awg-app/compodoc --disableRoutesGraph", "serve:doc": "yarn doc --serve --watch", "build:doc": "yarn doc", "build": "ng build", @@ -66,20 +67,20 @@ }, "husky": { "hooks": { - "pre-commit": "run-s -l format:fix lint-staged", + "pre-commit": "run-s -l format:fix-staged lint-staged", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, "prettier": { + "arrowParens": "avoid", + "bracketSpacing": true, + "jsxBracketSameLine": true, "printWidth": 120, - "tabWidth": 4, - "useTabs": false, "semi": true, "singleQuote": true, + "tabWidth": 4, "trailingComma": "none", - "bracketSpacing": true, - "jsxBracketSameLine": true, - "arrowParens": "avoid" + "useTabs": false }, "dependencies": { "@angular/animations": "~10.0.4", @@ -92,22 +93,22 @@ "@angular/platform-browser-dynamic": "~10.0.4", "@angular/platform-server": "~10.0.4", "@angular/router": "~10.0.4", - "@ctrl/ngx-codemirror": "^4.0.0", + "@ctrl/ngx-codemirror": "^4.0.1", "@fortawesome/angular-fontawesome": "^0.7.0", - "@fortawesome/fontawesome-svg-core": "^1.2.30", - "@fortawesome/free-solid-svg-icons": "^5.14.0", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-solid-svg-icons": "^5.15.1", "@kolkov/ngx-gallery": "^1.2.3", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "bootstrap": "^4.5.2", - "codemirror": "^5.57.0", + "codemirror": "^5.58.1", "core-js": "^3.6.5", - "d3-drag": "^1.2.5", + "d3-drag": "^2.0.0", "d3-force": "^2.0.1", "d3-selection": "^1.4.2", - "d3-zoom": "^1.8.3", + "d3-zoom": "^2.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.4.1", - "n3": "^1.6.2", + "n3": "^1.6.3", "ngx-json-viewer": "^2.4.0", "rdfstore": "^0.9.17", "rxjs": "~6.5.5", @@ -119,19 +120,19 @@ "@angular-devkit/build-angular": "~0.1000.3", "@angular/cli": "~10.0.3", "@angular/compiler-cli": "~10.0.4", - "@commitlint/cli": "^9.1.2", - "@commitlint/config-angular": "^9.1.2", + "@commitlint/cli": "^11.0.0", + "@commitlint/config-angular": "^11.0.0", "@compodoc/compodoc": "^1.1.11", - "@types/d3": "^5.7.2", + "@types/d3": "^5.16.3", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", - "@types/node": "^14.6.1", + "@types/node": "^14.11.5", "angular-cli-ghpages": "^0.6.2", "codelyzer": "^6.0.0", "conventional-recommended-bump": "^6.0.10", "cross-var": "^1.1.0", - "gzipper": "^4.0.0", - "husky": "^4.2.5", + "gzipper": "^4.0.2", + "husky": "^4.3.0", "jasmine-core": "~3.5.0", "jasmine-spec-reporter": "~5.0.0", "karma": "~5.0.0", @@ -139,11 +140,11 @@ "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~3.3.0", "karma-jasmine-html-reporter": "^1.5.0", - "lint-staged": "^10.2.13", + "lint-staged": "^10.4.0", "ng-lint-staged": "^0.1.6", "npm-run-all": "^4.1.5", - "prettier": "~2.1.1", - "pretty-quick": "^3.0.0", + "prettier": "~2.1.2", + "pretty-quick": "^3.0.2", "protractor": "~7.0.0", "source-map-explorer": "^2.5.0", "standard-version": "^9.0.0", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 81967fe553..17a0376723 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; -import { RouterEventsService } from '@awg-core/services'; +import { AnalyticsService, RouterEventsService } from '@awg-core/services'; /** * The main component of the AWG App. @@ -20,15 +20,17 @@ export class AppComponent { * It declares private instances of the Angular router and the RouterEventsService. * * @param {Router} router Instance of the Angular router. + * @param {AnalyticsService} analyticsService Instance of the AnalyticsService. * @param {RouterEventsService} routerEventsService Instance of the RouterEventsService. */ - constructor(private readonly router: Router, private routerEventsService: RouterEventsService) { + constructor( + private readonly router: Router, + private analyticsService: AnalyticsService, + private routerEventsService: RouterEventsService + ) { this.router.events.subscribe(event => { if (event instanceof NavigationEnd) { - // catch GoogleAnalytics pageview events, - // cf. https://codeburst.io/using-google-analytics-with-angular-25c93bffaa18 - (window as any).ga('set', 'page', event.urlAfterRedirects); - (window as any).ga('send', 'pageview'); + this.analyticsService.trackPageView(event.urlAfterRedirects); } }); } diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 0a2dfa6e66..92335b7b33 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -16,6 +16,26 @@ export class AppConfig { return root + api; } + /** + * Getter for the URL of the Analytics endpoint + * ({@link https://www.google-analytics.com/}). + * + * @returns {string} + */ + public static get ANALYTICS_ENDPOINT(): string { + return 'https://www.google-analytics.com/'; + } + + /** + * Getter for the Analytics id + * ({@link 'UA-XXXXXXX-Y'}). + * + * @returns {string} + */ + public static get ANALYTICS_ID(): string { + return 'UA-64657372-2'; + } + /** * Getter for the URL of the Inseri Test Instance * ({@link http://test-nieos.nie-ine.ch}). @@ -115,7 +135,7 @@ export class AppConfig { } /** - * Getter for the unsanitized OSM emebed link. + * Getter for the unsanitized OSM embed link. * * @returns {string} */ diff --git a/src/app/app.globals.ts b/src/app/app.globals.ts index d88e720289..31d24e91c1 100644 --- a/src/app/app.globals.ts +++ b/src/app/app.globals.ts @@ -1,15 +1,15 @@ // THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT MANUALLY! -// Generated last time on Fri Aug 28 14:15:55 CEST 2020 +// Generated last time on Fri Oct 9 12:39:18 CEST 2020 /** * The latest version of the AWG App */ -export const appVersion = '0.7.5'; +export const appVersion = '0.7.6'; /** * The release date of the latest version of the AWG App */ -export const appVersionReleaseDate = '28. August 2020'; +export const appVersionReleaseDate = '09. Oktober 2020'; /** * The URL of the AWG App diff --git a/src/app/core/core-models/geo-names.model.ts b/src/app/core/core-models/geo-names.model.ts index 7e30ed91f4..5f0c67579c 100644 --- a/src/app/core/core-models/geo-names.model.ts +++ b/src/app/core/core-models/geo-names.model.ts @@ -73,24 +73,11 @@ export class GeoNames { const geoIcon = '' + this.shortLabel + ''; const geoLink = - '' + - geoIcon + - ''; + ''; - wikiLink = - '' + - wikiIcon + - ''; + wikiLink = ' - Prototyp AWG-Online-Edition -

+

Prototyp AWG-Online-Edition

- + Version {{ pageMetaData?.version }}{{ pageMetaData?.versionReleaseDate }}

diff --git a/src/app/core/footer/footer-logo/footer-logo.component.html b/src/app/core/footer/footer-logo/footer-logo.component.html index 6bf3d74f1c..c141147c4e 100644 --- a/src/app/core/footer/footer-logo/footer-logo.component.html +++ b/src/app/core/footer/footer-logo/footer-logo.component.html @@ -1,3 +1,3 @@ - + {{ logo.alt }} diff --git a/src/app/core/navbar/navbar.component.html b/src/app/core/navbar/navbar.component.html index d0f1e805e4..48121baaf7 100644 --- a/src/app/core/navbar/navbar.component.html +++ b/src/app/core/navbar/navbar.component.html @@ -4,8 +4,6 @@ tag linkRegArr = regExLink.exec(splitArr[1]); - outStr = '' + labelStr + ''; + outStr = '' + labelStr + ''; } else if (labelStr !== 'DOI') { // ... tag is missing, add it - outStr = '' + labelStr + ''; + outStr = '' + labelStr + ''; } else { // no links, pure string outStr = labelStr + ': ' + splitArr[1]; diff --git a/src/app/core/services/index.ts b/src/app/core/services/index.ts index 50067ab69f..9283e1dfbb 100644 --- a/src/app/core/services/index.ts +++ b/src/app/core/services/index.ts @@ -7,6 +7,7 @@ * */ +import { AnalyticsService } from './analytics-sercvice'; import { ApiService } from './api-service'; import { ConversionService } from './conversion-service'; import { CoreService } from './core-service'; @@ -18,6 +19,7 @@ import { SideInfoService } from './side-info-service'; import { StorageService } from './storage-service'; export { + AnalyticsService, ApiService, ConversionService, CoreService, diff --git a/src/app/shared/address/address.component.html b/src/app/shared/address/address.component.html index 258bc4c86d..38d0c85e3d 100644 --- a/src/app/shared/address/address.component.html +++ b/src/app/shared/address/address.component.html @@ -1,9 +1,7 @@

- {{ - pageMetaData?.awgProjectName - }} + {{ pageMetaData?.awgProjectName }}

diff --git a/src/app/shared/external-link/external-link.directive.spec.ts b/src/app/shared/external-link/external-link.directive.spec.ts new file mode 100644 index 0000000000..316b524cc9 --- /dev/null +++ b/src/app/shared/external-link/external-link.directive.spec.ts @@ -0,0 +1,166 @@ +import { Component, DebugElement } from '@angular/core'; +import { By } from '@angular/platform-browser'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; + +import { ExternalLinkDirective } from './external-link.directive'; + +@Component({ + template: `Link External + +

+ Link External Dynamic + +

+ Link Internal + +

+ Link Internal Dynamic + +

+ Link without href` +}) +class TestExernalLinkComponent { + hostname = location.hostname; + dynamicInternalLink = this.hostname + '#anchor'; + dynamicExternalLink = 'https://coryrylan.com/blog/managing-external-links-safely-in-angular'; + + doSomething() { + console.log('Clicked on link without href'); + } +} + +describe('ExternalLinkDirective', () => { + let component: TestExernalLinkComponent; + let fixture: ComponentFixture; + + let aDes: DebugElement[]; + let bareADes: DebugElement[]; + + const expectedExternalLink = 'https://coryrylan.com/blog/managing-external-links-safely-in-angular'; + const expectedNewExternalLink = 'https://anton-webern.ch/'; + const expectedInternalLink = '#anchor'; + const expectedRelAttr = 'noopener noreferrer'; + const expectedTargetAttr = '_blank'; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestExernalLinkComponent, ExternalLinkDirective] + }); + + fixture = TestBed.createComponent(TestExernalLinkComponent); + component = fixture.componentInstance; + + fixture.detectChanges(); // initial binding + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should have 4 anchor elements with href attributes', () => { + // all elements with an attached ExternalLinkDirective (a[href]) + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + + expect(aDes.length).toBe(4, 'should be 4'); + }); + + it('should have 1 anchor element without href attributes', () => { + bareADes = fixture.debugElement.queryAll(By.css('a:not([href])')); + + expect(bareADes.length).toBe(1, 'should be 1'); + }); + + it('should apply [href|target|rel] values to 1st anchor element (external)', () => { + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + const aEl = aDes[0].nativeElement; + + expect(aEl.href).toBeTruthy(); + expect(aEl.href).toBe(expectedExternalLink, `should be ${expectedExternalLink}`); + + expect(aEl.rel).toBeTruthy(); + expect(aEl.rel).toBe(expectedRelAttr, `should be ${expectedRelAttr}`); + + expect(aEl.target).toBeTruthy(); + expect(aEl.target).toBe(expectedTargetAttr, `should be ${expectedTargetAttr}`); + + expect(aEl.innerText).toBe('Link External', 'should be "Link External"'); + }); + + it('should apply [href|target|rel] values to 2nd anchor element (dynamic external)', () => { + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + const aEl = aDes[1].nativeElement; + + expect(aEl.href).toBeTruthy(); + expect(aEl.href).toBe(expectedExternalLink, `should be ${expectedExternalLink}`); + + expect(aEl.rel).toBeTruthy(); + expect(aEl.rel).toBe(expectedRelAttr, `should be ${expectedRelAttr}`); + + expect(aEl.target).toBeTruthy(); + expect(aEl.target).toBe(expectedTargetAttr, `should be ${expectedTargetAttr}`); + + expect(aEl.innerText).toBe('Link External Dynamic', 'should be "Link External Dynamic"'); + }); + + it('should not apply [target|rel] values to 3rd anchor element (internal)', () => { + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + const aEl = aDes[2].nativeElement; + + const expectedHref = aEl.baseURI + aEl.hostname + expectedInternalLink; + + expect(aEl.href).toBeTruthy(); + expect(aEl.href).toBe(expectedHref, `should be ${expectedHref}`); + + expect(aEl.rel).not.toBeTruthy('should be empty string'); + expect(aEl.target).not.toBeTruthy('should be empty string'); + + expect(aEl.innerText).toBe('Link Internal', 'should be "Link Internal"'); + }); + + it('should not apply [target|rel] values to 4th anchor element (dynamic internal)', () => { + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + const aEl = aDes[3].nativeElement; + + const expectedHref = aEl.baseURI + aEl.hostname + expectedInternalLink; + + expect(aEl.href).toBeTruthy(); + expect(aEl.href).toBe(expectedHref, `should be ${expectedHref}`); + + expect(aEl.rel).not.toBeTruthy('should be empty string'); + expect(aEl.target).not.toBeTruthy('should be empty string'); + + expect(aEl.innerText).toBe('Link Internal Dynamic', 'should be "Link Internal Dynamic"'); + }); + + it('should not apply [href|target|rel] values to bare anchor', () => { + bareADes = fixture.debugElement.queryAll(By.css('a:not([href])')); + + expect(bareADes[0].properties.href).not.toBeTruthy('should be empty string'); + expect(bareADes[0].properties.target).not.toBeTruthy('should be empty string'); + expect(bareADes[0].properties.rel).not.toBeTruthy('should be empty string'); + expect(bareADes[0].properties.innerText).toBe('Link without href', 'should be "Link without href"'); + }); + + it('should reflect input change for [href] values', () => { + component.dynamicExternalLink = expectedNewExternalLink; + + // apply changes + fixture.detectChanges(); + + aDes = fixture.debugElement.queryAll(By.directive(ExternalLinkDirective)); + const aEl = aDes[1].nativeElement; + + expect(aEl.href).toBeTruthy(); + expect(aEl.href).toBe(expectedNewExternalLink, `should be ${expectedNewExternalLink}`); + + expect(aEl.rel).toBeTruthy(); + expect(aEl.rel).toBe(expectedRelAttr, `should be ${expectedRelAttr}`); + + expect(aEl.target).toBeTruthy(); + expect(aEl.target).toBe(expectedTargetAttr, `should be ${expectedTargetAttr}`); + + expect(aEl.innerText).toBe('Link External Dynamic', 'should be "Link External Dynamic"'); + }); +}); diff --git a/src/app/shared/external-link/external-link.directive.ts b/src/app/shared/external-link/external-link.directive.ts new file mode 100644 index 0000000000..af429f1c94 --- /dev/null +++ b/src/app/shared/external-link/external-link.directive.ts @@ -0,0 +1,77 @@ +import { Directive, HostBinding, Inject, Input, OnChanges, PLATFORM_ID } from '@angular/core'; +import { isPlatformBrowser } from '@angular/common'; + +/** + * The external link directive. + * + * It catches links with href attributes and + * adds specific attributes if href has an external target. + */ +@Directive({ + // tslint:disable-next-line:directive-selector + selector: 'a[href]' +}) +export class ExternalLinkDirective implements OnChanges { + /** + * HostBinding: hrefAttr. + * + * It binds to a link's href attribute. + */ + @HostBinding('attr.href') hrefAttr = ''; + + /** + * HostBinding: targetAttr. + * + * It binds to a link's target attribute. + */ + @HostBinding('attr.target') targetAttr = ''; + + /** + * HostBinding: relAttr. + * + * It binds to a link's rel attribute. + */ + @HostBinding('attr.rel') relAttr = ''; + + /** + * Input variable: href. + * + * It keeps the href value of a link. + */ + @Input() href: string; + + /** + * Constructor of the ExternalLinkDirective. + * + * It declares and injects a private instance of the Angular PLATFORM_ID. + * + * @param {PLATFORM_ID} platformId Instance of the Angular PLATFORM_ID. + */ + constructor(@Inject(PLATFORM_ID) private platformId: string) {} + + /** + * Angular life cycle hook: ngOnChanges. + * + * It checks for changes of the given input. + */ + ngOnChanges() { + this.hrefAttr = this.href; + + if (this.isExternalLink()) { + this.targetAttr = '_blank'; + this.relAttr = 'noopener noreferrer'; + } + } + + /** + * Private method: isExternalLink. + * + * It detects if the app is running in the browser + * and if value of href attribute is included in location.hostname. + * + * @returns {boolean} Sets the isExternalLink flag. + */ + private isExternalLink(): boolean { + return isPlatformBrowser(this.platformId) && !this.href.includes(location.hostname); + } +} diff --git a/src/app/shared/modal/modal.component.ts b/src/app/shared/modal/modal.component.ts index fc50692d60..054fb35c8d 100644 --- a/src/app/shared/modal/modal.component.ts +++ b/src/app/shared/modal/modal.component.ts @@ -39,10 +39,10 @@ const MODALCONTENTSNIPPETS = { hintEditionGraph: '

\n' + ' Hinweise zur Nutzung:
\n' + - ' RDF Triples: Das Resource Description Framework (RDF) stellt grundlegende syntaktische und semantische Elemente zur Beschreibung digitaler Repräsentationen von Objekten (Ressourcen) zur Verfügung. Dabei folgt es einer dreigliedrigen Struktur der Form <SUBJEKT> <PRÄDIKAT> <OBJEKT>, die auch als Triple bezeichnet wird. Eine Menge solcher Triples kann als (gerichteter) Graph verstanden und visualisiert werden. Unter dem Punkt RDF Triples sind die für die vorliegende Graph-Visualisierung zugrundeliegenden RDF-Daten einsehbar und interaktiv lokal bearbeitbar. (Achtung: Änderungen werden von der AWG-APP nicht gespeichert und sollten bei Bedarf lokal gesichert werden.) Weiterführende Informationen zu RDF finden sich unter: https://www.w3.org/RDF/.

\n' + - ' SPARQL Abfrage: Die SPARQL Protocol And RDF Query Language (SPARQL) stellt u.a. eine Abfragesprache für graph-basierte Datensätze bereit. Sie ermöglicht komplexe Abfragen und Manipulationen von in RDF dargestellten und strukturierten Daten. Dabei wird nach dem Prinzip des graph pattern matching der RDF-Graph nach einer angefragten Triple-Folge durchsucht. Unter dem Punkt SPARQL Abfrage lassen sich die Suchanfragen interaktiv anpassen. Einige Beispielabfragen sind bereits in einem Auswahl-Dropdown-Menü vorformuliert. Weiterführende Informationen zu SPARQL finden sich unter: https://www.w3.org/TR/sparql11-query/.

\n' + + ' RDF Triples: Das Resource Description Framework (RDF) stellt grundlegende syntaktische und semantische Elemente zur Beschreibung digitaler Repräsentationen von Objekten (Ressourcen) zur Verfügung. Dabei folgt es einer dreigliedrigen Struktur der Form <SUBJEKT> <PRÄDIKAT> <OBJEKT>, die auch als Triple bezeichnet wird. Eine Menge solcher Triples kann als (gerichteter) Graph verstanden und visualisiert werden. Unter dem Punkt RDF Triples sind die für die vorliegende Graph-Visualisierung zugrundeliegenden RDF-Daten einsehbar und interaktiv lokal bearbeitbar. (Achtung: Änderungen werden von der AWG-APP nicht gespeichert und sollten bei Bedarf lokal gesichert werden.) Weiterführende Informationen zu RDF finden sich unter: https://www.w3.org/RDF/.

\n' + + ' SPARQL Abfrage: Die SPARQL Protocol And RDF Query Language (SPARQL) stellt u.a. eine Abfragesprache für graph-basierte Datensätze bereit. Sie ermöglicht komplexe Abfragen und Manipulationen von in RDF dargestellten und strukturierten Daten. Dabei wird nach dem Prinzip des graph pattern matching der RDF-Graph nach einer angefragten Triple-Folge durchsucht. Unter dem Punkt SPARQL Abfrage lassen sich die Suchanfragen interaktiv anpassen. Einige Beispielabfragen sind bereits in einem Auswahl-Dropdown-Menü vorformuliert. Weiterführende Informationen zu SPARQL finden sich unter: https://www.w3.org/TR/sparql11-query/.

\n' + '\n' + - ' Resultat: Der durch die SPARQL Abfrage über die RDF Triples zurückgelieferte Datensatz wird unter dem Punkt Resultat als dynamisches Graph-Netzwerk aus bezeichneten Knoten und Kanten mit Hilfe der JavaScript-Bibliothek d3.js visualisiert. Die Darstellung ist zoom- und verschiebbar, die Position einzelner Knoten lässt sich ebenfalls durch "Ziehen" mit der Maus verändern. Die Anzahl der angezeigten Triples lässt sich je nach Größe des Ergebnis-Datensatzes über ein Auswahl-Dropdown-Menü filtern; in der Voreinstellung findet eine Beschränkung auf 50 Triples statt.
\n' + + ' Resultat: Der durch die SPARQL Abfrage über die RDF Triples zurückgelieferte Datensatz wird unter dem Punkt Resultat als dynamisches Graph-Netzwerk aus bezeichneten Knoten und Kanten mit Hilfe der JavaScript-Bibliothek d3.js visualisiert. Die Darstellung ist zoom- und verschiebbar, die Position einzelner Knoten lässt sich ebenfalls durch "Ziehen" mit der Maus verändern. Die Anzahl der angezeigten Triples lässt sich je nach Größe des Ergebnis-Datensatzes über ein Auswahl-Dropdown-Menü filtern; in der Voreinstellung findet eine Beschränkung auf 50 Triples statt.
\n' + '

' }; diff --git a/src/app/shared/open-street-map/open-street-map.component.html b/src/app/shared/open-street-map/open-street-map.component.html index 5e53f7e327..60e403587f 100644 --- a/src/app/shared/open-street-map/open-street-map.component.html +++ b/src/app/shared/open-street-map/open-street-map.component.html @@ -9,6 +9,6 @@ diff --git a/src/app/shared/open-street-map/open-street-map.component.spec.ts b/src/app/shared/open-street-map/open-street-map.component.spec.ts index 76682ac93d..453e2bfb20 100644 --- a/src/app/shared/open-street-map/open-street-map.component.spec.ts +++ b/src/app/shared/open-street-map/open-street-map.component.spec.ts @@ -6,6 +6,7 @@ import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { getAndExpectDebugElementByCss } from '@testing/expect-helper'; import { OpenStreetMapComponent } from './open-street-map.component'; +import { AppConfig } from '@awg-app/app.config'; describe('OpenStreetMapComponent (DONE)', () => { let component: OpenStreetMapComponent; @@ -18,7 +19,7 @@ describe('OpenStreetMapComponent (DONE)', () => { let expectedUnsafeOsmEmbedUrl: string; let expectedUnsafeOsmLinkUrl: string; let expectedOsmEmbedUrl: SafeResourceUrl; - let expectedOsmLinkUrl: SafeResourceUrl; + let expectedOsmLinkUrl: string; let expectedOsmLinkLabel: string; let expectedOsmIFrameSettings: { width; height; scrolling }; @@ -46,14 +47,12 @@ describe('OpenStreetMapComponent (DONE)', () => { }; // unsafe link values for open streets map - expectedUnsafeOsmEmbedUrl = - 'https://www.openstreetmap.org/export/embed.html?bbox=7.582175731658936%2C47.55789611508066%2C7.586840093135835%2C47.56003739001212&layer=mapnik&marker=47.55896585846639%2C7.584506571292877'; - expectedUnsafeOsmLinkUrl = - 'https://www.openstreetmap.org/?mlat=47.55897&mlon=7.58451#map=19/47.55897/7.58451'; + expectedUnsafeOsmEmbedUrl = AppConfig.UNSAFE_OSM_EMBED_URL; + expectedUnsafeOsmLinkUrl = AppConfig.UNSAFE_OSM_LINK_URL; // bypass the unsafe values expectedOsmEmbedUrl = domSanitizer.bypassSecurityTrustResourceUrl(expectedUnsafeOsmEmbedUrl); - expectedOsmLinkUrl = domSanitizer.bypassSecurityTrustResourceUrl(expectedUnsafeOsmLinkUrl); + expectedOsmLinkUrl = domSanitizer.sanitize(SecurityContext.URL, expectedUnsafeOsmLinkUrl); }); afterAll(() => { @@ -142,7 +141,7 @@ describe('OpenStreetMapComponent (DONE)', () => { const linkEl = linkDes[0].nativeElement; // sanitize the bypassed value - const sanitizedLinkUrl = domSanitizer.sanitize(SecurityContext.RESOURCE_URL, expectedOsmLinkUrl); + const sanitizedLinkUrl = expectedOsmLinkUrl; // check for the href attribute to contain the sanitized SafeResourceUrl expect(linkEl.href).toBeDefined(); expect(linkEl.href).toBe(sanitizedLinkUrl, `should be ${sanitizedLinkUrl}`); diff --git a/src/app/shared/open-street-map/open-street-map.component.ts b/src/app/shared/open-street-map/open-street-map.component.ts index 8272713210..f94ff2fecb 100644 --- a/src/app/shared/open-street-map/open-street-map.component.ts +++ b/src/app/shared/open-street-map/open-street-map.component.ts @@ -28,7 +28,7 @@ export class OpenStreetMapComponent { * It keeps the sanitized link to the OSM page. */ @Input() - osmLinkUrl: SafeResourceUrl; + osmLinkUrl: string; /** * Public variable: osmLinkLabel. diff --git a/src/app/shared/shared-ngbootstrap.module.ts b/src/app/shared/shared-ngbootstrap.module.ts new file mode 100644 index 0000000000..782d41052d --- /dev/null +++ b/src/app/shared/shared-ngbootstrap.module.ts @@ -0,0 +1,35 @@ +import { NgModule } from '@angular/core'; +import { + NgbAccordionModule, + NgbButtonsModule, + NgbCollapseModule, + NgbDropdownModule, + NgbModalModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule +} from '@ng-bootstrap/ng-bootstrap'; + +@NgModule({ + imports: [ + NgbAccordionModule, + NgbButtonsModule, + NgbCollapseModule, + NgbDropdownModule, + NgbModalModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule + ], + exports: [ + NgbAccordionModule, + NgbButtonsModule, + NgbCollapseModule, + NgbDropdownModule, + NgbModalModule, + NgbNavModule, + NgbPaginationModule, + NgbTooltipModule + ] +}) +export class SharedNgbootstrapModule {} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 6ad3a6c2e1..fb628e0275 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -8,18 +8,9 @@ import { RouterModule } from '@angular/router'; import { CompileHtmlModule } from './compile-html'; import { CodemirrorModule } from '@ctrl/ngx-codemirror'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; -import { - NgbAccordionModule, - NgbButtonsModule, - NgbCollapseModule, - NgbDropdownModule, - NgbModalModule, - NgbNavModule, - NgbPaginationModule, - NgbTooltipModule -} from '@ng-bootstrap/ng-bootstrap'; import { NgxGalleryModule } from '@kolkov/ngx-gallery'; import { NgxJsonViewerModule } from 'ngx-json-viewer'; +import { SharedNgbootstrapModule } from '@awg-shared/shared-ngbootstrap.module'; // // shared components @@ -31,6 +22,10 @@ import { OpenStreetMapComponent } from './open-street-map/open-street-map.compon import { RouterLinkButtonGroupComponent } from './router-link-button-group/router-link-button-group.component'; import { TwelveToneSpinnerComponent } from './twelve-tone-spinner/twelve-tone-spinner.component'; +// +// shared directives +import { ExternalLinkDirective } from './external-link/external-link.directive'; + // // shared pipes import { OrderByPipe } from './order-by/order-by.pipe'; @@ -49,16 +44,9 @@ import { OrderByPipe } from './order-by/order-by.pipe'; CompileHtmlModule, CodemirrorModule, FontAwesomeModule, - NgbAccordionModule, - NgbButtonsModule, - NgbCollapseModule, - NgbDropdownModule, - NgbModalModule, - NgbNavModule, - NgbPaginationModule, - NgbTooltipModule, NgxGalleryModule, - NgxJsonViewerModule + NgxJsonViewerModule, + SharedNgbootstrapModule ], declarations: [ AddressComponent, @@ -68,6 +56,7 @@ import { OrderByPipe } from './order-by/order-by.pipe'; OpenStreetMapComponent, RouterLinkButtonGroupComponent, TwelveToneSpinnerComponent, + ExternalLinkDirective, OrderByPipe ], exports: [ @@ -78,16 +67,9 @@ import { OrderByPipe } from './order-by/order-by.pipe'; RouterModule, CompileHtmlModule, FontAwesomeModule, - NgbAccordionModule, - NgbButtonsModule, - NgbCollapseModule, - NgbDropdownModule, - NgbModalModule, - NgbNavModule, - NgbPaginationModule, - NgbTooltipModule, NgxGalleryModule, NgxJsonViewerModule, + SharedNgbootstrapModule, AddressComponent, HeadingComponent, @@ -96,6 +78,7 @@ import { OrderByPipe } from './order-by/order-by.pipe'; OpenStreetMapComponent, RouterLinkButtonGroupComponent, TwelveToneSpinnerComponent, + ExternalLinkDirective, OrderByPipe ] }) diff --git a/src/app/side-info/contact-info/contact-info.component.spec.ts b/src/app/side-info/contact-info/contact-info.component.spec.ts index b563eacdfa..f74707f938 100644 --- a/src/app/side-info/contact-info/contact-info.component.spec.ts +++ b/src/app/side-info/contact-info/contact-info.component.spec.ts @@ -1,14 +1,21 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { Component, DebugElement, Input } from '@angular/core'; +import { Component, DebugElement, Input, SecurityContext } from '@angular/core'; import { BrowserModule, DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; -import { cleanStylesFromDOM } from '@testing/clean-up-helper'; -import { getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; +import Spy = jasmine.Spy; -import { Meta, MetaContact, MetaPage, MetaSectionTypes, MetaStructure } from '@awg-core/core-models'; +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { + expectSpyCall, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective +} from '@testing/expect-helper'; + +import { AppConfig } from '@awg-app/app.config'; +import { MetaContact, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { METADATA } from '@awg-core/mock-data'; -import { CoreService } from '@awg-core/services'; +import { CoreService } from '@awg-core/services'; import { ContactInfoComponent } from './contact-info.component'; // mock address component @@ -26,7 +33,7 @@ class OpenStreetMapStubComponent { @Input() osmEmbedUrl: SafeResourceUrl; @Input() - osmLinkUrl: SafeResourceUrl; + osmLinkUrl: string; } describe('ContactInfoComponent (DONE)', () => { @@ -35,6 +42,9 @@ describe('ContactInfoComponent (DONE)', () => { let compDe: DebugElement; let compEl; + let provideMetaDataSpy: Spy; + let sanitizeSpy: Spy; + let domSanitizer: DomSanitizer; let mockCoreService: Partial; @@ -45,7 +55,7 @@ describe('ContactInfoComponent (DONE)', () => { let expectedUnsafeOsmEmbedUrl: string; let expectedUnsafeOsmLinkUrl: string; let expectedOsmEmbedUrl: SafeResourceUrl; - let expectedOsmLinkUrl: SafeResourceUrl; + let expectedOsmLinkUrl: string; const expectedContactInfoHeader = 'Kontakt'; @@ -73,20 +83,18 @@ describe('ContactInfoComponent (DONE)', () => { expectedContactMetaData = METADATA[MetaSectionTypes.contact]; // unsafe link values for open streets map - expectedUnsafeOsmEmbedUrl = - 'https://www.openstreetmap.org/export/embed.html?bbox=7.582175731658936%2C47.55789611508066%2C7.586840093135835%2C47.56003739001212&layer=mapnik&marker=47.55896585846639%2C7.584506571292877'; - expectedUnsafeOsmLinkUrl = - 'https://www.openstreetmap.org/?mlat=47.55897&mlon=7.58451#map=19/47.55897/7.58451'; + expectedUnsafeOsmEmbedUrl = AppConfig.UNSAFE_OSM_EMBED_URL; + expectedUnsafeOsmLinkUrl = AppConfig.UNSAFE_OSM_LINK_URL; // bypass the unsafe values expectedOsmEmbedUrl = domSanitizer.bypassSecurityTrustResourceUrl(expectedUnsafeOsmEmbedUrl); - expectedOsmLinkUrl = domSanitizer.bypassSecurityTrustResourceUrl(expectedUnsafeOsmLinkUrl); + expectedOsmLinkUrl = domSanitizer.sanitize(SecurityContext.URL, expectedUnsafeOsmLinkUrl); // spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - spyOn(component, 'provideMetaData').and.callThrough(); - spyOn(component, 'sanitizeUrls').and.callThrough(); + provideMetaDataSpy = spyOn(component, 'provideMetaData').and.callThrough(); + sanitizeSpy = spyOn(component, 'sanitizeUrls').and.callThrough(); }); afterAll(() => { @@ -117,13 +125,13 @@ describe('ContactInfoComponent (DONE)', () => { describe('#provideMetaData', () => { it('... should not have been called', () => { - expect(component.provideMetaData).not.toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 0); }); }); describe('#sanitizeUrls', () => { it('... should not have been called', () => { - expect(component.sanitizeUrls).not.toHaveBeenCalled(); + expectSpyCall(sanitizeSpy, 0); }); }); @@ -188,7 +196,7 @@ describe('ContactInfoComponent (DONE)', () => { describe('#provideMetaData', () => { it('... should have been called', () => { - expect(component.provideMetaData).toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 1); }); it('... should return pageMetaData', () => { @@ -204,7 +212,7 @@ describe('ContactInfoComponent (DONE)', () => { describe('#sanitizeUrls', () => { it('... should have been called', () => { - expect(component.sanitizeUrls).toHaveBeenCalled(); + expectSpyCall(sanitizeSpy, 1); }); it('... should return osmEmbedUrl', () => { diff --git a/src/app/side-info/contact-info/contact-info.component.ts b/src/app/side-info/contact-info/contact-info.component.ts index 71d1b91bff..be33c69b86 100644 --- a/src/app/side-info/contact-info/contact-info.component.ts +++ b/src/app/side-info/contact-info/contact-info.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, OnInit, SecurityContext } from '@angular/core'; import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; import { AppConfig } from '@awg-app/app.config'; @@ -40,46 +40,18 @@ export class ContactInfoComponent implements OnInit { pageMetaData: MetaPage; /** - * Private variable: _osmEmbedUrl. + * Public variable: osmEmbedUrl. * * It keeps the sanitized link to embed the OSM map. */ - private _osmEmbedUrl: SafeResourceUrl; + osmEmbedUrl: SafeResourceUrl; /** - * Private variable: _osmLinkUrl. + * Public variable: osmLinkUrl. * * It keeps the sanitized link to the OSM page. */ - private _osmLinkUrl: SafeResourceUrl; - - /** - * Getter for the sanitized OSM embed link. - */ - get osmEmbedUrl() { - return this._osmEmbedUrl; - } - - /** - * Setter for the sanitized OSM embed link. - */ - set osmEmbedUrl(url: SafeResourceUrl) { - this._osmEmbedUrl = url; - } - - /** - * Getter for the sanitized OSM external link. - */ - get osmLinkUrl() { - return this._osmLinkUrl; - } - - /** - * Setter for the sanitized OSM external link. - */ - set osmLinkUrl(url: SafeResourceUrl) { - this._osmLinkUrl = url; - } + osmLinkUrl: string; /** * Constructor of the ContactInfoComponent. @@ -117,16 +89,15 @@ export class ContactInfoComponent implements OnInit { } /** - * Public method: sanitizeUrls. + * Private method: sanitizeUrls. * - * It sanitizes the URLs and links - * for the OpenStreetMap + * It sanitizes the URLs and links for the OpenStreetMap * using the Angular DomSanitizer. * * @returns {void} Sanitizes the URLs. */ - sanitizeUrls(): void { + private sanitizeUrls(): void { this.osmEmbedUrl = this.sanitizer.bypassSecurityTrustResourceUrl(AppConfig.UNSAFE_OSM_EMBED_URL); - this.osmLinkUrl = this.sanitizer.bypassSecurityTrustResourceUrl(AppConfig.UNSAFE_OSM_LINK_URL); + this.osmLinkUrl = this.sanitizer.sanitize(SecurityContext.URL, AppConfig.UNSAFE_OSM_LINK_URL); } } diff --git a/src/app/side-info/structure-info/structure-info.component.html b/src/app/side-info/structure-info/structure-info.component.html index 4fb5a015a4..14b3008bac 100644 --- a/src/app/side-info/structure-info/structure-info.component.html +++ b/src/app/side-info/structure-info/structure-info.component.html @@ -6,9 +6,7 @@
{{ structureInfoHeader }}

Konzept/Grafik: - {{ - (structureMetaData?.authors)[0].name - }} + {{ (structureMetaData?.authors)[0].name }}

diff --git a/src/app/views/contact-view/contact-view.component.html b/src/app/views/contact-view/contact-view.component.html index d376ad0d09..4abb0d0786 100644 --- a/src/app/views/contact-view/contact-view.component.html +++ b/src/app/views/contact-view/contact-view.component.html @@ -11,9 +11,8 @@

Website:

{{ pageMetaData.awgProjectName }}. Projekt-Website: - - {{ pageMetaData?.awgProjectUrl }} , abgerufen am {{ today | date: dateFormat }} {{ pageMetaData?.awgProjectUrl }} , abgerufen am + {{ today | date: dateFormat }}.

@@ -22,10 +21,8 @@ {{ pageMetaData.awgProjectName }}. Online-Edition (Version {{ pageMetaData?.version }} vom {{ pageMetaData?.versionReleaseDate }}): - - {{ pageMetaData?.awgAppUrl }} , abgerufen am {{ today | date: dateFormat }}): {{ pageMetaData?.awgAppUrl }} , abgerufen am + {{ today | date: dateFormat }}.

@@ -39,7 +36,7 @@

GitHub:
Repository unter: - + {{ pageMetaData?.githubUrl }}

@@ -47,9 +44,7 @@

Compodoc:
Dokumentation von Struktur und Funktionalitäten der Angular App: - - awg-app documentation - + awg-app documentation

@@ -102,11 +97,7 @@ Anton Webern Gesamtausgabe aus auf der wissenschaftlichen Plattform KNORA/SALSAH (Projektbereich der Anton Webern Gesamtausgabe) für den Nutzer zugänglich sind, sind urheberrechtlich geschützt und werden – sofern nicht anders deklariert – zu den Bedingungen der Creative Commons-Lizenz „Namensnennung – Weitergabe unter gleichen - Bedingungen 4.0 International" (CC BY-SA-4.0CC BY-SA-4.0) zur Verfügung gestellt. Jede davon abweichende Verwertung bedarf der vorherigen schriftlichen Zustimmung durch den jeweiligen Rechteinhaber. Allfällige Bewilligungsgesuche sind an die {{ pageMetaData.awgProjectName }} zu richten (Kontakt). Alle Rechte an zugänglich gemachten externen @@ -116,9 +107,8 @@

Der Software-Code dieses Prototyps wird auf - GitHub unter - einer MIT-Lizenz zur - Verfügung gestellt. + GitHub unter einer + MIT-Lizenz zur Verfügung gestellt.

Externe Links:

@@ -148,17 +138,15 @@

Die {{ pageMetaData.awgProjectName }} setzt auf Grundlage ihrer berechtigten Interessen (d.h. Interesse an der Analyse und Optimierung unseres Onlineangebotes im Sinne des Art. - 6 Abs. 1 lit. f. - DSGVO) Google Analytics, einen Webanalysedienst der Google LLC („Google“) ein. Google verwendet Cookies. Die - durch das Cookie erzeugten Informationen über Benutzung des Onlineangebotes durch die Nutzer werden in der Regel - an einen Server von Google in den USA übertragen und dort gespeichert. + 6 Abs. 1 lit. f. DSGVO) Google Analytics, einen + Webanalysedienst der Google LLC („Google“) ein. Google verwendet Cookies. Die durch das Cookie erzeugten + Informationen über Benutzung des Onlineangebotes durch die Nutzer werden in der Regel an einen Server von Google + in den USA übertragen und dort gespeichert.

Google ist unter dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine Garantie, das europäische Datenschutzrecht einzuhalten (https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI&status=Active). @@ -185,21 +173,14 @@ verhindern; die Nutzer können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf ihre Nutzung des Onlineangebotes bezogenen Daten an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter folgendem Link verfügbare Browser-Plugin herunterladen und installieren: - https://tools.google.com/dlpage/gaoptout?hl=de. + https://tools.google.com/dlpage/gaoptout?hl=de.

Weitere Informationen zur Datennutzung durch Google, Einstellungs- und Widerspruchsmöglichkeiten, erfahren Sie - in der Datenschutzerklärung von Google (https://policies.google.com/technologies/ads) sowie in den Einstellungen für die Darstellung von Werbeeinblendungen durch Google (https://adssettings.google.com/authenticated). @@ -208,8 +189,7 @@

Die personenbezogenen Daten der Nutzer werden nach 14 Monaten gelöscht.

- [Erstellt mit Datenschutz-Generator.de von RA Dr. Thomas SchwenkeErstellt mit Datenschutz-Generator.de von RA Dr. Thomas Schwenke; vom Websiteinhaber angepasst]

diff --git a/src/app/views/data-view/data-outlets/bibliography/bibliography-search/bibliography-search.component.html b/src/app/views/data-view/data-outlets/bibliography/bibliography-search/bibliography-search.component.html index 4213ed1a55..25949285d4 100644 --- a/src/app/views/data-view/data-outlets/bibliography/bibliography-search/bibliography-search.component.html +++ b/src/app/views/data-view/data-outlets/bibliography/bibliography-search/bibliography-search.component.html @@ -1,3 +1 @@ -

- bibliography-search works! -

+

bibliography-search works!

diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-header/resource-detail-header.component.html b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-header/resource-detail-header.component.html index 056066ddeb..d04f279035 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-header/resource-detail-header.component.html +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-header/resource-detail-header.component.html @@ -13,7 +13,7 @@

@@ -29,7 +29,7 @@

Kategorie {{ header?.type }} icon + > icon diff --git a/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.html b/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.html index b7331d3e4a..eeebc668f4 100644 --- a/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.html +++ b/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.html @@ -49,7 +49,7 @@ -
+
{{ searchResultText }}
diff --git a/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.ts b/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.ts index 16add3a271..5490e75ad1 100644 --- a/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.ts +++ b/src/app/views/data-view/data-outlets/search-panel/search-result-list/search-result-list.component.ts @@ -341,9 +341,9 @@ export class SearchResultListComponent implements OnInit, OnDestroy { */ getSearchResponseWithQueryData(): void { // cold request to streamer service - const searchResponseWithQuery$: Observable< - SearchResponseWithQuery - > = this.dataStreamerService.getSearchResponseWithQuery().pipe(takeUntil(this.destroy$)); + const searchResponseWithQuery$: Observable = this.dataStreamerService + .getSearchResponseWithQuery() + .pipe(takeUntil(this.destroy$)); // subscribe to response to handle changes searchResponseWithQuery$.subscribe( diff --git a/src/app/views/data-view/data-view.component.html b/src/app/views/data-view/data-view.component.html index 14ab0a370a..3ea8599e6d 100644 --- a/src/app/views/data-view/data-view.component.html +++ b/src/app/views/data-view/data-view.component.html @@ -4,9 +4,7 @@ -
- BETA: Suche momentan noch mit eingeschränkter Funktionalität -
+
BETA: Suche momentan noch mit eingeschränkter Funktionalität
diff --git a/src/app/views/edition-view/edition-outlets/edition-graph/edition-graph.component.html b/src/app/views/edition-view/edition-outlets/edition-graph/edition-graph.component.html index d9bd3c3430..c4e1b151af 100644 --- a/src/app/views/edition-view/edition-outlets/edition-graph/edition-graph.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-graph/edition-graph.component.html @@ -40,13 +40,11 @@

Diese interaktive Visualisierung basiert auf Mads Holten's - SPARQL Visualizer. Sie modelliert den aktuellen Skizzenkomplex in Form eines - RDF-Graphen. Die + SPARQL Visualizer. Sie modelliert den + aktuellen Skizzenkomplex in Form eines RDF-Graphen. Die zugrundeliegenden RDF-Daten sind unter dem Punkt RDF Triples einsehbar und lokal editierbar. Eine Filterung und Eingrenzung dieser RDF-Daten kann mithilfe der Abfragesprache - SPARQL + SPARQL unter dem Punkt SPARQL Abfrage vorgenommen werden; in der Voreinstellung werden hierbei alle vorhandenen Triples abgefragt.

diff --git a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph-no-result/force-graph-no-result.component.html b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph-no-result/force-graph-no-result.component.html index 3e2a762e4a..f6dc556187 100644 --- a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph-no-result/force-graph-no-result.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph-no-result/force-graph-no-result.component.html @@ -2,13 +2,13 @@

Entschuldigung, Ihre SPARQL-Anfrage führte leider zu keinem Ergebnis.

Möglicherweise können Sie Ihre Anfrage anpassen.

- + {{ logos.sparql.alt }}

Ausführliche Informationen zu SPARQL finden Sie unter: - {{ logos.sparql.href }}{{ logos.sparql.href }}.

diff --git a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph/d3/d3.service.ts b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph/d3/d3.service.ts index 2f054e1a8a..1e40734cb4 100644 --- a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph/d3/d3.service.ts +++ b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/force-graph/d3/d3.service.ts @@ -69,13 +69,7 @@ export class D3Service { d.fy = null; }; - dragElement.call( - d3_drag - .drag() - .on('start', dragStart) - .on('drag', dragActions) - .on('end', dragEnd) - ); + dragElement.call(d3_drag.drag().on('start', dragStart).on('drag', dragActions).on('end', dragEnd)); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/graph-visualizer.component.html b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/graph-visualizer.component.html index 4eda7f8a19..465e889991 100644 --- a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/graph-visualizer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/graph-visualizer.component.html @@ -10,13 +10,9 @@
- + - +
@@ -67,13 +63,9 @@
- + - +
diff --git a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts index fecb78c602..ccde44b7e1 100644 --- a/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts +++ b/src/app/views/edition-view/edition-outlets/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts @@ -205,7 +205,7 @@ export class D3ForceSimulation { this.forceSimulation.force('charge_force', this.chargeForce).force('collide_force', this.collideForce); // connect the d3 ticker to an angular event emitter - this.forceSimulation.on('tick', function() { + this.forceSimulation.on('tick', function () { ticker.emit(this); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-tka-table/edition-tka-table.component.html b/src/app/views/edition-view/edition-outlets/edition-tka-table/edition-tka-table.component.html index 6ae99abb84..783fd5febc 100644 --- a/src/app/views/edition-view/edition-outlets/edition-tka-table/edition-tka-table.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-tka-table/edition-tka-table.component.html @@ -2,10 +2,10 @@ - - - - + + + + diff --git a/src/app/views/edition-view/edition-view.component.html b/src/app/views/edition-view/edition-view.component.html index caed85d1db..db5f2383b1 100644 --- a/src/app/views/edition-view/edition-view.component.html +++ b/src/app/views/edition-view/edition-view.component.html @@ -15,7 +15,7 @@

Ediert von - {{ editor.name }}{{ editor.name }} & 
diff --git a/src/app/views/home-view/home-view.component.html b/src/app/views/home-view/home-view.component.html index 238a984ad3..27a6fd18d6 100644 --- a/src/app/views/home-view/home-view.component.html +++ b/src/app/views/home-view/home-view.component.html @@ -33,29 +33,19 @@

-

- Willkommen bei der AWG-APP, dem Prototyp einer Online-Edition der Anton Webern Gesamtausgabe, Basel (AWG). -

+

Willkommen bei der AWG-APP, dem Prototyp einer Online-Edition der Anton Webern Gesamtausgabe, Basel (AWG).

Die online zugänglichen Bestandteile und Datenbestände der AWG-Online-Edition werden als Open Data über diese Webapplikation präsentiert und über das Software-Framework - Knora/SALSAH + Knora/SALSAH des - Digital Humanities Lab + Digital Humanities Lab der Universität Basel aufbereitet. Zudem werden die Datenbestände durch das - Data and Service Center for Humanities (DaSCH) + Data and Service Center for Humanities (DaSCH) zugänglich gehalten und langfristig aufbewahrt. Das DaSCH garantiert eine Zugänglichkeit der Daten gemäss FAIR-Prinzipien, die Zuweisung von digitalen Identifikatoren, maschinenlesbaren Metadaten und den langfristigen Betrieb der technischen Infrastruktur (vgl. - https://dasch.swiss/mission/). + https://dasch.swiss/mission/).

Der Protoyp simuliert bereits in weiten Teilen eine Datenabfrage über die Programmierschnittstelle (API) von @@ -76,21 +66,14 @@

Bei diesem Prototyp handelt es sich um eine Weiterentwicklung einer - prospektiven Simulation [PDF] vom 31. März 2015 sowie vom 29. Januar 2016. Der Programmcode ist als Open Access-Projekt frei zugänglich auf - GitHub + GitHub abgelegt und vollumfänglich - dokumentiert + dokumentiert (vgl. Dokumentation).

-

- Der Prototyp und die Suche werden in ihrer Funktionalität sukzessiv erweitert. -

+

Der Prototyp und die Suche werden in ihrer Funktionalität sukzessiv erweitert.

diff --git a/src/app/views/page-not-found-view/page-not-found-view.component.html b/src/app/views/page-not-found-view/page-not-found-view.component.html index be7dd19831..c9954fa81e 100644 --- a/src/app/views/page-not-found-view/page-not-found-view.component.html +++ b/src/app/views/page-not-found-view/page-not-found-view.component.html @@ -10,7 +10,7 @@

{{ pageNotFoundSubTitle }}

Kontaktieren sie uns gerne unter: - anton-webern.ch + anton-webern.ch

diff --git a/src/app/views/structure-view/structure-view.component.html b/src/app/views/structure-view/structure-view.component.html index 6b8611c015..913f7083c6 100644 --- a/src/app/views/structure-view/structure-view.component.html +++ b/src/app/views/structure-view/structure-view.component.html @@ -12,8 +12,6 @@

Die erforderlichen Objektklassen und Eigenschaften werden von SALSAH intern als RDF (Resource Description Framework) Triple verwaltet. Sie sind in der Grafik als Ellipsen symbolisiert, deren Verknüpfungen und Verweise untereinander als Pfeile dargestellt. diff --git a/src/index.html b/src/index.html index 126b9643bc..41cc64bbbc 100644 --- a/src/index.html +++ b/src/index.html @@ -20,9 +20,7 @@

-

- AWG prototype is… -

+

AWG prototype is…

@@ -43,36 +41,5 @@
- diff --git a/src/index.style.css b/src/index.style.css index d8fb06a5a9..6ea0546d8e 100644 --- a/src/index.style.css +++ b/src/index.style.css @@ -1,14 +1,16 @@ -body, html { +body, +html { height: 100%; } .app-loading { text-align: center; } -.app-loading .twelveTone-preText, .app-loading .twelveTone-spinner { +.app-loading .twelveTone-preText, +.app-loading .twelveTone-spinner { height: 140px; width: 140px; position: absolute; - top: 0; /* -50% */ + top: 0; /* -50% */ bottom: 0; left: 0; right: 0; @@ -35,7 +37,7 @@ body, html { animation: twelveTone-circleBounceDelay 1.2s infinite ease-in-out both; } -.twelveTone-spinner .twelveTone-loadText>p { +.twelveTone-spinner .twelveTone-loadText > p { /* border: 1px solid blue; */ margin-top: 30%; margin-bottom: 30%; @@ -97,14 +99,13 @@ body, html { transform: rotate(330deg); } - .twelveTone-spinner .twelveTone-note2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .twelveTone-spinner .twelveTone-note3:before { /* UNICODE SHARP SIGN, see https://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf, p. 280*/ - content: "\266F"; + content: '\266F'; -webkit-animation-delay: -1s; animation-delay: -1s; } @@ -118,7 +119,7 @@ body, html { } .twelveTone-spinner .twelveTone-note6:before { /* UNICODE FLAT SIGN, see https://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf, p. 280*/ - content: "\266D"; + content: '\266D'; -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } @@ -132,7 +133,7 @@ body, html { } .twelveTone-spinner .twelveTone-note9:before { /* UNICODE SHARP SIGN, see https://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf, p. 280*/ - content: "\266F"; + content: '\266F'; -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } @@ -146,27 +147,32 @@ body, html { } .twelveTone-spinner .twelveTone-note12:before { /* UNICODE FLAT SIGN, see https://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf, p. 280*/ - content: "\266D"; + content: '\266D'; -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } - @-webkit-keyframes twelveTone-circleBounceDelay { - 0%, 80%, 100% { + 0%, + 80%, + 100% { -webkit-transform: scale(0); transform: scale(0); - } 40% { - -webkit-transform: scale(1); - transform: scale(1); - } + } + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } } @keyframes twelveTone-circleBounceDelay { - 0%, 80%, 100% { + 0%, + 80%, + 100% { -webkit-transform: scale(0); transform: scale(0); - } 40% { - -webkit-transform: scale(1); - transform: scale(1); - } + } + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } } diff --git a/src/plugins/dateConverter.js b/src/plugins/dateConverter.js index 87de82efd8..a7c27d0fe1 100644 --- a/src/plugins/dateConverter.js +++ b/src/plugins/dateConverter.js @@ -1,4 +1,4 @@ -(function(angular) { +(function (angular) { /* JavaScript functions for the Fourmilab Calendar Converter @@ -241,7 +241,7 @@ * - name.calendar ("GREGORIAN", "JULIAN", "JEWISH", "FRENCH") */ - return (dateConverter = function(dateobj) { + return (dateConverter = function (dateobj) { var $that = this; var d1 = jdc_to_date(dateobj.dateval1, dateobj.calendar); var d2 = jdc_to_date(dateobj.dateval2, dateobj.calendar); diff --git a/src/plugins/htmlConverter.js b/src/plugins/htmlConverter.js index d9fb6b99af..b2d1716335 100644 --- a/src/plugins/htmlConverter.js +++ b/src/plugins/htmlConverter.js @@ -1,4 +1,4 @@ -(function(angular) { +(function (angular) { /* jQuery-plugin template for SALSAH converts the linear standoff @@ -16,7 +16,7 @@ * @param txt The text (sequence of characters) * @return {String} A string which can be converted to HTML */ - return (htmlConverter = function(assigned_props, txt) { + return (htmlConverter = function (assigned_props, txt) { var html = ''; var proparr; var stack; @@ -92,7 +92,7 @@ // var propnames = Object.keys(assigned_props); - propnames.sort(function(a, b) { + propnames.sort(function (a, b) { return tagPrecedence[matching_inv[a]] - tagPrecedence[matching_inv[b]]; }); diff --git a/tsconfig.doc.json b/tsconfig.doc.json new file mode 100644 index 0000000000..6eb7d2a1d4 --- /dev/null +++ b/tsconfig.doc.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./src/", + "outDir": "./out-tsc/app", + "types": ["node"], + "paths": { + "@awg-app/*": ["app/*"], + "@awg-core/*": ["app/core/*"], + "@awg-shared/*": ["app/shared/*"], + "@awg-side-info/*": ["app/side-info/*"], + "@awg-views/*": ["app/views/*"] + } + }, + "include": ["src/main.ts", "src/polyfills.ts", "src/**/*.d.ts", "src/**/*.ts"], + "exclude": ["src/test.ts", "src/**/*.spec.ts", "src/testing/", "e2e/**/*"] +} diff --git a/yarn.lock b/yarn.lock index 514d50a543..7edfc9e17c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1034,6 +1034,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.11.2": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.3.1": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" @@ -1041,14 +1048,7 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/runtime@^7.6.3": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" - integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/runtime@^7.8.4", "@babel/runtime@^7.9.6": +"@babel/runtime@^7.8.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== @@ -1106,146 +1106,146 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@commitlint/cli@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-9.1.2.tgz#3773699ea2ee6192f8dc14dd09b479baaaa13cd3" - integrity sha512-ctRrrPqjZ8r4Vc4FXpPaScEpkPwfvB0Us3NK2SD2AnLwXGMxOLFTabDmNySU1Xc40ud2CmJsaV8lpavvzs8ZZA== +"@commitlint/cli@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-11.0.0.tgz#698199bc52afed50aa28169237758fa14a67b5d3" + integrity sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g== dependencies: - "@babel/runtime" "^7.9.6" - "@commitlint/format" "^9.1.2" - "@commitlint/lint" "^9.1.2" - "@commitlint/load" "^9.1.2" - "@commitlint/read" "^9.1.2" + "@babel/runtime" "^7.11.2" + "@commitlint/format" "^11.0.0" + "@commitlint/lint" "^11.0.0" + "@commitlint/load" "^11.0.0" + "@commitlint/read" "^11.0.0" chalk "4.1.0" core-js "^3.6.1" - get-stdin "7.0.0" + get-stdin "8.0.0" lodash "^4.17.19" resolve-from "5.0.0" resolve-global "1.0.0" yargs "^15.1.0" -"@commitlint/config-angular-type-enum@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/config-angular-type-enum/-/config-angular-type-enum-9.1.2.tgz#0459575b98443f7e6e8c4965d2a70b00cc001abd" - integrity sha512-vPdAnL1GbSKbbMhzAgCknQqCwafhjWI9GKnbNgY6MKcXJEvND/OyufUvxyyiews1blenGJupufZ8JrY5qbJwtQ== +"@commitlint/config-angular-type-enum@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-angular-type-enum/-/config-angular-type-enum-11.0.0.tgz#7a7f6982e45d3696d72eb343a5d1dc23b2f003e0" + integrity sha512-dSyxdkU36aEgDUWBSiM5lsZ/h2K7uCyKf+A5Sf3+Z5JhcLD9GzTo5W+c8KgwTBdL39dkL7sN+EVgsXNjW99pJg== -"@commitlint/config-angular@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/config-angular/-/config-angular-9.1.2.tgz#3bf6d4071b7bfc96ae92ba7c29ba942db76b5f94" - integrity sha512-zIO26glOlUjFnOiqxBl4fX1p6NYqWzx4OVf56LvrVP4vtrE5z0r/De93iqHLhmx9mBCh8HCUhGjYHR7SkqdepQ== +"@commitlint/config-angular@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-angular/-/config-angular-11.0.0.tgz#c1cc1dd902a4b9d2a5c072ff38e3ace9be7138e0" + integrity sha512-H8QSEOmfRsPW0Iehid5fY7NZ2HXmyKC6Q83MLFf9KRnmCcbgJtH+faECtqlvPntayO3CYbA4UenIerOaQ0vOAg== dependencies: - "@commitlint/config-angular-type-enum" "^9.1.2" + "@commitlint/config-angular-type-enum" "^11.0.0" -"@commitlint/ensure@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-9.1.2.tgz#0575cb42451f560cdca7f0b775ab57cdf651ec42" - integrity sha512-hwQICwpNSTsZgj/1/SdPvYAzhwjwgCJI4vLbT879+Jc+AJ6sj2bUDGw/F89vzgKz1VnaMm4D65bNhoWhG3pdhQ== +"@commitlint/ensure@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-11.0.0.tgz#3e796b968ab5b72bc6f8a6040076406306c987fb" + integrity sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug== dependencies: - "@commitlint/types" "^9.1.2" + "@commitlint/types" "^11.0.0" lodash "^4.17.19" -"@commitlint/execute-rule@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-9.1.2.tgz#74a77eae50c8d2e5766822061ddf0df1b4f08027" - integrity sha512-NGbeo0KCVYo1yj9vVPFHv6RGFpIF6wcQxpFYUKGIzZVV9Vz1WyiKS689JXa99Dt1aN0cZlEJJLnTNDIgYls0Vg== +"@commitlint/execute-rule@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz#3ed60ab7a33019e58d90e2d891b75d7df77b4b4d" + integrity sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ== -"@commitlint/format@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-9.1.2.tgz#14938bfed22132e00be92931bfcb96dae32dfd1c" - integrity sha512-+ZWTOSGEU6dbn3NRh1q7sY5K5QLiSs7E2uSzuYnWHXcQk8nlTvnE0ibwMCQxdKLaOTZiN57fHM/7M9Re2gsRuw== +"@commitlint/format@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-11.0.0.tgz#ac47b0b9ca46540c0082c721b290794e67bdc51b" + integrity sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg== dependencies: - "@commitlint/types" "^9.1.2" + "@commitlint/types" "^11.0.0" chalk "^4.0.0" -"@commitlint/is-ignored@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-9.1.2.tgz#ac3cb01d0432d57db717da1e8bb370a283ef75bb" - integrity sha512-423W/+Ro+Cc8cg81+t9gds1EscMZNjnGT31nKDvxVxJxXiXQsYYoFEQbU+nfUrRGQsUikEgEJ3ppVGr1linvcQ== +"@commitlint/is-ignored@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz#7b803eda56276dbe7fec51eb1510676198468f39" + integrity sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg== dependencies: - "@commitlint/types" "^9.1.2" + "@commitlint/types" "^11.0.0" semver "7.3.2" -"@commitlint/lint@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-9.1.2.tgz#fbb110df8c52c1d6e5def07fb44a47066870c838" - integrity sha512-XvggqHZ4XSTKOgzJhCzz52cWRRO57QQnEviwGj0qnD4jdwC+8h2u9LNZwoa2tGAuaNM3nSm//wNK7FRZhgiiFA== +"@commitlint/lint@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-11.0.0.tgz#01e062cd1b0e7c3d756aa2c246462e0b6a3348a4" + integrity sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ== dependencies: - "@commitlint/is-ignored" "^9.1.2" - "@commitlint/parse" "^9.1.2" - "@commitlint/rules" "^9.1.2" - "@commitlint/types" "^9.1.2" + "@commitlint/is-ignored" "^11.0.0" + "@commitlint/parse" "^11.0.0" + "@commitlint/rules" "^11.0.0" + "@commitlint/types" "^11.0.0" -"@commitlint/load@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-9.1.2.tgz#c79634e8805ab35f318c535fdbda748288bf5395" - integrity sha512-FPL82xBuF7J3EJ57kLVoligQP4BFRwrknooP+vNT787AXmQ/Fddc/iYYwHwy67pNkk5N++/51UyDl/CqiHb6nA== +"@commitlint/load@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-11.0.0.tgz#f736562f0ffa7e773f8808fea93319042ee18211" + integrity sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg== dependencies: - "@commitlint/execute-rule" "^9.1.2" - "@commitlint/resolve-extends" "^9.1.2" - "@commitlint/types" "^9.1.2" + "@commitlint/execute-rule" "^11.0.0" + "@commitlint/resolve-extends" "^11.0.0" + "@commitlint/types" "^11.0.0" chalk "4.1.0" - cosmiconfig "^6.0.0" + cosmiconfig "^7.0.0" lodash "^4.17.19" resolve-from "^5.0.0" -"@commitlint/message@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-9.1.2.tgz#7589f03fa5807ed51adde1851db86d84e8ff3efe" - integrity sha512-ndlx5z7bPVLG347oYJUHuQ41eTcsw+aUYT1ZwQyci0Duy2atpuoeeSw9SuM1PjufzRCpb6ExzFEgGzcCRKAJsg== +"@commitlint/message@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-11.0.0.tgz#83554c3cbbc884fd07b473593bc3e94bcaa3ee05" + integrity sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA== -"@commitlint/parse@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-9.1.2.tgz#ce0f91df846f978bc369b50c23fe894536bde664" - integrity sha512-d+/VYbkotctW+lzDpus/R6xTerOqFQkW1myH+3PwnqYSE6JU/uHT4MlZNGJBv8pX9SPlR66t6X9puFobqtezEw== +"@commitlint/parse@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-11.0.0.tgz#d18b08cf67c35d02115207d7009306a2e8e7c901" + integrity sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A== dependencies: conventional-changelog-angular "^5.0.0" conventional-commits-parser "^3.0.0" -"@commitlint/read@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-9.1.2.tgz#ad8f62c733f9438fd5b388c72f7122f9038edd14" - integrity sha512-C2sNBQOqeQXMxpWtRnXYKYB3D9yuybPtQNY/P67A6o8XH/UMHkFaUTyIx1KRgu0IG0yTTItRt46FGnsMWLotvA== +"@commitlint/read@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-11.0.0.tgz#f24240548c63587bba139fa5a364cab926077016" + integrity sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g== dependencies: - "@commitlint/top-level" "^9.1.2" - fs-extra "^8.1.0" + "@commitlint/top-level" "^11.0.0" + fs-extra "^9.0.0" git-raw-commits "^2.0.0" -"@commitlint/resolve-extends@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-9.1.2.tgz#222dcb73b139b6645cf3ce3bd55db429a98600b3" - integrity sha512-HcoL+qFGmWEu9VM4fY0HI+VzF4yHcg3x+9Hx6pYFZ+r2wLbnKs964y0v68oyMO/mS/46MVoLNXZGR8U3adpadg== +"@commitlint/resolve-extends@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz#158ecbe27d4a2a51d426111a01478e216fbb1036" + integrity sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw== dependencies: import-fresh "^3.0.0" lodash "^4.17.19" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-9.1.2.tgz#8ac33264785000f3f1c1b4a61b2450b7802835f9" - integrity sha512-1vecFuzqVqjiT57ocXq1bL8V6GEF1NZs3BR0dQzObaqHftImIxBVII299gasckTkcuxNc8M+7XxZyKxUthukpQ== +"@commitlint/rules@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-11.0.0.tgz#bdb310cc6fc55c9f8d7d917a22b69055c535c375" + integrity sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA== dependencies: - "@commitlint/ensure" "^9.1.2" - "@commitlint/message" "^9.1.2" - "@commitlint/to-lines" "^9.1.2" - "@commitlint/types" "^9.1.2" + "@commitlint/ensure" "^11.0.0" + "@commitlint/message" "^11.0.0" + "@commitlint/to-lines" "^11.0.0" + "@commitlint/types" "^11.0.0" -"@commitlint/to-lines@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-9.1.2.tgz#dd8761d17f1f7b9a52e255af4bed5bf311bf773f" - integrity sha512-o4zWcMf9EnzA3MOqx01780SgrKq5hqDJmUBPk30g6an0XcDuDy3OSZHHTJFdzsg4V9FjC4OY44sFeK7GN7NaxQ== +"@commitlint/to-lines@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-11.0.0.tgz#86dea151c10eea41e39ea96fa4de07839258a7fe" + integrity sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw== -"@commitlint/top-level@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-9.1.2.tgz#fba25e30e9a014fe0426cf45908509a271990ce1" - integrity sha512-KMPP5xVePcz3B1dKqcZdU4FZBVOkT+bG3ip4RQX2TeCJoomMkTjd0utALs7rpTGLID6BXbwwXepZCZJREjR/Bw== +"@commitlint/top-level@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-11.0.0.tgz#bb2d1b6e5ed3be56874633b59e1f7de118c32783" + integrity sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA== dependencies: - find-up "^4.0.0" + find-up "^5.0.0" -"@commitlint/types@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-9.1.2.tgz#d05f66db03e3a3638a654e8badf2deb489eb220d" - integrity sha512-r3fwVbVH+M8W0qYlBBZFsUwKe6NT5qvz+EmU7sr8VeN1cQ63z+3cfXyTo7WGGEMEgKiT0jboNAK3b1FZp8k9LQ== +"@commitlint/types@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe" + integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ== "@compodoc/compodoc@^1.1.11": version "1.1.11" @@ -1303,10 +1303,10 @@ fs-extra "^4.0.1" viz.js "^1.8.0" -"@ctrl/ngx-codemirror@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@ctrl/ngx-codemirror/-/ngx-codemirror-4.0.0.tgz#5283fb928097d05f3b593d6388607b0763f40cfe" - integrity sha512-1C2q4pkuDHbJsvf7PSYhfa56mWuzJK94EBmxOKM47/6z5j9nX5YwrmK7m/RKjKkNqJTF+FIsss3IOj8WKPSvWQ== +"@ctrl/ngx-codemirror@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ctrl/ngx-codemirror/-/ngx-codemirror-4.0.1.tgz#60ec32b1e736df4e96d022582e90c811a4987de1" + integrity sha512-ynleh+KLsSQgxZ6F3W2FTxyVvwC5eWDKzaK7YZ/6lA2xvfUoylxAsZtDoTqa+9OhunWVx2heSgnBPslNwrGSsw== dependencies: "@types/codemirror" "^0.0.96" tslib "^2.0.0" @@ -1326,24 +1326,24 @@ dependencies: tslib "^2.0.0" -"@fortawesome/fontawesome-common-types@^0.2.30": - version "0.2.30" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz#2f1cc5b46bd76723be41d0013a8450c9ba92b777" - integrity sha512-TsRwpTuKwFNiPhk1UfKgw7zNPeV5RhNp2Uw3pws+9gDAkPGKrtjR1y2lI3SYn7+YzyfuNknflpBA1LRKjt7hMg== +"@fortawesome/fontawesome-common-types@^0.2.32": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz#3436795d5684f22742989bfa08f46f50f516f259" + integrity sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w== -"@fortawesome/fontawesome-svg-core@^1.2.30": - version "1.2.30" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.30.tgz#f56dc6791861fe5d1af04fb8abddb94658c576db" - integrity sha512-E3sAXATKCSVnT17HYmZjjbcmwihrNOCkoU7dVMlasrcwiJAHxSKeZ+4WN5O+ElgO/FaYgJmASl8p9N7/B/RttA== +"@fortawesome/fontawesome-svg-core@^1.2.32": + version "1.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz#da092bfc7266aa274be8604de610d7115f9ba6cf" + integrity sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.30" + "@fortawesome/fontawesome-common-types" "^0.2.32" -"@fortawesome/free-solid-svg-icons@^5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.14.0.tgz#970453f5e8c4915ad57856c3a0252ac63f6fec18" - integrity sha512-M933RDM8cecaKMWDSk3FRYdnzWGW7kBBlGNGfvqLVwcwhUPNj9gcw+xZMrqBdRqxnSXdl3zWzTCNNGEtFUq67Q== +"@fortawesome/free-solid-svg-icons@^5.15.1": + version "5.15.1" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz#e1432676ddd43108b41197fee9f86d910ad458ef" + integrity sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.30" + "@fortawesome/fontawesome-common-types" "^0.2.32" "@istanbuljs/schema@^0.1.2": version "0.1.2" @@ -1459,226 +1459,221 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/d3-array@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-2.0.0.tgz#a0d63a296a2d8435a9ec59393dcac746c6174a96" - integrity sha512-rGqfPVowNDTszSFvwoZIXvrPG7s/qKzm9piCRIH6xwTTRu7pPZ3ootULFnPkTt74B6i5lN0FpLQL24qGOw1uZA== - "@types/d3-array@^1": version "1.2.7" resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-1.2.7.tgz#34dc654d34fc058c41c31dbca1ed68071a8fcc17" integrity sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA== -"@types/d3-axis@*": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-1.0.12.tgz#8c124edfcc02f3b3a9cdaa2a28b8a20341401799" - integrity sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg== +"@types/d3-axis@^1": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-1.0.14.tgz#4ff27eb94fab10efbda6c972e1fbb26ea696655b" + integrity sha512-wZAKX/dtFT5t5iuCaiU0QL0BWB19TE6h7C7kgfBVyoka7zidQWvf8E9zQTJ5bNPBQxd0+JmplNqwy1M8O8FOjA== dependencies: - "@types/d3-selection" "*" + "@types/d3-selection" "^1" -"@types/d3-brush@*": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-1.0.10.tgz#aa9b5545d816c29d19cff20118f236713af8e9fb" - integrity sha512-J8jREATIrfJaAfhJivqaEKPnJsRlwwrOPje+ABqZFgamADjll+q9zaDXnYyjiGPPsiJEU+Qq9jQi5rECxIOfhg== +"@types/d3-brush@^1": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-1.1.4.tgz#0b5cc9c57476d0144b991228b44664e08494b7f3" + integrity sha512-2t8CgWaha9PsPdSZJ9m6Jl4awqf3DGIXek2e7gfheyfP2R0a/18MX+wuLHx+LyI1Ad7lxDsPWcswKD0XhQEjmg== dependencies: - "@types/d3-selection" "*" + "@types/d3-selection" "^1" -"@types/d3-chord@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-1.0.9.tgz#ccc5de03ff079025491b7aa6b750670a140b45ae" - integrity sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw== +"@types/d3-chord@^1": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-1.0.10.tgz#4c14ca40f61b89a3c615d63f5a34fcc81390805c" + integrity sha512-U6YojfET6ITL1/bUJo+/Lh3pMV9XPAfOWwbshl3y3RlgAX9VO/Bxa13IMAylZIDY4VsA3Gkh29kZP1AcAeyoYA== "@types/d3-collection@*": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/d3-collection/-/d3-collection-1.0.8.tgz#aa9552c570a96e33c132e0fd20e331f64baa9dd5" integrity sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ== -"@types/d3-color@*": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.2.2.tgz#80cf7cfff7401587b8f89307ba36fe4a576bc7cf" - integrity sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw== +"@types/d3-color@^1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.4.1.tgz#0d9746c84dfef28807b2989eed4f37b2575e1f33" + integrity sha512-xkPLi+gbgUU9ED6QX4g6jqYL2KCB0/3AlM+ncMGqn49OgH0gFMY/ITGqPF8HwEiLzJaC+2L0I+gNwBgABv1Pvg== -"@types/d3-contour@*": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-1.3.0.tgz#1a408b121fa5e341f715e3055303ef3079fc7eb0" - integrity sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ== +"@types/d3-contour@^1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-1.3.1.tgz#589dc3eec14168eea7e31edd1e3bbe246cc9d626" + integrity sha512-wWwsM/3NfKTRBdH00cSf+XlsaHlNTkvH66PgDedobyvKQZ4sJrXXpr16LXvDnAal4B67v8JGrWDgyx6dqqKLuQ== dependencies: - "@types/d3-array" "*" + "@types/d3-array" "^1" "@types/geojson" "*" -"@types/d3-dispatch@*": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-1.0.7.tgz#6721aefbb9862ce78c20a87a1490c21f57c3ed7f" - integrity sha512-M+z84G7UKwK6hEPnGCSccOg8zJ3Nk2hgDQ9sCstHXgsFU0sMxlIZVKqKB5oxUDbALqQG6ucg0G9e8cmOSlishg== +"@types/d3-dispatch@^1": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-1.0.9.tgz#c5a180f1e251de853b399cfbfbb6dd7f8bf842ae" + integrity sha512-zJ44YgjqALmyps+II7b1mZLhrtfV/FOxw9owT87mrweGWcg+WK5oiJX2M3SYJ0XUAExBduarysfgbR11YxzojQ== -"@types/d3-drag@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-1.2.3.tgz#d8ddccca28e939e9c689bea6f40a937e48c39051" - integrity sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ== +"@types/d3-drag@^1": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-1.2.5.tgz#0b1b852cb41577075aa625ae6149379ea6c34dfd" + integrity sha512-7NeTnfolst1Js3Vs7myctBkmJWu6DMI3k597AaHUX98saHjHWJ6vouT83UrpE+xfbSceHV+8A0JgxuwgqgmqWw== dependencies: - "@types/d3-selection" "*" + "@types/d3-selection" "^1" -"@types/d3-dsv@*": - version "1.0.36" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-1.0.36.tgz#e91129d7c02b1b814838d001e921e8b9a67153d0" - integrity sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA== +"@types/d3-dsv@^1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-1.2.1.tgz#1524fee9f19d689c2f76aa0e24e230762bf96994" + integrity sha512-LLmJmjiqp/fTNEdij5bIwUJ6P6TVNk5hKM9/uk5RPO2YNgEu9XvKO0dJ7Iqd3psEdmZN1m7gB1bOsjr4HmO2BA== -"@types/d3-ease@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-1.0.9.tgz#1dd849bd7edef6426e915e220ed9970db5ea4e04" - integrity sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q== +"@types/d3-ease@^1": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-1.0.10.tgz#09910e8558439b6038a7ed620650e510394ffa6d" + integrity sha512-fMFTCzd8DOwruE9zlu2O8ci5ct+U5jkGcDS+cH+HCidnJlDs0MZ+TuSVCFtEzh4E5MasItwy+HvgoFtxPHa5Cw== -"@types/d3-fetch@*": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-1.1.5.tgz#51601f79dd4653b5d84e6a3176d78145e065db5e" - integrity sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A== +"@types/d3-fetch@^1": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-1.2.2.tgz#b93bfe248b8b761af82f4dac57959c989f67da3e" + integrity sha512-rtFs92GugtV/NpiJQd0WsmGLcg52tIL0uF0bKbbJg231pR9JEb6HT4AUwrtuLq3lOeKdLBhsjV14qb0pMmd0Aw== dependencies: - "@types/d3-dsv" "*" + "@types/d3-dsv" "^1" -"@types/d3-force@*": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.1.tgz#c28803ea36fe29788db69efa0ad6c2dc09544e83" - integrity sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA== +"@types/d3-force@^1": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.2.tgz#6337a146dbdf2781f5dde5bb491a646fd03d7bc4" + integrity sha512-TN7KO7sk0tJauedIt0q20RQRFo4V3v97pJKO/TDK40X3LaPM1aXRM2+zFF+nRMtseEiszg4KffudhjR8a3+4cg== -"@types/d3-format@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.3.1.tgz#35bf88264bd6bcda39251165bb827f67879c4384" - integrity sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A== +"@types/d3-format@^1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.4.1.tgz#1e657a219e4b1e3931508a610d570bdec8ecdd9d" + integrity sha512-ss9G2snEKmp2In5Z3T0Jpqv8QaDBc2xHltBw83KjnV5B5w+Iwphbvq5ph/Xnu4d03fmmsdt+o1aWch379rxIbA== -"@types/d3-geo@*": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-1.11.1.tgz#e96ec91f16221d87507fec66b2cc889f52d2493e" - integrity sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ== +"@types/d3-geo@^1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-1.12.1.tgz#bec8692ffee9f60e18483af9008f92d4a8428118" + integrity sha512-8+gyGFyMCXIHtnMNKQDT++tZ4XYFXgiP5NK7mcv34aYXA16GQFiBBITjKzxghpO8QNVceOd9rUn1JY92WLNGQw== dependencies: "@types/geojson" "*" -"@types/d3-hierarchy@*": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz#4c017521900813ea524c9ecb8d7985ec26a9ad9a" - integrity sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg== +"@types/d3-hierarchy@^1": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.7.tgz#14a57b0539f8929015f8ad96490de50a16211040" + integrity sha512-fvht6DOYKzqmXjMb/+xfgkmrWM4SD7rMA/ZbM+gGwr9ZTuIDfky95J8CARtaJo/ExeWyS0xGVdL2gqno2zrQ0Q== -"@types/d3-interpolate@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz#1c280511f622de9b0b47d463fa55f9a4fd6f5fc8" - integrity sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ== +"@types/d3-interpolate@^1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-1.4.2.tgz#88902a205f682773a517612299a44699285eed7b" + integrity sha512-ylycts6llFf8yAEs1tXzx2loxxzDZHseuhPokrqKprTQSTcD3JbJI1omZP1rphsELZO3Q+of3ff0ZS7+O6yVzg== dependencies: - "@types/d3-color" "*" + "@types/d3-color" "^1" -"@types/d3-path@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-1.0.8.tgz#48e6945a8ff43ee0a1ce85c8cfa2337de85c7c79" - integrity sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA== +"@types/d3-path@^1": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-1.0.9.tgz#73526b150d14cd96e701597cbf346cfd1fd4a58c" + integrity sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ== -"@types/d3-polygon@*": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-1.0.7.tgz#7b3947aa2d48287ff535230d3d396668ab17bfdf" - integrity sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q== +"@types/d3-polygon@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-1.0.8.tgz#127ee83fccda5bf57384011da90f31367fea1530" + integrity sha512-1TOJPXCBJC9V3+K3tGbTqD/CsqLyv/YkTXAcwdsZzxqw5cvpdnCuDl42M4Dvi8XzMxZNCT9pL4ibrK2n4VmAcw== -"@types/d3-quadtree@*": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz#8e29464ff5b326f6612c1428d9362b4b35de2b70" - integrity sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q== +"@types/d3-quadtree@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-1.0.8.tgz#980998eb20d5e1c1494089ad9a8466a0e98825a7" + integrity sha512-FuqYiexeSQZlc+IcGAVK8jSJKDFKHcSf/jx8rqJUUVx6rzv7ecQiXKyatrLHHh3W4CAvgNeVI23JKgk4+x2wFg== -"@types/d3-random@*": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-1.1.2.tgz#6f77e8b7bb64ac393f92d33fe8f71038bc4f3cde" - integrity sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA== +"@types/d3-random@^1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-1.1.3.tgz#8f7fdc23f92d1561e0694eb49567e8ab50537a19" + integrity sha512-XXR+ZbFCoOd4peXSMYJzwk0/elP37WWAzS/DG+90eilzVbUSsgKhBcWqylGWe+lA2ubgr7afWAOBaBxRgMUrBQ== -"@types/d3-scale-chromatic@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.3.1.tgz#a294ae688634027870f0307bf8802f863aa2ddb3" - integrity sha512-Ny3rLbV5tnmqgW7w/poCcef4kXP8mHPo/p8EjTS5d9OUk8MlqAeRaM8eF7Vyv7QMLiIXNE94Pa1cMLSPkXQBoQ== +"@types/d3-scale-chromatic@^1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.1.tgz#e2b7c3401e5c13809f831911eb820e444f4fc67a" + integrity sha512-7FtJYrmXTEWLykShjYhoGuDNR/Bda0+tstZMkFj4RRxUEryv16AGh3be21tqg84B6KfEwiZyEpBcTyPyU+GWjg== -"@types/d3-scale@*": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-2.1.1.tgz#405e58771ec6ae7b8f7b4178ee1887620759e8f7" - integrity sha512-kNTkbZQ+N/Ip8oX9PByXfDLoCSaZYm+VUOasbmsa6KD850/ziMdYepg/8kLg2plHzoLANdMqPoYQbvExevLUHg== +"@types/d3-scale@^2": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-2.2.4.tgz#ca0d4b84d2f88fe058480f81354d14041a667b96" + integrity sha512-wkQXT+IfgfAnKB5rtS1qMJg3FS32r1rVFHvqtiqk8pX8o5aQR3VwX1P7ErHjzNIicTlkWsaMiUTrYB+E75HFeA== dependencies: - "@types/d3-time" "*" + "@types/d3-time" "^1" -"@types/d3-selection@*": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-1.4.1.tgz#fa1f8710a6b5d7cfe5c6caa61d161be7cae4a022" - integrity sha512-bv8IfFYo/xG6dxri9OwDnK3yCagYPeRIjTlrcdYJSx+FDWlCeBDepIHUpqROmhPtZ53jyna0aUajZRk0I3rXNA== +"@types/d3-selection@^1": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-1.4.3.tgz#36928bbe64eb8e0bbcbaa01fb05c21ff6c71fa93" + integrity sha512-GjKQWVZO6Sa96HiKO6R93VBE8DUW+DDkFpIMf9vpY5S78qZTlRRSNUsHr/afDpF7TvLDV7VxrUFOWW7vdIlYkA== -"@types/d3-shape@*": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-1.3.2.tgz#a41d9d6b10d02e221696b240caf0b5d0f5a588ec" - integrity sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w== +"@types/d3-shape@^1": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-1.3.4.tgz#5a6d8c3026ba8e8a1a985bda8da40acfc9b7b079" + integrity sha512-fxmOjs+UqNQGpztD5BOo+KriE0jLFrBP4Ct++0QExv/xfDOT1cpcMxgsZ+5qPmnR0t+GjbwAe1Um1PHpv3G4oA== dependencies: - "@types/d3-path" "*" + "@types/d3-path" "^1" -"@types/d3-time-format@*": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.1.1.tgz#dd2c79ec4575f1355484ab6b10407824668eba42" - integrity sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g== +"@types/d3-time-format@^2": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.3.1.tgz#87a30e4513b9d1d53b920327a361f87255bf3372" + integrity sha512-fck0Z9RGfIQn3GJIEKVrp15h9m6Vlg0d5XXeiE/6+CQiBmMDZxfR21XtjEPuDeg7gC3bBM0SdieA5XF3GW1wKA== -"@types/d3-time@*": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.10.tgz#d338c7feac93a98a32aac875d1100f92c7b61f4f" - integrity sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw== +"@types/d3-time@^1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.1.1.tgz#6cf3a4242c3bbac00440dfb8ba7884f16bedfcbf" + integrity sha512-ULX7LoqXTCYtM+tLYOaeAJK7IwCT+4Gxlm2MaH0ErKLi07R5lh8NHCAyWcDkCCmx1AfRcBEV6H9QE9R25uP7jw== -"@types/d3-timer@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-1.0.9.tgz#aed1bde0cf18920d33f5d44839d73de393633fd3" - integrity sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ== +"@types/d3-timer@^1": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-1.0.10.tgz#329c51c2c931f44ed0acff78b8c84571acf0ed21" + integrity sha512-ZnAbquVqy+4ZjdW0cY6URp+qF/AzTVNda2jYyOzpR2cPT35FTXl78s15Bomph9+ckOiI1TtkljnWkwbIGAb6rg== -"@types/d3-transition@*": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-1.1.6.tgz#7e52da29749d874866cc803fad13925713a372da" - integrity sha512-/F+O2r4oz4G9ATIH3cuSCMGphAnl7VDx7SbENEK0NlI/FE8Jx2oiIrv0uTrpg7yF/AmuWbqp7AGdEHAPIh24Gg== +"@types/d3-transition@^1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-1.3.1.tgz#5d658eea2db17684daa04eda81d7db9824d3463f" + integrity sha512-U9CpMlTL/NlqdGXBlHYxTZwbmy/vN1cFv8TuAIFPX+xOW/1iChbeJBY2xmINhDQfkGJbgkH4IovafCwI1ZDrgg== dependencies: - "@types/d3-selection" "*" + "@types/d3-selection" "^1" "@types/d3-voronoi@*": version "1.1.9" resolved "https://registry.yarnpkg.com/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz#7bbc210818a3a5c5e0bafb051420df206617c9e5" integrity sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ== -"@types/d3-zoom@*": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-1.7.4.tgz#9226ffd2bd3846ec0e4a4e2bff211612d3aafad5" - integrity sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA== +"@types/d3-zoom@^1": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-1.8.2.tgz#187d33f9ffa59811ce93b2eacd32d92c1ef03f16" + integrity sha512-rU0LirorUxkLxEHSzkFs7pPC0KWsxRGc0sHrxEDR0/iQq+7/xpNkKuuOOwthlgvOtpOvtTLJ2JFOD6Kr0Si4Uw== dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" + "@types/d3-interpolate" "^1" + "@types/d3-selection" "^1" -"@types/d3@^5.7.2": - version "5.7.2" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-5.7.2.tgz#52235eb71a1d3ca171d6dca52a58f5ccbe0254cc" - integrity sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw== +"@types/d3@^5.16.3": + version "5.16.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-5.16.3.tgz#265d506a1b61f558084f2c660f8dd2c93a6d16c8" + integrity sha512-s3wrhYhu25XZQ5p1hI9gEMSX5bx7lg9hAmi0+i5r3v75Gz1zRTgB2Q0psx+SO+4K0AO/PPJ1pnHCz64pANN/4w== dependencies: "@types/d3-array" "^1" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" + "@types/d3-axis" "^1" + "@types/d3-brush" "^1" + "@types/d3-chord" "^1" "@types/d3-collection" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@types/d3-dispatch" "*" - "@types/d3-drag" "*" - "@types/d3-dsv" "*" - "@types/d3-ease" "*" - "@types/d3-fetch" "*" - "@types/d3-force" "*" - "@types/d3-format" "*" - "@types/d3-geo" "*" - "@types/d3-hierarchy" "*" - "@types/d3-interpolate" "*" - "@types/d3-path" "*" - "@types/d3-polygon" "*" - "@types/d3-quadtree" "*" - "@types/d3-random" "*" - "@types/d3-scale" "*" - "@types/d3-scale-chromatic" "*" - "@types/d3-selection" "*" - "@types/d3-shape" "*" - "@types/d3-time" "*" - "@types/d3-time-format" "*" - "@types/d3-timer" "*" - "@types/d3-transition" "*" + "@types/d3-color" "^1" + "@types/d3-contour" "^1" + "@types/d3-dispatch" "^1" + "@types/d3-drag" "^1" + "@types/d3-dsv" "^1" + "@types/d3-ease" "^1" + "@types/d3-fetch" "^1" + "@types/d3-force" "^1" + "@types/d3-format" "^1" + "@types/d3-geo" "^1" + "@types/d3-hierarchy" "^1" + "@types/d3-interpolate" "^1" + "@types/d3-path" "^1" + "@types/d3-polygon" "^1" + "@types/d3-quadtree" "^1" + "@types/d3-random" "^1" + "@types/d3-scale" "^2" + "@types/d3-scale-chromatic" "^1" + "@types/d3-selection" "^1" + "@types/d3-shape" "^1" + "@types/d3-time" "^1" + "@types/d3-time-format" "^2" + "@types/d3-timer" "^1" + "@types/d3-transition" "^1" "@types/d3-voronoi" "*" - "@types/d3-zoom" "*" + "@types/d3-zoom" "^1" "@types/estree@*": version "0.0.42" @@ -1741,10 +1736,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg== -"@types/node@^14.6.1": - version "14.6.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.1.tgz#fdf6f6c6c73d3d8eee9c98a9a0485bc524b048d7" - integrity sha512-HnYlg/BRF8uC1FyKRFZwRaCPTPYKa+6I8QiUZFLredaGOou481cgFS4wKRFyKvQtX8xudqkSdBczJHIYSQYKrQ== +"@types/node@^14.11.5": + version "14.11.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.5.tgz#fecad41c041cae7f2404ad4b2d0742fdb628b305" + integrity sha512-jVFzDV6NTbrLMxm4xDSIW/gKnk8rQLF9wAzLWIOg+5nU6ACrIMndeBdXci0FGtqJbP9tQvm6V39eshc96TO2wQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2507,6 +2502,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.1, atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -4143,10 +4143,10 @@ codelyzer@^6.0.0: tslib "^1.10.0" zone.js "~0.10.3" -codemirror@^5.57.0: - version "5.57.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.57.0.tgz#d26365b72f909f5d2dbb6b1209349ca1daeb2d50" - integrity sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg== +codemirror@^5.58.1: + version "5.58.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.58.1.tgz#ec6bf38ad2a17f74c61bd00cc6dc5a69bd167854" + integrity sha512-UGb/ueu20U4xqWk8hZB3xIfV2/SFqnSLYONiM3wTMDqko0bsYrsAkGGhqUzbRkYm89aBKPyHtuNEbVWF9FTFzw== collection-visit@^1.0.0: version "1.0.0" @@ -4532,20 +4532,7 @@ conventional-commits-filter@^2.0.6: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" - integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^5.0.0" - split2 "^2.0.0" - through2 "^3.0.0" - trim-off-newlines "^1.0.0" - -conventional-commits-parser@^3.1.0: +conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== @@ -4686,17 +4673,6 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.2.1: js-yaml "^3.13.1" parse-json "^4.0.0" -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@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" - cosmiconfig@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" @@ -5026,33 +5002,28 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== +"d3-color@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== "d3-dispatch@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf" integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA== -d3-drag@1, d3-drag@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== +d3-drag@2, d3-drag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-2.0.0.tgz#9eaf046ce9ed1c25c88661911c1d5a4d8eb7ea6d" + integrity sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w== dependencies: - d3-dispatch "1" - d3-selection "1" + d3-dispatch "1 - 2" + d3-selection "2" -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== +"d3-ease@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-2.0.0.tgz#fd1762bfca00dae4bacea504b1d628ff290ac563" + integrity sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ== d3-force@^2.0.1: version "2.1.1" @@ -5063,55 +5034,54 @@ d3-force@^2.0.1: d3-quadtree "1 - 2" d3-timer "1 - 2" -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== +"d3-interpolate@1 - 2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== dependencies: - d3-color "1" + d3-color "1 - 2" "d3-quadtree@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d" integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw== -d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.4.2: +d3-selection@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-2.0.0.tgz#94a11638ea2141b7565f883780dabc7ef6a61066" + integrity sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA== + +d3-selection@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - "d3-timer@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== -d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-zoom@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" +d3-transition@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-2.0.0.tgz#366ef70c22ef88d1e34105f507516991a291c94c" + integrity sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog== + dependencies: + d3-color "1 - 2" + d3-dispatch "1 - 2" + d3-ease "1 - 2" + d3-interpolate "1 - 2" + d3-timer "1 - 2" + +d3-zoom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-2.0.0.tgz#f04d0afd05518becce879d04709c47ecd93fba54" + integrity sha512-fFg7aoaEm9/jf+qfstak0IYpnesZLiMX6GZvXtUSdv8RH2o4E2qeelgdU09eKS6wGuiGMfcnMI0nTIqWzRHGpw== + dependencies: + d3-dispatch "1 - 2" + d3-drag "2" + d3-interpolate "1 - 2" + d3-selection "2" + d3-transition "2" d@1, d@^1.0.1: version "1.0.1" @@ -5133,6 +5103,11 @@ dargs@^4.0.1: dependencies: number-is-nan "^1.0.0" +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -6049,15 +6024,10 @@ event-stream@3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.0.0: version "3.0.0" @@ -6455,6 +6425,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-versions@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -6481,11 +6459,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" - integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== - dependencies: - debug "^3.2.6" + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== font-awesome@^4.7.0: version "4.7.0" @@ -6615,6 +6591,16 @@ fs-extra@^8.0.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-minipass@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" @@ -6731,10 +6717,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-stdin@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== +get-stdin@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== get-stdin@^4.0.1: version "4.0.1" @@ -6791,13 +6777,13 @@ git-raw-commits@2.0.0: through2 "^2.0.0" git-raw-commits@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.3.tgz#f040e67b8445962d4d168903a9e84c4240c17655" - integrity sha512-SoSsFL5lnixVzctGEi2uykjA7B5I0AhO9x6kdzvGRHbxsa6JSEgrgy1esRKsfOKE1cgyOJ/KDR2Trxu157sb8w== + version "2.0.7" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.7.tgz#02e9357727a9755efa8e14dd5e59b381c29068fb" + integrity sha512-SkwrTqrDxw8y0G1uGJ9Zw13F7qu3LF8V4BifyDeiJCxSnjRGZD9SaoMiMqUvvXMXh6S3sOQ1DsBN7L2fMUZW/g== dependencies: - dargs "^4.0.1" + dargs "^7.0.0" lodash.template "^4.0.2" - meow "^5.0.0" + meow "^7.0.0" split2 "^2.0.0" through2 "^3.0.0" @@ -6978,14 +6964,14 @@ gzip-size@^5.0.0, gzip-size@^5.1.1: duplexer "^0.1.1" pify "^4.0.1" -gzipper@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gzipper/-/gzipper-4.0.0.tgz#9c9f2956a3f00f4848015b216423e7896b1bdc6f" - integrity sha512-iHekCgI6jT1MsQYhEUpwrOo5K/ioLeID4Kvt/hWG8sU+MSLfvDVym8H9I/L4oc+KZM3fI21GXKqvo/FGsAAisA== +gzipper@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gzipper/-/gzipper-4.0.2.tgz#51034f6a7d3ee923727a32adba160561b3aaae72" + integrity sha512-I1RDIhOx5QpO7rxQrBv5BB+AxkGqZQV6qC23F9gz83vYhoCN7IcEmXsltdKhoye9jyS0UQjUjvWo0eLxtnqo+Q== dependencies: commander "^5.1.0" deep-equal "^2.0.3" - uuid "^8.1.0" + uuid "^8.3.0" handle-thing@^2.0.0: version "2.0.0" @@ -7330,16 +7316,7 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-proxy@^1.18.1: +http-proxy@^1.17.0, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -7407,15 +7384,15 @@ humanize-url@^1.0.0: normalize-url "^1.0.0" strip-url-auth "^1.0.0" -husky@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== +husky@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.0.tgz#0b2ec1d66424e9219d359e26a51c58ec5278f0de" + integrity sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA== dependencies: chalk "^4.0.0" ci-info "^2.0.0" compare-versions "^3.6.0" - cosmiconfig "^6.0.0" + cosmiconfig "^7.0.0" find-versions "^3.2.0" opencollective-postinstall "^2.0.2" pkg-dir "^4.2.0" @@ -7518,7 +7495,7 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -8374,6 +8351,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" @@ -8589,10 +8575,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@^10.2.13: - version "10.2.13" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.13.tgz#b9c504683470edfc464b7d3fe3845a5a1efcd814" - integrity sha512-conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA== +lint-staged@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.4.0.tgz#d18628f737328e0bbbf87d183f4020930e9a984e" + integrity sha512-uaiX4U5yERUSiIEQc329vhCTDDwUcSvKdRLsNomkYLRzijk3v8V9GWm2Nz0RMVB87VcuzLvtgy6OsjoH++QHIg== dependencies: chalk "^4.1.0" cli-truncate "^2.1.0" @@ -8719,6 +8705,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -9047,21 +9040,6 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - meow@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" @@ -9469,10 +9447,10 @@ n3@^0.5.0: resolved "https://registry.yarnpkg.com/n3/-/n3-0.5.0.tgz#be06e81c63144bf71ffe40bcea835ee523b574f4" integrity sha1-vgboHGMUS/cf/kC86oNe5SO1dPQ= -n3@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/n3/-/n3-1.6.2.tgz#3b40b6f6eeba3a115642eb9237109fff743be631" - integrity sha512-9R45WRNxNPblKLbXGwR9IvtaVvdr80vRxME79fhWnqBzHb2GcP6lS77Mvf8Fx6Wpfn8PpBTdggceWsSMDGY/SA== +n3@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/n3/-/n3-1.6.3.tgz#373de2ebfbce5c51edbd05f8cd36e76482107207" + integrity sha512-dN+8pLw2h1H1WQTW9VR3T16tHPDYdQP+YKXzbcpBCMCb9ZkksUyoVRRdtFGl3vosdET+NIB5eiIgth+4Vit6Yw== dependencies: queue-microtask "^1.1.2" readable-stream "^3.6.0" @@ -9557,10 +9535,10 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== node-libs-browser@^2.2.1: version "2.2.1" @@ -10099,7 +10077,7 @@ p-limit@^2.3.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.1: +p-limit@^3.0.1, p-limit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== @@ -10127,6 +10105,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -10913,15 +10898,15 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prettier@~2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prettier@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== -pretty-quick@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.0.0.tgz#cba8597eca7f3821232abe6a93302d362cc30d71" - integrity sha512-oIXlGQUcUxt3XpoNfQECEWvH1Q9PtKfelF2pdp6UvC1CSQ5QcB7gUYKu0kuJGlm3LMBZzJaO/vbRkxA61pWlcg== +pretty-quick@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.0.2.tgz#7ed460f7e43a647b1044ad8b7f41a0c8a7f1c51c" + integrity sha512-4rWOs/Ifdkg7G/YX7Xbco4jZkuXPx445KdhuMI6REnl3nXRDb9+zysb29c76R59jsJzcnkcpAaGi8D/RjAVfSQ== dependencies: chalk "^3.0.0" execa "^4.0.0" @@ -11909,11 +11894,11 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: xml2js "^0.4.17" selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: - node-forge "0.9.0" + node-forge "^0.10.0" semver-compare@^1.0.0: version "1.0.0" @@ -13625,6 +13610,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + unix-crypt-td-js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz#1c0824150481bc7a01d49e98f1ec668d82412f3b" @@ -13747,10 +13737,10 @@ uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.1.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e" - integrity sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q== +uuid@^8.3.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" + integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -14244,20 +14234,6 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yaml@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" - integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== - dependencies: - "@babel/runtime" "^7.6.3" - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
TaktSystemOrt im TaktKommentarTaktSystemOrt im TaktKommentar