From 930dd6fc7f838d1c7fddeac4de0882ccfa12ea67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:52:06 +0000 Subject: [PATCH 01/36] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `17.0.8` | `17.0.9` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `17.0.8` | `17.0.9` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `17.0.8` | `17.0.9` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `17.0.8` | `17.0.9` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `17.0.8` | `17.0.9` | | [@angular/localize](https://github.com/angular/angular) | `17.0.8` | `17.0.9` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `17.0.8` | `17.0.9` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `17.0.8` | `17.0.9` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `17.0.8` | `17.0.9` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `17.0.8` | `17.0.9` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `17.0.8` | `17.0.9` | Updates `@angular/animations` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/animations) Updates `@angular/common` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/common) Updates `@angular/compiler` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/compiler) Updates `@angular/core` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/core) Updates `@angular/forms` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/forms) Updates `@angular/localize` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/17.0.8...17.0.9) Updates `@angular/platform-browser` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/platform-server) Updates `@angular/router` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/router) Updates `@angular/compiler-cli` from 17.0.8 to 17.0.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.0.9/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 ++++++------- yarn.lock | 88 ++++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 584ae31498..abf872072d 100644 --- a/package.json +++ b/package.json @@ -82,16 +82,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^17.0.8", - "@angular/common": "^17.0.8", - "@angular/compiler": "^17.0.8", - "@angular/core": "^17.0.8", - "@angular/forms": "^17.0.8", - "@angular/localize": "^17.0.8", - "@angular/platform-browser": "^17.0.8", - "@angular/platform-browser-dynamic": "^17.0.8", - "@angular/platform-server": "^17.0.8", - "@angular/router": "^17.0.8", + "@angular/animations": "^17.0.9", + "@angular/common": "^17.0.9", + "@angular/compiler": "^17.0.9", + "@angular/core": "^17.0.9", + "@angular/forms": "^17.0.9", + "@angular/localize": "^17.0.9", + "@angular/platform-browser": "^17.0.9", + "@angular/platform-browser-dynamic": "^17.0.9", + "@angular/platform-server": "^17.0.9", + "@angular/router": "^17.0.9", "@codemirror/legacy-modes": "^6.3.3", "@fortawesome/angular-fontawesome": "^0.14.1", "@fortawesome/fontawesome-svg-core": "^6.5.1", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^17.2.0", "@angular-eslint/template-parser": "^17.2.0", "@angular/cli": "^17.0.10", - "@angular/compiler-cli": "^17.0.8", + "@angular/compiler-cli": "^17.0.9", "@commitlint/cli": "^18.4.4", "@commitlint/config-angular": "^18.4.4", "@compodoc/compodoc": "^1.1.23", diff --git a/yarn.lock b/yarn.lock index 83336f4983..2bde451589 100644 --- a/yarn.lock +++ b/yarn.lock @@ -216,10 +216,10 @@ "@angular-eslint/bundled-angular-compiler" "17.2.0" "@typescript-eslint/utils" "6.18.0" -"@angular/animations@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.0.8.tgz#e2fde878c1c9d93f03eab5347f7cbaf83d5d6768" - integrity sha512-iKJ2s4ZqVoGS9tSRBuuwYEWTV+Rw6b4zDY1rqiXvbZrpNRxfzYr6s+aYsLQQEindZ4hzxgp9j60FJ8aE/g4w6A== +"@angular/animations@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.0.9.tgz#0e5a6a47d037a9a75b982fcd25596a55c1b1561e" + integrity sha512-TcAdBQyGqglgbxdiJcaHc7FcDNkzTXGRtZuPOcr4sYmBvryBu2q18edwzo6+QDYFaoGredFhE5RnOIw+M4A3Xw== dependencies: tslib "^2.3.0" @@ -247,17 +247,17 @@ symbol-observable "4.0.0" yargs "17.7.2" -"@angular/common@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.0.8.tgz#f9e348965633d3cdcc1f2ca0f7d3824e8706c1ed" - integrity sha512-fFfwtdg7H+OkqnvV/ENu8F8KGfgIiH16DDbQqYY5KQyyQB+SMsoVW29F1fGx6Y30s7ZlsLOy6cHhgrw74itkSw== +"@angular/common@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.0.9.tgz#f8b591b3db8ff8eb188f38110d7d7f3c27853f90" + integrity sha512-xNS7DDfvFqfLr6xeZNJ+jORuGXP6hhv2HsYD3jb6ZQ8+QuMg+3MDij4a0L5npn72gH/Zz4JRKZ3Bt4Cq6cUqUA== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.0.8.tgz#9b007efa11610216dc2b98bd49fb587fc2c244f7" - integrity sha512-ny2SMVgl+icjMuU5ZM57yFGUrhjR0hNxfCn0otAD3jUFliz/Onu9l6EPRKA5Cr8MZx3mg3rTLSBMD17YT8rsOg== +"@angular/compiler-cli@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.0.9.tgz#c5e1055af604a1e7b20ba40534cef62a69c001b2" + integrity sha512-fpbs8ZuHi2Z/uOIAxEICzQ1aYbc8Z2TOjB0PDP1RJ1kQmtlWNWxgMqV/uJ59sJO9AMYxc496msMtmOa3OByPYQ== dependencies: "@babel/core" "7.23.2" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -268,62 +268,62 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.0.8.tgz#87e1d0e5199df3613188e843c5473ba383141361" - integrity sha512-48jWypuhBGTrUUbkz1vB9gjbKKZ3hpuJ2DUUncd331Yw4tqkqZQbBa/E3ei4IHiCxEvW2uX3lI4AwlhuozmUtA== +"@angular/compiler@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.0.9.tgz#fce96ccc6cb4603978d1d95da71678b6f6a37d95" + integrity sha512-xf0JChGttVoYPh0PRV3KnbujtlNFavcYzElS6W8iW64O+2HaSxaquWnolcgL5QT1rNGp4s/TxsttloLhbqxNmw== dependencies: tslib "^2.3.0" -"@angular/core@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.0.8.tgz#c29b6827553e1213751947572495bc0058c3bdbf" - integrity sha512-tzYsK24LdkNuKNJK6efF4XOqspvF/qOe9j/n1Y61a6mNvFwsJFGbcmdZMby4hI/YRm6oIDoIIFjSep8ycp6Pbw== +"@angular/core@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.0.9.tgz#407f8ee879af777f092f64886fc7b82ccf6e8b80" + integrity sha512-LtDWzyx19XNmAjXju9xjw//rDZPUFu2bllHqzS6NVO1bE4PwJHIs0zfvygh0j46ubKp1gUICNk3jvYK9FMVinA== dependencies: tslib "^2.3.0" -"@angular/forms@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.0.8.tgz#3872f7c9e03d4376e1bd99d8360f6b750430086f" - integrity sha512-WZBHbMQjaSovAzOMhKqZN+m7eUPGfOzh9rKFKvj6UQLIJ9qSpEpqlvL0omU1z/47s3XXeLiBzomMiRfQISJvvw== +"@angular/forms@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.0.9.tgz#9edb3298714354197fc9dfaed46c40cdb646d870" + integrity sha512-UCZhJH5FCRPGmYHfKCTGbOXqz4SEs9bVkAQGwhHzhM3Bwn3cZ/LKN2UfOglIcwkqKXxKnRx+VkJ2M1KfZJAvLQ== dependencies: tslib "^2.3.0" -"@angular/localize@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.0.8.tgz#f2d4d1e2b2e573350c2dae9666a7cf7720be2d36" - integrity sha512-1zW8qWKNMH3r/x4KpwzzUmVY+iN76vYdhjA6gzZDnpJxpon9eyljNEildj9+zSWeNUr2LgJ6HnkIX9q1f3mXfA== +"@angular/localize@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.0.9.tgz#8e61af0e7491a10c0c92261aba85c485e962cf89" + integrity sha512-myLcvyzn/ShUTpbrIu4MPizCxv2RwGYOTWZBd6XwXiXu5+Kiu7mpQZ+BiElseEF6Dsw1HUgsIkbUS+hAR0GBLQ== dependencies: "@babel/core" "7.23.2" fast-glob "3.3.1" yargs "^17.2.1" -"@angular/platform-browser-dynamic@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.8.tgz#a7376c17391b3932c84f31d2b2c23b4c0e621932" - integrity sha512-BIXNKnfBZb8sdluQ7WIhIXFuVnsJJ0SV+aiMKzQ7B6XhWoAXZQnlvON2thydjIIVuCvaF3YmWTbILI2K8YZ2jQ== +"@angular/platform-browser-dynamic@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.9.tgz#08b145faf325cea971cd9ce9e9dc2908ce186e1e" + integrity sha512-44wIecNzxEUi3T/bggeJsgK+iD7Snu64sqQg00ewsuFCMpaWwyC80LnTIff/QnBVoggAjXvEql6vwr3AZNTcuQ== dependencies: tslib "^2.3.0" -"@angular/platform-browser@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.0.8.tgz#f393535fc10e04681acb5413b5a536060dd0fd27" - integrity sha512-XaI+p2AxQaIHzR761lhPUf4OcOp46WDW0IfbvOzaezHE+8r81joZyVSDQPgXSa/aRfI58YhcfUavuGqyU3PphA== +"@angular/platform-browser@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.0.9.tgz#a33bcfdfa96d5ca4ba738f64c10e3bfe8a8ec84a" + integrity sha512-Edz039lTJ9tHR6VEPHXUcQHqdCXAhJcdPoWSWsUBJ30eZFx0VlxQEb4ujlz8LBgIVvthp5WYhHMjd/ueWzEINw== dependencies: tslib "^2.3.0" -"@angular/platform-server@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-17.0.8.tgz#ebb37aa2d0f70589fd6e22d71bfcd0e317f1610f" - integrity sha512-1ePN6OhVtPXYfIh6oSJwiOdUk+T4puzH6rhAtHfaiEI3gAoAlz170RBZzcDKc6ow5kQ8zo1DPWc61/FbOJFFew== +"@angular/platform-server@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-17.0.9.tgz#322115b69765687f5c669746e9ca68afa71dbe67" + integrity sha512-d8mUwbGwOBvrUwUd1w1o4fcnzkVsajqCtAKx+b9HI4+VOrKsNzdPKxwzzEq7+zMMGQrgagC1El6Fkr+3VNRJ1g== dependencies: tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@^17.0.8": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.0.8.tgz#65962626dc08be54e1474f607199001007e907b9" - integrity sha512-ptphcRe1RG/mIS60R7ZPilkkrxautqB0sOhds3h5VP3g628G1a2HWzvnmvjEfpJWDMFivV32VJMMBtTLqGr+0Q== +"@angular/router@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.0.9.tgz#933c748773db353e5098e037fab8457ea32e7a79" + integrity sha512-kQHtPVh06g1AWA0Ntn/1Z2PX79hLwRQsTMcbU4ej1oka50C8Y97cAOMtmX9v3kqSN5fL/MEpBb44zi/X8SfPeA== dependencies: tslib "^2.3.0" From 5a2fab90742da512ec3f945f96bef8c8483615a7 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 15 Jan 2024 23:18:33 +0100 Subject: [PATCH 02/36] refactor(edition): move tka description into separate component --- .../edition-report/edition-report.module.ts | 3 +- .../textcritics-list.component.html | 8 +- .../textcritics-list.component.spec.ts | 61 ++-- .../edition-accolade.module.ts | 3 +- .../edition-svg-sheet-footer.component.html | 12 +- ...edition-svg-sheet-footer.component.spec.ts | 55 ++-- .../edition-tka-description.component.html | 3 + .../edition-tka-description.component.scss | 0 .../edition-tka-description.component.spec.ts | 302 ++++++++++++++++++ .../edition-tka-description.component.ts | 111 +++++++ .../edition-tka-description.module.ts | 17 + 11 files changed, 523 insertions(+), 52 deletions(-) create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.module.ts diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.module.ts index 043a787664..ef22f63b5d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.module.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '@awg-shared/shared.module'; +import { EditionTkaDescriptionModule } from '../edition-tka-description/edition-tka-description.module'; import { EditionTkaTableModule } from '../edition-tka-table/edition-tka-table.module'; import { SourceDescriptionComponent } from './source-description'; @@ -20,7 +21,7 @@ import { EditionReportRoutingModule, routedEditionReportComponents } from './edi * {@link SourceDescriptionComponent}, and {@link SourceEvaluationComponent}. */ @NgModule({ - imports: [SharedModule, EditionTkaTableModule, EditionReportRoutingModule], + imports: [SharedModule, EditionTkaTableModule, EditionTkaDescriptionModule, EditionReportRoutingModule], declarations: [ TextcriticsListComponent, SourceDescriptionComponent, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.html index 2412a38d77..1b555e1810 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.html @@ -16,9 +16,11 @@ @if (utils.isNotEmptyArray(textcritic.description)) {

Skizzenkommentar:

- @for (description of textcritic.description; track description) { -

- } +
} @if (utils.isNotEmptyArray(textcritic.comments)) { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts index d806db7b4e..d3c5269bf3 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts @@ -22,7 +22,19 @@ import { TextcriticalComment, TextcriticsList } from '@awg-views/edition-view/mo import { TextcriticsListComponent } from './textcritics-list.component'; -// Mock tka table component +// Mock components +@Component({ selector: 'awg-edition-tka-description', template: '' }) +class EditionTkaDescriptionStubComponent { + @Input() + textcriticalDescriptions: string[]; + @Output() + navigateToReportFragmentRequest: EventEmitter = new EventEmitter(); + @Output() + openModalRequest: EventEmitter = new EventEmitter(); + @Output() + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); +} + @Component({ selector: 'awg-edition-tka-table', template: '' }) class EditionTkaTableStubComponent { @Input() @@ -69,7 +81,12 @@ describe('TextcriticsListComponent (DONE)', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [NgbAccordionWithConfigModule], - declarations: [TextcriticsListComponent, CompileHtmlComponent, EditionTkaTableStubComponent], + declarations: [ + TextcriticsListComponent, + CompileHtmlComponent, + EditionTkaDescriptionStubComponent, + EditionTkaTableStubComponent, + ], providers: [UtilityService], }).compileComponents(); })); @@ -402,7 +419,7 @@ describe('TextcriticsListComponent (DONE)', () => { detectChangesOnPush(fixture); }); - it('... should contain no item body with div and paragraphs if description array is empty', () => { + it('... should contain no item body with div and paragraphs if description and comment arrays are empty', () => { const textcritics = expectedTextcriticsData.textcritics[0]; const bodyDes = getAndExpectDebugElementByCss( compDe, @@ -415,7 +432,7 @@ describe('TextcriticsListComponent (DONE)', () => { getAndExpectDebugElementByCss(bodyDes[0], 'div', 0, 0); }); - it('... should contain item body with as many paragraphs in first div as textcritics.description if description array is not empty', () => { + it('... should contain item body with div, paragraph and EditionTkaDescriptionComponent if description array is not empty', () => { const textcritics = expectedTextcriticsData.textcritics[1]; const bodyDes = getAndExpectDebugElementByCss( compDe, @@ -426,26 +443,13 @@ describe('TextcriticsListComponent (DONE)', () => { ); const divDes = getAndExpectDebugElementByCss(bodyDes[0], 'div:first-child', 1, 1); - - // Number of paragraphs = description array length + 1 (heading) - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p', - textcritics.description.length + 1, - textcritics.description.length + 1 - ); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); const pEl0 = pDes[0].nativeElement; expectToBe(pEl0.textContent, 'Skizzenkommentar:'); - pDes.forEach((pDe, index) => { - if (index === 0) { - return; - } - const pEl = pDe.nativeElement; - - expectToBe(pEl.textContent, textcritics.description[index - 1]); - }); + // EditionTkaDescriptionStubComponent + getAndExpectDebugElementByDirective(divDes[0], EditionTkaDescriptionStubComponent, 1, 1); }); it('... should contain item body with div, paragraph and EditionTkaTableComponent if comments array is not empty', () => { @@ -468,6 +472,23 @@ describe('TextcriticsListComponent (DONE)', () => { getAndExpectDebugElementByDirective(bodyDes[0], EditionTkaTableStubComponent, 1, 1); }); + it('... should pass down `description` data to EditionTkaDescriptionComponent (stubbed)', () => { + const editionTkaDescriptionDes = getAndExpectDebugElementByDirective( + compDe, + EditionTkaDescriptionStubComponent, + 1, + 1 + ); + const editionTkaDescriptionCmp = editionTkaDescriptionDes[0].injector.get( + EditionTkaDescriptionStubComponent + ) as EditionTkaDescriptionStubComponent; + + expectToEqual( + editionTkaDescriptionCmp.textcriticalDescriptions, + expectedTextcriticsData.textcritics[1].description + ); + }); + it('... should pass down `comments` and `rowtable` data to EditionTkaTableComponent (stubbed)', () => { const editionTkaTableDes = getAndExpectDebugElementByDirective( compDe, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.module.ts index ce909ad862..aeb6cd79fe 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.module.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '@awg-shared/shared.module'; +import { EditionTkaDescriptionModule } from '../../edition-tka-description/edition-tka-description.module'; import { EditionTkaTableModule } from '../../edition-tka-table/edition-tka-table.module'; import { EditionAccoladeComponent } from './edition-accolade.component'; @@ -17,7 +18,7 @@ import { EditionSvgSheetViewerComponent } from './edition-svg-sheet-viewer'; * {@link EditionSvgSheetViewerComponent}, {@link EditionTkaTableModule} and {@link SharedModule}. */ @NgModule({ - imports: [SharedModule, EditionTkaTableModule], + imports: [SharedModule, EditionTkaDescriptionModule, EditionTkaTableModule], declarations: [ EditionAccoladeComponent, EditionSvgSheetFooterComponent, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.html index 24441da807..8c358dc61e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.html @@ -15,12 +15,12 @@ @if ( showTextcritics && selectedTextcritics.description && utils.isNotEmptyArray(selectedTextcritics.description) ) { - @for (description of selectedTextcritics.description; track description) { - - } + + } @if (showTkA) { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts index b22a18d94b..225ace907c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts @@ -20,6 +20,18 @@ import { EditionSvgSheet, TextcriticalComment, Textcritics } from '@awg-app/view import { CompileHtmlComponent } from '@awg-app/shared/compile-html'; import { EditionSvgSheetFooterComponent } from './edition-svg-sheet-footer.component'; +// Mock components +@Component({ selector: 'awg-edition-tka-description', template: '' }) +class EditionTkaDescriptionStubComponent { + @Input() + textcriticalDescriptions: string[]; + @Output() + navigateToReportFragmentRequest: EventEmitter = new EventEmitter(); + @Output() + openModalRequest: EventEmitter = new EventEmitter(); + @Output() + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); +} @Component({ selector: 'awg-edition-tka-table', template: '' }) class EditionTkaTableStubComponent { @Input() @@ -62,7 +74,12 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [FontAwesomeTestingModule], - declarations: [EditionSvgSheetFooterComponent, CompileHtmlComponent, EditionTkaTableStubComponent], + declarations: [ + EditionSvgSheetFooterComponent, + CompileHtmlComponent, + EditionTkaDescriptionStubComponent, + EditionTkaTableStubComponent, + ], providers: [UtilityService], }).compileComponents(); @@ -262,36 +279,32 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { expect(spanEl.textContent.trim()).withContext(`should be '---'`).toBe('---'); }); - it('... should contain no description paragraphs if showTextcritics = false', () => { - getAndExpectDebugElementByCss(compDe, 'p.awg-edition-svg-sheet-footer-evaluation-desc', 0, 0); - }); + describe('... should contain no EditionTkaDescriptionComponent if ...', () => { + it('... showTextcritics = false', () => { + getAndExpectDebugElementByCss(compDe, 'p.awg-edition-svg-sheet-footer-evaluation-desc', 0, 0); + }); - it('... should contain no description paragraphs if descriptions are empty', () => { - component.showTextcritics = true; - component.selectedTextcritics = mockEditionData.mockTextcriticsData.textcritics[0]; - detectChangesOnPush(fixture); + it('... descriptions array is empty', () => { + component.showTextcritics = true; + component.selectedTextcritics = mockEditionData.mockTextcriticsData.textcritics[0]; + detectChangesOnPush(fixture); - getAndExpectDebugElementByCss(compDe, 'p.awg-edition-svg-sheet-footer-evaluation-desc', 0, 0); + getAndExpectDebugElementByCss(compDe, 'p.awg-edition-svg-sheet-footer-evaluation-desc', 0, 0); + }); }); - it('... should contain as many description paragraphs as there are textcritics.description if showTextcritics = true', () => { + it('... should contain one EditionTkaDescriptionComponent (stubbed) in evaluation div if showTextcritics = true', () => { component.showTextcritics = true; detectChangesOnPush(fixture); - const pDes = getAndExpectDebugElementByCss( + const divDes = getAndExpectDebugElementByCss( compDe, - 'p.awg-edition-svg-sheet-footer-evaluation-desc', - expectedSelectedTextcritics.description.length, - expectedSelectedTextcritics.description.length + 'div.awg-edition-svg-sheet-footer-evaluation', + 1, + 1 ); - pDes.forEach((pDe, index) => { - const pEl = pDe.nativeElement; - - expect(pEl.textContent) - .withContext(`should be ${expectedSelectedTextcritics.description[index]}`) - .toBe(expectedSelectedTextcritics.description[index]); - }); + getAndExpectDebugElementByDirective(divDes[0], EditionTkaDescriptionStubComponent, 1, 1); }); it('... should contain no textcritics div if showTka is false', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.html new file mode 100644 index 0000000000..59cf4db67a --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.html @@ -0,0 +1,3 @@ +@for (description of textcriticalDescriptions; track description) { +

+} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.spec.ts new file mode 100644 index 0000000000..5a7a6d89ef --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.spec.ts @@ -0,0 +1,302 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed, fakeAsync, waitForAsync } from '@angular/core/testing'; + +import Spy = jasmine.Spy; + +import { clickAndAwaitChanges } from '@testing/click-helper'; +import { + expectSpyCall, + expectToBe, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { mockEditionData } from '@testing/mock-data'; + +import { CompileHtmlComponent } from '@awg-app/shared/compile-html'; +import { EditionSvgSheet } from '@awg-views/edition-view/models'; + +import { DOCUMENT } from '@angular/common'; +import { EditionTkaDescriptionComponent } from './edition-tka-description.component'; + +describe('EditionTkaDescriptionComponent (DONE)', () => { + let component: EditionTkaDescriptionComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let mockDocument: Document; + + let navigateToReportFragmentSpy: Spy; + let navigateToReportFragmentRequestEmitSpy: Spy; + let openModalSpy: Spy; + let openModalRequestEmitSpy: Spy; + let selectSvgSheetSpy: Spy; + let selectSvgSheetRequestEmitSpy: Spy; + + let expectedComplexId: string; + let expectedNextComplexId: string; + let expectedFragment: string; + let expectedModalSnippet: string; + let expectedSvgSheet: EditionSvgSheet; + let expectedNextSvgSheet: EditionSvgSheet; + let expectedTextcriticalDescriptions: string[]; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [EditionTkaDescriptionComponent, CompileHtmlComponent], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditionTkaDescriptionComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; + expectedFragment = 'source_B'; + expectedModalSnippet = mockEditionData.mockModalSnippet; + expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; + expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk2; + expectedTextcriticalDescriptions = mockEditionData.mockTextcriticsData.textcritics.at(1).description; + + mockDocument = TestBed.inject(DOCUMENT); + + // 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 + navigateToReportFragmentSpy = spyOn(component, 'navigateToReportFragment').and.callThrough(); + navigateToReportFragmentRequestEmitSpy = spyOn( + component.navigateToReportFragmentRequest, + 'emit' + ).and.callThrough(); + openModalSpy = spyOn(component, 'openModal').and.callThrough(); + openModalRequestEmitSpy = spyOn(component.openModalRequest, 'emit').and.callThrough(); + selectSvgSheetSpy = spyOn(component, 'selectSvgSheet').and.callThrough(); + selectSvgSheetRequestEmitSpy = spyOn(component.selectSvgSheetRequest, 'emit').and.callThrough(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have textcriticalDescriptions', () => { + expect(component.textcriticalDescriptions).toBeUndefined(); + }); + + it('... should have `ref`', () => { + expectToBe(component.ref, component); + }); + + describe('VIEW', () => { + it('... should contain no paragraphs with edition-tka-description class yet', () => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-edition-tka-description', 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.textcriticalDescriptions = expectedTextcriticalDescriptions; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have textcriticalDescriptions', () => { + expectToBe(component.textcriticalDescriptions, expectedTextcriticalDescriptions); + }); + + describe('VIEW', () => { + it('... should contain as many paragraphs with edition-tka-description class as textcriticalDescriptions length', () => { + getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + }); + + it('... should contain CompileHtmlComponent in each paragraph', () => { + const pDes = getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + pDes.forEach(pDe => { + getAndExpectDebugElementByDirective(pDe, CompileHtmlComponent, 0, 0); + }); + }); + + it('... should display the textcriticalDescriptions in each paragraph', () => { + const pDes = getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + pDes.forEach((pDe, index) => { + const pEl = pDe.nativeElement; + + const htmlDescriptionEntry = mockDocument.createElement('p'); + htmlDescriptionEntry.innerHTML = expectedTextcriticalDescriptions[index]; + + expectToBe(pEl.textContent.trim(), htmlDescriptionEntry.textContent.trim()); + }); + }); + }); + + describe('#navigateToReportFragment()', () => { + it('... should have a method `navigateToReportFragment`', () => { + expect(component.navigateToReportFragment).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + // Find paragraphs + const pDes = getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + + // Find anchor in second paragraph + const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); + + // Click on anchor (with navigateToReportFragment call) + clickAndAwaitChanges(anchorDes[1], fixture); + + expectSpyCall(navigateToReportFragmentSpy, 1, expectedFragment); + })); + + describe('... should not emit anything if', () => { + it('... id is undefined', () => { + component.navigateToReportFragment(undefined); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... id is null', () => { + component.navigateToReportFragment(null); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... id is empty string', () => { + component.navigateToReportFragment(''); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + }); + + it('... should emit id of selected report fragment', () => { + component.navigateToReportFragment(expectedFragment); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 1, expectedFragment); + + const otherFragment = 'source_B'; + component.navigateToReportFragment(otherFragment); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 2, otherFragment); + }); + }); + + describe('#openModal()', () => { + it('... should have a method `openModal`', () => { + expect(component.openModal).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + // Find paragraphs + const pDes = getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + + // Find anchor in second paragraph + const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); + + // Click on anchor (with openModal call) + clickAndAwaitChanges(anchorDes[2], fixture); + + expectSpyCall(openModalSpy, 1, expectedModalSnippet); + })); + + it('... should not emit anything if no id is provided', () => { + component.openModal(undefined); + + expectSpyCall(openModalRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of given modal snippet', () => { + component.openModal(expectedModalSnippet); + + expectSpyCall(openModalRequestEmitSpy, 1, expectedModalSnippet); + }); + }); + + describe('#selectSvgSheet()', () => { + it('... should have a method `selectSvgSheet`', () => { + expect(component.selectSvgSheet).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + // Find paragraphs + const pDes = getAndExpectDebugElementByCss( + compDe, + 'p.awg-edition-tka-description', + expectedTextcriticalDescriptions.length, + expectedTextcriticalDescriptions.length + ); + + // Find anchor in second paragraph + const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); + + // Click on anchor (with selectSvgSheet call) + clickAndAwaitChanges(anchorDes[0], fixture); + + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); + })); + + it('... should not emit anything if no id is provided', () => { + component.selectSvgSheet(undefined, undefined); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + component.selectSvgSheet('', ''); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, { + complexId: expectedComplexId, + sheetId: expectedNextSvgSheet.id, + }); + }); + + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.ts new file mode 100644 index 0000000000..6309beb8c6 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.component.ts @@ -0,0 +1,111 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; + +/** + * The EditionTkaDescription component. + * + * It contains the desription for the textcritical comments + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-tka-description', + templateUrl: './edition-tka-description.component.html', + styleUrl: './edition-tka-description.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionTkaDescriptionComponent { + /** + * Input variable: textcriticalComments. + * + * It keeps the textcritical comments. + */ + @Input() + textcriticalDescriptions: string[]; + + /** + * Output variable: navigateToReportFragment. + * + * It keeps an event emitter for a fragment id of the edition report. + */ + @Output() + navigateToReportFragmentRequest: EventEmitter = new EventEmitter(); + + /** + * Output variable: openModalRequest. + * + * It keeps an event emitter to open the modal + * with the selected modal text snippet. + */ + @Output() + openModalRequest: EventEmitter = new EventEmitter(); + + /** + * Output variable: selectSvgSheetRequest. + * + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. + */ + @Output() + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); + + /** + * Self-referring variable needed for CompileHtml library. + */ + ref: EditionTkaDescriptionComponent; + + /** + * Constructor of the EditionTkaDescriptionComponent. + * + * It initializes the self-referring ref variable needed for CompileHtml library. + */ + constructor() { + this.ref = this; + } + + /** + * Public method: navigateToReportFragment. + * + * It emits a given id of a fragment of the edition report + * to the {@link navigateToReportFragmentRequest}. + * + * @param {string} id The given fragment id. + * @returns {void} Navigates to the edition report. + */ + navigateToReportFragment(id: string): void { + if (!id) { + return; + } + this.navigateToReportFragmentRequest.emit(id); + } + + /** + * Public method: openModal. + * + * It emits a given id of a modal snippet text + * to the {@link openModalRequest}. + * + * @param {string} id The given modal snippet id. + * @returns {void} Emits the id. + */ + openModal(id: string): void { + if (!id) { + return; + } + this.openModalRequest.emit(id); + } + + /** + * Public method: selectSvgSheet. + * + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. + * + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Emits the ids. + */ + selectSvgSheet(complexId: string, sheetId: string): void { + if (!sheetId) { + return; + } + this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.module.ts new file mode 100644 index 0000000000..21529ea903 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-description/edition-tka-description.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '@awg-shared/shared.module'; + +import { EditionTkaDescriptionComponent } from './edition-tka-description.component'; + +/** + * The edition TkA description module. + * + * It embeds the {@link EditionTkaDescriptionComponent} + * as well as the {@link SharedModule}. + */ +@NgModule({ + imports: [SharedModule], + declarations: [EditionTkaDescriptionComponent], + exports: [EditionTkaDescriptionComponent], +}) +export class EditionTkaDescriptionModule {} From 81a99408e9a0462e21f35b4e04a6a5d27a0fbc45 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 15 Jan 2024 23:27:04 +0100 Subject: [PATCH 03/36] feat(edition): adjust selectSvgSheet for cross-complex linking --- .../edition-intro/edition-intro.component.ts | 21 ++++++----- .../edition-report.component.ts | 27 +++++++------- .../source-description.component.html | 36 +++++++++++++++---- .../source-description.component.ts | 19 +++++----- .../source-evaluation.component.ts | 19 +++++----- .../textcritics-list.component.html | 5 ++- .../textcritics-list.component.ts | 18 +++++----- .../edition-accolade.component.ts | 18 +++++----- .../edition-svg-sheet-footer.component.ts | 18 +++++----- .../edition-svg-sheet-nav-item.component.html | 4 +-- .../edition-svg-sheet-nav-item.component.ts | 19 +++++----- .../edition-svg-sheet-nav.component.ts | 18 +++++----- .../edition-svg-sheet-viewer.component.ts | 25 ++++++------- .../edition-convolute.component.ts | 18 +++++----- .../edition-folio-viewer.component.ts | 20 ++++++----- .../edition-folio-viewer/folio.service.ts | 4 +-- .../edition-sheets.component.spec.ts | 4 +-- .../edition-sheets.component.ts | 28 +++++++-------- .../edition-tka-table.component.ts | 19 +++++----- .../models/edition-svg-link-box.model.ts | 2 +- .../models/folio-calculation.model.ts | 10 ++++-- .../models/folio-svg-data.model.ts | 12 +++++-- .../views/edition-view/models/folio.model.ts | 9 +++-- .../models/source-description.model.ts | 4 +-- 24 files changed, 214 insertions(+), 163 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index e97dbf0433..57a555f6dd 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -162,24 +162,23 @@ export class EditionIntroComponent implements OnInit { /** * Public method: selectSvgSheet. * - * It navigates to the '/edition/complex/{baseRoute}/sheets/{id}' + * It navigates to the '/edition/complex/{complexRoute}/sheets/{sheetsId}' * route with the given id. * - * @param {string} sheetId The given svg sheet id. - * @returns {void} Navigates to the edition detail. + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Navigates to the given svg sheet id. */ - selectSvgSheet(sheetId: string): void { - if (!sheetId) { - sheetId = ''; - } + selectSvgSheet(complexId: string, sheetId: string): void { + // Set default id if none is given + const complexRoute = complexId ? `/edition/complex/${complexId}/` : this.editionComplex.baseRoute; + const sheetRoute = sheetId ? sheetId : ''; + const navigationExtras: NavigationExtras = { queryParams: { id: sheetId }, queryParamsHandling: '', }; - this.router.navigate( - [this.editionComplex.baseRoute, this.editionRouteConstants.EDITION_SHEETS.route], - navigationExtras - ); + this.router.navigate([complexRoute, this.editionRouteConstants.EDITION_SHEETS.route], navigationExtras); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts index fb9ea92d29..aa6e1bfe39 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts @@ -170,24 +170,25 @@ export class EditionReportComponent implements OnInit { /** * Public method: onSvgSheetSelect. * - * It navigates to the '/edition/complex/{baseRoute}/sheets' - * route with the given id. + * It selects a SVG sheet by its edition complex + * and sheet ids and navigates to the edition sheets route + * with this given id. * - * @param {string} sheetId The given svg sheet id. - * @returns {void} Navigates to the edition detail. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Navigates to the edition sheets. */ - onSvgSheetSelect(sheetId: string): void { - if (!sheetId) { - sheetId = ''; - } + onSvgSheetSelect(sheetIds: { complexId: string; sheetId: string }): void { + // Set default id if none is given + const complexRoute = sheetIds.complexId + ? `/edition/complex/${sheetIds.complexId}/` + : this.editionComplex.baseRoute; + const sheetRoute = sheetIds.sheetId ? sheetIds.sheetId : ''; + const navigationExtras: NavigationExtras = { - queryParams: { id: sheetId }, + queryParams: { id: sheetRoute }, // .queryParamsHandling: '', }; - this.router.navigate( - [this.editionComplex.baseRoute, this.editionRouteConstants.EDITION_SHEETS.route], - navigationExtras - ); + this.router.navigate([complexRoute, this.editionRouteConstants.EDITION_SHEETS.route], navigationExtras); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html index ed79e58f5e..605127fa56 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html @@ -145,12 +145,18 @@ @if (content.item || content.itemDescription) { - @if (content.itemLinkTo) { - {{ content.item }} } - @if (!content.itemLinkTo) { + @if (!utils.isNotEmptyObject(content.itemLinkTo)) { {{ content.item }} } @if (content.itemDescription) { @@ -173,7 +179,13 @@ tab: content.item }"> @if (folio.folioLinkTo) { - @if (system.linkTo) { - @if (system.linkTo) { - - diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.ts index fdcecfe5ba..7f7057ec1a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.ts @@ -45,10 +45,10 @@ export class TextcriticsListComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Self-referring variable needed for CompileHtml library. @@ -102,16 +102,16 @@ export class TextcriticsListComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds || !sheetIds?.sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit(sheetIds); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.ts index f15a0e3c1e..87bfce7d20 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.ts @@ -108,10 +108,10 @@ export class EditionAccoladeComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public method: browseSvgSheet. @@ -192,16 +192,16 @@ export class EditionAccoladeComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds || !sheetIds?.sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit(sheetIds); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.ts index b2eec5e502..ac7d224a2e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.ts @@ -63,10 +63,10 @@ export class EditionSvgSheetFooterComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public variable: faChevronRight. @@ -141,17 +141,17 @@ export class EditionSvgSheetFooterComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds || !sheetIds?.sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit(sheetIds); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html index bb5d2fadf0..48865896fe 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html @@ -9,7 +9,7 @@
+ (click)="selectSvgSheet('', svgSheet.id)"> {{ svgSheet.label }} } @@ -33,7 +33,7 @@
active: isSelectedSvgSheet(svgSheet.id, svgSheetContent.partial), 'text-muted': !isSelectedSvgSheet(svgSheet.id, svgSheetContent.partial) }" - (click)="selectSvgSheet(svgSheet.id + svgSheetContent.partial)" + (click)="selectSvgSheet('', svgSheet.id + svgSheetContent.partial)" >{{ svgSheet.label }} [{{ i + 1 }}/{{ svgSheet.content.length }}] diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts index 2671494a2c..255014de83 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts @@ -42,10 +42,10 @@ export class EditionSvgSheetNavItemComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Constructor of the EditionSvgSheetNavItemComponent. @@ -83,16 +83,17 @@ export class EditionSvgSheetNavItemComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(complexId: string, sheetId: string): void { + if (!sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.ts index 58ed9c657f..f5efb04a41 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.ts @@ -35,24 +35,24 @@ export class EditionSvgSheetNavComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds || !sheetIds?.sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit(sheetIds); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts index a356ccf924..378ece1634 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts @@ -109,10 +109,10 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public variable: faCompressArrowsAlt. @@ -352,20 +352,21 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft } /** + * TODO: Check if this method is used. * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * - * @returns {void} Emits the id. + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(complexId: string, sheetId: string): void { + if (!sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); } /** @@ -581,7 +582,7 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft } /** - * Private method: onOverlaySelect. + * Private method: _onOverlaySelect. * * It emits the given svg overlays * to the {@link selectOverlaysRequest}. @@ -595,7 +596,7 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft } /** - * Private method: onLinkBoxSelect. + * Private method: _onLinkBoxSelect. * * It emits the given link box id * to the {@link selectLinkBoxRequest}. diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.ts index 248dcf6827..4dc69e1a64 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.ts @@ -64,10 +64,10 @@ export class EditionConvoluteComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public variable: faSquare. @@ -115,16 +115,16 @@ export class EditionConvoluteComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds || !sheetIds?.sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit(sheetIds); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/edition-folio-viewer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/edition-folio-viewer.component.ts index 3faa29596a..67f8b1ae2e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/edition-folio-viewer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/edition-folio-viewer.component.ts @@ -68,10 +68,10 @@ export class EditionFolioViewerComponent implements OnChanges, AfterViewChecked /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Public variable: canvasArray. @@ -305,13 +305,17 @@ export class EditionFolioViewerComponent implements OnChanges, AfterViewChecked /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - this.selectSvgSheetRequest.emit(id); + selectSvgSheet(complexId: string, sheetId: string): void { + if (!sheetId) { + return; + } + this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.ts index 2a3162fd3f..0ad8336bcc 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.ts @@ -340,7 +340,7 @@ export class FolioService { const snapItemGroup: any = snapCanvas.group(snapItemLink); snapItemGroup.attr({ itemGroupId: itemLabelArray, - itemId: contentItem.id, + itemId: contentItem.sheetId, class: 'item-group', }); @@ -357,7 +357,7 @@ export class FolioService { fill: 'grey', }); } else { - snapItemGroup.click(() => this.ref.selectSvgSheet(contentItem.id)); + snapItemGroup.click(() => this.ref.selectSvgSheet(contentItem.complexId, contentItem.sheetId)); snapItemGroup.attr({ stroke: fgColor, fill: fgColor, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts index 764254b6a4..621752ba2d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts @@ -54,7 +54,7 @@ class EditionAccoladeStubComponent { @Output() selectOverlaysRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } @Component({ selector: 'awg-edition-convolute', template: '' }) @@ -66,7 +66,7 @@ class EditionConvoluteStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionSheetsComponent', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts index d7dc9f5464..a2cd02dd6f 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts @@ -215,8 +215,8 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { const selectedLinkBox = this.selectedTextcritics.linkBoxes.find(linkBox => linkBox.svgGroupId === linkBoxId); if (selectedLinkBox) { - const linkToSvgSheet = selectedLinkBox.linkTo; - this.onSvgSheetSelect(linkToSvgSheet); + const linkedSheetIds = selectedLinkBox.linkTo; + this.onSvgSheetSelect(linkedSheetIds); } } @@ -284,34 +284,32 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { editionTypeSheets ); - this.onSvgSheetSelect(nextSheetId); + this.onSvgSheetSelect({ complexId: '', sheetId: nextSheetId }); } /** * Public method: onSvgSheetSelect. * - * It selects a SVG sheet by its id and - * navigates to the edition sheets route + * It selects a SVG sheet by its edition complex + * and sheet ids and navigates to the edition sheets route * with this given id. * - * @param {string} id The given SVG sheet id. + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. * @returns {void} Navigates to the edition sheets. */ - onSvgSheetSelect(sheetId: string): void { + onSvgSheetSelect(sheetIds: { complexId: string; sheetId: string }): void { // Set default id if none is given - if (!sheetId) { - sheetId = this.svgSheetsData.sheets.sketchEditions[0].id; - } + const complexRoute = sheetIds.complexId + ? `/edition/complex/${sheetIds.complexId}` + : this.editionComplex.baseRoute; + const sheetRoute = sheetIds.sheetId ? sheetIds.sheetId : this.svgSheetsData.sheets.sketchEditions[0].id; const navigationExtras: NavigationExtras = { - queryParams: { id: sheetId }, + queryParams: { id: sheetRoute }, queryParamsHandling: 'merge', }; - this.router.navigate( - [this.editionComplex.baseRoute, this.editionRouteConstants.EDITION_SHEETS.route], - navigationExtras - ); + this.router.navigate([complexRoute, this.editionRouteConstants.EDITION_SHEETS.route], navigationExtras); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.ts index 3df02b88b6..8cdf886073 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.ts @@ -52,10 +52,10 @@ export class EditionTkaTableComponent { /** * Output variable: selectSvgSheetRequest. * - * It keeps an event emitter for the selected id of an svg sheet. + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. */ @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); /** * Readonly variable: GLYPHS. @@ -160,16 +160,17 @@ export class EditionTkaTableComponent { /** * Public method: selectSvgSheet. * - * It emits a given id of a selected svg sheet - * to the {@link selectSvgSheetRequest}. + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. * - * @param {string} id The given sheet id. - * @returns {void} Emits the id. + * @param {string} complexId The given complex id. + * @param {string} sheetId The given sheet id. + * @returns {void} Emits the ids. */ - selectSvgSheet(id: string): void { - if (!id) { + selectSvgSheet(complexId: string, sheetId: string): void { + if (!sheetId) { return; } - this.selectSvgSheetRequest.emit(id); + this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); } } diff --git a/src/app/views/edition-view/models/edition-svg-link-box.model.ts b/src/app/views/edition-view/models/edition-svg-link-box.model.ts index 5ff6a368f3..b09d216cb3 100644 --- a/src/app/views/edition-view/models/edition-svg-link-box.model.ts +++ b/src/app/views/edition-view/models/edition-svg-link-box.model.ts @@ -14,5 +14,5 @@ export class EditionSvgLinkBox { /** * The link to another svg. */ - linkTo: string; + linkTo: { complexId: string; sheetId: string }; } diff --git a/src/app/views/edition-view/models/folio-calculation.model.ts b/src/app/views/edition-view/models/folio-calculation.model.ts index c0c1697663..2b46924e7d 100644 --- a/src/app/views/edition-view/models/folio-calculation.model.ts +++ b/src/app/views/edition-view/models/folio-calculation.model.ts @@ -221,10 +221,15 @@ export class FolioCalculationContentItem { */ previous: FolioCalculationContentItemCache; + /** + * The label for the id of the edition complex of the content item (string). + */ + complexId: string; + /** * The label for the id of the content item (string). */ - id: string; + sheetId: string; /** * The label for the sigle of the content item (string). @@ -582,7 +587,8 @@ export class FolioCalculation { calculatedContentItem ); - calculatedContentItem.id = content.id; + calculatedContentItem.complexId = content.complexId; + calculatedContentItem.sheetId = content.sheetId; calculatedContentItem.sigle = content.sigle; calculatedContentItem.sigleAddendum = content.sigleAddendum; calculatedContentItem.selectable = true; diff --git a/src/app/views/edition-view/models/folio-svg-data.model.ts b/src/app/views/edition-view/models/folio-svg-data.model.ts index 0a330e59f9..7ad2956442 100644 --- a/src/app/views/edition-view/models/folio-svg-data.model.ts +++ b/src/app/views/edition-view/models/folio-svg-data.model.ts @@ -100,9 +100,14 @@ class FolioSvgSystems { */ class FolioSvgContentItem { /** - * The id for the label of a content item (string). + * The id for the label of a content item edition complex (string). */ - id: string; + complexId: string; + + /** + * The id for the label of a content item sheet (string). + */ + sheetId: string; /** * The sigle for the label of a content item (string). @@ -158,7 +163,8 @@ class FolioSvgContentItem { * @param {FolioCalculationContentItem} calculatedContentItem The given calculated folio content item. */ constructor(calculatedContentItem: FolioCalculationContentItem) { - this.id = calculatedContentItem.id; + this.complexId = calculatedContentItem.complexId; + this.sheetId = calculatedContentItem.sheetId; this.sigle = calculatedContentItem.sigle; this.sigleAddendum = calculatedContentItem.sigleAddendum; this.selectable = calculatedContentItem.selectable; diff --git a/src/app/views/edition-view/models/folio.model.ts b/src/app/views/edition-view/models/folio.model.ts index 8ebb1b9788..f50fb79d2f 100644 --- a/src/app/views/edition-view/models/folio.model.ts +++ b/src/app/views/edition-view/models/folio.model.ts @@ -98,9 +98,14 @@ export class FolioFormat { */ export class FolioContent { /** - * The folio content's id (string). + * The folio content's complex id (string). */ - id: string; + complexId: string; + + /** + * The folio content's sheet id (string). + */ + sheetId: string; /** * The folio content's sigle (string). diff --git a/src/app/views/edition-view/models/source-description.model.ts b/src/app/views/edition-view/models/source-description.model.ts index b99d5bf4a4..594821f334 100644 --- a/src/app/views/edition-view/models/source-description.model.ts +++ b/src/app/views/edition-view/models/source-description.model.ts @@ -46,7 +46,7 @@ export class SourceDescriptionSystem { measure?: string; /** - * The measure link (optional). + * The link to a certain measure range of an svg sheet (optional). */ linkTo?: string; @@ -101,7 +101,7 @@ export class SourceDescriptionContent { /** * The content item link (optional). */ - itemLinkTo?: string; + itemLinkTo?: { complexId?: string; sheetId?: string }; /** * The content item description (optional). From 1ee72685f4f72886e795ad6483e21873bf861c71 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 15 Jan 2024 23:29:12 +0100 Subject: [PATCH 04/36] fix(assets): adjust data after changes to svg link models --- .../1/section/1/op24/folio-convolute.json | 6 +- .../1/section/1/op24/source-description.json | 5 +- .../1/section/2/op22/folio-convolute.json | 9 +- .../1/section/2/op22/source-description.json | 9 +- .../1/section/2/op27/folio-convolute.json | 9 +- .../1/section/2/op27/source-description.json | 5 +- .../1/section/3/op19/folio-convolute.json | 3 +- .../1/section/3/op19/source-description.json | 5 +- .../1/section/5/op12/folio-convolute.json | 27 +- .../1/section/5/op12/source-description.json | 31 +- .../series/1/section/5/op12/textcritics.json | 38 +- .../1/section/5/op23/folio-convolute.json | 3 +- .../1/section/5/op23/source-description.json | 5 +- .../1/section/5/op25/folio-convolute.json | 63 +- .../1/section/5/op25/source-description.json | 98 ++- .../series/1/section/5/op25/textcritics.json | 621 ++++++++++++++---- .../2/section/2a/m30/folio-convolute.json | 33 +- .../2/section/2a/m30/source-description.json | 36 +- .../2/section/2a/m34/folio-convolute.json | 12 +- .../2/section/2a/m34/source-description.json | 75 ++- .../series/2/section/2a/m34/textcritics.json | 14 +- .../2/section/2a/m37/folio-convolute.json | 15 +- .../2/section/2a/m37/source-description.json | 75 ++- .../series/2/section/2a/m37/textcritics.json | 24 +- .../2/section/2a/m37/M37_Sk1-1von1-final.svg | 2 +- .../2/section/2a/m37/M37_Sk2-1von1-final.svg | 2 +- 26 files changed, 900 insertions(+), 325 deletions(-) diff --git a/src/assets/data/edition/series/1/section/1/op24/folio-convolute.json b/src/assets/data/edition/series/1/section/1/op24/folio-convolute.json index 50c4da2ef7..415bb4a45a 100644 --- a/src/assets/data/edition/series/1/section/1/op24/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/1/op24/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "SkRTa", + "complexId": "op24", + "sheetId": "SkRTa", "sigle": "M 316 Sk# / M 318 Sk# / M 319 Sk# / M 320 Sk# (Reihentabelle op. 24)", "sigleAddendum": "Reihenformen 1–24", "sectionPartition": 1, @@ -45,7 +46,8 @@ }, "content": [ { - "id": "SkRTb", + "complexId": "op24", + "sheetId": "SkRTb", "sigle": "M 316 Sk# / M 318 Sk# / M 319 Sk# / M 320 Sk# (Reihentabelle op. 24)", "sigleAddendum": "Reihenformen 25–48", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/1/op24/source-description.json b/src/assets/data/edition/series/1/section/1/op24/source-description.json index 573c3cd3ef..fd3e7dba47 100644 --- a/src/assets/data/edition/series/1/section/1/op24/source-description.json +++ b/src/assets/data/edition/series/1/section/1/op24/source-description.json @@ -21,7 +21,10 @@ "content": [ { "item": "M 316 Sk# / M 318 Sk# / M 319 Sk# / M 320 Sk#", - "itemLinkTo": "SkRTa", + "itemLinkTo": { + "complexId": "op24", + "sheetId": "SkRTa" + }, "itemDescription": "(Reihentabelle op. 24)", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/2/op22/folio-convolute.json b/src/assets/data/edition/series/1/section/2/op22/folio-convolute.json index 2c49831f39..b5387d405c 100644 --- a/src/assets/data/edition/series/1/section/2/op22/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/2/op22/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "SkRTa", + "complexId": "op22", + "sheetId": "SkRTa", "sigle": "M 305 Sk# / M 308 Sk# / M 309 Sk# (Reihentabelle op. 22)", "sigleAddendum": "Reihenformen 1–16", "sectionPartition": 1, @@ -45,7 +46,8 @@ }, "content": [ { - "id": "SkRTb", + "complexId": "op22", + "sheetId": "SkRTb", "sigle": "M 305 Sk# / M 308 Sk# / M 309 Sk# (Reihentabelle op. 22)", "sigleAddendum": "Reihenformen 17–32", "sectionPartition": 1, @@ -77,7 +79,8 @@ }, "content": [ { - "id": "SkRTc", + "complexId": "op22", + "sheetId": "SkRTc", "sigle": "M 305 Sk# / M 308 Sk# / M 309 Sk# (Reihentabelle op. 22)", "sigleAddendum": "Reihenformen 33–48", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/2/op22/source-description.json b/src/assets/data/edition/series/1/section/2/op22/source-description.json index bfefa8cce1..a2868954e2 100644 --- a/src/assets/data/edition/series/1/section/2/op22/source-description.json +++ b/src/assets/data/edition/series/1/section/2/op22/source-description.json @@ -24,7 +24,10 @@ "content": [ { "item": "M 305 Sk# / M 308 Sk# / M 309 Sk#", - "itemLinkTo": "SkRT", + "itemLinkTo": { + "complexId": "op22", + "sheetId": "SkRT" + }, "itemDescription": "(Reihentabelle op. 22)", "folios": [ { @@ -580,7 +583,7 @@ }, { "item": "", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "", "folios": [ { @@ -593,7 +596,7 @@ }, { "item": "", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/2/op27/folio-convolute.json b/src/assets/data/edition/series/1/section/2/op27/folio-convolute.json index 198a87d662..53c618ce0a 100644 --- a/src/assets/data/edition/series/1/section/2/op27/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/2/op27/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "SkRTa", + "complexId": "op27", + "sheetId": "SkRTa", "sigle": "M 325 Sk# / M 326 Sk1 / M 327 Sk1 (Reihentabelle op. 27)", "sigleAddendum": "Reihenformen 1–16", "sectionPartition": 1, @@ -45,7 +46,8 @@ }, "content": [ { - "id": "SkRTb", + "complexId": "op27", + "sheetId": "SkRTb", "sigle": "M 325 Sk# / M 326 Sk1 / M 327 Sk1 (Reihentabelle op. 27)", "sigleAddendum": "Reihenformen 17–32", "sectionPartition": 1, @@ -77,7 +79,8 @@ }, "content": [ { - "id": "SkRTc", + "complexId": "op27", + "sheetId": "SkRTc", "sigle": "M 325 Sk# / M 326 Sk1 / M 327 Sk1 (Reihentabelle op. 27)", "sigleAddendum": "Reihenformen 33–48", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/2/op27/source-description.json b/src/assets/data/edition/series/1/section/2/op27/source-description.json index e9f1cd8948..ca3ddd6dfa 100644 --- a/src/assets/data/edition/series/1/section/2/op27/source-description.json +++ b/src/assets/data/edition/series/1/section/2/op27/source-description.json @@ -19,7 +19,10 @@ "content": [ { "item": "M 325 Sk# / M 326 Sk1 / M 327 Sk1", - "itemLinkTo": "SkRTa", + "itemLinkTo": { + "complexId": "op27", + "sheetId": "SkRTa" + }, "itemDescription": "(Reihentabelle op. 27)", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/3/op19/folio-convolute.json b/src/assets/data/edition/series/1/section/3/op19/folio-convolute.json index 9a270eb5eb..cde23b46d5 100644 --- a/src/assets/data/edition/series/1/section/3/op19/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/3/op19/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "SkRT", + "complexId": "op19", + "sheetId": "SkRT", "sigle": "M 286 Sk# / M 287 Sk# (Reihentabelle op. 19)", "sigleAddendum": "Reihenformen 1–8", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/3/op19/source-description.json b/src/assets/data/edition/series/1/section/3/op19/source-description.json index c28997f6a3..c5e5c9ebf0 100644 --- a/src/assets/data/edition/series/1/section/3/op19/source-description.json +++ b/src/assets/data/edition/series/1/section/3/op19/source-description.json @@ -20,7 +20,10 @@ "content": [ { "item": "M 286 Sk# / M 287 Sk#", - "itemLinkTo": "SkRT", + "itemLinkTo": { + "complexId": "op19", + "sheetId": "SkRT" + }, "itemDescription": "(Reihentabelle op. 19)", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/5/op12/folio-convolute.json b/src/assets/data/edition/series/1/section/5/op12/folio-convolute.json index 580616e286..0714d88943 100644 --- a/src/assets/data/edition/series/1/section/5/op12/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/5/op12/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "M_212_Sk1a", + "complexId": "op12", + "sheetId": "M_212_Sk1a", "sigle": "M 212 Sk1", "sigleAddendum": "T. 1–6", "sectionPartition": 1, @@ -25,7 +26,8 @@ ] }, { - "id": "M_212_Sk1b", + "complexId": "op12", + "sheetId": "M_212_Sk1b", "sigle": "M 212 Sk1", "sigleAddendum": "T. 7–12", "sectionPartition": 1, @@ -38,7 +40,8 @@ ] }, { - "id": "M_212_Sk1c", + "complexId": "op12", + "sheetId": "M_212_Sk1c", "sigle": "M 212 Sk1", "sigleAddendum": "T. 13–17", "sectionPartition": 1, @@ -61,7 +64,8 @@ }, "content": [ { - "id": "M_212_Sk4", + "complexId": "op12", + "sheetId": "M_212_Sk4", "sigle": "M 212 Sk4", "sigleAddendum": "T. 10–11", "sectionPartition": 2, @@ -74,7 +78,8 @@ ] }, { - "id": "M_212_Sk5", + "complexId": "op12", + "sheetId": "M_212_Sk5", "sigle": "M 212 Sk5", "sigleAddendum": "T. 10–11", "sectionPartition": 2, @@ -87,7 +92,8 @@ ] }, { - "id": "M_212_Sk3", + "complexId": "op12", + "sheetId": "M_212_Sk3", "sigle": "M 212 Sk3", "sigleAddendum": "T. 10–11", "sectionPartition": 2, @@ -100,7 +106,8 @@ ] }, { - "id": "M_212_Sk2", + "complexId": "op12", + "sheetId": "M_212_Sk2", "sigle": "M 212 Sk2", "sigleAddendum": "T. 10–12", "sectionPartition": 2, @@ -123,7 +130,8 @@ }, "content": [ { - "id": "M_212_Sk1d", + "complexId": "op12", + "sheetId": "M_212_Sk1d", "sigle": "M 212 Sk1", "sigleAddendum": "T. 18–22", "sections": [ @@ -134,7 +142,8 @@ ] }, { - "id": "M_212_Sk1e", + "complexId": "op12", + "sheetId": "M_212_Sk1e", "sigle": "M 212 Sk1", "sigleAddendum": "T. 23–24", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 3c7dbf7f18..9af2abbd86 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -26,7 +26,10 @@ "content": [ { "item": "M 212 Sk1", - "itemLinkTo": "M_212_Sk1a", + "itemLinkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk1a" + }, "itemDescription": "(Skizze zu „Der Tag ist vergangen“ M 212)", "folios": [ { @@ -82,7 +85,10 @@ }, { "item": "M 212 Sk2", - "itemLinkTo": "M_212_Sk2", + "itemLinkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk2" + }, "itemDescription": "(Skizze zu „Der Tag ist vergangen“ M 212: Textfassung 2)", "folios": [ { @@ -103,7 +109,10 @@ }, { "item": "M 212 Sk3", - "itemLinkTo": "M_212_Sk3", + "itemLinkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk3" + }, "itemDescription": "(Skizze zu „Der Tag ist vergangen“ M 212: Textfassung 2)", "folios": [ { @@ -124,7 +133,10 @@ }, { "item": "M 212 Sk5", - "itemLinkTo": "M_212_Sk5", + "itemLinkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk5" + }, "itemDescription": "(Skizze zu „Der Tag ist vergangen“ M 212: Textfassung 2)", "folios": [ { @@ -145,7 +157,10 @@ }, { "item": "M 212 Sk4", - "itemLinkTo": "M_212_Sk4", + "itemLinkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk4" + }, "itemDescription": "(Skizze zu „Der Tag ist vergangen“ M 212: Textfassung 2)", "folios": [ { @@ -166,7 +181,7 @@ }, { "item": "", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "", "folios": [ { @@ -204,8 +219,8 @@ "content": [ { "item": " ", - "itemLinkTo": "", - "itemDescription": "Autograph von „Der Tag ist vergangen“ M 212: Textfassung 1→2", + "itemLinkTo": {}, + "itemDescription": "Autograph von „Der Tag ist vergangen“ M 212: Textfassung 1→2", "folios": [ { "folio": "1r", diff --git a/src/assets/data/edition/series/1/section/5/op12/textcritics.json b/src/assets/data/edition/series/1/section/5/op12/textcritics.json index a8c6dc4e1c..4be6a8952b 100644 --- a/src/assets/data/edition/series/1/section/5/op12/textcritics.json +++ b/src/assets/data/edition/series/1/section/5/op12/textcritics.json @@ -4,7 +4,7 @@ "id": "M_212_Sk1", "label": "M 212 Sk1", "description": [ - "Sk1 ist die Verlaufsskizze zu „Der Tag ist vergangen“ M 212: Textfassung 1." + "Sk1 ist die Verlaufsskizze zu „Der Tag ist vergangen“ M 212: Textfassung 1." ], "comments": [ { @@ -160,7 +160,7 @@ "id": "M_212_Sk2", "label": "M 212 Sk2", "description": [ - "In Sk2 werden T. 11–12 aus Sk1 bzw. T. 10–11 aus B („Der Tag ist vergangen“ M 212: Textfassung 1) neu skizziert, in Sk3, Sk4 und Sk5 weiter modifiziert und zu einer Formulierung gebracht, die T. 10–11 aus C („Der Tag ist vergangen“ M 212: Textfassung 2) entspricht. Da T. 10–11 in B offensichtlich zunächst aus Sk1 übernommen wurden und Korrekturen in B mit Bleistift auf die Formulierung von Sk2 hindeuten, sind Sk2–5 offensichtlich erst nach der Niederschrift von B und während oder nach den dort vorhandenen Korrekturen, vermutlich als Arbeitsvorlage für C entstanden.
Sk2 übernimmt bestimmte Merkmale der Korrekturen in B, die bei einem gleichbleibenden Metrum (das allerdings weder durch einen Taktstrich vor T. 12 kenntlich gemacht noch durch eine neue Taktartvorzeichnung explizit geändert wird) zu einer Erweiterung der vormals zweitaktigen zu einer dreitaktigen Figur führen. Im Klavier (System 13–12) wird die rhythmische Konstellation der Zweiklänge F/e im unteren System und es1/as1 im oberen System geändert sowie der letzte Zweiklang im unteren System aus Sk1 bzw. B (Gis/cis) getilgt." + "In Sk2 werden T. 11–12 aus Sk1 bzw. T. 10–11 aus B („Der Tag ist vergangen“ M 212: Textfassung 1) neu skizziert, in Sk3, Sk4 und Sk5 weiter modifiziert und zu einer Formulierung gebracht, die T. 10–11 aus C („Der Tag ist vergangen“ M 212: Textfassung 2) entspricht. Da T. 10–11 in B offensichtlich zunächst aus Sk1 übernommen wurden und Korrekturen in B mit Bleistift auf die Formulierung von Sk2 hindeuten, sind Sk2–5 offensichtlich erst nach der Niederschrift von B und während oder nach den dort vorhandenen Korrekturen, vermutlich als Arbeitsvorlage für C entstanden.
Sk2 übernimmt bestimmte Merkmale der Korrekturen in B, die bei einem gleichbleibenden Metrum (das allerdings weder durch einen Taktstrich vor T. 12 kenntlich gemacht noch durch eine neue Taktartvorzeichnung explizit geändert wird) zu einer Erweiterung der vormals zweitaktigen zu einer dreitaktigen Figur führen. Im Klavier (System 13–12) wird die rhythmische Konstellation der Zweiklänge F/e im unteren System und es1/as1 im oberen System geändert sowie der letzte Zweiklang im unteren System aus Sk1 bzw. B (Gis/cis) getilgt." ], "comments": [ { @@ -175,7 +175,7 @@ "measure": "10", "system": "12", "position": "2. Note", - "comment": "{{ref.getGlyph('[a]')}}e oder {{ref.getGlyph('[b]')}}es (?). (Siehe auch System 13 2/4: e1/as1 oder [{{ref.getGlyph('[b]')}}]es1/as1?) Vorgeschlagene Entzifferung mit Blick auf eindeutig entzifferbare Akzidenzien an entsprechender Stelle in Sk1 T. 11, Sk3 und Sk5 sowie in den Reinschrift- bzw. Druckfassungen aus B, C, E, F und G." + "comment": "{{ref.getGlyph('[a]')}}e oder {{ref.getGlyph('[b]')}}es (?). (Siehe auch System 13 2/4: e1/as1 oder [{{ref.getGlyph('[b]')}}]es1/as1?) Vorgeschlagene Entzifferung mit Blick auf eindeutig entzifferbare Akzidenzien an entsprechender Stelle in Sk1 T. 11, Sk3 und Sk5 sowie in den Reinschrift- bzw. Druckfassungen aus B, C, E, F und G." }, { "svgGroupId": "g1006", @@ -195,7 +195,10 @@ "linkBoxes": [ { "svgGroupId": "g3816", - "linkTo": "M_212_Sk3" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk3" + } } ] }, @@ -203,7 +206,7 @@ "id": "M_212_Sk3", "label": "M 212 Sk3", "description": [ - "Sk3 verkürzt die Figur wieder zu einer zweitaktigen, wobei in System 11 zunächst die Verlängerung des ersten Tons der Singstimme („e–[wig]“) wie in Sk2 tendenziell übernommen, dann in System 12 wieder in die rhythmische Ausgangs-Konfiguration geführt wird. Die Klavierstimme (System 10–9) bringt in der letzten Korrekturschicht bereits die in Sk5 formulierte und in C verwendete Variante." + "Sk3 verkürzt die Figur wieder zu einer zweitaktigen, wobei in System 11 zunächst die Verlängerung des ersten Tons der Singstimme („e–[wig]“) wie in Sk2 tendenziell übernommen, dann in System 12 wieder in die rhythmische Ausgangs-Konfiguration geführt wird. Die Klavierstimme (System 10–9) bringt in der letzten Korrekturschicht bereits die in Sk5 formulierte und in C verwendete Variante." ], "comments": [ { @@ -231,11 +234,17 @@ "linkBoxes": [ { "svgGroupId": "g4399", - "linkTo": "M_212_Sk2" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk2" + } }, { "svgGroupId": "g4410", - "linkTo": "M_212_Sk5" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk5" + } } ] }, @@ -264,7 +273,10 @@ "linkBoxes": [ { "svgGroupId": "g4957", - "linkTo": "M_212_Sk5" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk5" + } } ] }, @@ -294,11 +306,17 @@ "linkBoxes": [ { "svgGroupId": "g5508", - "linkTo": "M_212_Sk3" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk3" + } }, { "svgGroupId": "g5497", - "linkTo": "M_212_Sk4" + "linkTo": { + "complexId": "op12", + "sheetId": "M_212_Sk4" + } } ] }, diff --git a/src/assets/data/edition/series/1/section/5/op23/folio-convolute.json b/src/assets/data/edition/series/1/section/5/op23/folio-convolute.json index 9bcf2d3ab9..df7db7eee1 100644 --- a/src/assets/data/edition/series/1/section/5/op23/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/5/op23/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "SkRT", + "complexId": "op23", + "sheetId": "SkRT", "sigle": "M 312 Sk5 / M 313 Sk1 / M 314 Sk1 (Reihentabelle op. 23)", "sigleAddendum": "Reihenformen 1–8", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/5/op23/source-description.json b/src/assets/data/edition/series/1/section/5/op23/source-description.json index a7de55c057..84e89c9dd6 100644 --- a/src/assets/data/edition/series/1/section/5/op23/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op23/source-description.json @@ -21,7 +21,10 @@ "content": [ { "item": "M 312 Sk5 / M 313 Sk1 / M 314 Sk1", - "itemLinkTo": "SkRT", + "itemLinkTo": { + "complexId": "op23", + "sheetId": "SkRT" + }, "itemDescription": "(Reihentabelle op. 23)", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/5/op25/folio-convolute.json b/src/assets/data/edition/series/1/section/5/op25/folio-convolute.json index e6f506c6fa..2c9f65793e 100644 --- a/src/assets/data/edition/series/1/section/5/op25/folio-convolute.json +++ b/src/assets/data/edition/series/1/section/5/op25/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "M_317_Sk2", + "complexId": "op25", + "sheetId": "M_317_Sk2", "sigle": "M 317 Sk2", "sigleAddendum": "", "sectionPartition": 5, @@ -26,7 +27,8 @@ ] }, { - "id": "M_317_Sk1", + "complexId": "op25", + "sheetId": "M_317_Sk1", "sigle": "M 317 Sk1", "sigleAddendum": "", "sectionPartition": 5, @@ -39,7 +41,8 @@ ] }, { - "id": "M_317_Sk2_1", + "complexId": "op25", + "sheetId": "M_317_Sk2_1", "sigle": "M 317 Sk2.1", "sigleAddendum": "", "sectionPartition": 5, @@ -52,7 +55,8 @@ ] }, { - "id": "M_317_Sk2_1_1", + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1", "sigle": "M 317 Sk2.1.1", "sigleAddendum": "", "sectionPartition": 5, @@ -65,7 +69,8 @@ ] }, { - "id": "M_317_Sk2_1_2", + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2", "sigle": "M 317 Sk2.1.2", "sigleAddendum": "", "sectionPartition": 5, @@ -78,7 +83,8 @@ ] }, { - "id": "M_317_Sk2_1_2_1", + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1", "sigle": "M 317 Sk2.1.2.1", "sigleAddendum": "", "sectionPartition": 8, @@ -91,7 +97,8 @@ ] }, { - "id": "M_317_Sk2_1_3", + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3", "sigle": "M 317 Sk2.1.3", "sigleAddendum": "", "sectionPartition": 12, @@ -104,7 +111,8 @@ ] }, { - "id": "M_317_Sk3", + "complexId": "op25", + "sheetId": "M_317_Sk3", "sigle": "M 317 Sk3", "sigleAddendum": "", "sectionPartition": 3, @@ -117,7 +125,8 @@ ] }, { - "id": "M_317_Sk3_1", + "complexId": "op25", + "sheetId": "M_317_Sk3_1", "sigle": "M 317 Sk3.1", "sigleAddendum": "", "sectionPartition": 6, @@ -130,7 +139,8 @@ ] }, { - "id": "M_317_Sk3_1_1", + "complexId": "op25", + "sheetId": "M_317_Sk3_1_1", "sigle": "M 317 Sk3.1.1", "sigleAddendum": "", "sectionPartition": 10, @@ -143,7 +153,8 @@ ] }, { - "id": "M_317_Sk3_1_2", + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2", "sigle": "M 317 Sk3.1.2", "sigleAddendum": "", "sectionPartition": 5, @@ -156,7 +167,8 @@ ] }, { - "id": "M_317_Sk3_1_3", + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3", "sigle": "M 317 Sk3.1.3", "sigleAddendum": "", "sectionPartition": 5, @@ -169,7 +181,8 @@ ] }, { - "id": "M_317_Sk3_1_3_1", + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3_1", "sigle": "M 317 Sk3.1.3.1", "sigleAddendum": "", "sectionPartition": 3, @@ -182,7 +195,8 @@ ] }, { - "id": "M_317_Sk4a", + "complexId": "op25", + "sheetId": "M_317_Sk4a", "sigle": "M 317 Sk4", "sigleAddendum": "T. {1A}–3A", "sectionPartition": 1, @@ -195,7 +209,8 @@ ] }, { - "id": "M_317_Sk4_1", + "complexId": "op25", + "sheetId": "M_317_Sk4_1", "sigle": "M 317 Sk4.1", "sigleAddendum": "", "sectionPartition": 3, @@ -218,7 +233,8 @@ }, "content": [ { - "id": "M_317_Sk4b", + "complexId": "op25", + "sheetId": "M_317_Sk4b", "sigle": "M 317 Sk4", "sigleAddendum": "T. 3B–6", "sectionPartition": 1, @@ -231,7 +247,8 @@ ] }, { - "id": "M_317_Sk4c", + "complexId": "op25", + "sheetId": "M_317_Sk4c", "sigle": "M 317 Sk4", "sigleAddendum": "T. 7–12", "sectionPartition": 1, @@ -244,7 +261,8 @@ ] }, { - "id": "M_317_Sk4d", + "complexId": "op25", + "sheetId": "M_317_Sk4d", "sigle": "M 317 Sk4", "sigleAddendum": "T. 13–15", "sectionPartition": 4, @@ -257,7 +275,8 @@ ] }, { - "id": "M_317_Sk4_2", + "complexId": "op25", + "sheetId": "M_317_Sk4_2", "sigle": "M 317 Sk4.2", "sigleAddendum": "", "sectionPartition": 4, @@ -270,7 +289,8 @@ ] }, { - "id": "M_317_Sk4_3", + "complexId": "op25", + "sheetId": "M_317_Sk4_3", "sigle": "M 317 Sk4.3", "sigleAddendum": "", "sectionPartition": 7, @@ -299,7 +319,8 @@ }, "content": [ { - "id": "SkRT", + "complexId": "op25", + "sheetId": "SkRT", "sigle": "M 317 Sk5 / M 321 Sk1 / M322 Sk1 (Reihentabelle op. 25)", "sigleAddendum": "Reihenformen 1–8", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/1/section/5/op25/source-description.json b/src/assets/data/edition/series/1/section/5/op25/source-description.json index 9cfecd1bb0..2efeafddc7 100644 --- a/src/assets/data/edition/series/1/section/5/op25/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op25/source-description.json @@ -15,13 +15,16 @@ }, "title": "„Wie bin ich froh!“ auf Bl. 38v oben links mit schwarzem Buntstift.", "date": "", - "measureNumbers": "Taktzahlen 1–2, 3–6 und 9–15 in M 317 Sk4 sowie 2–3 in M 317 Sk4.1 mit schwarzem Buntstift; Taktzahlen 7–8 in M 317 Sk4 mit Bleistift und nachgezogen mit schwarzem Buntstift.
Taktzahl 52 (zu op. 24/1) auf Bl. 39r oben links mit schwarzem Buntstift.", + "measureNumbers": "Taktzahlen 1–2, 3–6 und 9–15 in M 317 Sk4 sowie 2–3 in M 317 Sk4.1 mit schwarzem Buntstift; Taktzahlen 7–8 in M 317 Sk4 mit Bleistift und nachgezogen mit schwarzem Buntstift.
Taktzahl 52 (zu op. 24/1) auf Bl. 39r oben links mit schwarzem Buntstift.", "instrumentation": "Akkoladenstrich und teilweise Schlüsselvorsatz auf Bl. 38v System 1–4 (zu op. 24/1).
Akkoladenstrich und Schlüsselvorsatz auf Bl. 39r System 1–4 (zu op. 24/1), eingekreist und gestrichen mit rotem Buntstift.", - "annotations": "Reihe auf Bl. 38v System 5 links (zu M 317 Sk3.1.3) mit schwarzem Buntstift.", + "annotations": "Reihe auf Bl. 38v System 5 links (zu M 317 Sk3.1.3) mit schwarzem Buntstift.", "content": [ { "item": "M 317 Sk2", - "itemLinkTo": "M_317_Sk2", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -43,7 +46,10 @@ }, { "item": "M 317 Sk1", - "itemLinkTo": "M_317_Sk1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -64,7 +70,10 @@ }, { "item": "M 317 Sk2.1", - "itemLinkTo": "M_317_Sk2_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -85,7 +94,10 @@ }, { "item": "M 317 Sk2.1.1", - "itemLinkTo": "M_317_Sk2_1_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -106,7 +118,10 @@ }, { "item": "M 317 Sk2.1.2", - "itemLinkTo": "M_317_Sk2_1_2", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -127,7 +142,10 @@ }, { "item": "M 317 Sk2.1.2.1", - "itemLinkTo": "M_317_Sk2_1_2_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -148,7 +166,10 @@ }, { "item": "M 317 Sk2.1.3", - "itemLinkTo": "M_317_Sk2_1_3", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -170,7 +191,10 @@ }, { "item": "M 317 Sk3", - "itemLinkTo": "M_317_Sk3", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -191,7 +215,10 @@ }, { "item": "M 317 Sk3.1", - "itemLinkTo": "M_317_Sk3_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -212,7 +239,10 @@ }, { "item": "M 317 Sk3.1.1", - "itemLinkTo": "M_317_Sk3_1_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -233,7 +263,10 @@ }, { "item": "M 317 Sk3.1.2", - "itemLinkTo": "M_317_Sk3_1_2", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -254,7 +287,10 @@ }, { "item": "M 317 Sk3.1.3", - "itemLinkTo": "M_317_Sk3_1_3", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3" + }, "itemDescription": "(Reihentabelle zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -312,7 +348,10 @@ }, { "item": "M 317 Sk3.1.3.1", - "itemLinkTo": "M_317_Sk3_1_3_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -334,7 +373,10 @@ }, { "item": "M 317 Sk4", - "itemLinkTo": "M_317_Sk4a", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4a" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -383,7 +425,10 @@ }, { "item": "M 317 Sk4.1", - "itemLinkTo": "M_317_Sk4_1", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_1" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -404,7 +449,10 @@ }, { "item": "M 317 Sk4.2", - "itemLinkTo": "M_317_Sk4_2", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_2" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -425,7 +473,10 @@ }, { "item": "M 317 Sk4.3", - "itemLinkTo": "M_317_Sk4_3", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_3" + }, "itemDescription": "(Skizze zu „Wie bin ich froh!“ M 317)", "folios": [ { @@ -468,8 +519,8 @@ "content": [ { "item": " ", - "itemLinkTo": "", - "itemDescription": "Autograph von „Wie bin ich froh!“ M 317: Textfassung 1", + "itemLinkTo": {}, + "itemDescription": "Autograph von „Wie bin ich froh!“ M 317: Textfassung 1", "folios": [ { "folio": "1r", @@ -571,7 +622,10 @@ "content": [ { "item": "M 317 Sk5 / M321 Sk1 / M 322 Sk1", - "itemLinkTo": "SkRT", + "itemLinkTo": { + "complexId": "op25", + "sheetId": "SkRT" + }, "itemDescription": "(Reihentabelle op. 25)", "folios": [ { diff --git a/src/assets/data/edition/series/1/section/5/op25/textcritics.json b/src/assets/data/edition/series/1/section/5/op25/textcritics.json index 463b678e98..80b60069c2 100644 --- a/src/assets/data/edition/series/1/section/5/op25/textcritics.json +++ b/src/assets/data/edition/series/1/section/5/op25/textcritics.json @@ -4,7 +4,7 @@ "id": "M_317_Sk1", "label": "M 317 Sk1", "description": [ - "Sk1 entwirft eine viertönige Figur, die in ihrem Tonvorrat und ihrer rhythmischen Kontur dem Anfang der Singstimme von „Wie bin ich froh!“ M 317 entspricht. Dass es sich um die erste Skizzeneinheit zu dem Lied handelt, erschließt sich aus dem skripturalen Zusammenhang mit der links danebenstehenden Einheit Sk2: Diese weist an ihrem rechten Ende ein deutlich zusammengedrängtes Schriftbild auf, was sich durch den bereits von Sk1 beanspruchten Raum auf der Seite erklärt.
Noch vor der Niederschrift von Sk1 war die Seite am linken Rand vermutlich mit dem Akkoladenstrich von System 1–4 sowie der Schlüsselung in System 2–3 versehen: Diese präparieren die Seite für die Fortsetzung der (bereits im Sommer 1931 begonnenen) Verlaufsskizze zu op. 24/I auf Bl. 22v–26r, 31v–33r und 36v–38r im Skizzenbuch. (Siehe auch Akkoladenstrich, Schlüsselung und Taktziffer am linken Rand von Bl. 39r System 1–4, die ebenfalls als Präparierung der Verlaufskizze zu op. 24/1 fungieren [Sk4 T. 3B–6].)
Die Datierung 4. VII. 34 oberhalb vom linken Rand von System 1 ist möglicherweise bereits im Zusammenhang mit Sk1, vielleicht aber auch erst mit Sk2 notiert worden.
Der über System 1 stehende Titel „Wie bin ich froh!“ ist allerdings sehr wahrscheinlich erst nach Abschluss der Verlaufskizze Sk4, möglicherweise erst bei einer späteren Redaktion des gesamten Skizzenbuches eingetragen worden, worauf der auch für andere entsprechende Titel im Skizzenbuch verwendete Schreibstoff und Schreibduktus hinweist." + "Sk1 entwirft eine viertönige Figur, die in ihrem Tonvorrat und ihrer rhythmischen Kontur dem Anfang der Singstimme von „Wie bin ich froh!“ M 317 entspricht. Dass es sich um die erste Skizzeneinheit zu dem Lied handelt, erschließt sich aus dem skripturalen Zusammenhang mit der links danebenstehenden Einheit Sk2: Diese weist an ihrem rechten Ende ein deutlich zusammengedrängtes Schriftbild auf, was sich durch den bereits von Sk1 beanspruchten Raum auf der Seite erklärt.
Noch vor der Niederschrift von Sk1 war die Seite am linken Rand vermutlich mit dem Akkoladenstrich von System 1–4 sowie der Schlüsselung in System 2–3 versehen: Diese präparieren die Seite für die Fortsetzung der (bereits im Sommer 1931 begonnenen) Verlaufsskizze zu op. 24/I auf Bl. 22v–26r, 31v–33r und 36v–38r im Skizzenbuch. (Siehe auch Akkoladenstrich, Schlüsselung und Taktziffer am linken Rand von Bl. 39r System 1–4, die ebenfalls als Präparierung der Verlaufskizze zu op. 24/1 fungieren [Sk4 T. 3B–6].)
Die Datierung 4. VII. 34 oberhalb vom linken Rand von System 1 ist möglicherweise bereits im Zusammenhang mit Sk1, vielleicht aber auch erst mit Sk2 notiert worden.
Der über System 1 stehende Titel „Wie bin ich froh!“ ist allerdings sehr wahrscheinlich erst nach Abschluss der Verlaufskizze Sk4, möglicherweise erst bei einer späteren Redaktion des gesamten Skizzenbuches eingetragen worden, worauf der auch für andere entsprechende Titel im Skizzenbuch verwendete Schreibstoff und Schreibduktus hinweist." ], "comments": [ { @@ -18,39 +18,66 @@ "linkBoxes": [ { "svgGroupId": "g6407", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g6443", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g6490", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g6454", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g6468", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g6479", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g6414", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g6434", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g6425", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -58,7 +85,7 @@ "id": "M_317_Sk2", "label": "M 317 Sk2", "description": [ - "Sk2 entwirft eine Zwölftonreihe in zwei Anläufen. Reihe A umfasst lediglich fünf Töne, Reihe B ergänzt nach einer Permutation des 3.–4. Reihentons die Reihe zur vollständigen Zwölftönigkeit. Die ersten fünf Töne beider Reihen ergänzen den ungeordneten Tonvorrat von Sk1 um den Anfangston cis. Die Niederschrift von Reihe B erfolgt dann im dynamischen Abgleich mit Sk2.1, Sk2.1.1, Sk2.1.2, Sk2.1.2.1 und Sk2.1.3." + "Sk2 entwirft eine Zwölftonreihe in zwei Anläufen. Reihe A umfasst lediglich fünf Töne, Reihe B ergänzt nach einer Permutation des 3.–4. Reihentons die Reihe zur vollständigen Zwölftönigkeit. Die ersten fünf Töne beider Reihen ergänzen den ungeordneten Tonvorrat von Sk1 um den Anfangston cis. Die Niederschrift von Reihe B erfolgt dann im dynamischen Abgleich mit Sk2.1, Sk2.1.1, Sk2.1.2, Sk2.1.2.1 und Sk2.1.3." ], "rowtable": true, "comments": [ @@ -87,39 +114,66 @@ "linkBoxes": [ { "svgGroupId": "g536", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g572", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g608", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g583", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g597", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g619", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g554", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g563", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g547", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -127,7 +181,7 @@ "id": "M_317_Sk2_1", "label": "M 317 Sk2.1", "description": [ - "Sk2.1 entwirft auf der Grundlage der rhythmischen Kontur von Sk1 eine Melodielinie mit Text, die in ihrer ausführlichsten und vermutlich letzten Schicht (T. 1 bis T. 2 1. TH: System 1; T. 2 2. TH bis T. 4: System 2) Reihe B aus Sk2 artikuliert. Die Niederschrift erfolgt im dynamischen Abgleich mit Sk2.1.1, Sk2.1.2, Sk2.1.2.1 und Sk2.1.3." + "Sk2.1 entwirft auf der Grundlage der rhythmischen Kontur von Sk1 eine Melodielinie mit Text, die in ihrer ausführlichsten und vermutlich letzten Schicht (T. 1 bis T. 2 1. TH: System 1; T. 2 2. TH bis T. 4: System 2) Reihe B aus Sk2 artikuliert. Die Niederschrift erfolgt im dynamischen Abgleich mit Sk2.1.1, Sk2.1.2, Sk2.1.2.1 und Sk2.1.3." ], "comments": [ { @@ -177,7 +231,7 @@ "measure": "3", "system": "1", "position": "3. Note", - "comment": "Klammerung rechts zeigt Tilgung an. Es ist nicht eindeutig, ob die so angezeigte Tilgung ab T. 2 4/8 beginnt (mit den Varianten in System 2–3) oder ob sie sich auch auf T. 1 ff. bezieht (mit den Varianten in Sk2.1.1 und Sk2.1.2." + "comment": "Klammerung rechts zeigt Tilgung an. Es ist nicht eindeutig, ob die so angezeigte Tilgung ab T. 2 4/8 beginnt (mit den Varianten in System 2–3) oder ob sie sich auch auf T. 1 ff. bezieht (mit den Varianten in Sk2.1.1 und Sk2.1.2." }, { "svgGroupId": "g1295", @@ -190,39 +244,66 @@ "linkBoxes": [ { "svgGroupId": "g1210", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g1203", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g1221", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g1232", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g1273", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g1284", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g1239", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g1259", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g1250", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -230,46 +311,73 @@ "id": "M_317_Sk2_1_1", "label": "M 317 Sk2.1.1", "description": [ - "Sk2.1.1 formuliert eine Variante des Anfangs von Sk2.1 auf der Grundlage des 1.–5. Reihentons von Reihe B in Sk2.", + "Sk2.1.1 formuliert eine Variante des Anfangs von Sk2.1 auf der Grundlage des 1.–5. Reihentons von Reihe B in Sk2.", "[Zu dieser Skizze gibt es keine textkritischen Kommentare.]" ], "comments": [], "linkBoxes": [ { "svgGroupId": "g1022", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g1015", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g1031", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g1042", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g1083", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g1094", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g1049", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g1069", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g1060", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -277,7 +385,7 @@ "id": "M_317_Sk2_1_2", "label": "M 317 Sk2.1.2", "description": [ - "Sk2.1.2 ist vermutlich eine inhaltliche Fortsetzung von Sk2.1.1 (als T. 3): Hierfür spricht der Anfangston b1 an entsprechender Stelle von Varianten in Sk2.1 (System 1 und 2) sowie die dort ebenfalls anzutreffende Ligatur über den Taktstrich (System 1 und 3). Allerdings artikuliert Sk2.1.2 einen anderen Reihenverlauf als Reihe B in Sk2." + "Sk2.1.2 ist vermutlich eine inhaltliche Fortsetzung von Sk2.1.1 (als T. 3): Hierfür spricht der Anfangston b1 an entsprechender Stelle von Varianten in Sk2.1 (System 1 und 2) sowie die dort ebenfalls anzutreffende Ligatur über den Taktstrich (System 1 und 3). Allerdings artikuliert Sk2.1.2 einen anderen Reihenverlauf als Reihe B in Sk2." ], "comments": [ { @@ -291,39 +399,66 @@ "linkBoxes": [ { "svgGroupId": "g1029", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g1022", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g1038", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g1049", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g1090", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g1101", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g1056", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g1076", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g1067", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -331,46 +466,73 @@ "id": "M_317_Sk2_1_2_1", "label": "M 317 Sk2.1.2.1", "description": [ - "Sk2.1.2.1 formuliert eine rhythmisch-metrische Variante des Anfangs von Sk2.1.2.", + "Sk2.1.2.1 formuliert eine rhythmisch-metrische Variante des Anfangs von Sk2.1.2.", "[Zu dieser Skizze gibt es keine textkritischen Kommentare.]" ], "comments": [], "linkBoxes": [ { "svgGroupId": "g1009", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g1002", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g1018", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g1029", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g1040", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g1078", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g1047", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g1067", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g1058", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -378,46 +540,73 @@ "id": "M_317_Sk2_1_3", "label": "M 317 Sk2.1.3", "description": [ - "Die in Sk2.1.3 notierten Tonbuchstaben c, f, gis und a beziehen sich vermutlich auf noch fehlende Reihentöne bei der Niederschrift von Sk2 (Reihe B), Sk2.1 und Sk2.1.2.", + "Die in Sk2.1.3 notierten Tonbuchstaben c, f, gis und a beziehen sich vermutlich auf noch fehlende Reihentöne bei der Niederschrift von Sk2 (Reihe B), Sk2.1 und Sk2.1.2.", "[Zu dieser Skizze gibt es keine textkritischen Kommentare.]" ], "comments": [], "linkBoxes": [ { "svgGroupId": "g988", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g981", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g997", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g1008", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g1019", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g1060", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g1026", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g1046", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g1037", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -425,7 +614,7 @@ "id": "M_317_Sk3", "label": "M 317 Sk3", "description": [ - "Sk3 stellt gegenüber Sk2 und deren begleitenden Skizzeneinheiten einen inhaltlichen Neuansatz dar, insofern die in Sk2 notierte vollständige Zwölftonreihe (Reihe B) nicht mehr verwendet wird. Stattdessen formuliert Sk3 auf der Grundlage des permutierten Tonvorrats von Sk1 einen neuen zwölftönigen Verlauf. Im dynamischen Abgleich mit Sk3.1, Sk3.1.1 und Sk3.1.2 wird dieser Verlauf weiter verändert und als rhythmisch abstrahierte Zwölftonreihe in Sk3.1.3 und Sk3.1.3.1 notiert." + "Sk3 stellt gegenüber Sk2 und deren begleitenden Skizzeneinheiten einen inhaltlichen Neuansatz dar, insofern die in Sk2 notierte vollständige Zwölftonreihe (Reihe B) nicht mehr verwendet wird. Stattdessen formuliert Sk3 auf der Grundlage des permutierten Tonvorrats von Sk1 einen neuen zwölftönigen Verlauf. Im dynamischen Abgleich mit Sk3.1, Sk3.1.1 und Sk3.1.2 wird dieser Verlauf weiter verändert und als rhythmisch abstrahierte Zwölftonreihe in Sk3.1.3 und Sk3.1.3.1 notiert." ], "comments": [ { @@ -447,45 +636,72 @@ "measure": "2", "system": "3", "position": "1. Note", - "comment": "Pfeil zur Variante der Fortsetzung in Sk3.1." + "comment": "Pfeil zur Variante der Fortsetzung in Sk3.1." } ], "linkBoxes": [ { "svgGroupId": "g588", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g581", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g628", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g653", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g619", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g642", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g664", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g608", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g599", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } } ] }, @@ -493,7 +709,7 @@ "id": "M_317_Sk3_1", "label": "M 317 Sk3.1", "description": [ - "Sk3.1 führt den Anfang von Sk3 ab dem Auftakt zu T. 3 in Varianten weiter bis T. {{ '{' }}6{{ '}' }}." + "Sk3.1 führt den Anfang von Sk3 ab dem Auftakt zu T. 3 in Varianten weiter bis T. {{ '{' }}6{{ '}' }}." ], "comments": [ { @@ -508,7 +724,7 @@ "measure": "3", "system": "4", "position": "Taktanfang", - "comment": "Asterisk verweist auf Variante der Fortsetzung in Sk3.1.2." + "comment": "Asterisk verweist auf Variante der Fortsetzung in Sk3.1.2." }, { "svgGroupId": "g1213", @@ -529,14 +745,14 @@ "measure": "{5}", "system": "4", "position": "1. Note", - "comment": "Pfeil unten rechts von Variante T. 4 in Sk3.1.1." + "comment": "Pfeil unten rechts von Variante T. 4 in Sk3.1.1." }, { "svgGroupId": "text228", "measure": "{5}", "system": "4", "position": "6/8", - "comment": "I markiert hier als Reihenziffer vermutlich den wiederholten Beginn der in Sk3 T. 1–2 1. Note und in Sk3.1 fortgeführten Zwölftonreihe. Diese Reihe ist nicht identisch mit Gg in den Reihentabellen Sk3.1.3 und M 317 Sk5 / M 321 Sk1 / M 322 Sk1 in C (dort jeweils mit arabischer Ziffer 1 bezeichnet)." + "comment": "I markiert hier als Reihenziffer vermutlich den wiederholten Beginn der in Sk3 T. 1–2 1. Note und in Sk3.1 fortgeführten Zwölftonreihe. Diese Reihe ist nicht identisch mit Gg in den Reihentabellen Sk3.1.3 und M 317 Sk5 / M 321 Sk1 / M 322 Sk1 in C (dort jeweils mit arabischer Ziffer 1 bezeichnet)." }, { "svgGroupId": "g1241", @@ -556,47 +772,80 @@ "linkBoxes": [ { "svgGroupId": "g1214", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g698", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g725", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g761", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g736", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g750", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g772", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g705", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g716", - "linkTo": "M_317_Sk3_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_1" + } }, { "svgGroupId": "g691", - "linkTo": "M_317_Sk3_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_2" + } }, { "svgGroupId": "g680", - "linkTo": "M_317_Sk3_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3" + } } ] }, @@ -604,7 +853,7 @@ "id": "M_317_Sk3_1_1", "label": "M 317 Sk3.1.1", "description": [ - "Sk3.1.1 formuliert Varianten von T. 4–5 in Sk3.1." + "Sk3.1.1 formuliert Varianten von T. 4–5 in Sk3.1." ], "comments": [ { @@ -618,15 +867,24 @@ "linkBoxes": [ { "svgGroupId": "g441", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g432", - "linkTo": "M_317_Sk3_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3" + } }, { "svgGroupId": "g454", - "linkTo": "M_317_Sk3_1_3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3_1" + } } ] }, @@ -634,7 +892,7 @@ "id": "M_317_Sk3_1_2", "label": "M 317 Sk3.1.2", "description": [ - "Sk3.1.2 formuliert eine Variante von Sk3.1 ab T. 3. Zusammen mit Sk3 T. 1–2 1. Note und Sk3.1 Auftakt zu T. 3 ergibt sich eine Tonfolge, die der Reihenform Gg (1) der Zwölftonreihe in Sk3.1.3 und Sk3.1.3.1 entspricht." + "Sk3.1.2 formuliert eine Variante von Sk3.1 ab T. 3. Zusammen mit Sk3 T. 1–2 1. Note und Sk3.1 Auftakt zu T. 3 ergibt sich eine Tonfolge, die der Reihenform Gg (1) der Zwölftonreihe in Sk3.1.3 und Sk3.1.3.1 entspricht." ], "comments": [ { @@ -649,7 +907,7 @@ "measure": "3", "system": "4", "position": "Taktanfang", - "comment": "Asterisk verweist auf Anschluss von Sk3.1." + "comment": "Asterisk verweist auf Anschluss von Sk3.1." }, { "svgGroupId": "g809", @@ -670,45 +928,72 @@ "measure": "5", "system": "4", "position": "nach 1. Note", - "comment": "Durch Einklammerung abgegrenzt von Sk3.1." + "comment": "Durch Einklammerung abgegrenzt von Sk3.1." } ], "linkBoxes": [ { "svgGroupId": "g1091", - "linkTo": "M_317_Sk1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk1" + } }, { "svgGroupId": "g559", - "linkTo": "M_317_Sk2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2" + } }, { "svgGroupId": "g584", - "linkTo": "M_317_Sk2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1" + } }, { "svgGroupId": "g631", - "linkTo": "M_317_Sk2_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_1" + } }, { "svgGroupId": "g595", - "linkTo": "M_317_Sk2_1_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2" + } }, { "svgGroupId": "g609", - "linkTo": "M_317_Sk2_1_2_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_2_1" + } }, { "svgGroupId": "g620", - "linkTo": "M_317_Sk2_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk2_1_3" + } }, { "svgGroupId": "g566", - "linkTo": "M_317_Sk3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3" + } }, { "svgGroupId": "g575", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } } ] }, @@ -716,7 +1001,7 @@ "id": "M_317_Sk3_1_3", "label": "M 317 Sk3.1.3", "description": [ - "Sk3.1.3 notiert die vier in M 317 verwendeten Reihenformen in einer tabellarischen Anordnung und versieht sie mit den ebenfalls in Sk4 und Sk4.1 verwendeten Reihenziffern 1 bis 4. Die Permutation des 10.–11. Reihentons von Gg und Ug bzw. des 2.–3. Reihentons von Kgis und KUfis ist bereits in Sk3.1.2 vollzogen. " + "Sk3.1.3 notiert die vier in M 317 verwendeten Reihenformen in einer tabellarischen Anordnung und versieht sie mit den ebenfalls in Sk4 und Sk4.1 verwendeten Reihenziffern 1 bis 4. Die Permutation des 10.–11. Reihentons von Gg und Ug bzw. des 2.–3. Reihentons von Kgis und KUfis ist bereits in Sk3.1.2 vollzogen. " ], "rowtable": true, "comments": [ @@ -801,15 +1086,24 @@ "linkBoxes": [ { "svgGroupId": "g631", - "linkTo": "M_317_Sk3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1" + } }, { "svgGroupId": "g642", - "linkTo": "M_317_Sk3_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_1" + } }, { "svgGroupId": "g655", - "linkTo": "M_317_Sk3_1_3_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3_1" + } } ] }, @@ -817,18 +1111,24 @@ "id": "M_317_Sk3_1_3_1", "label": "M 317 Sk3.1.3.1", "description": [ - "Sk3.1.3.1 notiert das Ergebnis der in Sk3.1.3 erkennbaren Änderung des 10.–11. Reihentons von Gg und Ug bzw. des 2.–3. Reihentons von Kgis und KUfis am Beispiel von Gg noch einmal in einem einheitlichen Oktavregister.", + "Sk3.1.3.1 notiert das Ergebnis der in Sk3.1.3 erkennbaren Änderung des 10.–11. Reihentons von Gg und Ug bzw. des 2.–3. Reihentons von Kgis und KUfis am Beispiel von Gg noch einmal in einem einheitlichen Oktavregister.", "[Zu dieser Skizze gibt es keine textkritischen Kommentare.]" ], "comments": [], "linkBoxes": [ { "svgGroupId": "g410", - "linkTo": "M_317_Sk3_1_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_3" + } }, { "svgGroupId": "g421", - "linkTo": "M_317_Sk3_1_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk3_1_1" + } } ] }, @@ -836,8 +1136,8 @@ "id": "M_317_Sk4", "label": "M 317 Sk4", "description": [ - "Sk4 ist eine vollständige Verlaufskizze des Liedes „Wie bin ich froh!“. Die Verlaufskizze erstreckt sich über vier Akkoladen (T. {{ '{' }}1A{{ '}' }}–3A, T. 3B–6, T. 7–12 und T. 13–15) und umfasst im Unterschied zu den Reinschriften von Textfassung 1 und Textfassung 2 nicht zwölf, sondern 15 gültige Takte.
Bereits vor der Niederschrift von Sk4 war Bl. 39r mit Akkoladenstrich, Schlüsselung und Taktziffer am linken Rand von System 1–4 versehen (Sk4 T. 3B–6): Diese präparieren die Seite für die Fortsetzung der (bereits im Sommer 1931 begonnenen) Verlaufskizze zu M 316 (op. 24/I) auf Bl. 22v–26r, 31v–33r, und 36v–38r im selben Skizzenbuch.
(Siehe auch Akkoladenstrich von System 1–4 sowie die Schlüsselung in System 2–3 am linken Rand von Bl. 38v, die ebenfalls als Präparierung der Verlaufskizze zu M 316 fungieren [Sk1 bis Sk3.1.2].)
Sk4 ist laut der nach T. 15 folgenden Datierung am 16. Juli 1934 beendet worden.", - "Die Ziffern 1 (Gg), 2 (Kgis), 3 (Ug) und 4 (KUfis) bezeichnen in der Regel den Anfang von Reihenformen gemäß den Reihentabellen Sk3.1.3 und M 317 Sk5 / M 321 Sk1 / M 322 Sk1. Winkel markieren in der Regel deren Ende (┐, ┘) oder Anfang (┌, └)." + "Sk4 ist eine vollständige Verlaufskizze des Liedes „Wie bin ich froh!“. Die Verlaufskizze erstreckt sich über vier Akkoladen (T. {{ '{' }}1A{{ '}' }}–3A, T. 3B–6, T. 7–12 und T. 13–15) und umfasst im Unterschied zu den Reinschriften von Textfassung 1 und Textfassung 2 nicht zwölf, sondern 15 gültige Takte.
Bereits vor der Niederschrift von Sk4 war Bl. 39r mit Akkoladenstrich, Schlüsselung und Taktziffer am linken Rand von System 1–4 versehen (Sk4 T. 3B–6): Diese präparieren die Seite für die Fortsetzung der (bereits im Sommer 1931 begonnenen) Verlaufskizze zu M 316 (op. 24/I) auf Bl. 22v–26r, 31v–33r, und 36v–38r im selben Skizzenbuch.
(Siehe auch Akkoladenstrich von System 1–4 sowie die Schlüsselung in System 2–3 am linken Rand von Bl. 38v, die ebenfalls als Präparierung der Verlaufskizze zu M 316 fungieren [Sk1 bis Sk3.1.2].)
Sk4 ist laut der nach T. 15 folgenden Datierung am 16. Juli 1934 beendet worden.", + "Die Ziffern 1 (Gg), 2 (Kgis), 3 (Ug) und 4 (KUfis) bezeichnen in der Regel den Anfang von Reihenformen gemäß den Reihentabellen Sk3.1.3 und M 317 Sk5 / M 321 Sk1 / M 322 Sk1. Winkel markieren in der Regel deren Ende (┐, ┘) oder Anfang (┌, └)." ], "comments": [ { @@ -1285,35 +1585,59 @@ "linkBoxes": [ { "svgGroupId": "g802", - "linkTo": "M_317_Sk4_1" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_1" + } }, { "svgGroupId": "g1363", - "linkTo": "M_317_Sk4c" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4c" + } }, { "svgGroupId": "g1344", - "linkTo": "M_317_Sk4b" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4b" + } }, { "svgGroupId": "g1367", - "linkTo": "M_317_Sk4d" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4d" + } }, { "svgGroupId": "g1353", - "linkTo": "M_317_Sk4_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_2" + } }, { "svgGroupId": "g809", - "linkTo": "M_317_Sk4c" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4c" + } }, { "svgGroupId": "g796", - "linkTo": "M_317_Sk4_2" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_2" + } }, { "svgGroupId": "g818", - "linkTo": "M_317_Sk4_3" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4_3" + } } ] }, @@ -1321,7 +1645,7 @@ "id": "M_317_Sk4_1", "label": "M 317 Sk4.1", "description": [ - "Sk4.1 formuliert eine rhythmisch-metrische Variante von Sk4 T. 2–3A. Der dort im Klavier offen gelassene Takt 3A wird in Sk4.1 ansatzweise gefüllt, aber dann insgesamt gestrichen (T. {{ '{' }}3{{ '}' }}): möglicherweise auch auf Grund des in skripturaler Hinsicht engen Raumes. Der Takt wird in Sk4 T. 3B weiter ausgearbeitet.
Vor der Niederschrift von Sk4.1 war die Seite am linken Rand von System 14–16 mit einer Akkoladenklammer beschriftet, die offensichtlich einer Präparierung der Fortsetzung von Sk4 nach T. {{ '{' }}1A{{ '}' }}–3A dient. Nach der Niederschrift von Sk4.1 erfolgt die Fortsetzung von Sk4 jedoch auf Bl. 39r (Sk4 T. 3B–6)." + "Sk4.1 formuliert eine rhythmisch-metrische Variante von Sk4 T. 2–3A. Der dort im Klavier offen gelassene Takt 3A wird in Sk4.1 ansatzweise gefüllt, aber dann insgesamt gestrichen (T. {{ '{' }}3{{ '}' }}): möglicherweise auch auf Grund des in skripturaler Hinsicht engen Raumes. Der Takt wird in Sk4 T. 3B weiter ausgearbeitet.
Vor der Niederschrift von Sk4.1 war die Seite am linken Rand von System 14–16 mit einer Akkoladenklammer beschriftet, die offensichtlich einer Präparierung der Fortsetzung von Sk4 nach T. {{ '{' }}1A{{ '}' }}–3A dient. Nach der Niederschrift von Sk4.1 erfolgt die Fortsetzung von Sk4 jedoch auf Bl. 39r (Sk4 T. 3B–6)." ], "comments": [ { @@ -1356,7 +1680,10 @@ "linkBoxes": [ { "svgGroupId": "g604", - "linkTo": "M_317_Sk4a" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4a" + } } ] }, @@ -1364,18 +1691,24 @@ "id": "M_317_Sk4_2", "label": "M 317 Sk4.2", "description": [ - "Sk4.2 formuliert vermutlich den Ansatz zu einer Variante der Singstimme in Sk4 T. 13.", + "Sk4.2 formuliert vermutlich den Ansatz zu einer Variante der Singstimme in Sk4 T. 13.", "[Zu dieser Skizze gibt es keine textkritischen Kommentare.]" ], "comments": [], "linkBoxes": [ { "svgGroupId": "g371", - "linkTo": "M_317_Sk4d" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4d" + } }, { "svgGroupId": "g388", - "linkTo": "M_317_Sk4c" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4c" + } } ] }, @@ -1383,7 +1716,7 @@ "id": "M_317_Sk4_3", "label": "M 317 Sk4.3", "description": [ - "Sk4.3 formuliert eine fragmentarische Variante von Sk4 T. 13." + "Sk4.3 formuliert eine fragmentarische Variante von Sk4 T. 13." ], "comments": [ { @@ -1391,7 +1724,7 @@ "measure": "13", "system": "16", "position": "1. Note", - "comment": "sic: Verweisstrich führt zu Sk4 T. 14. Inhaltlich bezieht sich Sk4.3 jedoch auf Sk4 T. 13. " + "comment": "sic: Verweisstrich führt zu Sk4 T. 14. Inhaltlich bezieht sich Sk4.3 jedoch auf Sk4 T. 13. " }, { "svgGroupId": "g36576", @@ -1404,11 +1737,17 @@ "linkBoxes": [ { "svgGroupId": "g453", - "linkTo": "M_317_Sk4d" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4d" + } }, { "svgGroupId": "g466", - "linkTo": "M_317_Sk4c" + "linkTo": { + "complexId": "op25", + "sheetId": "M_317_Sk4c" + } } ] }, @@ -1424,7 +1763,7 @@ "measure": "1", "system": "", "position": "4/8", - "comment": "rit. versetzt von ungenauer Position zwischen 4/8 und 5/8 mit Blick auf M 317 Sk4." + "comment": "rit. versetzt von ungenauer Position zwischen 4/8 und 5/8 mit Blick auf M 317 Sk4." }, { "svgGroupId": "g1198", @@ -1446,7 +1785,7 @@ "id": "SkRT", "label": "M 317 Sk5 / M 321 Sk1 / M 322 Sk1 (Reihentabelle op. 25)", "description": [ - "Die Reihentabelle op. 25 weist neben den vier bereits in Sk3.1.3 tabellarisch notierten Reihenformen 1–4 die entsprechenden Transpositionen der Unterquint (Reihenformen 5–8) auf, die lediglich im 2. Lied (M 322) kompositorisch verwendet werden." + "Die Reihentabelle op. 25 weist neben den vier bereits in Sk3.1.3 tabellarisch notierten Reihenformen 1–4 die entsprechenden Transpositionen der Unterquint (Reihenformen 5–8) auf, die lediglich im 2. Lied (M 322) kompositorisch verwendet werden." ], "rowtable": true, "comments": [ diff --git a/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json index 12e5cd8e03..9086c5fd95 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json @@ -22,7 +22,8 @@ }, "content": [ { - "id": "M_30_Sk1a", + "complexId": "m30", + "sheetId": "M_30_Sk1a", "sigle": "M 30 Sk1", "sigleAddendum": "T. 1–6", "sectionPartition": 1, @@ -34,7 +35,8 @@ ] }, { - "id": "M_30_Sk1b", + "complexId": "m30", + "sheetId": "M_30_Sk1b", "sigle": "M 30 Sk1", "sigleAddendum": "T. {7A–10B}", "sectionPartition": 1, @@ -46,7 +48,8 @@ ] }, { - "id": "M_30_Sk1c", + "complexId": "m30", + "sheetId": "M_30_Sk1c", "sigle": "M 30 Sk1", "sigleAddendum": "T. {11A–16A}", "sectionPartition": 1, @@ -58,7 +61,8 @@ ] }, { - "id": "M_30_Sk1d", + "complexId": "m30", + "sheetId": "M_30_Sk1d", "sigle": "M 30 Sk1", "sigleAddendum": "T. 7B–8B, 9C–10C", "sectionPartition": 1, @@ -70,7 +74,8 @@ ] }, { - "id": "M_30_Sk1e", + "complexId": "m30", + "sheetId": "M_30_Sk1e", "sigle": "M 30 Sk1", "sigleAddendum": "T. {9D–12B}", "sectionPartition": 1, @@ -82,7 +87,8 @@ ] }, { - "id": "M_30_Sk1f", + "complexId": "m30", + "sheetId": "M_30_Sk1f", "sigle": "M 30 Sk1", "sigleAddendum": "T. 9E–{15B}", "sectionPartition": 1, @@ -94,7 +100,8 @@ ] }, { - "id": "M_30_Sk1g", + "complexId": "m30", + "sheetId": "M_30_Sk1g", "sigle": "M 30 Sk1", "sigleAddendum": "T. 16B–15C", "sectionPartition": 1, @@ -125,7 +132,8 @@ }, "content": [ { - "id": "M_30_Sk1h", + "complexId": "m30", + "sheetId": "M_30_Sk1h", "sigle": "M 30 Sk1", "sigleAddendum": "T. 17–21", "sectionPartition": 1, @@ -137,7 +145,8 @@ ] }, { - "id": "M_30_Sk1i", + "complexId": "m30", + "sheetId": "M_30_Sk1i", "sigle": "M 30 Sk1", "sigleAddendum": "T. 22–25(1–3/8)", "sectionPartition": 1, @@ -149,7 +158,8 @@ ] }, { - "id": "M_30_Sk1j", + "complexId": "m30", + "sheetId": "M_30_Sk1j", "sigle": "M 30 Sk1", "sigleAddendum": "T. 25(4–6/8)–29B", "sectionPartition": 1, @@ -161,7 +171,8 @@ ] }, { - "id": "M_30_Sk1k", + "complexId": "m30", + "sheetId": "M_30_Sk1k", "sigle": "M 30 Sk1", "sigleAddendum": "T. 28C–29C", "sectionPartition": 2, diff --git a/src/assets/data/edition/series/2/section/2a/m30/source-description.json b/src/assets/data/edition/series/2/section/2a/m30/source-description.json index b4251a590e..0a316dcea3 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m30/source-description.json @@ -24,7 +24,7 @@ "content": [ { "item": "M 31 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -52,7 +52,7 @@ }, { "item": "M 31 Sk3.1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -73,7 +73,7 @@ }, { "item": "M 31 Sk3.2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -94,7 +94,7 @@ }, { "item": "M 31 Sk4", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -129,7 +129,7 @@ }, { "item": "M* 403 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 403)", "folios": [ { @@ -157,7 +157,10 @@ }, { "item": "M 30 Sk1", - "itemLinkTo": "M_30_Sk1", + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 30)", "folios": [ { @@ -220,7 +223,7 @@ }, { "item": "M 31 Sk5", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -255,7 +258,7 @@ }, { "item": "M* 403 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 403)", "folios": [ { @@ -297,7 +300,10 @@ }, { "item": "M 30 Sk1", - "itemLinkTo": "M_30_Sk1", + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_Sk1h" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 30)", "folios": [ { @@ -339,7 +345,7 @@ }, { "item": "M 31 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -367,7 +373,7 @@ }, { "item": "M 31 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -388,7 +394,7 @@ }, { "item": "M 31 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -439,7 +445,7 @@ "content": [ { "item": "M 31", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 31)", "folios": [ { @@ -495,7 +501,7 @@ }, { "item": "M 30", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 30)", "folios": [ { @@ -544,7 +550,7 @@ }, { "item": "M* 402 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 402)", "folios": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json index 0ccd2009ff..5323718dff 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json @@ -13,7 +13,8 @@ }, "content": [ { - "id": "M_34_Sk1a", + "complexId": "m34", + "sheetId": "M_34_Sk1a", "sigle": "M 34 Sk1", "sigleAddendum": "T. 1–7", "sectionPartition": 1, @@ -25,7 +26,8 @@ ] }, { - "id": "M_34_Sk1b", + "complexId": "m34", + "sheetId": "M_34_Sk1b", "sigle": "M 34 Sk1", "sigleAddendum": "T. 8–14", "sectionPartition": 1, @@ -37,7 +39,8 @@ ] }, { - "id": "M_34_Sk1c", + "complexId": "m34", + "sheetId": "M_34_Sk1c", "sigle": "M 34 Sk1", "sigleAddendum": "T. 15–16", "sectionPartition": 2, @@ -50,7 +53,8 @@ ] }, { - "id": "M_34_Sk1_1", + "complexId": "m34", + "sheetId": "M_34_Sk1_1", "sigle": "M 34 Sk1.1", "sigleAddendum": "T. 5–8", "sectionPartition": 2, diff --git a/src/assets/data/edition/series/2/section/2a/m34/source-description.json b/src/assets/data/edition/series/2/section/2a/m34/source-description.json index c0403d5acb..09f1e16ae7 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m34/source-description.json @@ -18,7 +18,10 @@ "content": [ { "item": "M 34 Sk1", - "itemLinkTo": "M_34_Sk1a", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", "folios": [ { @@ -53,7 +56,10 @@ }, { "item": "M 34 Sk1.1", - "itemLinkTo": "M_34_Sk1_1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1_1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", "folios": [ { @@ -74,7 +80,7 @@ }, { "item": "M 35 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35)", "folios": [ { @@ -102,7 +108,7 @@ }, { "item": "M 36 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", "folios": [ { @@ -151,7 +157,7 @@ }, { "item": "M* 404 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -200,7 +206,7 @@ }, { "item": "M* 404 Sk1.1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -221,7 +227,7 @@ }, { "item": "M* 404 Sk1.2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -242,7 +248,7 @@ }, { "item": "M* 404 Sk1.3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -263,7 +269,7 @@ }, { "item": "M* 404 Sk1.4", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -284,7 +290,7 @@ }, { "item": "M 38 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -340,7 +346,7 @@ }, { "item": "M 39 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", "folios": [ { @@ -424,7 +430,7 @@ }, { "item": "M 39 Sk1.1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", "folios": [ { @@ -445,7 +451,10 @@ }, { "item": "M 37 Sk2", - "itemLinkTo": "", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -466,7 +475,10 @@ }, { "item": "M 37 Sk3", - "itemLinkTo": "", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk3" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -487,7 +499,7 @@ }, { "item": "M 38 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -508,7 +520,7 @@ }, { "item": "M 38 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -529,7 +541,10 @@ }, { "item": "M 37 Sk1", - "itemLinkTo": "", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -583,7 +598,10 @@ "content": [ { "item": "M 34", - "itemLinkTo": "", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 34)", "folios": [ { @@ -611,7 +629,7 @@ }, { "item": "M 35", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35)", "folios": [ { @@ -639,7 +657,7 @@ }, { "item": "M 35 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35)", "folios": [ { @@ -660,7 +678,7 @@ }, { "item": "M 36", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", "folios": [ { @@ -702,7 +720,10 @@ }, { "item": "M 37", - "itemLinkTo": "", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 37)", "folios": [ { @@ -737,7 +758,7 @@ }, { "item": "M 38", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", "folios": [ { @@ -772,7 +793,7 @@ }, { "item": "M 39", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→2)", "folios": [ { @@ -821,7 +842,7 @@ }, { "item": "M 39 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", "folios": [ { @@ -842,7 +863,7 @@ }, { "item": "M 39 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", "folios": [ { @@ -870,7 +891,7 @@ }, { "item": "M 41", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 41)", "folios": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json index 35bcecbdc7..411df3f5b8 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json @@ -102,7 +102,10 @@ "linkBoxes": [ { "svgGroupId": "g3378", - "linkTo": "M_34_Sk1_1" + "linkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1_1" + } } ] }, @@ -110,7 +113,7 @@ "id": "M_34_Sk1_1", "label": "M 34 Sk1.1", "description": [ - "M 34 Sk1.1 entwirft auf der Basis von M 34 Sk1 eine alternative Fortsetzung ab T. 5, die zu einer Verkürzung auf eine achttaktige Periode analog der späteren Tintenniederschrift führt." + "M 34 Sk1.1 entwirft auf der Basis von M 34 Sk1 eine alternative Fortsetzung ab T. 5, die zu einer Verkürzung auf eine achttaktige Periode analog der späteren Tintenniederschrift führt." ], "comments": [ { @@ -145,7 +148,10 @@ "linkBoxes": [ { "svgGroupId": "g1228", - "linkTo": "M_34_Sk1c" + "linkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1c" + } } ] }, @@ -161,7 +167,7 @@ "measure": "7", "system": "Klav. o.", "position": "1. Note", - "comment": "Achtelnote g1 aufgrund des horizontal verschobenen Notenhalses auch als Viertelnote lesbar (vgl. Korrekturschicht 1). Eine Deutung als Viertelnote ist mit Blick auf Sk1 und Sk1.1 aber sehr unwahrscheinlich." + "comment": "Achtelnote g1 aufgrund des horizontal verschobenen Notenhalses auch als Viertelnote lesbar (vgl. Korrekturschicht 1). Eine Deutung als Viertelnote ist mit Blick auf Sk1 und Sk1.1 aber sehr unwahrscheinlich." } ] } diff --git a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json index fa596cb943..7473f22919 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json @@ -31,7 +31,8 @@ }, "content": [ { - "id": "M_37_Sk1", + "complexId": "m37", + "sheetId": "M_37_Sk1", "sigle": "M 37 Sk1", "sigleAddendum": "", "sectionPartition": 3, @@ -44,7 +45,8 @@ ] }, { - "id": "M_37_Sk2", + "complexId": "m37", + "sheetId": "M_37_Sk2", "sigle": "M 37 Sk2", "sigleAddendum": "", "sectionPartition": 3, @@ -67,7 +69,8 @@ }, "content": [ { - "id": "M_37_Sk3a", + "complexId": "m37", + "sheetId": "M_37_Sk3a", "sigle": "M 37 Sk3", "sigleAddendum": "T. 1–6", "sectionPartition": 1, @@ -79,7 +82,8 @@ ] }, { - "id": "M_37_Sk3b", + "complexId": "m37", + "sheetId": "M_37_Sk3b", "sigle": "M 37 Sk3", "sigleAddendum": "T. 7–14", "sectionPartition": 1, @@ -91,7 +95,8 @@ ] }, { - "id": "M_37_Sk3c", + "complexId": "m37", + "sheetId": "M_37_Sk3c", "sigle": "M 37 Sk3", "sigleAddendum": "T. 15–21", "sectionPartition": 1, diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index 41ec3bb65d..479ae162d5 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -24,7 +24,10 @@ "content": [ { "item": "M 34 Sk1", - "itemLinkTo": "M_34_Sk1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", "folios": [ { @@ -59,7 +62,10 @@ }, { "item": "M 34 Sk1.1", - "itemLinkTo": "M_34_Sk1_1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1_1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", "folios": [ { @@ -80,7 +86,7 @@ }, { "item": "M 35/42 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", "folios": [ { @@ -108,7 +114,7 @@ }, { "item": "M 36 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", "folios": [ { @@ -157,7 +163,7 @@ }, { "item": "M* 404 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -206,7 +212,7 @@ }, { "item": "M* 404 Sk1.1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -227,7 +233,7 @@ }, { "item": "M* 404 Sk1.2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -248,7 +254,7 @@ }, { "item": "M* 404 Sk1.3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -269,7 +275,7 @@ }, { "item": "M* 404 Sk1.4", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", "folios": [ { @@ -290,7 +296,7 @@ }, { "item": "M 38 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -346,7 +352,7 @@ }, { "item": "M 39 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", "folios": [ { @@ -430,7 +436,7 @@ }, { "item": "M 39 Sk1.1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", "folios": [ { @@ -451,7 +457,10 @@ }, { "item": "M 37 Sk2", - "itemLinkTo": "M_37_Sk2", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -472,7 +481,10 @@ }, { "item": "M 37 Sk3", - "itemLinkTo": "M_37_Sk3", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk3" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -493,7 +505,7 @@ }, { "item": "M 38 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -514,7 +526,7 @@ }, { "item": "M 38 Sk1", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -535,7 +547,10 @@ }, { "item": "M 37 Sk1", - "itemLinkTo": "M_37_Sk1", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ { @@ -595,7 +610,10 @@ "content": [ { "item": "M 34", - "itemLinkTo": "M_34_TF1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 34)", "folios": [ { @@ -623,7 +641,7 @@ }, { "item": "M 35/42", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35/42)", "folios": [ { @@ -651,7 +669,7 @@ }, { "item": "M 35/42 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", "folios": [ { @@ -672,7 +690,7 @@ }, { "item": "M 36", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", "folios": [ { @@ -714,7 +732,10 @@ }, { "item": "M 37", - "itemLinkTo": "M_37_TF1", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 37)", "folios": [ { @@ -749,7 +770,7 @@ }, { "item": "M 38", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", "folios": [ { @@ -784,7 +805,7 @@ }, { "item": "M 39", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→)", "folios": [ { @@ -833,7 +854,7 @@ }, { "item": "M 39 Sk2", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", "folios": [ { @@ -854,7 +875,7 @@ }, { "item": "M 39 Sk3", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", "folios": [ { @@ -889,7 +910,7 @@ }, { "item": "M 41", - "itemLinkTo": "", + "itemLinkTo": {}, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 41)", "folios": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json index 0330e13509..636ca22a8f 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json @@ -9,7 +9,17 @@ "linkBoxes": [ { "svgGroupId": "TODO", - "linkTo": "M_37_Sk2" + "linkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + } + }, + { + "svgGroupId": "g8434", + "linkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + } } ] }, @@ -38,7 +48,17 @@ "linkBoxes": [ { "svgGroupId": "g17377", - "linkTo": "M_37_Sk1" + "linkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + } + }, + { + "svgGroupId": "g18107", + "linkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + } } ] }, diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg index fa10e32b69..43a30064d0 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg @@ -110,7 +110,7 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg index 9b8e574fd5..07ec21e752 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg @@ -137,7 +137,7 @@ - + From 08e687f10169bf6848bb9e4ec1c11ac7fba3de3f Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 15 Jan 2024 23:30:16 +0100 Subject: [PATCH 05/36] test(edition): adjust tests after changes to svg link models --- .../edition-intro.component.spec.ts | 122 +++++-- .../edition-report.component.spec.ts | 308 +++++++++++++----- .../source-description.component.spec.ts | 48 +-- .../source-evaluation.component.spec.ts | 48 +-- .../textcritics-list.component.spec.ts | 146 ++++++--- .../edition-accolade.component.spec.ts | 104 ++++-- ...edition-svg-sheet-footer.component.spec.ts | 99 +++--- ...ition-svg-sheet-nav-item.component.spec.ts | 62 +++- .../edition-svg-sheet-nav.component.spec.ts | 74 ++++- ...edition-svg-sheet-viewer.component.spec.ts | 35 +- .../edition-convolute.component.spec.ts | 45 ++- .../edition-tka-table.component.spec.ts | 63 ++-- .../edition-svg-drawing.service.spec.ts | 5 +- src/testing/mock-data/mockEditionData.ts | 28 +- 14 files changed, 841 insertions(+), 346 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index 7b98fece95..bb4d27f1b6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -48,6 +48,8 @@ describe('IntroComponent (DONE)', () => { let expectedEditionComplex: EditionComplex; let expectedEditionComplexBaseRoute: string; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedEditionIntroData: IntroList; let expectedEditionIntroEmptyData: IntroList; let expectedFragment: string; @@ -101,6 +103,8 @@ describe('IntroComponent (DONE)', () => { // Test data expectedEditionComplex = EDITION_COMPLEXES.OP12; expectedEditionComplexBaseRoute = '/edition/complex/op12/'; + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedModalSnippet = mockEditionData.mockModalSnippet; expectedEditionIntroData = mockEditionData.mockIntroData; @@ -457,58 +461,120 @@ describe('IntroComponent (DONE)', () => { // CLick on anchor (with selectSvgSheet call) clickAndAwaitChanges(anchorDes[0], fixture); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); })); - it('... should navigate to id if given', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should navigate within same complex to id if given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + const qp = { + queryParams: { id: expectedSvgSheet.id }, + queryParamsHandling: '', + }; + + component.selectSvgSheet(expectedComplexId, expectedSvgSheet.id); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + qp.queryParams.id = expectedNextSvgSheet.id; + + component.selectSvgSheet(expectedComplexId, expectedNextSvgSheet.id); fixture.detectChanges(); + expectSpyCall(selectSvgSheetSpy, 2, [expectedComplexId, expectedNextSvgSheet.id]); + expectSpyCall(navigationSpy, 2, [expectedSheetRoute, qp]); + }); + + it('... should navigate within same complex without id if none is given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; const qp = { queryParams: { id: expectedSvgSheet.id }, queryParamsHandling: '', }; - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); - expectSpyCall(navigationSpy, 1, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); - component.selectSvgSheet(expectedNextSvgSheet.id); + component.selectSvgSheet(expectedComplexId, expectedSvgSheet.id); fixture.detectChanges(); - qp.queryParams.id = expectedNextSvgSheet.id; - expectSpyCall(selectSvgSheetSpy, 2, expectedNextSvgSheet.id); - expectSpyCall(navigationSpy, 2, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + const noId = ''; + qp.queryParams.id = noId; + + component.selectSvgSheet(expectedComplexId, noId); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 2, [expectedComplexId, '']); + expectSpyCall(navigationSpy, 2, [expectedSheetRoute, qp]); }); + it('... should navigate to id of antoher complex if given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + const qp = { + queryParams: { id: expectedSvgSheet.id }, + queryParamsHandling: '', + }; - it('... should navigate without id if none is given', () => { - component.selectSvgSheet(expectedSvgSheet.id); + component.selectSvgSheet(expectedComplexId, expectedSvgSheet.id); fixture.detectChanges(); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + const expectedNextSheetRoute = [ + `/edition/complex/${expectedNextComplexId}/`, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + qp.queryParams.id = expectedNextSvgSheet.id; + + component.selectSvgSheet(expectedNextComplexId, expectedNextSvgSheet.id); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 2, [expectedNextComplexId, expectedNextSvgSheet.id]); + expectSpyCall(navigationSpy, 2, [expectedNextSheetRoute, qp]); + }); + + it('... should navigate to another complex without id if none is given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; const qp = { queryParams: { id: expectedSvgSheet.id }, queryParamsHandling: '', }; - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); - expectSpyCall(navigationSpy, 1, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + + component.selectSvgSheet(expectedComplexId, expectedSvgSheet.id); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); const noId = ''; qp.queryParams.id = noId; - component.selectSvgSheet(noId); + const expectedNextSheetRoute = [ + `/edition/complex/${expectedNextComplexId}/`, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + + component.selectSvgSheet(expectedNextComplexId, noId); fixture.detectChanges(); - expectSpyCall(selectSvgSheetSpy, 2, ''); - expectSpyCall(navigationSpy, 2, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + expectSpyCall(selectSvgSheetSpy, 2, [expectedNextComplexId, '']); + expectSpyCall(navigationSpy, 2, [expectedNextSheetRoute, qp]); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts index 13df324e41..5b379b1cc0 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts @@ -11,6 +11,8 @@ import { NgbAccordionModule, NgbConfig, NgbModalModule } from '@ng-bootstrap/ng- import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectSpyCall, + expectToBe, + expectToEqual, getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; @@ -53,7 +55,7 @@ class SourceDescriptionStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } @Component({ selector: 'awg-source-evaluation', template: '' }) @@ -67,7 +69,7 @@ class SourceEvaluationStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } @Component({ selector: 'awg-textcritics-list', template: '' }) @@ -77,7 +79,7 @@ export class TextcriticsListStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionReportComponent', () => { @@ -103,7 +105,8 @@ describe('EditionReportComponent', () => { let expectedSvgSheet: EditionSvgSheet; let expectedNextSvgSheet: EditionSvgSheet; let expectedPanelId: string; - + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedEditionComplexBaseRoute: string; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; @@ -173,9 +176,9 @@ describe('EditionReportComponent', () => { expectedPanelId = 'awg-sources-panel'; expectedFragment = 'source_A'; expectedEditionComplex = EDITION_COMPLEXES.OP12; - expectedEditionComplexBaseRoute = '/edition/complex/op12/'; - + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedModalSnippet = mockEditionData.mockModalSnippet; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk2; @@ -225,10 +228,7 @@ describe('EditionReportComponent', () => { }); it('... should have `editionRouteConstants`', () => { - expect(component.editionRouteConstants).toBeDefined(); - expect(component.editionRouteConstants) - .withContext(`should be ${expectedEditionRouteConstants}`) - .toBe(expectedEditionRouteConstants); + expectToBe(component.editionRouteConstants, expectedEditionRouteConstants); }); describe('VIEW', () => { @@ -276,10 +276,7 @@ describe('EditionReportComponent', () => { }); it('... should have editionComplex', () => { - expect(component.editionComplex).toBeDefined(); - expect(component.editionComplex) - .withContext(`should equal ${expectedEditionComplex}`) - .toEqual(expectedEditionComplex); + expectToEqual(component.editionComplex, expectedEditionComplex); }); it('... should have editionReportData$', waitForAsync(() => { @@ -315,10 +312,7 @@ describe('EditionReportComponent', () => { const sourceListDes = getAndExpectDebugElementByDirective(compDe, SourceListStubComponent, 1, 1); const sourceListCmp = sourceListDes[0].injector.get(SourceListStubComponent) as SourceListStubComponent; - expect(sourceListCmp.sourceListData).toBeTruthy(); - expect(sourceListCmp.sourceListData) - .withContext(`should equal ${expectedSourceListData}`) - .toEqual(expectedSourceListData); + expectToEqual(sourceListCmp.sourceListData, expectedSourceListData); }); it('... should pass down sourceDescriptionListData to SourceDescriptionComponent', () => { @@ -332,10 +326,7 @@ describe('EditionReportComponent', () => { SourceDescriptionStubComponent ) as SourceDescriptionStubComponent; - expect(descriptionCmp.sourceDescriptionListData).toBeTruthy(); - expect(descriptionCmp.sourceDescriptionListData) - .withContext(`should equal ${expectedSourceDescriptionListData}`) - .toEqual(expectedSourceDescriptionListData); + expectToEqual(descriptionCmp.sourceDescriptionListData, expectedSourceDescriptionListData); }); it('... should pass down sourceEvaluationListData to SourceEvaluationComponent', () => { @@ -344,10 +335,7 @@ describe('EditionReportComponent', () => { SourceEvaluationStubComponent ) as SourceEvaluationStubComponent; - expect(evaluationCmp.sourceEvaluationListData).toBeTruthy(); - expect(evaluationCmp.sourceEvaluationListData) - .withContext(`should equal ${expectedSourceEvaluationListData}`) - .toEqual(expectedSourceEvaluationListData); + expectToEqual(evaluationCmp.sourceEvaluationListData, expectedSourceEvaluationListData); }); it('... should pass down textcriticsListData to TextcriticsListComponent', () => { @@ -356,10 +344,7 @@ describe('EditionReportComponent', () => { TextcriticsListStubComponent ) as TextcriticsListStubComponent; - expect(textcriticsCmp.textcriticsData).toBeTruthy(); - expect(textcriticsCmp.textcriticsData) - .withContext(`should equal ${expectedTextcriticsData}`) - .toEqual(expectedTextcriticsData); + expectToEqual(textcriticsCmp.textcriticsData, expectedTextcriticsData); }); }); @@ -375,10 +360,7 @@ describe('EditionReportComponent', () => { it('... should have got `editionComplex` from editionService', () => { expectSpyCall(getEditionComplexSpy, 1); - expect(component.editionComplex).toBeTruthy(); - expect(component.editionComplex) - .withContext(`should equal ${expectedEditionComplex}`) - .toEqual(expectedEditionComplex); + expectToEqual(component.editionComplex, expectedEditionComplex); }); it('... should have got editionReportData from editionDataService', () => { @@ -678,6 +660,40 @@ describe('EditionReportComponent', () => { describe('... should trigger on event from', () => { describe('... SourceDescriptionComponent if', () => { + it('... sheet ids are undefined', () => { + const descriptionDes = getAndExpectDebugElementByDirective( + compDe, + SourceDescriptionStubComponent, + 1, + 1 + ); + const descriptionCmp = descriptionDes[0].injector.get( + SourceDescriptionStubComponent + ) as SourceDescriptionStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: undefined }; + descriptionCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); + + it('... complex id is undefined', () => { + const descriptionDes = getAndExpectDebugElementByDirective( + compDe, + SourceDescriptionStubComponent, + 1, + 1 + ); + const descriptionCmp = descriptionDes[0].injector.get( + SourceDescriptionStubComponent + ) as SourceDescriptionStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: expectedSvgSheet.id }; + descriptionCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); + it('... svg sheet id is undefined', () => { const descriptionDes = getAndExpectDebugElementByDirective( compDe, @@ -689,12 +705,13 @@ describe('EditionReportComponent', () => { SourceDescriptionStubComponent ) as SourceDescriptionStubComponent; - descriptionCmp.selectSvgSheetRequest.emit(undefined); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: undefined }; + descriptionCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, undefined); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); - it('... svg sheet id is given', () => { + it('... both sheet ids are given', () => { const descriptionDes = getAndExpectDebugElementByDirective( compDe, SourceDescriptionStubComponent, @@ -705,13 +722,46 @@ describe('EditionReportComponent', () => { SourceDescriptionStubComponent ) as SourceDescriptionStubComponent; - descriptionCmp.selectSvgSheetRequest.emit(expectedSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + descriptionCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); }); describe('... SourceEvaluationComponent if', () => { + it('... sheet ids are undefined', () => { + const evaluationDes = getAndExpectDebugElementByDirective( + compDe, + SourceEvaluationStubComponent, + 1, + 1 + ); + const evaluationCmp = evaluationDes[0].injector.get( + SourceEvaluationStubComponent + ) as SourceEvaluationStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: undefined }; + evaluationCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); + it('... complex id is undefined', () => { + const evaluationDes = getAndExpectDebugElementByDirective( + compDe, + SourceEvaluationStubComponent, + 1, + 1 + ); + const evaluationCmp = evaluationDes[0].injector.get( + SourceEvaluationStubComponent + ) as SourceEvaluationStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: expectedSvgSheet.id }; + evaluationCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); it('... svg sheet id is undefined', () => { const evaluationDes = getAndExpectDebugElementByDirective( compDe, @@ -723,12 +773,13 @@ describe('EditionReportComponent', () => { SourceEvaluationStubComponent ) as SourceEvaluationStubComponent; - evaluationCmp.selectSvgSheetRequest.emit(undefined); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: undefined }; + evaluationCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, undefined); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); - it('... svg sheet id is given', () => { + it('... both sheet ids are given', () => { const evaluationDes = getAndExpectDebugElementByDirective( compDe, SourceEvaluationStubComponent, @@ -739,13 +790,48 @@ describe('EditionReportComponent', () => { SourceEvaluationStubComponent ) as SourceEvaluationStubComponent; - evaluationCmp.selectSvgSheetRequest.emit(expectedSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + evaluationCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); }); describe('... TextcriticsListComponent if', () => { + it('... sheet ids are undefined', () => { + const textcriticsDes = getAndExpectDebugElementByDirective( + compDe, + TextcriticsListStubComponent, + 1, + 1 + ); + const textcriticsCmp = textcriticsDes[0].injector.get( + TextcriticsListStubComponent + ) as TextcriticsListStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: undefined }; + textcriticsCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); + + it('... complex id is undefined', () => { + const textcriticsDes = getAndExpectDebugElementByDirective( + compDe, + TextcriticsListStubComponent, + 1, + 1 + ); + const textcriticsCmp = textcriticsDes[0].injector.get( + TextcriticsListStubComponent + ) as TextcriticsListStubComponent; + + const expectedSheetIds = { complexId: undefined, sheetId: expectedSvgSheet.id }; + textcriticsCmp.selectSvgSheetRequest.emit(expectedSheetIds); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); + it('... svg sheet id is undefined', () => { const textcriticsDes = getAndExpectDebugElementByDirective( compDe, @@ -757,12 +843,13 @@ describe('EditionReportComponent', () => { TextcriticsListStubComponent ) as TextcriticsListStubComponent; - textcriticsCmp.selectSvgSheetRequest.emit(undefined); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: undefined }; + textcriticsCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, undefined); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); - it('... svg sheet id is given', () => { + it('... both sheet ids are given', () => { const textcriticsDes = getAndExpectDebugElementByDirective( compDe, TextcriticsListStubComponent, @@ -773,60 +860,129 @@ describe('EditionReportComponent', () => { TextcriticsListStubComponent ) as TextcriticsListStubComponent; - textcriticsCmp.selectSvgSheetRequest.emit(expectedSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + textcriticsCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); }); }); - it('... should navigate to id if given', () => { - component.onSvgSheetSelect(expectedSvgSheet.id); + it('... should navigate within same complex to id if given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + let expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + const qp = { + queryParams: { id: expectedSvgSheet.id }, + }; + + component.onSvgSheetSelect(expectedSheetIds); fixture.detectChanges(); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + qp.queryParams.id = expectedNextSvgSheet.id; + + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 2, expectedSheetIds); + expectSpyCall(navigationSpy, 2, [expectedSheetRoute, qp]); + }); + + it('... should navigate within same complex without id if none is given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + let expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; const qp = { queryParams: { id: expectedSvgSheet.id }, }; - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); - expectSpyCall(navigationSpy, 1, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); - component.onSvgSheetSelect(expectedNextSvgSheet.id); + component.onSvgSheetSelect(expectedSheetIds); fixture.detectChanges(); - qp.queryParams.id = expectedNextSvgSheet.id; - expectSpyCall(selectSvgSheetSpy, 2, expectedNextSvgSheet.id); - expectSpyCall(navigationSpy, 2, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + const noId = ''; + qp.queryParams.id = noId; + expectedSheetIds = { complexId: expectedComplexId, sheetId: noId }; + + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 2, expectedSheetIds); + expectSpyCall(navigationSpy, 2, [expectedSheetRoute, qp]); }); + it('... should navigate to id of antoher complex if given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + const qp = { + queryParams: { id: expectedSvgSheet.id }, + }; + + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); - it('... should navigate without id if none is given', () => { - component.onSvgSheetSelect(expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); + + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + const expectedNextSheetRoute = [ + `/edition/complex/${expectedNextComplexId}/`, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + qp.queryParams.id = expectedNextSvgSheet.id; + + component.onSvgSheetSelect(expectedNextSheetIds); fixture.detectChanges(); + expectSpyCall(selectSvgSheetSpy, 2, expectedNextSheetIds); + expectSpyCall(navigationSpy, 2, [expectedNextSheetRoute, qp]); + }); + + it('... should navigate to another complex without id if none is given', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + const expectedSheetRoute = [ + expectedEditionComplexBaseRoute, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; const qp = { queryParams: { id: expectedSvgSheet.id }, }; - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); - expectSpyCall(navigationSpy, 1, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); + + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + expectSpyCall(navigationSpy, 1, [expectedSheetRoute, qp]); const noId = ''; qp.queryParams.id = noId; - component.onSvgSheetSelect(noId); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: noId }; + const expectedNextSheetRoute = [ + `/edition/complex/${expectedNextComplexId}/`, + expectedEditionRouteConstants.EDITION_SHEETS.route, + ]; + + component.onSvgSheetSelect(expectedNextSheetIds); fixture.detectChanges(); - expectSpyCall(selectSvgSheetSpy, 2, ''); - expectSpyCall(navigationSpy, 2, [ - [expectedEditionComplexBaseRoute, expectedEditionRouteConstants.EDITION_SHEETS.route], - qp, - ]); + expectSpyCall(selectSvgSheetSpy, 2, expectedNextSheetIds); + expectSpyCall(navigationSpy, 2, [expectedNextSheetRoute, qp]); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts index 4f1f7cc677..3d40ebd6d2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts @@ -31,6 +31,8 @@ describe('SourceDescriptionComponent (DONE)', () => { let expectedSourceDescriptionListData: SourceDescriptionList; let expectedFirmSigns; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedSheetId: string; let expectedNextSheetId: string; let expectedModalSnippet: string; @@ -56,6 +58,8 @@ describe('SourceDescriptionComponent (DONE)', () => { utils = TestBed.inject(UtilityService); // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedSheetId = 'test_item_id_1'; expectedNextSheetId = 'test_item_id_2'; expectedModalSnippet = mockEditionData.mockModalSnippet; @@ -1150,35 +1154,41 @@ describe('SourceDescriptionComponent (DONE)', () => { // CLick on anchor (with selectSvgSheet call) clickAndAwaitChanges(anchorDes[0], fixture); - expectSpyCall(selectSvgSheetSpy, 1, expectedSheetId); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSheetId]); })); - describe('... should not emit anything if ', () => { - it('... id is undefined', () => { - component.selectSvgSheet(undefined); + it('... should not emit anything if no id is provided', () => { + component.selectSvgSheet(undefined, undefined); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is null', () => { - component.selectSvgSheet(null); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is empty string', () => { - component.selectSvgSheet(''); + component.selectSvgSheet('', ''); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSheetId); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSheetId); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts index 9437de6e9c..9cd93bce97 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts @@ -31,6 +31,8 @@ describe('SourceEvaluationComponent (DONE)', () => { let mockDocument: Document; let expectedEditionComplex: EditionComplex; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedSourceEvaluationListData: SourceEvaluationList; let expectedSourceEvaluationListEmptyData: SourceEvaluationList; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; @@ -59,6 +61,8 @@ describe('SourceEvaluationComponent (DONE)', () => { // Test data expectedEditionComplex = EDITION_COMPLEXES.OP25; + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk2; @@ -331,35 +335,41 @@ describe('SourceEvaluationComponent (DONE)', () => { // CLick on third anchor (with selectSvgSheet call) clickAndAwaitChanges(anchorDes[2], fixture); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); })); - describe('... should not emit anything if ', () => { - it('... id is undefined', () => { - component.selectSvgSheet(undefined); + it('... should not emit anything if no id is provided', () => { + component.selectSvgSheet(undefined, undefined); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is null', () => { - component.selectSvgSheet(null); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is empty string', () => { - component.selectSvgSheet(''); + component.selectSvgSheet('', ''); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts index d3c5269bf3..bd66eacabb 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/textcritics-list/textcritics-list.component.spec.ts @@ -46,7 +46,7 @@ class EditionTkaTableStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('TextcriticsListComponent (DONE)', () => { @@ -56,6 +56,8 @@ describe('TextcriticsListComponent (DONE)', () => { let utils: UtilityService; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedFragment: string; let expectedModalSnippet: string; let expectedNextSheetId: string; @@ -99,6 +101,8 @@ describe('TextcriticsListComponent (DONE)', () => { utils = TestBed.inject(UtilityService); // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedModalSnippet = mockEditionData.mockModalSnippet; expectedNextSheetId = 'test_item_id_2'; @@ -644,64 +648,118 @@ describe('TextcriticsListComponent (DONE)', () => { expect(component.selectSvgSheet).toBeDefined(); }); - it('... should trigger on event from EditionTkaTableComponent', () => { - // Open second item - const header1Des = getAndExpectDebugElementByCss( - compDe, - `div#${expectedTextcriticsData.textcritics[1].id} > div.accordion-header`, - 1, - 1 - ); + describe('... should trigger on event from ...', () => { + it('... EditionTkaDescriptionComponent', () => { + // Open second item + const header1Des = getAndExpectDebugElementByCss( + compDe, + `div#${expectedTextcriticsData.textcritics[1].id} > div.accordion-header`, + 1, + 1 + ); - // Header Button - const btn1Des = getAndExpectDebugElementByCss(header1Des[0], 'div.accordion-button > button.btn', 2, 2); - const btn1El = btn1Des[0].nativeElement; + // Header Button + const btn1Des = getAndExpectDebugElementByCss( + header1Des[0], + 'div.accordion-button > button.btn', + 2, + 2 + ); + const btn1El = btn1Des[0].nativeElement; - // Click header buttons to open body - click(btn1El as HTMLElement); - detectChangesOnPush(fixture); + // Click header buttons to open body + click(btn1El as HTMLElement); + detectChangesOnPush(fixture); - const editionTkaTableDes = getAndExpectDebugElementByDirective( - compDe, - EditionTkaTableStubComponent, - 1, - 1 - ); - const editionTkaTableCmp = editionTkaTableDes[0].injector.get( - EditionTkaTableStubComponent - ) as EditionTkaTableStubComponent; + const editionTkaDescriptionDes = getAndExpectDebugElementByDirective( + compDe, + EditionTkaDescriptionStubComponent, + 1, + 1 + ); + const editionTkaDescriptionCmp = editionTkaDescriptionDes[0].injector.get( + EditionTkaDescriptionStubComponent + ) as EditionTkaDescriptionStubComponent; - editionTkaTableCmp.selectSvgSheetRequest.emit(expectedSheetId); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + editionTkaDescriptionCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedSheetId); - }); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); - describe('... should not emit anything if ', () => { - it('... id is undefined', () => { - component.selectSvgSheet(undefined); + it('... EditionTkaTableComponent', () => { + // Open second item + const header1Des = getAndExpectDebugElementByCss( + compDe, + `div#${expectedTextcriticsData.textcritics[1].id} > div.accordion-header`, + 1, + 1 + ); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is null', () => { - component.selectSvgSheet(null); + // Header Button + const btn1Des = getAndExpectDebugElementByCss( + header1Des[0], + 'div.accordion-button > button.btn', + 2, + 2 + ); + const btn1El = btn1Des[0].nativeElement; - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); - }); - it('... id is empty string', () => { - component.selectSvgSheet(''); + // Click header buttons to open body + click(btn1El as HTMLElement); + detectChangesOnPush(fixture); + + const editionTkaTableDes = getAndExpectDebugElementByDirective( + compDe, + EditionTkaTableStubComponent, + 1, + 1 + ); + const editionTkaTableCmp = editionTkaTableDes[0].injector.get( + EditionTkaTableStubComponent + ) as EditionTkaTableStubComponent; + + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + editionTkaTableCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSheetId); + it('... should not emit anything if no id is provided', () => { + const expectedSheetIds = undefined; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + const expectedNextSheetIds = { complexId: undefined, sheetId: undefined }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSheetId); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts index 71783f2671..91900283df 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts @@ -34,7 +34,7 @@ class EditionSvgSheetNavStubComponent { @Input() selectedSvgSheet: EditionSvgSheet; @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } @Component({ selector: 'awg-edition-svg-sheet-viewer', template: '' }) @@ -50,7 +50,7 @@ class EditionSvgSheetViewerStubComponent { @Output() selectOverlaysRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } @Component({ selector: 'awg-edition-svg-sheet-footer', template: '' }) @@ -66,7 +66,7 @@ class EditionSvgSheetFooterStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionAccoladeComponent (DONE)', () => { @@ -87,6 +87,8 @@ describe('EditionAccoladeComponent (DONE)', () => { let selectSvgSheetSpy: Spy; let selectSvgSheetRequestEmitSpy: Spy; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedFragment: string; let expectedSvgSheetsData: EditionSvgSheetList; let expectedOverlays: EditionSvgOverlay[]; @@ -125,6 +127,8 @@ describe('EditionAccoladeComponent (DONE)', () => { compDe = fixture.debugElement; // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedModalSnippet = mockEditionData.mockModalSnippet; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; @@ -619,53 +623,91 @@ describe('EditionAccoladeComponent (DONE)', () => { expect(component.selectSvgSheet).toBeDefined(); }); - it('... should trigger on selectSvgSheetRequest event from EditionSvgSheetNavComponent', () => { - const sheetNavDes = getAndExpectDebugElementByDirective(compDe, EditionSvgSheetNavStubComponent, 1, 1); - const sheetNavCmp = sheetNavDes[0].injector.get( - EditionSvgSheetNavStubComponent - ) as EditionSvgSheetNavStubComponent; + describe('... should trigger on selectSvgSheetRequest event from ...', () => { + it('... EditionSvgSheetNavComponent', () => { + const sheetNavDes = getAndExpectDebugElementByDirective( + compDe, + EditionSvgSheetNavStubComponent, + 1, + 1 + ); + const sheetNavCmp = sheetNavDes[0].injector.get( + EditionSvgSheetNavStubComponent + ) as EditionSvgSheetNavStubComponent; - sheetNavCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + sheetNavCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); - }); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); - it('... should trigger on selectSvgSheetRequest event from EditionSvgSheetViewerComponent', () => { - const sheetDes = getAndExpectDebugElementByDirective(compDe, EditionSvgSheetViewerStubComponent, 1, 1); - const sheetCmp = sheetDes[0].injector.get( - EditionSvgSheetViewerStubComponent - ) as EditionSvgSheetViewerStubComponent; + it('... EditionSvgSheetViewerComponent', () => { + const sheetDes = getAndExpectDebugElementByDirective( + compDe, + EditionSvgSheetViewerStubComponent, + 1, + 1 + ); + const sheetCmp = sheetDes[0].injector.get( + EditionSvgSheetViewerStubComponent + ) as EditionSvgSheetViewerStubComponent; - sheetCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + sheetCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); - }); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); - it('... should trigger on selectSvgSheetRequest event from EditionSvgSheetFooterStubComponent', () => { - const tableDes = getAndExpectDebugElementByDirective(compDe, EditionSvgSheetFooterStubComponent, 1, 1); - const tableCmp = tableDes[0].injector.get( - EditionSvgSheetFooterStubComponent - ) as EditionSvgSheetFooterStubComponent; + it('... EditionSvgSheetFooterStubComponent', () => { + const tableDes = getAndExpectDebugElementByDirective( + compDe, + EditionSvgSheetFooterStubComponent, + 1, + 1 + ); + const tableCmp = tableDes[0].injector.get( + EditionSvgSheetFooterStubComponent + ) as EditionSvgSheetFooterStubComponent; - tableCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + tableCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); + }); }); it('... should not emit anything if no id is provided', () => { component.selectSvgSheet(undefined); expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + component.selectSvgSheet({ complexId: undefined, sheetId: undefined }); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, {}); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts index 225ace907c..05c4b4ab5c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-footer/edition-svg-sheet-footer.component.spec.ts @@ -9,6 +9,8 @@ import { faChevronRight, faChevronUp } from '@fortawesome/free-solid-svg-icons'; import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { expectSpyCall, + expectToBe, + expectToEqual, getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; @@ -43,7 +45,7 @@ class EditionTkaTableStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionSvgSheetFooterComponent (DONE)', () => { @@ -60,6 +62,8 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { let selectSvgSheetSpy: Spy; let selectSvgSheetRequestEmitSpy: Spy; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedFragment: string; let expectedSvgSheet: EditionSvgSheet; let expectedNextSvgSheet: EditionSvgSheet; @@ -90,6 +94,8 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { utils = TestBed.inject(UtilityService); // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedModalSnippet = mockEditionData.mockModalSnippet; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; @@ -133,15 +139,9 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { }); it('... should have fontawesome icons', () => { - expect(component.faChevronRight).toBeTruthy(); - expect(component.faChevronRight) - .withContext(`should equal ${expectedChevronRightIcon}`) - .toEqual(expectedChevronRightIcon); - - expect(component.faChevronUp).toBeTruthy(); - expect(component.faChevronUp) - .withContext(`should equal ${expectedChevronUpIcon}`) - .toEqual(expectedChevronUpIcon); + expectToEqual(component.faChevronRight, expectedChevronRightIcon); + + expectToEqual(component.faChevronUp, expectedChevronUpIcon); }); it('... should have `ref`', () => { @@ -149,8 +149,7 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { }); it('... should have `showTextcritics = false`', () => { - expect(component.showTextcritics).toBeDefined(); - expect(component.showTextcritics).toBe(false); + expectToBe(component.showTextcritics, false); }); describe('VIEW', () => { @@ -179,22 +178,15 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { }); it('... should have `selectedTextcritics` input', () => { - expect(component.selectedTextcritics).toBeDefined(); - expect(component.selectedTextcritics) - .withContext(`should be ${expectedSelectedTextcritics}`) - .toBe(expectedSelectedTextcritics); + expectToEqual(component.selectedTextcritics, expectedSelectedTextcritics); }); it('... should have `selectedTextcriticalComments` input', () => { - expect(component.selectedTextcriticalComments).toBeDefined(); - expect(component.selectedTextcriticalComments) - .withContext(`should equal ${expectedSelectedTextcriticalComments}`) - .toEqual(expectedSelectedTextcriticalComments); + expectToEqual(component.selectedTextcriticalComments, expectedSelectedTextcriticalComments); }); it('... should have `showTkA` input', () => { - expect(component.showTkA).toBeDefined(); - expect(component.showTkA).withContext(`should be ${expectedShowTka}`).toBe(expectedShowTka); + expectToBe(component.showTkA, expectedShowTka); }); describe('VIEW', () => { @@ -256,8 +248,7 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { const spanDes = getAndExpectDebugElementByCss(pDes[0], 'span.caps', 1, 1); const spanEl = spanDes[0].nativeElement; - expect(spanEl.textContent).toBeDefined(); - expect(spanEl.textContent).withContext(`should be 'Skizzenkommentar:'`).toBe('Skizzenkommentar:'); + expectToBe(spanEl.textContent, 'Skizzenkommentar:'); }); it('... should contain a second span in p with "---" if selectedTextcritics.description is empty', () => { @@ -275,8 +266,7 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { const spanDes = getAndExpectDebugElementByCss(pDes[0], 'span', 2, 2); const spanEl = spanDes[1].nativeElement; - expect(spanEl.textContent).toBeTruthy(); - expect(spanEl.textContent.trim()).withContext(`should be '---'`).toBe('---'); + expectToBe(spanEl.textContent.trim(), `---`); }); describe('... should contain no EditionTkaDescriptionComponent if ...', () => { @@ -334,10 +324,7 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { expect(pEl.classList).toBeDefined(); expect(pEl.classList).toContain('caps'); - expect(pEl.textContent).toBeTruthy(); - expect(pEl.textContent.trim()) - .withContext(`should be 'Textkritischer Kommentar:`) - .toBe(`Textkritischer Kommentar:`); + expectToBe(pEl.textContent, `Textkritischer Kommentar:`); }); it('... should contain one EditionTkaTableComponent (stubbed) in textcritics div', () => { @@ -351,24 +338,17 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { getAndExpectDebugElementByDirective(divDes[0], EditionTkaTableStubComponent, 1, 1); }); - it('... should pass down selectedTextcriticalComments to the EditionTkaTableComponent', () => { + it('... should pass down `selectedTextcriticalComments` and `isRowTable` to the EditionTkaTableComponent', () => { const tableDes = getAndExpectDebugElementByDirective(compDe, EditionTkaTableStubComponent, 1, 1); const tableCmp = tableDes[0].injector.get(EditionTkaTableStubComponent) as EditionTkaTableStubComponent; - expect(tableCmp.textcriticalComments).toBeTruthy(); - expect(tableCmp.textcriticalComments) - .withContext(`should equal ${expectedSelectedTextcriticalComments}`) - .toEqual(expectedSelectedTextcriticalComments); + expectToEqual(tableCmp.textcriticalComments, expectedSelectedTextcriticalComments); + expectToBe(tableCmp.isRowTable, expectedSelectedTextcritics.rowtable); }); it('... should pass down isRowTable to the EditionTkaTableComponent', () => { const tableDes = getAndExpectDebugElementByDirective(compDe, EditionTkaTableStubComponent, 1, 1); const tableCmp = tableDes[0].injector.get(EditionTkaTableStubComponent) as EditionTkaTableStubComponent; - - expect(tableCmp.isRowTable).toBeTruthy(); - expect(tableCmp.isRowTable) - .withContext(`should equal ${expectedSelectedTextcritics.rowtable}`) - .toEqual(expectedSelectedTextcritics.rowtable); }); }); @@ -473,25 +453,46 @@ describe('EditionSvgSheetFooterComponent (DONE)', () => { EditionTkaTableStubComponent ) as EditionTkaTableStubComponent; - editionTkaTableCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + editionTkaTableCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + const expectedSheetIds = undefined; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedSheetIds); + + const expectedNextSheetIds = { complexId: undefined, sheetId: undefined }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts index b0c716df32..f8702bc528 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts @@ -22,6 +22,8 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedNavItemLabel: string; let expectedSvgSheets: EditionSvgSheet[]; let expectedSheetsWithoutPartials: EditionSvgSheet[]; @@ -47,6 +49,8 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { // Test data expectedNavItemLabel = 'Testeditionslabel'; + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedSvgSheets = mockEditionData.mockSvgSheetList.sheets['sketchEditions']; expectedSheetsWithoutPartials = expectedSvgSheets.filter(sheet => sheet.content.length === 1); expectedSheetsWithPartials = expectedSvgSheets.filter(sheet => sheet.content.length > 1); @@ -442,7 +446,7 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { describe('... should trigger on click', () => { it('... on direct anchors', fakeAsync(() => { - const expectedId = expectedSvgSheet.id; + const expectedSheetId = expectedSvgSheet.id; const anchorDes = getAndExpectDebugElementByCss( compDe, @@ -454,12 +458,12 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { // Trigger click with click helper & wait for changes clickAndAwaitChanges(anchorDes[0], fixture); - expectSpyCall(selectSvgSheetSpy, 1, expectedId); + expectSpyCall(selectSvgSheetSpy, 1, ['', expectedSheetId]); // Trigger click with click helper & wait for changes clickAndAwaitChanges(anchorDes[1], fixture); - expectSpyCall(selectSvgSheetSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 2, ['', expectedNextSvgSheet.id]); })); it('... on dropdown anchors', fakeAsync(() => { @@ -483,34 +487,64 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { const expectedIdWithPartial = sheet.id + sheet.content[anchorIndex].partial; - expectSpyCall(selectSvgSheetSpy, index * 2 + anchorIndex + 1, expectedIdWithPartial); + expectSpyCall(selectSvgSheetSpy, index * 2 + anchorIndex + 1, ['', expectedIdWithPartial]); }); }); })); }); it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + component.selectSvgSheet(undefined, undefined); expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + component.selectSvgSheet('', ''); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet with partial within same complex', () => { + const expectedSheetId = + expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet with partial', () => { - const expectedId = expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + it('... should emit id of selected svg sheet with partial for another complex', () => { + const expectedSheetId = + expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + const expectedSheetIds = { complexId: expectedNextComplexId, sheetId: expectedSheetId }; - component.selectSvgSheet(expectedId); + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.spec.ts index 710779eaef..f67c63ed01 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav.component.spec.ts @@ -27,7 +27,7 @@ class EditionSvgSheetNavItemStubComponent { selectedSvgSheet: EditionSvgSheet; @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionSvgSheetNavComponent (DONE)', () => { @@ -35,6 +35,8 @@ describe('EditionSvgSheetNavComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedSvgSheetsData: EditionSvgSheetList; let expectedSvgSheet: EditionSvgSheet; let expectedSvgSheetWithPartials: EditionSvgSheet; @@ -56,6 +58,8 @@ describe('EditionSvgSheetNavComponent (DONE)', () => { compDe = fixture.debugElement; // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk4; expectedSvgSheetWithPartials = mockEditionData.mockSvgSheet_Sk2; @@ -243,41 +247,75 @@ describe('EditionSvgSheetNavComponent (DONE)', () => { de => de.injector.get(EditionSvgSheetNavItemStubComponent) as EditionSvgSheetNavItemStubComponent ); - sheetNavItemCmp[0].selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + let expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + sheetNavItemCmp[0].selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); - sheetNavItemCmp[1].selectSvgSheetRequest.emit(expectedSvgSheet.id); + expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + sheetNavItemCmp[1].selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 2, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 2, expectedSheetIds); - sheetNavItemCmp[2].selectSvgSheetRequest.emit(expectedSvgSheet.id); + sheetNavItemCmp[2].selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 3, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 3, expectedSheetIds); }); it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + const expectedSheetIds = undefined; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedSheetIds); + + const expectedNextSheetIds = { complexId: undefined, sheetId: undefined }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet with partial within same complex', () => { + const expectedSheetId = + expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet with partial', () => { - const expectedId = expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + it('... should emit id of selected svg sheet with partial for another complex', () => { + const expectedSheetId = + expectedSvgSheetWithPartialA.id + expectedSvgSheetWithPartialA.content[0].partial; + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; - component.selectSvgSheet(expectedId); + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedId); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts index c5a3833d26..246eca52f1 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts @@ -47,6 +47,8 @@ describe('EditionSvgSheetViewerComponent', () => { let selectSvgSheetSpy: Spy; let selectSvgSheetRequestEmitSpy: Spy; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedCompressIcon: IconDefinition; let expectedSliderConfig: SliderConfig; let expectedSvgSheet: EditionSvgSheet; @@ -86,6 +88,8 @@ describe('EditionSvgSheetViewerComponent', () => { expectedCompressIcon = faCompressArrowsAlt; expectedSliderConfig = new SliderConfig(1, 0.1, 10, 1 / 100, 1); + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk2; @@ -562,6 +566,7 @@ describe('EditionSvgSheetViewerComponent', () => { }); }); + /* TODO : Check if this test is still needed */ describe('#selectSvgSheet()', () => { it('... should have a method `selectSvgSheet`', () => { expect(component.selectSvgSheet).toBeDefined(); @@ -579,19 +584,37 @@ describe('EditionSvgSheetViewerComponent', () => { }); */ it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + component.selectSvgSheet(undefined, undefined); expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + component.selectSvgSheet('', ''); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.spec.ts index 488f217a69..b3b2cc2c7c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-convolute.component.spec.ts @@ -35,7 +35,7 @@ class EditionFolioViewerStubComponent { @Output() openModalRequest: EventEmitter = new EventEmitter(); @Output() - selectSvgSheetRequest: EventEmitter = new EventEmitter(); + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } describe('EditionConvoluteComponent (DONE)', () => { @@ -52,6 +52,8 @@ describe('EditionConvoluteComponent (DONE)', () => { let selectSvgSheetRequestEmitSpy: Spy; let expectedSelectedConvolute: FolioConvolute; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedSvgSheet: EditionSvgSheet; let expectedNextSvgSheet: EditionSvgSheet; let expectedFolioLegends: IFolioLegend[]; @@ -80,6 +82,8 @@ describe('EditionConvoluteComponent (DONE)', () => { // Test data expectedSelectedConvolute = mockEditionData.mockFolioConvoluteData.convolutes[0]; + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedSvgSheet = mockEditionData.mockSvgSheet_Sk1; expectedNextSvgSheet = mockEditionData.mockSvgSheet_Sk2; expectedFragment = `source${expectedSelectedConvolute.convoluteId}`; @@ -309,25 +313,46 @@ describe('EditionConvoluteComponent (DONE)', () => { EditionFolioViewerStubComponent ) as EditionFolioViewerStubComponent; - folioCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + folioCmp.selectSvgSheetRequest.emit(expectedSheetIds); - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + const expectedSheetIds = undefined; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedSheetIds); + + const expectedNextSheetIds = { complexId: undefined, sheetId: undefined }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.spec.ts index 4d6916369d..4edc0f2c42 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka-table/edition-tka-table.component.spec.ts @@ -40,8 +40,10 @@ describe('EditionTkaTableComponent (DONE)', () => { let expectedGlyphs: typeof EDITION_GLYPHS_DATA; let expectedIsRowTable: boolean; let expectedModalSnippet: string; - let expectedNextSvgSheet: EditionSvgSheet; + let expectedComplexId: string; + let expectedNextComplexId: string; let expectedSvgSheet: EditionSvgSheet; + let expectedNextSvgSheet: EditionSvgSheet; let expectedTextcriticalComments: TextcriticalComment[]; let expectedTableHeaderStrings: { default: { reference: string; label: string }[]; @@ -62,6 +64,8 @@ describe('EditionTkaTableComponent (DONE)', () => { mockDocument = TestBed.inject(DOCUMENT); // Test data + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; expectedFragment = 'source_A'; expectedGlyphs = EDITION_GLYPHS_DATA; expectedModalSnippet = mockEditionData.mockModalSnippet; @@ -167,10 +171,7 @@ describe('EditionTkaTableComponent (DONE)', () => { columnDes.forEach((columnDe, index) => { const columnEl = columnDe.nativeElement; - expect(columnEl.textContent).toBeDefined(); - expect(columnEl.textContent.trim()) - .withContext(`should be '${expectedTableHeaderStrings.default[index].label}'`) - .toBe(expectedTableHeaderStrings.default[index].label); + expectToBe(columnEl.textContent.trim(), expectedTableHeaderStrings.default[index].label); }); }); @@ -183,10 +184,7 @@ describe('EditionTkaTableComponent (DONE)', () => { columnDes.forEach((columnDe, index) => { const columnEl = columnDe.nativeElement; - expect(columnEl.textContent).toBeDefined(); - expect(columnEl.textContent.trim()) - .withContext(`should be '${expectedTableHeaderStrings.rowTable[index].label}'`) - .toBe(expectedTableHeaderStrings.rowTable[index].label); + expectToBe(columnEl.textContent.trim(), expectedTableHeaderStrings.rowTable[index].label); }); }); @@ -286,12 +284,12 @@ describe('EditionTkaTableComponent (DONE)', () => { }); it('... should return the correct hex value for a valid glyph alt value', () => { - expect(component.getGlyph('[bb]')).withContext(`should be '\uD834\uDD2B'`).toBe('\uD834\uDD2B'); // DOUBLE_FLAT - expect(component.getGlyph('[x]')).withContext(`should be '\uD834\uDD2A'`).toBe('\uD834\uDD2A'); // DOUBLE_SHARP - expect(component.getGlyph('[b]')).withContext(`should be '\u266D'`).toBe('\u266D'); // FLAT - expect(component.getGlyph('[#]')).withContext(`should be '\u266F'`).toBe('\u266F'); // SHARP - expect(component.getGlyph('[a]')).withContext(`should be '\u266E'`).toBe('\u266E'); // NATURAL - expect(component.getGlyph('[f]')).withContext(`should be '\uD834\uDD91'`).toBe('\uD834\uDD91'); // FORTE + expectToBe(component.getGlyph('[bb]'), '\uD834\uDD2B'); // DOUBLE_FLAT + expectToBe(component.getGlyph('[x]'), '\uD834\uDD2A'); // DOUBLE_SHARP + expectToBe(component.getGlyph('[b]'), '\u266D'); // FLAT + expectToBe(component.getGlyph('[#]'), '\u266F'); // SHARP + expectToBe(component.getGlyph('[a]'), '\u266E'); // NATURAL + expectToBe(component.getGlyph('[f]'), '\uD834\uDD91'); // FORTE }); it('... should return an empty string for an invalid glyph alt value', () => { @@ -451,23 +449,44 @@ describe('EditionTkaTableComponent (DONE)', () => { // CLick on second anchor (with selectSvgSheet call) clickAndAwaitChanges(anchorDes[2], fixture); - expectSpyCall(selectSvgSheetSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetSpy, 1, [expectedComplexId, expectedSvgSheet.id]); })); it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined); + component.selectSvgSheet(undefined, undefined); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + component.selectSvgSheet('', ''); expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); }); - it('... should emit id of selected svg sheet', () => { - component.selectSvgSheet(expectedSvgSheet.id); + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, { + complexId: expectedComplexId, + sheetId: expectedNextSvgSheet.id, + }); + }); + + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; + component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - component.selectSvgSheet(expectedNextSvgSheet.id); + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; + component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSvgSheet.id); + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); }); }); }); diff --git a/src/app/views/edition-view/services/edition-svg-drawing.service.spec.ts b/src/app/views/edition-view/services/edition-svg-drawing.service.spec.ts index bddcab3e20..d291c49302 100644 --- a/src/app/views/edition-view/services/edition-svg-drawing.service.spec.ts +++ b/src/app/views/edition-view/services/edition-svg-drawing.service.spec.ts @@ -79,7 +79,10 @@ describe('EditionSvgDrawingService (DONE)', () => { expectedLinkBoxes = [ { svgGroupId: 'link-box-1', - linkTo: 'Test_Sk_1', + linkTo: { + complexId: 'testComplex', + sheetId: 'Test_Sk_1', + }, }, ]; diff --git a/src/testing/mock-data/mockEditionData.ts b/src/testing/mock-data/mockEditionData.ts index 00e1b2e9dd..8ea1f5b4ac 100644 --- a/src/testing/mock-data/mockEditionData.ts +++ b/src/testing/mock-data/mockEditionData.ts @@ -28,7 +28,8 @@ export const mockEditionData = { }, content: [ { - id: 'M_212_Sk1', + complexId: 'op12', + sheetId: 'M_212_Sk1', sigle: 'M 212 Sk1', sigleAddendum: 'T. 1–2, [3–6]', selectable: false, @@ -84,7 +85,7 @@ export const mockEditionData = { id: 'op12', content: [ 'Die Skizzen in A enthalten datierte Verlaufsskizzen zu allen vier Liedern.', - 'In Test Sk1 werden T. [11]–[12] aus Test Sk1 neu skizziert', + "In Test Sk1 werden T. [11]–[12] aus Test Sk1 neu skizziert", ], }, ], @@ -241,7 +242,10 @@ export const mockEditionData = { content: [ { item: 'Test item', - itemLinkTo: 'test_item_id_1', + itemLinkTo: { + complexId: 'testComplex1', + sheetId: 'test_item_id_1', + }, itemDescription: '(test description)', folios: [ { @@ -291,7 +295,7 @@ export const mockEditionData = { }, { item: 'Test item 2 without link', - itemLinkTo: '', + itemLinkTo: {}, itemDescription: '(test description 2)', folios: [ { @@ -400,13 +404,16 @@ export const mockEditionData = { }, { item: 'Test item 3 without description', - itemLinkTo: 'test_item_id_2', + itemLinkTo: { + complexId: 'testComplex1', + sheetId: 'test_item_id_2', + }, itemDescription: '', folios: [], }, { item: '', - itemLinkTo: '', + itemLinkTo: {}, itemDescription: '', folios: [ { @@ -434,7 +441,7 @@ export const mockEditionData = { id: 'op25', content: [ '[Die Quellenbewertung zum gesamten Editionskomplex Drei Lieder nach Gedichten von Hildegard Jone op. 25 erscheint im Zusammenhang der vollständigen Edition von Opus 25 in AWG I/5.]', - 'Die Skizzen in A enthalten u. a. Test Sk1 (13. Januar 1915) als Korrekturen einer in B und in Test Sk1 vorformulierten Fassung dar.', + "Die Skizzen in A enthalten u. a. Test Sk1 (13. Januar 1915) als Korrekturen einer in B und in Test Sk1 vorformulierten Fassung dar.", ], }, ], @@ -848,7 +855,10 @@ export const mockEditionData = { { id: 'test-2', label: 'test2', - description: ['test description 1', 'test description 2'], + description: [ + 'test description 1', + "In Sk2 werden T. 11–12 aus Sk1 bzw. T. 10–11 aus B neu skizziert, weiter modifiziert und zu einer Formulierung gebracht, die T. 10–11 aus C entspricht.", + ], rowtable: true, comments: [ { @@ -864,7 +874,7 @@ export const mockEditionData = { system: '12', position: '2. Note', comment: - 'Die Skizzen in A enthalten datierte Verlaufsskizzen zu allen vier Liedern. Siehe Test SkXYZ T. [11] und Test Sk1.', + "Die Skizzen in A enthalten datierte Verlaufsskizzen zu allen vier Liedern. Siehe Test SkXYZ T. [11] und Test Sk1.", }, { svgGroupId: 'svg-group-3', From 8fe1e8a79388b59933b1d9fd2a96ffd9932fb1d1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 15 Jan 2024 23:43:14 +0100 Subject: [PATCH 06/36] fix(edition): remove unused method from sheet viewer --- .../edition-accolade.component.html | 3 +- .../edition-accolade.component.spec.ts | 17 ------ ...edition-svg-sheet-viewer.component.spec.ts | 57 ------------------- .../edition-svg-sheet-viewer.component.ts | 26 --------- 4 files changed, 1 insertion(+), 102 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.html index 9c4a097257..6281ecb117 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.html @@ -27,8 +27,7 @@ [selectedSvgSheet]="selectedSvgSheet" (browseSvgSheetRequest)="browseSvgSheet($event)" (selectLinkBoxRequest)="selectLinkBox($event)" - (selectOverlaysRequest)="selectOverlays($event)" - (selectSvgSheetRequest)="selectSvgSheet($event)"> + (selectOverlaysRequest)="selectOverlays($event)"> } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts index 91900283df..70c0ae6d41 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-accolade.component.spec.ts @@ -641,23 +641,6 @@ describe('EditionAccoladeComponent (DONE)', () => { expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); }); - it('... EditionSvgSheetViewerComponent', () => { - const sheetDes = getAndExpectDebugElementByDirective( - compDe, - EditionSvgSheetViewerStubComponent, - 1, - 1 - ); - const sheetCmp = sheetDes[0].injector.get( - EditionSvgSheetViewerStubComponent - ) as EditionSvgSheetViewerStubComponent; - - const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; - sheetCmp.selectSvgSheetRequest.emit(expectedSheetIds); - - expectSpyCall(selectSvgSheetSpy, 1, expectedSheetIds); - }); - it('... EditionSvgSheetFooterStubComponent', () => { const tableDes = getAndExpectDebugElementByDirective( compDe, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts index 246eca52f1..a0fa5f00dd 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.spec.ts @@ -44,8 +44,6 @@ describe('EditionSvgSheetViewerComponent', () => { let rescaleZoomSpy: Spy; let resetZoomSpy: Spy; let retranslateZoomSpy: Spy; - let selectSvgSheetSpy: Spy; - let selectSvgSheetRequestEmitSpy: Spy; let expectedComplexId: string; let expectedNextComplexId: string; @@ -100,9 +98,6 @@ describe('EditionSvgSheetViewerComponent', () => { browseSvgSheetRequestEmitSpy = spyOn(component.browseSvgSheetRequest, 'emit').and.callThrough(); onZoomChangeSpy = spyOn(component, 'onZoomChange').and.callThrough(); resetZoomSpy = spyOn(component, 'resetZoom').and.callThrough(); - selectSvgSheetSpy = spyOn(component, 'selectSvgSheet').and.callThrough(); - selectSvgSheetRequestEmitSpy = spyOn(component.selectSvgSheetRequest, 'emit').and.callThrough(); - rescaleZoomSpy = spyOn(component, '_rescaleZoom').and.callFake(() => {}); // TODO: Check if a more meaningful replacement can be found retranslateZoomSpy = spyOn(component, '_retranslateZoom').and.callFake(() => {}); @@ -565,57 +560,5 @@ describe('EditionSvgSheetViewerComponent', () => { expectSpyCall(retranslateZoomSpy, 1); }); }); - - /* TODO : Check if this test is still needed */ - describe('#selectSvgSheet()', () => { - it('... should have a method `selectSvgSheet`', () => { - expect(component.selectSvgSheet).toBeDefined(); - }); - - /* It('... should trigger on click on linkbox', () => { - const sheetNavDes = getAndExpectDebugElementByDirective(compDe, EditionSvgSheetNavStubComponent, 1, 1); - const sheetNavCmp = sheetNavDes[0].injector.get( - EditionSvgSheetNavStubComponent - ) as EditionSvgSheetNavStubComponent; - - sheetNavCmp.selectSvgSheetRequest.emit(expectedNextSvgSheet.id); - - expectSpyCall(selectSvgSheetSpy, 1, expectedNextSvgSheet.id); - }); */ - - it('... should not emit anything if no id is provided', () => { - component.selectSvgSheet(undefined, undefined); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); - - component.selectSvgSheet('', ''); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); - }); - - it('... should emit id of selected svg sheet within same complex', () => { - const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; - component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - - const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSvgSheet.id }; - component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); - }); - - it('... should emit id of selected svg sheet for another complex', () => { - const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; - component.selectSvgSheet(expectedSheetIds.complexId, expectedSheetIds.sheetId); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); - - const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSvgSheet.id }; - component.selectSvgSheet(expectedNextSheetIds.complexId, expectedNextSheetIds.sheetId); - - expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); - }); - }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts index 378ece1634..4f34dee39d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts @@ -106,14 +106,6 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft @Output() selectOverlaysRequest: EventEmitter = new EventEmitter(); - /** - * Output variable: selectSvgSheetRequest. - * - * It keeps an event emitter for the selected ids of an edition complex and svg sheet. - */ - @Output() - selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); - /** * Public variable: faCompressArrowsAlt. * @@ -351,24 +343,6 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft this._retranslateZoom(); } - /** - * TODO: Check if this method is used. - * Public method: selectSvgSheet. - * - * It emits the given ids of a selected edition complex - * and svg sheet to the {@link selectSvgSheetRequest}. - * - * @param {string} complexId The given complex id. - * @param {string} sheetId The given sheet id. - * @returns {void} Emits the ids. - */ - selectSvgSheet(complexId: string, sheetId: string): void { - if (!sheetId) { - return; - } - this.selectSvgSheetRequest.emit({ complexId: complexId, sheetId: sheetId }); - } - /** * Private method: _clearSVG. * From 7ee69f0722fa715ca4676699be6ade5dcee5d0a5 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 10:17:04 +0100 Subject: [PATCH 07/36] fix(assets): fix link box for m37 --- .../data/edition/series/2/section/2a/m37/textcritics.json | 2 +- .../img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json index 636ca22a8f..3689b356f4 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json @@ -8,7 +8,7 @@ ], "linkBoxes": [ { - "svgGroupId": "TODO", + "svgGroupId": "g1365", "linkTo": { "complexId": "m37", "sheetId": "M_37_Sk2" diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg index 43a30064d0..4ea9421871 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg @@ -148,7 +148,6 @@ - From e4c37493ab680a9f85f8ce5100ca1bc046dd5964 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 15:44:55 +0100 Subject: [PATCH 08/36] fix(app): prefer object chaining for object checks --- .../conversion-service/conversion.service.ts | 2 +- .../core/services/gnd-service/gnd.service.ts | 2 +- .../services/http-cache/http-cache.service.ts | 4 +--- src/app/shared/table/table.component.ts | 2 +- .../props/props.component.ts | 2 +- .../resource-detail-html-content.component.ts | 2 +- .../resource-detail-html.component.ts | 2 +- .../data-view/services/data-api.service.ts | 10 ++++----- .../construct-results.component.html | 2 +- .../construct-results.component.spec.ts | 6 ++--- .../force-graph/force-graph.component.html | 12 +++++----- .../force-graph/force-graph.component.ts | 22 +++++++++---------- .../graph-visualizer.component.ts | 2 +- .../models/d3-force-simulation.model.ts | 2 +- .../sparql-editor/sparql-editor.component.ts | 8 +------ .../edition-svg-sheet-viewer.component.ts | 4 ++-- .../models/edition-complex.model.ts | 2 +- src/testing/mock-helper/mock-cache.ts | 4 +--- 18 files changed, 39 insertions(+), 51 deletions(-) diff --git a/src/app/core/services/conversion-service/conversion.service.ts b/src/app/core/services/conversion-service/conversion.service.ts index b84eab09c7..c5d95edbd1 100644 --- a/src/app/core/services/conversion-service/conversion.service.ts +++ b/src/app/core/services/conversion-service/conversion.service.ts @@ -279,7 +279,7 @@ export class ConversionService extends ApiService { * @returns {ResourceDetail} The converted resource detail object. */ convertResourceData(resourceData: IResourceDataResponse, resourceId: string): ResourceDetail { - if (!resourceData || !resourceData[0] || !resourceData[0].access) { + if (!resourceData?.[0]?.access) { return new ResourceDetail(undefined, undefined); } if (resourceData[0].access === 'OK') { diff --git a/src/app/core/services/gnd-service/gnd.service.ts b/src/app/core/services/gnd-service/gnd.service.ts index 8ac9207409..85504caacf 100644 --- a/src/app/core/services/gnd-service/gnd.service.ts +++ b/src/app/core/services/gnd-service/gnd.service.ts @@ -98,7 +98,7 @@ export class GndService extends StorageService { * @returns {void} It exposes or removes the event to/from the storage. */ exposeGnd(gndEvent: GndEvent) { - if (!gndEvent || !gndEvent.type) { + if (!gndEvent?.type) { return; } switch (gndEvent.type) { diff --git a/src/app/core/services/http-cache/http-cache.service.ts b/src/app/core/services/http-cache/http-cache.service.ts index 4ffbf3b58f..d5f4487a23 100644 --- a/src/app/core/services/http-cache/http-cache.service.ts +++ b/src/app/core/services/http-cache/http-cache.service.ts @@ -55,9 +55,7 @@ export class HttpCacheService implements HttpCache { * @returns {HttpResponse | null} A cached response or null. */ get(req: HttpRequest): HttpResponse | null { - return this._cachedResponses && this._cachedResponses.has(req.urlWithParams) - ? this._cachedResponses.get(req.urlWithParams) - : null; + return this._cachedResponses?.has(req.urlWithParams) ? this._cachedResponses.get(req.urlWithParams) : null; } /** diff --git a/src/app/shared/table/table.component.ts b/src/app/shared/table/table.component.ts index d34f3c4895..3f6fac97b0 100644 --- a/src/app/shared/table/table.component.ts +++ b/src/app/shared/table/table.component.ts @@ -246,7 +246,7 @@ export class TableComponent implements OnInit { if (rowEntry === null || rowEntry === undefined) { return false; } - return rowEntry['label'] && rowEntry['label'].toString().toLowerCase().includes(term); + return rowEntry['label']?.toString().toLowerCase().includes(term); }) ); return this.tableData.filteredRows; diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/props/props.component.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/props/props.component.ts index a1f60de698..4fe41ffba9 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/props/props.component.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/props/props.component.ts @@ -82,7 +82,7 @@ export class ResourceDetailHtmlContentPropsComponent implements OnChanges, OnDes * @returns {void} Emits the event. */ exposeGnd(gndEvent: GndEvent): void { - if (!gndEvent || !gndEvent.type) { + if (!gndEvent?.type) { return; } this.gndRequest.emit(gndEvent); diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/resource-detail-html-content.component.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/resource-detail-html-content.component.ts index 019f48e8b8..d7894e1504 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/resource-detail-html-content.component.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html-content/resource-detail-html-content.component.ts @@ -54,7 +54,7 @@ export class ResourceDetailHtmlContentComponent { * @returns {void} Emits the event. */ exposeGnd(gndEvent: GndEvent): void { - if (!gndEvent || !gndEvent.type) { + if (!gndEvent?.type) { return; } this.gndRequest.emit(gndEvent); diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html.component.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html.component.ts index 2b049a4f60..9c8709f4de 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html.component.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail-html/resource-detail-html.component.ts @@ -52,7 +52,7 @@ export class ResourceDetailHtmlComponent { * @returns {void} Emits the event. */ exposeGnd(gndEvent: GndEvent): void { - if (!gndEvent || !gndEvent.type) { + if (!gndEvent?.type) { return; } this.gndRequest.emit(gndEvent); diff --git a/src/app/views/data-view/services/data-api.service.ts b/src/app/views/data-view/services/data-api.service.ts index c03bd932d4..5a42ab3f7b 100644 --- a/src/app/views/data-view/services/data-api.service.ts +++ b/src/app/views/data-view/services/data-api.service.ts @@ -1,7 +1,7 @@ import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { forkJoin as observableForkJoin, Observable, of as observableOf } from 'rxjs'; +import { Observable, forkJoin as observableForkJoin, of as observableOf } from 'rxjs'; import { defaultIfEmpty, map } from 'rxjs/operators'; import { ApiService, ConversionService } from '@awg-core/services/'; @@ -186,10 +186,10 @@ export class DataApiService extends ApiService { * @returns {Observable} The observable with the SearchResponseJson data. */ getSearchData(searchParams: SearchParams): Observable { - if (!searchParams || !searchParams.query) { - return observableOf(new SearchResponseJson()); - } - if (typeof searchParams.query === 'object' && !searchParams.query['filterByRestype']) { + if ( + !searchParams?.query || + (typeof searchParams?.query === 'object' && !searchParams?.query?.['filterByRestype']) + ) { return observableOf(new SearchResponseJson()); } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.html index 264d027537..62c08798ab 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.html @@ -14,7 +14,7 @@ diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.spec.ts index cf4f49698a..1cb81bb56d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.spec.ts @@ -24,7 +24,7 @@ import { ConstructResultsComponent } from './construct-results.component'; // Mock components @Component({ selector: 'awg-force-graph', template: '' }) class ForceGraphStubComponent { - @Input() queryResultTriples: Triple[]; + @Input() currentQueryResultTriples: Triple[]; @Input() height: number; @Output() clickedNodeRequest: EventEmitter = new EventEmitter(); } @@ -502,7 +502,7 @@ describe('ConstructResultsComponent (DONE)', () => { ForceGraphStubComponent ) as ForceGraphStubComponent; - expectToEqual(forceGraphCmp.queryResultTriples, [expectedQueryResult]); + expectToEqual(forceGraphCmp.currentQueryResultTriples, [expectedQueryResult]); expectToBe(forceGraphCmp.height, expectedHeight); }); }); @@ -852,7 +852,7 @@ describe('ConstructResultsComponent (DONE)', () => { ForceGraphStubComponent ) as ForceGraphStubComponent; - expectToEqual(forceGraphCmp.queryResultTriples, [expectedQueryResult]); + expectToEqual(forceGraphCmp.currentQueryResultTriples, [expectedQueryResult]); expectToBe(forceGraphCmp.height, expectedHeight); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.html index 8c6386209a..ed5c77fcff 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.html @@ -26,13 +26,13 @@ - @if (queryResultTriples) { + @if (currentQueryResultTriples) {
+ [disabled]="currentQueryResultTriples.length === 0"> diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.ts index d405315ad8..ca889c76e8 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/force-graph/force-graph.component.ts @@ -69,11 +69,11 @@ const FORCES = { }) export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { /** - * Input variable: queryResultTriples. + * Input variable: currentQueryResultTriples. * * It keeps the triples of the query result. */ - @Input() queryResultTriples: Triple[]; + @Input() currentQueryResultTriples: Triple[]; /** * Input variable: height. @@ -224,7 +224,7 @@ export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { */ @HostListener('window:resize') onResize() { // Guard against resize before view is rendered - if (!this._graphContainer || !this.queryResultTriples) { + if (!this._graphContainer || !this.currentQueryResultTriples) { return; } @@ -259,12 +259,10 @@ export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { * @param {SimpleChanges} changes The changes of the input. */ ngOnChanges(changes: SimpleChanges) { - if ( - changes['queryResultTriples'] && - changes['queryResultTriples'].currentValue && - !changes['queryResultTriples'].isFirstChange() - ) { - this.queryResultTriples = changes['queryResultTriples'].currentValue; + const { queryResultTriples } = changes; + + if (queryResultTriples?.currentValue && !queryResultTriples.isFirstChange()) { + this.currentQueryResultTriples = queryResultTriples.currentValue; this._redraw(); } } @@ -351,7 +349,7 @@ export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { * @returns {void} Redraws the graph. */ private _redraw(): void { - if (this.queryResultTriples) { + if (this.currentQueryResultTriples) { this._cleanSVG(); this._createSVG(); this._attachData(); @@ -427,7 +425,7 @@ export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { */ private _attachData(): void { // Limit result length - const triples: Triple[] = this.graphVisualizerService.limitTriples(this.queryResultTriples, this.limit); + const triples: Triple[] = this.graphVisualizerService.limitTriples(this.currentQueryResultTriples, this.limit); // If type of triples is text/turtle (not array) // The triples must be parsed to objects instead @@ -787,7 +785,7 @@ export class ForceGraphComponent implements OnInit, OnChanges, OnDestroy { * @returns { width: number; height: number } The container dimensions. */ private _getContainerDimensions(container: ElementRef): { width: number; height: number } { - if (!container || !container.nativeElement) { + if (!container?.nativeElement) { return null; } return { width: container.nativeElement.clientWidth, height: container.nativeElement.clientHeight }; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.ts index 3be62f7e0f..e4b01f4861 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.ts @@ -227,7 +227,7 @@ export class GraphVisualizerComponent implements OnInit { * @returns {void} Shows the error message. */ showErrorMessage(toastMessage: ToastMessage): void { - if (!toastMessage || !toastMessage.message) { + if (!toastMessage?.message) { return; } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts index 9606c18971..b70c74efd9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/models/d3-force-simulation.model.ts @@ -131,7 +131,7 @@ export class D3ForceSimulation { * @returns {void} It inits the simulation. */ private _initSimulation(options: D3ForceSimulationOptions): void { - if (!options || !options.width || !options.height) { + if (!options?.width || !options?.height) { throw new Error('Missing options when initializing simulation'); } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts index 2e613fdc40..9b4f0e194c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts @@ -222,13 +222,7 @@ export class SparqlEditorComponent implements OnInit, OnChanges { * @returns {boolean} The boolean value of the check result. */ isExampleQueriesEnabled(): boolean { - return !!( - this.query && - this.query.queryType && - this.query.queryLabel && - this.query.queryString && - this.queryList - ); + return !!(this.query?.queryType && this.query?.queryLabel && this.query?.queryString && this.queryList); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts index 4f34dee39d..bccb04f22c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-viewer/edition-svg-sheet-viewer.component.ts @@ -661,12 +661,12 @@ export class EditionSvgSheetViewerComponent implements OnChanges, OnDestroy, Aft zoomContext.attr('transform', currentTransform); // Update view - if (this.sliderInput && this.sliderInput.nativeElement) { + if (this.sliderInput?.nativeElement) { this.sliderInput.nativeElement.value = roundedTransformValue; this.sliderConfig.value = roundedTransformValue; } // Needed because d3 listener does not update ngModel - if (this.sliderInputLabel && this.sliderInputLabel.nativeElement) { + if (this.sliderInputLabel?.nativeElement) { this.sliderInputLabel.nativeElement.innerText = roundedTransformValue + 'x'; } }; diff --git a/src/app/views/edition-view/models/edition-complex.model.ts b/src/app/views/edition-view/models/edition-complex.model.ts index e7b75bec36..c3ddf0fbc0 100644 --- a/src/app/views/edition-view/models/edition-complex.model.ts +++ b/src/app/views/edition-view/models/edition-complex.model.ts @@ -108,7 +108,7 @@ export class EditionComplex { section?: EditionRouteConstant, type?: EditionRouteConstant ) { - if (!titleStatement || !titleStatement.catalogueType || !titleStatement.catalogueNumber) { + if (!titleStatement?.catalogueType || !titleStatement?.catalogueNumber) { return; } diff --git a/src/testing/mock-helper/mock-cache.ts b/src/testing/mock-helper/mock-cache.ts index 3fff859bc8..912730f9cd 100644 --- a/src/testing/mock-helper/mock-cache.ts +++ b/src/testing/mock-helper/mock-cache.ts @@ -39,9 +39,7 @@ export const mockCache: IMockCache = { cachedResponses.set(req.urlWithParams, resp.clone()); }, get(req: HttpRequest): HttpResponse | null { - return cachedResponses && cachedResponses.has(req.urlWithParams) - ? cachedResponses.get(req.urlWithParams) - : null; + return cachedResponses?.has(req.urlWithParams) ? cachedResponses.get(req.urlWithParams) : null; }, clear(): void { cachedResponses = new Map>(); From ae21c7f3daa313815e8934b5c929e12812078d9b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 16:03:37 +0100 Subject: [PATCH 09/36] fix(app): avoid conditional expression for default assignment --- .../models/edition-complex.model.ts | 19 +++++++------------ .../models/folio-calculation.model.ts | 2 +- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/app/views/edition-view/models/edition-complex.model.ts b/src/app/views/edition-view/models/edition-complex.model.ts index c3ddf0fbc0..43ca317d09 100644 --- a/src/app/views/edition-view/models/edition-complex.model.ts +++ b/src/app/views/edition-view/models/edition-complex.model.ts @@ -117,10 +117,8 @@ export class EditionComplex { const spacer = ' '; // Set dynamic routes - this.titleStatement = titleStatement ? titleStatement : new EditionTitleStatement(); - this.responsibilityStatement = responsibilityStatement - ? responsibilityStatement - : new EditionResponsibilityStatement(); + this.titleStatement = titleStatement || new EditionTitleStatement(); + this.responsibilityStatement = responsibilityStatement || new EditionResponsibilityStatement(); this.complexId = new EditionRouteConstant(); if (this.titleStatement.catalogueType === EDITION_CATALOGUE_TYPE_CONSTANTS.OPUS) { @@ -134,16 +132,13 @@ export class EditionComplex { this.complexId.short = this.titleStatement.catalogueType.short + spacer + this.titleStatement.catalogueNumber; this.complexId.full = this.titleStatement.title + spacer + this.complexId.short; - this.series = series ? series : new EditionRouteConstant(); // EditionConstants.SERIES_1; - this.section = section ? section : new EditionRouteConstant(); // EditionConstants.SECTION_5; - this.type = type ? type : new EditionRouteConstant(); // EditionConstants.SKETCH_EDITION; + this.series = series || new EditionRouteConstant(); + this.section = section || new EditionRouteConstant(); + this.type = type || new EditionRouteConstant(); // Set base route - let rootPath = EDITION_ROUTE_CONSTANTS.EDITION.route; // '/edition' - // RootPath += this.series.route; // '/series' - // RootPath += this.section.route; // '/section' - rootPath += EDITION_ROUTE_CONSTANTS.COMPLEX.route; // '/complex' - // RootPath += this.type.route; // '/sketches' or // '/texts' + let rootPath = EDITION_ROUTE_CONSTANTS.EDITION.route; + rootPath += EDITION_ROUTE_CONSTANTS.COMPLEX.route; this.baseRoute = rootPath + this.complexId.route + delimiter; } diff --git a/src/app/views/edition-view/models/folio-calculation.model.ts b/src/app/views/edition-view/models/folio-calculation.model.ts index 2b46924e7d..73fd1dc3ab 100644 --- a/src/app/views/edition-view/models/folio-calculation.model.ts +++ b/src/app/views/edition-view/models/folio-calculation.model.ts @@ -436,7 +436,7 @@ export class FolioCalculation { * @param {number} [itemsOffsetCorrection] The optional given itemsOffset correction. */ constructor(folioSettings: FolioSettings, folioData: Folio, itemsOffsetCorrection?: number) { - this.itemsOffsetCorrection = itemsOffsetCorrection ? itemsOffsetCorrection : 0; + this.itemsOffsetCorrection = itemsOffsetCorrection || 0; this.numberOfSystems = folioData.systems ? parseInt(folioData.systems, 10) : 0; this.zoomFactor = folioSettings.factor; From a2e999ec760a1a801ed82176d6abe21a27ba7c7c Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 16:05:20 +0100 Subject: [PATCH 10/36] fix(app): fix unnecessary use of boolean literals --- .../construct-results/construct-results.component.ts | 2 +- .../edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts | 2 +- .../select-results/select-results.component.ts | 2 +- .../graph-visualizer/sparql-editor/sparql-editor.component.ts | 4 ++-- .../triples-editor/triples-editor.component.ts | 4 ++-- .../unsupported-type-results.component.ts | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.ts index 562f138a3e..e728c02e64 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/construct-results/construct-results.component.ts @@ -77,7 +77,7 @@ export class ConstructResultsComponent { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemDisabled(): boolean { - return this.isFullscreen ? true : false; + return this.isFullscreen; } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts index d2293ee620..99d1a91796 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts @@ -53,6 +53,6 @@ export class PrefixPipe implements PipeTransform { ); } // If the value was not transformed, return the original value - return transformedValue ? transformedValue : value; + return transformedValue || value; } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/select-results/select-results.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/select-results/select-results.component.ts index 8b9eccfd9f..6c16ec1548 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/select-results/select-results.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/select-results/select-results.component.ts @@ -68,7 +68,7 @@ export class SelectResultsComponent { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemDisabled(): boolean { - return this.isFullscreen ? true : false; + return this.isFullscreen; } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts index 9b4f0e194c..a20fc5b7b1 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts @@ -301,7 +301,7 @@ export class SparqlEditorComponent implements OnInit, OnChanges { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemCollapsed(): boolean { - return this.isFullscreen ? false : true; + return !this.isFullscreen; } /** @@ -313,6 +313,6 @@ export class SparqlEditorComponent implements OnInit, OnChanges { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemDisabled(): boolean { - return this.isFullscreen ? true : false; + return this.isFullscreen; } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/triples-editor/triples-editor.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/triples-editor/triples-editor.component.ts index 8fae0a265a..ceb53a691e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/triples-editor/triples-editor.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/triples-editor/triples-editor.component.ts @@ -124,7 +124,7 @@ export class TriplesEditorComponent { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemCollapsed(): boolean { - return this.isFullscreen ? false : true; + return !this.isFullscreen; } /** @@ -136,6 +136,6 @@ export class TriplesEditorComponent { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemDisabled(): boolean { - return this.isFullscreen ? true : false; + return this.isFullscreen; } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/unsupported-type-results/unsupported-type-results.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/unsupported-type-results/unsupported-type-results.component.ts index fa1cf32aef..5c98858ba2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/unsupported-type-results/unsupported-type-results.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/unsupported-type-results/unsupported-type-results.component.ts @@ -38,6 +38,6 @@ export class UnsupportedTypeResultsComponent { * @returns {boolean} The boolean value of the comparison. */ isAccordionItemDisabled(): boolean { - return this.isFullscreen ? true : false; + return this.isFullscreen; } } From ff30f8d8df397c806b317df44a4ea717f4f3316b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 16:12:05 +0100 Subject: [PATCH 11/36] fix(app): fix unexpected lexical declaration in case blocks --- .../models/resource-detail-header.model.ts | 26 ++++++++++++------- .../prefix-pipe/prefix.pipe.ts | 3 ++- .../services/graph-visualizer.service.ts | 11 +++++--- .../sparql-editor/sparql-editor.component.ts | 12 ++++++--- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/app/views/data-view/models/resource-detail-header.model.ts b/src/app/views/data-view/models/resource-detail-header.model.ts index 50474056b1..7517336dc8 100644 --- a/src/app/views/data-view/models/resource-detail-header.model.ts +++ b/src/app/views/data-view/models/resource-detail-header.model.ts @@ -75,7 +75,7 @@ export class ResourceDetailHeader { // Extract restype specific title for header switch (info.restype_id) { // CHRONOLOGIE - case '28': + case '28': { // Richtext value has already been converted in detail using plugin "htmlConverter" let htmlstr = props['webern-onto:event'].toHtml[0]; @@ -84,42 +84,48 @@ export class ResourceDetailHeader { this.title = htmlstr; break; + } // KORRESPONDENZ (same as SUPPLEMENT) - case '29': + case '29': { this.title = props['dc:title'].toHtml[0] + '
' + props['dc:date'].toHtml[0]; break; + } // SUPPLEMENT - case '125': + case '125': { this.title = props['dc:title'].toHtml[0] + '
' + props['dc:date'].toHtml[0]; break; + } // MUSIKSTÜCK (Moldenhauer-Nummer) - case '36': + case '36': { this.title = '[M ' + props['webern-onto:mnr'].toHtml[0] + '] ' + props['dc:title'].toHtml[0]; break; - + } // WERK - case '43': + case '43': { this.title = props['dc:title'].toHtml[0]; break; - + } // PERSON - case '45': + case '45': { const lname: string = props['salsah:lastname'].toHtml[0]; const fname: string = props['salsah:firstname'].toHtml[0]; this.title = fname + ' ' + lname; break; + } // BIBLIOGRAPHIE - case '126': + case '126': { this.title = props['webern-onto:bibl_title_short'].toHtml[0]; break; + } // DEFAULT - default: + default: { this.title = info.restype_description; + } } } else { // Header for undefined & restricted object diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts index 99d1a91796..8632fcb9ee 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/prefix-pipe/prefix.pipe.ts @@ -45,12 +45,13 @@ export class PrefixPipe implements PipeTransform { }); break; } - default: + default: { // This branch should not be reached const exhaustiveCheck: never = prefixForm; throw new Error( `The prefixForm must be ${PrefixForm.SHORT} or ${PrefixForm.LONG}, but was: ${exhaustiveCheck}.` ); + } } // If the value was not transformed, return the original value return transformedValue || value; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/services/graph-visualizer.service.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/services/graph-visualizer.service.ts index 08eee97761..fa996a0668 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/services/graph-visualizer.service.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/services/graph-visualizer.service.ts @@ -11,8 +11,8 @@ import { Namespace, NamespaceType, PrefixForm, - QueryTypeIndex, QueryResult, + QueryTypeIndex, RDFStoreConstructResponse, RDFStoreConstructResponseTriple, RDFStoreSelectResponse, @@ -392,16 +392,19 @@ export class GraphVisualizerService { let prefixStr; switch (type) { - case NamespaceType.TURTLE: + case NamespaceType.TURTLE: { prefixStr = '@prefix'.toLowerCase(); break; - case NamespaceType.SPARQL: + } + case NamespaceType.SPARQL: { prefixStr = 'PREFIX'.toLowerCase(); break; - default: + } + default: { // This branch should not be reached const exhaustiveCheck: never = type; throw new Error(`The type must be TURTLE or SPARQL, but was: ${exhaustiveCheck}.`); + } } // Get index of all occurrences of prefix string diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts index a20fc5b7b1..fa9e4e5eef 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-editor/sparql-editor.component.ts @@ -190,27 +190,31 @@ export class SparqlEditorComponent implements OnInit, OnChanges { */ switchQueryType(viewType: ViewHandleTypes): void { switch (viewType) { - case ViewHandleTypes.TABLE: + case ViewHandleTypes.TABLE: { if (this.query.queryType === 'construct' && this.query.queryString.includes('CONSTRUCT')) { this.query.queryString = this.query.queryString.replace('CONSTRUCT', 'SELECT *'); this.query.queryType = 'select'; } break; - case ViewHandleTypes.GRAPH: + } + case ViewHandleTypes.GRAPH: { if (this.query.queryType === 'select' && this.query.queryString.includes('SELECT')) { this.query.queryString = this.query.queryString.replace(/SELECT.*\n/, 'CONSTRUCT\n'); this.query.queryType = 'construct'; } break; - case ViewHandleTypes.GRID: + } + case ViewHandleTypes.GRID: { // Do nothing break; - default: + } + default: { // This branch should not be reached const exhaustiveCheck: never = viewType; throw new Error( `The view must be ${ViewHandleTypes.GRAPH} or ${ViewHandleTypes.TABLE}, but was: ${exhaustiveCheck}.` ); + } } } From eebc87dde827c8e3917f0a29faa7bfbe2de8a444 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 16:21:04 +0100 Subject: [PATCH 12/36] refactor(search): simplify methods in bibliography format pipe --- .../bibliography/bibliography-format.pipe.ts | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/app/views/data-view/data-outlets/bibliography/bibliography-format.pipe.ts b/src/app/views/data-view/data-outlets/bibliography/bibliography-format.pipe.ts index 1668339248..087208e4bb 100644 --- a/src/app/views/data-view/data-outlets/bibliography/bibliography-format.pipe.ts +++ b/src/app/views/data-view/data-outlets/bibliography/bibliography-format.pipe.ts @@ -321,30 +321,29 @@ export class BibliographyFormatPipe implements PipeTransform { console.warn('Verlag fehlt: "' + out + '" (' + this._bibEntry['Kurztitel'] + ')'); } } - } else { - if (pub) { - out += pubPlace + ': '; - // Publisher == object - // Case: "Wien: Böhlau, Lafite, " - if (typeof pub === 'object') { - const publ = Object.keys(pub).length; - for (let i = 0; i < publ; i++) { - out += pub[i] + ', '; - } - } else { - // Publisher == String - // Case: "Wien: Böhlau," - out += pub + ', '; + } else if (pub) { + out += pubPlace + ': '; + // Publisher == object + // Case: "Wien: Böhlau, Lafite, " + if (typeof pub === 'object') { + const publ = Object.keys(pub).length; + for (let i = 0; i < publ; i++) { + out += pub[i] + ', '; } } else { - // Place without publisher (e.g. "Hochschulschriften") - // Case: "Wien, " - if (!this._bibEntry['unpubliziert']) { - console.warn('Verlag fehlt: "' + out + '" (' + this._bibEntry['Kurztitel'] + ')'); - } - out += pubPlace + ', '; + // Publisher == String + // Case: "Wien: Böhlau," + out += pub + ', '; } + } else { + // Place without publisher (e.g. "Hochschulschriften") + // Case: "Wien, " + if (!this._bibEntry['unpubliziert']) { + console.warn('Verlag fehlt: "' + out + '" (' + this._bibEntry['Kurztitel'] + ')'); + } + out += pubPlace + ', '; } + return out; } @@ -429,15 +428,11 @@ export class BibliographyFormatPipe implements PipeTransform { * @returns {string} The splitted name(s). */ private _splitName(name: string, preDelimiter: string): string { - let tmp = []; - if (name.match(',')) { - tmp = name.split(', '); - // Changes positions of first and last name - // Look here: http://stackoverflow.com/a/5306832 - tmp.splice(1, 0, tmp.splice(0, 1)[0]); - return preDelimiter + tmp[0] + ' ' + tmp[1]; + if (name.includes(',')) { + const [lastName, firstName] = name.split(', '); + return `${preDelimiter}${firstName} ${lastName}`; } else { - return preDelimiter + name; + return `${preDelimiter}${name}`; } } } From 1a5347b80d3a7338e988adf4d72ee4a06009dee4 Mon Sep 17 00:00:00 2001 From: chael-mi <108875866+chael-mi@users.noreply.github.com> Date: Tue, 16 Jan 2024 16:29:48 +0100 Subject: [PATCH 13/36] feat(assets): add files for M 31 (#844) * feature/m31_newfiles * feature/update_m31_svg * update_sk4 * fix(assets): optimize 17 SVG(s) with SVGO --------- Co-authored-by: musicEnfanthen --- .../series/2/section/2a/m31/source-list.json | 18 + .../series/2/section/2a/m31/textcritics.json | 311 +++++++++ .../2/section/2a/m31/M31_Sk1-2von2-final.svg | 254 ++++++++ .../2/section/2a/m31/M31_Sk1_1von2_final.svg | 239 +++++++ .../2/section/2a/m31/M31_Sk2-1von1-final.svg | 224 +++++++ .../2/section/2a/m31/M31_Sk3-1von4-final.svg | 506 +++++++++++++++ .../2/section/2a/m31/M31_Sk3-2von4-final.svg | 494 +++++++++++++++ .../2/section/2a/m31/M31_Sk3-3von4-final.svg | 455 +++++++++++++ .../2/section/2a/m31/M31_Sk3-4von4-final.svg | 207 ++++++ .../section/2a/m31/M31_Sk3_1-1von1-final.svg | 189 ++++++ .../section/2a/m31/M31_Sk3_2-1von1-final.svg | 187 ++++++ .../2/section/2a/m31/M31_Sk4-1von3-final.svg | 598 ++++++++++++++++++ .../2/section/2a/m31/M31_Sk4-2von3-final.svg | 231 +++++++ .../2/section/2a/m31/M31_Sk4-3von3-final.svg | 463 ++++++++++++++ .../2/section/2a/m31/M31_Sk5-1von3-final.svg | 510 +++++++++++++++ .../2/section/2a/m31/M31_Sk5-2von3-final.svg | 532 ++++++++++++++++ .../2/section/2a/m31/M31_Sk5-3von3-final.svg | 161 +++++ .../2/section/2a/m37/M37_Sk1-1von1-final.svg | 70 +- .../2/section/2a/m37/M37_Sk2-1von1-final.svg | 100 +-- 19 files changed, 5664 insertions(+), 85 deletions(-) create mode 100644 src/assets/data/edition/series/2/section/2a/m31/source-list.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/textcritics.json create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-2von2-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk2-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-1von4-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-2von4-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-3von4-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-4von4-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_1-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_2-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-1von3-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-2von3-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-3von3-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-1von3-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-2von3-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-3von3-final.svg diff --git a/src/assets/data/edition/series/2/section/2a/m31/source-list.json b/src/assets/data/edition/series/2/section/2a/m31/source-list.json new file mode 100644 index 0000000000..49a7eacf74 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/source-list.json @@ -0,0 +1,18 @@ +{ + "sources": [ + { + "siglum": "A", + "type": "Skizzen zu
Studienkomposition für Klavier M 31.
Enthält auch Skizzen zu Studienkomposition für Klavier M 30 und M* 403.", + "location": "CH-Bps, Sammlung Anton Webern.", + "hasDescription": true, + "linkTo": "sourceA" + }, + { + "siglum": "B", + "type": "Tintenniederschrift von
Studienkomposition für Klavier M 31.
Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 30 sowie Skizzen zu Studienkomposition für Klavier M* 402.", + "location": "CH-Bps, Sammlung Anton Webern.", + "hasDescription": true, + "linkTo": "sourceB" + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/textcritics.json b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json new file mode 100644 index 0000000000..d7f5a3c5c2 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json @@ -0,0 +1,311 @@ +{ + "textcritics": [ + { + "id": "M_31_Sk1", + "label": "M 31 Sk1", + "description": [ + "M 31 Sk1 enthält eine erste rhythmische Skizze zum Hauptthema der Studienkomposition für Klavier M 31." + ], + "comments": [ + { + "svgGroupId": "g964", + "measure": "1", + "system": "10", + "position": "(2/4)", + "comment": "Zwei Achtelnoten überschreiben Viertelnote." + } + ] + }, + { + "id": "M_31_Sk2", + "label": "M 31 Sk2", + "description": [ + "M 31 Sk2 formuliert ein kontrastierendes Thema in E-Dur für den B-Teil, das von der Tintenniederschrift jedoch noch stark abweicht." + ], + "comments": [ + { + "svgGroupId": "g952", + "measure": "x+2", + "system": "10", + "position": "1. Note", + "comment": "Halbe Note überschreibt Viertelnote." + } + ] + }, + { + "id": "M_31_Sk3", + "label": "M 31 Sk3", + "description": [ + "M 31 Sk3 beinhaltet eine Verlaufsskizze vom A-Teil und B-Teil der Studienkomposition für Klavier M 31, deren Übergang zur Reprise von der Tintenniederschrift abweicht." + ], + "comments": [ + { + "svgGroupId": "g1140", + "measure": "2", + "system": "16", + "position": "1/4", + "comment": "Im Bassschlüssel zu lesende Viertelnote as/c1 gestrichen." + }, + { + "svgGroupId": "g1146", + "measure": "3", + "system": "16", + "position": "1. Note", + "comment": "Viertelnote überschreibt Halbe Note." + }, + { + "svgGroupId": "g1150", + "measure": "3", + "system": "16", + "position": "2/4", + "comment": "g gestrichen." + }, + { + "svgGroupId": "g1169", + "measure": "4", + "system": "15", + "position": "1. Note", + "comment": "[a] überschreibt [b]." + }, + { + "svgGroupId": "g1164", + "measure": "4", + "system": "15", + "position": "letzte Note", + "comment": "g1/c2/e2 überschreibt f2." + }, + { + "svgGroupId": "g1090", + "measure": "8", + "system": "17", + "position": "2/8", + "comment": "a2 gestrichen." + }, + { + "svgGroupId": "g1166", + "measure": "10", + "system": "18", + "position": "(2–3/4)", + "comment": "Punktierte Viertelnote G/d mit Achtelnote g überschreibt Halbe Note G/d; Augmentationspunkte gestrichen und Achtelnote d auf 5/8 hinzugefügt und mit g auf 6/8 zusammengebalkt." + }, + { + "svgGroupId": "g1131", + "measure": "10", + "system": "17", + "position": "3/4", + "comment": "h1 gestrichen." + }, + { + "svgGroupId": "g1155", + "measure": "11", + "system": "2", + "position": "", + "comment": "Violinschlüssel und Noten radiert." + }, + { + "svgGroupId": "g1128", + "measure": "15", + "system": "1", + "position": "3–6/8", + "comment": "d2–c2–h1–gis1 überschreibt f2–e2–d2–h1." + } + ] + }, + { + "id": "M_31_Sk3.1", + "label": "M 31 Sk3.1", + "description": [ + "M 31 Sk3.1 fügt einen zusätzlichen Takt zwischen T. 10 und T. 11 von Sk3 ein." + ], + "comments": [ + { + "svgGroupId": "g961", + "measure": "10+1", + "system": "6", + "position": "1. Note", + "comment": "Punktierte Viertelnote überschreibt Halbe Note." + } + ] + }, + { + "id": "M_31_Sk3.2", + "label": "M 31 Sk3.2", + "description": [ + "M 31 Sk3.2 skizziert vermutlich das Vorhaben, den Übergang zur Reprise in M 31 Sk3 von D nach G um eine Quinte nach unten zu transponieren." + ], + "comments": [ + { + "svgGroupId": "g963", + "measure": "17", + "system": "5", + "position": "3/4", + "comment": "e1 überschreibt f1." + } + ] + }, + { + "id": "M_31_Sk4", + "label": "M 31 Sk4", + "description": [ + "M 31 Sk4 setzt erneut beim B-Teil an, um einen – unter erheblichen Korrekturvorgängen – mit der Tintenniederschrift nahezu übereinstimmenden Verlauf des Mittelteils zu formulieren." + ], + "comments": [ + { + "svgGroupId": "g1170", + "measure": "12", + "system": "9", + "position": "4–5/8", + "comment": "H–H überschreibt e–gis." + }, + { + "svgGroupId": "g1203", + "measure": "15", + "system": "8", + "position": "1–6/8", + "comment": "Sechs Achtelnoten durch Streichung der Balkierung aufgelöst und geändert zu drei Achtelnoten, Viertelnote und Achtelnote; Achtelnote e2 auf 5/8 aufgrund der Änderung getilgt." + }, + { + "svgGroupId": "path1933", + "measure": "{16A–18A}", + "system": "8–9", + "position": "", + "comment": "Takte zusammen mit T. {19B} und T. {16B–18B} durch Einkreisung getilgt." + }, + { + "svgGroupId": "g1222", + "measure": "{17A}", + "system": "8", + "position": "2/4", + "comment": "f3 überschreibt c3." + }, + { + "svgGroupId": "g1227", + "measure": "{17A}", + "system": "8", + "position": "2/4–6/8", + "comment": "Drei Achtelnoten durch Streichung der Balkierung aufgelöst und geändert zu Viertelnote und zwei Achtelnoten." + }, + { + "svgGroupId": "g1259", + "measure": "{18A}", + "system": "8", + "position": "", + "comment": "Noten gestrichen." + }, + { + "svgGroupId": "polyline110", + "measure": "{19A}", + "system": "11", + "position": "", + "comment": "Noten gestrichen." + }, + { + "svgGroupId": "path 1933", + "measure": "{19B}", + "system": "", + "position": "", + "comment": "Takt zusammen mit T. {16A–18A} und T. {16B–18B} durch Einkreisung getilgt." + }, + { + "svgGroupId": "g956", + "measure": "{19B}", + "system": "11", + "position": "5/8", + "comment": "d2 überschreibt c2." + }, + { + "svgGroupId": "polyline130", + "measure": "{16B–18B}", + "system": "13–14", + "position": "", + "comment": "Takte pauschal gestrichen." + }, + { + "svgGroupId": "path 1933", + "measure": "{16B–18B}", + "system": "13–14", + "position": "", + "comment": "Takte zusammen mit T. {16A–18A} und T. {19B} durch Einkreisung getilgt." + }, + { + "svgGroupId": "g1066", + "measure": "16C", + "system": "13", + "position": "4/8", + "comment": "f1 überschreibt d1." + }, + { + "svgGroupId": "g1079", + "measure": "16C", + "system": "14", + "position": "5–6/8", + "comment": "a–d überschreibt F–D." + } + ] + }, + { + "id": "M_31_Sk5", + "label": "M 31 Sk5", + "description": [ + "M 31 Sk5 enthält die Reprise des A-Teils zur Studienkomposition für Klavier M 31. Obwohl sämtliche Takte gestrichen sind, entsprechen sie der späteren Tintenniederschrift.", + "comments": [ + { + "svgGroupId": "g1068", + "measure": "{20–24}", + "system": "1–2", + "position": "6/8", + "comment": "Takte pauschal gestrichen." + }, + { + "svgGroupId": "g1073", + "measure": "{21}", + "system": "2", + "position": "1/4", + "comment": "Viertelnote G gestrichen.." + }, + { + "svgGroupId": "g1090", + "measure": "{25–29}", + "system": "4–5", + "position": "", + "comment": "Takte pauschal gestrichen." + }, + { + "svgGroupId": "g1081", + "measure": "{25}", + "system": "5", + "position": "1/4", + "comment": "Viertelnote d1 gestrichen." + }, + { + "svgGroupId": "g1086", + "measure": "{27A}", + "system": "4–5", + "position": "", + "comment": "Takt pauschal gestrichen." + }, + { + "svgGroupId": "g1094", + "measure": "{27B}", + "system": "5", + "position": "1. Pause", + "comment": "Achtelpause gestrichen." + }, + { + "svgGroupId": "g1115", + "measure": "{28}", + "system": "4", + "position": "1/4", + "comment": "Oberstimmenschicht: Viertelpause überschreibt Achtelpause." + }, + { + "svgGroupId": "g1111", + "measure": "{28}", + "system": "4", + "position": "5–6/8", + "comment": "f1/a1–d1/f1 überschreibt e1/g1–c1/e1." + } + ] + } + ] +} diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-2von2-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-2von2-final.svg new file mode 100644 index 0000000000..1867cc782b --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-2von2-final.svg @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg new file mode 100644 index 0000000000..b57e24735e --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk2-1von1-final.svg new file mode 100644 index 0000000000..3091142289 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk2-1von1-final.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-1von4-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-1von4-final.svg new file mode 100644 index 0000000000..a0b7703965 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-1von4-final.svg @@ -0,0 +1,506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-2von4-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-2von4-final.svg new file mode 100644 index 0000000000..515b49395d --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-2von4-final.svg @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-3von4-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-3von4-final.svg new file mode 100644 index 0000000000..2d8df6eefc --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-3von4-final.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-4von4-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-4von4-final.svg new file mode 100644 index 0000000000..5c03128e90 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3-4von4-final.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_1-1von1-final.svg new file mode 100644 index 0000000000..ed73033066 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_1-1von1-final.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_2-1von1-final.svg new file mode 100644 index 0000000000..21c1ca3f45 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk3_2-1von1-final.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-1von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-1von3-final.svg new file mode 100644 index 0000000000..44b55a79b0 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-1von3-final.svg @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-2von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-2von3-final.svg new file mode 100644 index 0000000000..cd705a86ca --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-2von3-final.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-3von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-3von3-final.svg new file mode 100644 index 0000000000..6e2da453bf --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk4-3von3-final.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-1von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-1von3-final.svg new file mode 100644 index 0000000000..4853fa648b --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-1von3-final.svg @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-2von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-2von3-final.svg new file mode 100644 index 0000000000..76743a346e --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-2von3-final.svg @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-3von3-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-3von3-final.svg new file mode 100644 index 0000000000..8882debfea --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk5-3von3-final.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg index 4ea9421871..adaff57519 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg @@ -1,4 +1,4 @@ - + @@ -6,11 +6,11 @@ - - + + - - + + @@ -20,18 +20,18 @@ - - + + - + - - - - - + + + + + @@ -39,11 +39,11 @@ - - + + - - + + @@ -62,44 +62,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -114,17 +114,17 @@ - - - + + + - + - + @@ -141,16 +141,16 @@ - + - + - + 2 diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg index 07ec21e752..fc9be1c964 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg @@ -1,4 +1,4 @@ - + @@ -7,11 +7,11 @@ - - - - - + + + + + @@ -21,19 +21,19 @@ - - + + - + - + - - - - - + + + + + @@ -41,12 +41,12 @@ - - + + - - - + + + @@ -66,59 +66,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -126,32 +126,32 @@ - + - + - + - - - + + + - + - + @@ -167,15 +167,15 @@ - + - + - + - + @@ -185,19 +185,19 @@ - + - + - + - + From b66bb54b5aa5c9e806af8ec2d5872c0c6d9e3d6c Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 16 Jan 2024 16:46:25 +0100 Subject: [PATCH 14/36] feat(edition): add edition complex M 31 --- .../data/edition-complexes.data.ts | 23 +++++++++++++++++++ .../edition-view/data/edition-outline.data.ts | 1 + 2 files changed, 24 insertions(+) diff --git a/src/app/views/edition-view/data/edition-complexes.data.ts b/src/app/views/edition-view/data/edition-complexes.data.ts index 3d1615e6df..f17fb6027f 100644 --- a/src/app/views/edition-view/data/edition-complexes.data.ts +++ b/src/app/views/edition-view/data/edition-complexes.data.ts @@ -36,6 +36,29 @@ export class EDITION_COMPLEXES { EDITION_TYPE_CONSTANTS.SKETCH_EDITION ); + /** + * An EditionComplex object for M 31. + */ + static readonly M31: EditionComplex = new EditionComplex( + { + title: 'Studienkomposition für Klavier', + catalogueType: EDITION_CATALOGUE_TYPE_CONSTANTS.MNR, + catalogueNumber: '31', + }, + { + editors: [ + { + name: 'Michael Matter', + homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', + }, + ], + lastModified: '22. Februar 2023', + }, + EDITION_ROUTE_CONSTANTS.SERIES_2, + EDITION_ROUTE_CONSTANTS.SECTION_2A, + EDITION_TYPE_CONSTANTS.SKETCH_EDITION + ); + /** * An EditionComplex object for M 34. */ diff --git a/src/app/views/edition-view/data/edition-outline.data.ts b/src/app/views/edition-view/data/edition-outline.data.ts index 3f57bed9e5..893a19ae25 100644 --- a/src/app/views/edition-view/data/edition-outline.data.ts +++ b/src/app/views/edition-view/data/edition-outline.data.ts @@ -66,6 +66,7 @@ export const EDITION_OUTLINE_DATA: EditionOutlineSeries[] = [ opus: [], mnr: [ { complex: EDITION_COMPLEXES.M30, disabled: false }, + { complex: EDITION_COMPLEXES.M31, disabled: false }, { complex: EDITION_COMPLEXES.M34, disabled: false }, { complex: EDITION_COMPLEXES.M37, disabled: false }, ], From 01f569174ee7fd25760e1366aa9f5eb466c1b1c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 14:09:20 +0000 Subject: [PATCH 15/36] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 6.18.1 to 6.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.19.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.18.1 to 6.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.19.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +-- yarn.lock | 100 +++++++++++++++++++++++++-------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index abf872072d..1ddd67cdf4 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^18.19.6", - "@typescript-eslint/eslint-plugin": "^6.18.1", - "@typescript-eslint/parser": "^6.18.1", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "angular-cli-ghpages": "^1.0.7", "conventional-recommended-bump": "^9.0.0", "eslint": "^8.56.0", diff --git a/yarn.lock b/yarn.lock index 2bde451589..c1dde14c2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3447,16 +3447,16 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz#0df881a47da1c1a9774f39495f5f7052f86b72e0" - integrity sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA== +"@typescript-eslint/eslint-plugin@^6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.18.1" - "@typescript-eslint/type-utils" "6.18.1" - "@typescript-eslint/utils" "6.18.1" - "@typescript-eslint/visitor-keys" "6.18.1" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -3464,15 +3464,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.18.1.tgz#3c3987e186b38c77b30b6bfa5edf7c98ae2ec9d3" - integrity sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA== +"@typescript-eslint/parser@^6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== dependencies: - "@typescript-eslint/scope-manager" "6.18.1" - "@typescript-eslint/types" "6.18.1" - "@typescript-eslint/typescript-estree" "6.18.1" - "@typescript-eslint/visitor-keys" "6.18.1" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.18.0": @@ -3483,13 +3483,13 @@ "@typescript-eslint/types" "6.18.0" "@typescript-eslint/visitor-keys" "6.18.0" -"@typescript-eslint/scope-manager@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz#28c31c60f6e5827996aa3560a538693cb4bd3848" - integrity sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: - "@typescript-eslint/types" "6.18.1" - "@typescript-eslint/visitor-keys" "6.18.1" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" "@typescript-eslint/type-utils@6.18.0": version "6.18.0" @@ -3501,13 +3501,13 @@ debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/type-utils@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz#115cf535f8b39db8301677199ce51151e2daee96" - integrity sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "6.18.1" - "@typescript-eslint/utils" "6.18.1" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -3516,10 +3516,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.18.0.tgz#ffce610a1540c17cf7d8ecf2bb34b8b0e2e77101" integrity sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA== -"@typescript-eslint/types@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.18.1.tgz#91617d8080bcd99ac355d9157079970d1d49fefc" - integrity sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== "@typescript-eslint/typescript-estree@6.18.0": version "6.18.0" @@ -3535,13 +3535,13 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/typescript-estree@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz#a12b6440175b4cbc9d09ab3c4966c6b245215ab4" - integrity sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.18.1" - "@typescript-eslint/visitor-keys" "6.18.1" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -3562,17 +3562,17 @@ "@typescript-eslint/typescript-estree" "6.18.0" semver "^7.5.4" -"@typescript-eslint/utils@6.18.1", "@typescript-eslint/utils@^6.0.0": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.18.1.tgz#3451cfe2e56babb6ac657e10b6703393d4b82955" - integrity sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ== +"@typescript-eslint/utils@6.19.0", "@typescript-eslint/utils@^6.0.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.18.1" - "@typescript-eslint/types" "6.18.1" - "@typescript-eslint/typescript-estree" "6.18.1" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" semver "^7.5.4" "@typescript-eslint/visitor-keys@6.18.0": @@ -3583,12 +3583,12 @@ "@typescript-eslint/types" "6.18.0" eslint-visitor-keys "^3.4.1" -"@typescript-eslint/visitor-keys@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz#704d789bda2565a15475e7d22f145b8fe77443f4" - integrity sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.18.1" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": From 01b85dd64c43ce744e70005b4359ea4e950c240b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:22:36 +0000 Subject: [PATCH 16/36] build(deps-dev): bump prettier from 3.1.1 to 3.2.2 Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1ddd67cdf4..23cb68899a 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,7 @@ "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", "lint-staged": "^15.2.0", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "source-map-explorer": "^2.5.3", "standard-version": "^9.5.0", "typescript": "~5.2.2", diff --git a/yarn.lock b/yarn.lock index c1dde14c2a..91bdb8fc03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10347,10 +10347,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== +prettier@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" + integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== pretty-bytes@^5.3.0: version "5.6.0" From dac88d037ce295f505e1c2cb6955e03ffdc087b4 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:15:07 +0100 Subject: [PATCH 17/36] fix(assets): add missing data files and placeholders for m31 --- .../2/section/2a/m31/folio-convolute.json | 492 ++++++++++++++ .../series/2/section/2a/m31/graph.json | 13 + .../series/2/section/2a/m31/intro.json | 8 + .../2/section/2a/m31/source-description.json | 613 ++++++++++++++++++ .../2/section/2a/m31/source-evaluation.json | 8 + .../series/2/section/2a/m31/svg-sheets.json | 145 +++++ 6 files changed, 1279 insertions(+) create mode 100644 src/assets/data/edition/series/2/section/2a/m31/folio-convolute.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/graph.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/intro.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/source-description.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/source-evaluation.json create mode 100644 src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json diff --git a/src/assets/data/edition/series/2/section/2a/m31/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m31/folio-convolute.json new file mode 100644 index 0000000000..b4293114e9 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/folio-convolute.json @@ -0,0 +1,492 @@ +{ + "convolutes": [ + { + "convoluteId": "A", + "convoluteLabel": "A Skizzen (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m31", + "sheetId": "M_31_Sk3c", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 11–16", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3d", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 17–18", + "sectionPartition": 3, + "sections": [ + { + "position": 1, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3_1", + "sigle": "M 31 Sk3.1", + "sigleAddendum": "T. 10+1", + "sectionPartition": 3, + "sections": [ + { + "position": 2, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3_2", + "sigle": "M 31 Sk3.2", + "sigleAddendum": "T. 17–18", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4a", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. 12–15, {16A–18A}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 8, + "endSystem": 9 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4b", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. {19A, 19B}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4c", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. {16B–18B}, 16C–17C", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk1a", + "sigle": "M* 403 Sk1", + "sigleAddendum": "T. 1–10", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk1b", + "sigle": "M* 403 Sk1", + "sigleAddendum": "T. 11–15", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18 + } + ] + } + ] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m30", + "sheetId": "M_30_Sk1a", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1b", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. {7A–10B}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1c", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. {11A–16A}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 7, + "endSystem": 9 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1d", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 7B–8B, 9C–10C", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 9, + "endSystem": 11 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1e", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. {9D–12B}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 13 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1f", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 9E–{15B}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1g", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 16B–15C", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 18 + } + ] + } + ] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m31", + "sheetId": "M_31_Sk5a", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {20–24}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk5b", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {25–29}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk5c", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {30}", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2a", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 1–8", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 12, + "endSystem": 15 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2b", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 9–12", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2c", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 13–15", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2d", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. x+16 bis x+23", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + } + ] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m30", + "sheetId": "M_30_Sk1h", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 17–21", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1i", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 22–25(1–3/8)", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1j", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 25(4–6/8)–29B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m30", + "sheetId": "M_30_Sk1k", + "sigle": "M 30 Sk1", + "sigleAddendum": "T. 28C–29C", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk1a", + "sigle": "M 31 Sk1", + "sigleAddendum": "T. 1–4", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 10, + "endSystem": 10 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk1b", + "sigle": "M 31 Sk1", + "sigleAddendum": "T. 5–9", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 11, + "endSystem": 11 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk2", + "sigle": "M 31 Sk2", + "sigleAddendum": "T. x+1 bis x+4", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 13 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3a", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 1–5", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3b", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 6–10", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] + } + ] + }, + { + "convoluteId": "B", + "convoluteLabel": "B Tintenniederschrift (CH-Bps)", + "folios": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/graph.json b/src/assets/data/edition/series/2/section/2a/m31/graph.json new file mode 100644 index 0000000000..6716ac89e8 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/graph.json @@ -0,0 +1,13 @@ +{ + "graph": [ + { + "id": "m31", + "title": "Skizzengraph M 31", + "description": [], + "rdfData": { + "queryList": [], + "triples": "" + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/intro.json b/src/assets/data/edition/series/2/section/2a/m31/intro.json new file mode 100644 index 0000000000..2ff6aa7acb --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/intro.json @@ -0,0 +1,8 @@ +{ + "intro": [ + { + "id": "m31", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/source-description.json b/src/assets/data/edition/series/2/section/2a/m31/source-description.json new file mode 100644 index 0000000000..a814a68ec9 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/source-description.json @@ -0,0 +1,613 @@ +{ + "sources": [ + { + "id": "source_A", + "siglum": "A", + "siglumAddendum": "", + "type": "Skizzen.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": [ + "2 Blätter (Bl. 1–2). Schnittspuren am rechten Rand von Bl. 1: von Bogen abgeschnitten. Riss unten Mitte sowie Ecke oben links abgetrennt auf Bl. 1. Rissspuren am rechten Rand von Bl. 2: von Bogen abgetrennt. Kleiner Risse am linken Rand von Bl. 2." + ], + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: [J.E. & Co.] | No. 5 | 18 linig. unten links auf Bl. 1v–2v.", + "writingInstruments": { + "main": "Bleistift", + "secondary": [] + }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", + "content": [ + { + "item": "M 31 Sk3", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3c" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "11–16", + "linkTo": "M_31_Sk3c" + } + ], + [ + { + "system": "5a–6a", + "measure": "17–18", + "linkTo": "M_31_Sk3d" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk3.1", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3_1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "5b–6b", + "measure": "10+1", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk3.2", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3_2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "5c–6c", + "measure": "17–18", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk4", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk4" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "8–9", + "measure": "12–15, {16A–18A}", + "linkTo": "M_31_Sk4a" + } + ], + [ + { + "system": "10–11", + "measure": "{19A, 19B}", + "linkTo": "M_31_Sk4b" + } + ], + [ + { + "system": "13–14", + "measure": "{16B–18B}, 16C–17C", + "linkTo": "M_31_Sk4c" + } + ] + ] + } + ] + }, + { + "item": "M* 403 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 403)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16–17", + "measure": "1–10", + "linkTo": "" + } + ], + [ + { + "system": "18", + "measure": "11–15", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 30 Sk1", + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 30)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–6", + "linkTo": "M_30_Sk1a" + } + ], + [ + { + "system": "4–5", + "measure": "{7A–10A, 9B–10B}", + "linkTo": "M_30_Sk1b" + } + ], + [ + { + "system": "7–9", + "measure": "{11A–16A}", + "linkTo": "M_30_Sk1c" + } + ], + [ + { + "system": "9–11", + "measure": "7B–8B, 9C–10C", + "linkTo": "M_30_Sk1d" + } + ], + [ + { + "system": "13", + "measure": "{9D–12B}", + "linkTo": "M_30_Sk1e" + } + ], + [ + { + "system": "14–15", + "measure": "9E–10E, 11C–12C, {13B–15B}", + "linkTo": "M_30_Sk1f" + } + ], + [ + { + "system": "16–18", + "measure": "16B, {13C}, 13D, 14C–15C", + "linkTo": "M_30_Sk1g" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk5", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk5" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "{20–24}", + "linkTo": "M_31_Sk5a" + } + ], + [ + { + "system": "4–5", + "measure": "{25–26, 27A, 27B, 28–29}", + "linkTo": "M_31_Sk5b" + } + ], + [ + { + "system": "7a–8a", + "measure": "{30}", + "linkTo": "M_31_Sk5c" + } + ] + ] + } + ] + }, + { + "item": "M* 403 Sk2", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 403)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "12–15", + "measure": "1–8", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "9–12", + "linkTo": "" + } + ], + [ + { + "system": "7b–8b", + "measure": "13–15", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "x+16 bis x+23", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 30 Sk1", + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_Sk1h" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 30)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "17–21", + "linkTo": "M_30_Sk1h" + } + ], + [ + { + "system": "4–5", + "measure": "22, {23A}, 23B, {24A}, 24B, 25(1–3/8)", + "linkTo": "M_30_Sk1i" + } + ], + [ + { + "system": "7–8", + "measure": "25(4–6/8)–27, {28A–29A}, 28B–29B", + "linkTo": "M_30_Sk1j" + } + ], + [ + { + "system": "10a–11a", + "measure": "28C–29C", + "linkTo": "M_30_Sk1k" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk1", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "10b", + "measure": "1–4", + "linkTo": "M_31_Sk1a" + } + ], + [ + { + "system": "11b", + "measure": "5–9", + "linkTo": "M_31_Sk1b" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk2", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13", + "measure": "x+1 bis x+4", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 31 Sk3", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "15–16", + "measure": "1–5", + "linkTo": "M_31_Sk3a" + } + ], + [ + { + "system": "17–18", + "measure": "6–10", + "linkTo": "M_31_Sk3b" + } + ] + ] + } + ] + } + ] + } + }, + { + "id": "source_B", + "siglum": "B", + "siglumAddendum": "", + "type": "Tintenniederschrift.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": ["1 Blatt. Schnittspuren am rechten Rand: von Bogen abgeschnitten."], + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen: [J.E. & Co.] | No. 5 | 18 linig. unten links auf Bl. 1v.", + "writingInstruments": { + "main": "schwarze Tinte", + "secondary": ["Bleistift"] + }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", + "content": [ + { + "item": "M 31", + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 31)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–5", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "6–10", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "11–17", + "linkTo": "" + } + ], + [ + { + "system": "9–11", + "measure": "18–22", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "23–27", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "28–30", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 30", + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 30)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–5", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "6–10", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "11–15", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "16–20", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "21–24", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 402 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 402)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16–17", + "measure": "1–5", + "linkTo": "" + } + ], + [ + { + "system": "18", + "measure": "6–7, 8A, 8B, 9", + "linkTo": "" + } + ] + ] + } + ] + } + ] + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/source-evaluation.json b/src/assets/data/edition/series/2/section/2a/m31/source-evaluation.json new file mode 100644 index 0000000000..80d1e9716e --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/source-evaluation.json @@ -0,0 +1,8 @@ +{ + "sources": [ + { + "id": "m31", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json b/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json new file mode 100644 index 0000000000..8637d7037a --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json @@ -0,0 +1,145 @@ +{ + "sheets": { + "workEditions": [], + "textEditions": [ + { + "id": "M_31_TF1", + "label": "M 31 einzige Textfassung", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von1-final.svg", + "image": "", + "partial": "" + } + ], + "convolute": "" + } + ], + "sketchEditions": [ + { + "id": "M_31_Sk1", + "label": "M 31 Sk1", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk1-1von2-final.svg", + "image": "", + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk1-2von2-final.svg", + "image": "", + "partial": "b" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk2", + "label": "M 31 Sk2", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk2-1von1-final.svg", + "image": "", + "partial": "" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk3", + "label": "M 31 Sk3", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3-1von4-final.svg", + "image": "", + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3-2von4-final.svg", + "image": "", + "partial": "b" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3-3von4-final.svg", + "image": "", + "partial": "c" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3-4von4-final.svg", + "image": "", + "partial": "d" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk3_1", + "label": "M 31 Sk3.1", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3_1-1von1-final.svg", + "image": "", + "partial": "" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk3_2", + "label": "M 31 Sk3.2", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk3_2-1von1-final.svg", + "image": "", + "partial": "" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk4", + "label": "M 31 Sk4", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk4-1von3-final.svg", + "image": "", + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk4-2von3-final.svg", + "image": "", + "partial": "b" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk4-3von3-final.svg", + "image": "", + "partial": "c" + } + ], + "convolute": "A" + }, + { + "id": "M_31_Sk5", + "label": "M 31 Sk5", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk5-1von3-final.svg", + "image": "", + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk5-2von3-final.svg", + "image": "", + "partial": "b" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Sk5-3von3-final.svg", + "image": "", + "partial": "c" + } + ], + "convolute": "A" + } + ] + } +} From bbb444b220d17cc8814fe91238ad6d06f971b224 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:17:24 +0100 Subject: [PATCH 18/36] fix(assets): unify naming of sources --- .../edition/series/1/section/2/op27/source-description.json | 2 +- .../data/edition/series/1/section/2/op27/source-list.json | 2 +- .../data/edition/series/2/section/2a/m31/source-list.json | 4 ++-- .../edition/series/2/section/2a/m37/source-description.json | 4 ++-- .../data/edition/series/2/section/2a/m37/source-list.json | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/assets/data/edition/series/1/section/2/op27/source-description.json b/src/assets/data/edition/series/1/section/2/op27/source-description.json index ca3ddd6dfa..ad70f5ee75 100644 --- a/src/assets/data/edition/series/1/section/2/op27/source-description.json +++ b/src/assets/data/edition/series/1/section/2/op27/source-description.json @@ -1,7 +1,7 @@ { "sources": [ { - "id": "sourceB", + "id": "source_B", "siglum": "B", "type": "Reihentabelle.", "location": "CH-Bps, Sammlung Anton Webern.", diff --git a/src/assets/data/edition/series/1/section/2/op27/source-list.json b/src/assets/data/edition/series/1/section/2/op27/source-list.json index dff9ed545a..864979f10d 100644 --- a/src/assets/data/edition/series/1/section/2/op27/source-list.json +++ b/src/assets/data/edition/series/1/section/2/op27/source-list.json @@ -5,7 +5,7 @@ "type": "Reihentabelle.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, - "linkTo": "sourceB" + "linkTo": "source_B" } ] } diff --git a/src/assets/data/edition/series/2/section/2a/m31/source-list.json b/src/assets/data/edition/series/2/section/2a/m31/source-list.json index 49a7eacf74..a474e79e31 100644 --- a/src/assets/data/edition/series/2/section/2a/m31/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m31/source-list.json @@ -5,14 +5,14 @@ "type": "Skizzen zu
Studienkomposition für Klavier M 31.
Enthält auch Skizzen zu Studienkomposition für Klavier M 30 und M* 403.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, - "linkTo": "sourceA" + "linkTo": "source_A" }, { "siglum": "B", "type": "Tintenniederschrift von
Studienkomposition für Klavier M 31.
Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 30 sowie Skizzen zu Studienkomposition für Klavier M* 402.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, - "linkTo": "sourceB" + "linkTo": "source_B" } ] } diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index 479ae162d5..a85d8b32ac 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -1,7 +1,7 @@ { "sources": [ { - "id": "sourceA", + "id": "source_A", "siglum": "A", "siglumAddendum": "", "type": "Skizzen zu
Studienkomposition für Klavier M 37.
Enthält auch Skizzen zu Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M* 404.", @@ -587,7 +587,7 @@ } }, { - "id": "sourceB", + "id": "source_B", "siglum": "B", "siglumAddendum": "", "type": "Tintenniederschrift von
Studienkomposition für Klavier M 37.
Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-list.json b/src/assets/data/edition/series/2/section/2a/m37/source-list.json index 8543fd99e8..2157c566c6 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-list.json @@ -5,14 +5,14 @@ "type": "Skizzen zu
Studienkomposition für Klavier M 37.
Enthält auch Skizzen zu Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, - "linkTo": "sourceA" + "linkTo": "source_A" }, { "siglum": "B", "type": "Tintenniederschrift von
Studienkomposition für Klavier M 37.
Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, - "linkTo": "sourceB" + "linkTo": "source_B" } ] } From 6b49eaeca64ac6cfd7fa9fe9c6c511ce6aa4e0c0 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:19:18 +0100 Subject: [PATCH 19/36] fix(assets): rename svg file for m 31 --- .../2a/m31/{M31_Sk1_1von2_final.svg => M31_Sk1-1von2-final.svg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/assets/img/edition/series/2/section/2a/m31/{M31_Sk1_1von2_final.svg => M31_Sk1-1von2-final.svg} (100%) diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-1von2-final.svg similarity index 100% rename from src/assets/img/edition/series/2/section/2a/m31/M31_Sk1_1von2_final.svg rename to src/assets/img/edition/series/2/section/2a/m31/M31_Sk1-1von2-final.svg From 0db69053d149983115980c59f3b3a8d7d4f6eb2d Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:21:32 +0100 Subject: [PATCH 20/36] fix(assets): format textcritics files --- .../series/1/section/5/op12/textcritics.json | 214 +++++++++--------- .../series/1/section/5/op25/textcritics.json | 60 ++--- .../series/2/section/2a/m30/textcritics.json | 49 ++++ .../series/2/section/2a/m31/textcritics.json | 72 +++++- .../series/2/section/2a/m34/textcritics.json | 32 +-- .../series/2/section/2a/m37/textcritics.json | 82 ++++--- 6 files changed, 310 insertions(+), 199 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/textcritics.json b/src/assets/data/edition/series/1/section/5/op12/textcritics.json index 4be6a8952b..d30a127551 100644 --- a/src/assets/data/edition/series/1/section/5/op12/textcritics.json +++ b/src/assets/data/edition/series/1/section/5/op12/textcritics.json @@ -1,5 +1,112 @@ { "textcritics": [ + { + "id": "M_212_TF1", + "label": "M 212 Textfassung 1", + "description": [ + "##Quellenbewertung:## Für die Edition von „Der Tag ist vergangen“ M 212 Textfassung 1 ist B einzige relevante Quelle.
Die Korrekturen in B betreffen Textfassung 2.
Hauptquelle für die Textedition von „Der Tag ist vergangen“ M 212 Textfassung 1 ist B ante correcturam." + ], + "comments": [ + { + "svgGroupId": "text200", + "measure": "1", + "system": "Klav.", + "position": "2/8 bis 2/4", + "comment": "Crescendogabel versetzt von über Klav. o." + }, + { + "svgGroupId": "text262", + "measure": "2", + "system": "Klav.", + "position": "1–4/8", + "comment": "Decrescendogabel versetzt von über Klav. o." + }, + { + "svgGroupId": "g5702", + "measure": "2", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[#]')}} zu gis1 ergänzt mit Blick auf Textfassung 2 und Textfassung 3 (op. 12/1)." + }, + { + "svgGroupId": "text748", + "measure": "5", + "system": "Klav. o.", + "position": "(1/4)", + "comment": "Triolenklammer versetzt von über Klav. u." + }, + { + "svgGroupId": "text766", + "measure": "5", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} versetzt von unter Klav. u." + }, + { + "svgGroupId": "g5708", + "measure": "5", + "system": "Ges.", + "position": "3/8", + "comment": "Text: Komma nach (ver-gan-)gen ergänzt mit Blick auf Rosegger_PM." + }, + { + "svgGroupId": "text902", + "measure": "6", + "system": "Klav.", + "position": "1. Note", + "comment": "Ende der Crescendogabel versetzt von Ende T. 5." + }, + { + "svgGroupId": "g5714", + "measure": "9", + "system": "Ges.", + "position": "2. Note", + "comment": "Text: Komma nach (Ma-ri-)a ergänzt mit Blick auf Rosegger_PM." + }, + { + "svgGroupId": "text318", + "measure": "13", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[ppp]')}}: Entzifferung unsicher, Tinte stark verschmiert." + }, + { + "svgGroupId": "text484", + "measure": "14", + "system": "Klav. u.", + "position": "1/8", + "comment": "({{ref.getGlyph('[a]')}}) zu e/a als redundant weggelassen. B: Akkoladenwechsel nach T. 12." + }, + { + "svgGroupId": "g6096", + "measure": "14", + "system": "Ges.", + "position": "2. Note", + "comment": "Text: Komma nach (ver-gan-)gen ergänzt mit Blick auf Rosegger_PM." + }, + { + "svgGroupId": "", + "measure": "18", + "system": "Ges.", + "position": "1. Note", + "comment": "Text sic: (Ver-)storb(-nen) ohne Binnen-Apostroph. Rosegger_PM: Verstorb’nen." + }, + { + "svgGroupId": "text1556", + "measure": "22", + "system": "Klav. o.", + "position": "", + "comment": "Anfang der Ligaturbögen zu H/g ergänzt analog Fortsetzung der Bögen in T. 23. B: Akkoladenwechsel nach T. 22." + }, + { + "svgGroupId": "text1600", + "measure": "23", + "system": "Klav.", + "position": "1/8", + "comment": "({{ref.getGlyph('[#]')}}) zu Gis1/Cis und ({{ref.getGlyph('[a]')}}) zu H/g als redundant weggelassen. B: Akkoladenwechsel nach T. 22." + } + ] + }, { "id": "M_212_Sk1", "label": "M 212 Sk1", @@ -319,113 +426,6 @@ } } ] - }, - { - "id": "M_212_TF1", - "label": "M 212 Textfassung 1", - "description": [ - "##Quellenbewertung:## Für die Edition von „Der Tag ist vergangen“ M 212 Textfassung 1 ist B einzige relevante Quelle.
Die Korrekturen in B betreffen Textfassung 2.
Hauptquelle für die Textedition von „Der Tag ist vergangen“ M 212 Textfassung 1 ist B ante correcturam." - ], - "comments": [ - { - "svgGroupId": "text200", - "measure": "1", - "system": "Klav.", - "position": "2/8 bis 2/4", - "comment": "Crescendogabel versetzt von über Klav. o." - }, - { - "svgGroupId": "text262", - "measure": "2", - "system": "Klav.", - "position": "1–4/8", - "comment": "Decrescendogabel versetzt von über Klav. o." - }, - { - "svgGroupId": "g5702", - "measure": "2", - "system": "Klav. o.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[#]')}} zu gis1 ergänzt mit Blick auf Textfassung 2 und Textfassung 3 (op. 12/1)." - }, - { - "svgGroupId": "text748", - "measure": "5", - "system": "Klav. o.", - "position": "(1/4)", - "comment": "Triolenklammer versetzt von über Klav. u." - }, - { - "svgGroupId": "text766", - "measure": "5", - "system": "Klav.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[pp]')}} versetzt von unter Klav. u." - }, - { - "svgGroupId": "g5708", - "measure": "5", - "system": "Ges.", - "position": "3/8", - "comment": "Text: Komma nach (ver-gan-)gen ergänzt mit Blick auf Rosegger_PM." - }, - { - "svgGroupId": "text902", - "measure": "6", - "system": "Klav.", - "position": "1. Note", - "comment": "Ende der Crescendogabel versetzt von Ende T. 5." - }, - { - "svgGroupId": "g5714", - "measure": "9", - "system": "Ges.", - "position": "2. Note", - "comment": "Text: Komma nach (Ma-ri-)a ergänzt mit Blick auf Rosegger_PM." - }, - { - "svgGroupId": "text318", - "measure": "13", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('[ppp]')}}: Entzifferung unsicher, Tinte stark verschmiert." - }, - { - "svgGroupId": "text484", - "measure": "14", - "system": "Klav. u.", - "position": "1/8", - "comment": "({{ref.getGlyph('[a]')}}) zu e/a als redundant weggelassen. B: Akkoladenwechsel nach T. 12." - }, - { - "svgGroupId": "g6096", - "measure": "14", - "system": "Ges.", - "position": "2. Note", - "comment": "Text: Komma nach (ver-gan-)gen ergänzt mit Blick auf Rosegger_PM." - }, - { - "svgGroupId": "", - "measure": "18", - "system": "Ges.", - "position": "1. Note", - "comment": "Text sic: (Ver-)storb(-nen) ohne Binnen-Apostroph. Rosegger_PM: Verstorb’nen." - }, - { - "svgGroupId": "text1556", - "measure": "22", - "system": "Klav. o.", - "position": "", - "comment": "Anfang der Ligaturbögen zu H/g ergänzt analog Fortsetzung der Bögen in T. 23. B: Akkoladenwechsel nach T. 22." - }, - { - "svgGroupId": "text1600", - "measure": "23", - "system": "Klav.", - "position": "1/8", - "comment": "({{ref.getGlyph('[#]')}}) zu Gis1/Cis und ({{ref.getGlyph('[a]')}}) zu H/g als redundant weggelassen. B: Akkoladenwechsel nach T. 22." - } - ] } ] } diff --git a/src/assets/data/edition/series/1/section/5/op25/textcritics.json b/src/assets/data/edition/series/1/section/5/op25/textcritics.json index 80b60069c2..d26d2d7e5f 100644 --- a/src/assets/data/edition/series/1/section/5/op25/textcritics.json +++ b/src/assets/data/edition/series/1/section/5/op25/textcritics.json @@ -1,5 +1,35 @@ { "textcritics": [ + { + "id": "M_317_TF1", + "label": "M 317 Textfassung 1", + "description": [ + "##Quellenbewertung:## Für die Edition von „Wie bin ich froh!“ M 317 Textfassung 1 sind B und E relevante Quellen.
Korrekturschicht 1 in E etabliert Textfassung 1, wobei dese Überarbeitung vor oder gleichzeitig mit der Niederschrift von B stattgefunden haben dürfte. Korrekturschicht 2 in E betrifft Textfassung 2. Der Zustand von E vor Korrekturschicht 2 lässt sich nicht immer eindeutig entziffern.
Hauptquelle der Textedition von „Wie bin ich froh!“ M 317 Textfassung 1 ist B." + ], + "comments": [ + { + "svgGroupId": "g1145", + "measure": "1", + "system": "", + "position": "4/8", + "comment": "rit. versetzt von ungenauer Position zwischen 4/8 und 5/8 mit Blick auf M 317 Sk4." + }, + { + "svgGroupId": "g1198", + "measure": "3", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[f]')}} versetzt von 1. Pause." + }, + { + "svgGroupId": "g1204", + "measure": "6", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[f]')}} versetzt von 3/8." + } + ] + }, { "id": "M_317_Sk1", "label": "M 317 Sk1", @@ -1751,36 +1781,6 @@ } ] }, - { - "id": "M_317_TF1", - "label": "M 317 Textfassung 1", - "description": [ - "##Quellenbewertung:## Für die Edition von „Wie bin ich froh!“ M 317 Textfassung 1 sind B und E relevante Quellen.
Korrekturschicht 1 in E etabliert Textfassung 1, wobei dese Überarbeitung vor oder gleichzeitig mit der Niederschrift von B stattgefunden haben dürfte. Korrekturschicht 2 in E betrifft Textfassung 2. Der Zustand von E vor Korrekturschicht 2 lässt sich nicht immer eindeutig entziffern.
Hauptquelle der Textedition von „Wie bin ich froh!“ M 317 Textfassung 1 ist B." - ], - "comments": [ - { - "svgGroupId": "g1145", - "measure": "1", - "system": "", - "position": "4/8", - "comment": "rit. versetzt von ungenauer Position zwischen 4/8 und 5/8 mit Blick auf M 317 Sk4." - }, - { - "svgGroupId": "g1198", - "measure": "3", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[f]')}} versetzt von 1. Pause." - }, - { - "svgGroupId": "g1204", - "measure": "6", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[f]')}} versetzt von 3/8." - } - ] - }, { "id": "SkRT", "label": "M 317 Sk5 / M 321 Sk1 / M 322 Sk1 (Reihentabelle op. 25)", diff --git a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json index c7bec90113..88f7fe41c8 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json @@ -1,5 +1,54 @@ { "textcritics": [ + { + "id": "M_30_TF1", + "label": "M 30 einzige Textfassung", + "description": ["##Quellenbewertung:##"], + "comments": [ + { + "svgGroupId": "", + "measure": "8", + "system": "Klav. u.", + "position": "2/8", + "comment": "Oberstimmenschicht: Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." + }, + { + "svgGroupId": "", + "measure": "14", + "system": "Klav. o.", + "position": "6/8", + "comment": "Unterstimmenschicht: Hilfslinie unter dem Notenkopf weggelassen (vgl. auch Korrekturen mit Bleistift)." + }, + { + "svgGroupId": "", + "measure": "15", + "system": "Klav. u.", + "position": "4/8", + "comment": "Gemeinsamer Notenkopf für Ober- und Unterstimmenschicht korrigiert zu zwei separate Notenköpfe." + }, + { + "svgGroupId": "", + "measure": "20", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Oberstimmenschicht: Viertelnoten b/es1–a/es1 korrigiert zu Achtelnoten mit Blick auf metrischen Kontext." + }, + { + "svgGroupId": "", + "measure": "22", + "system": "Klav. u.", + "position": "1–3/8", + "comment": "sic." + }, + { + "svgGroupId": "", + "measure": "24", + "system": "Klav.", + "position": "Taktende", + "comment": "sic. B: Kein Schlussstrich vorhanden (vgl. auch Sk1)." + } + ] + }, { "id": "M_30_Sk1", "label": "M 30 Sk1", diff --git a/src/assets/data/edition/series/2/section/2a/m31/textcritics.json b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json index d7f5a3c5c2..46f35d9f13 100644 --- a/src/assets/data/edition/series/2/section/2a/m31/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json @@ -1,5 +1,68 @@ { "textcritics": [ + { + "id": "M_31_TF1", + "label": "M 31 einzige Textfassung", + "description": ["##Quellenbewertung:##"], + "comments": [ + { + "svgGroupId": "", + "measure": "1", + "system": "Klav.", + "position": "4/16", + "comment": "{{ref.getGlyph('[pp]')}} versetzt von 3/8." + }, + { + "svgGroupId": "", + "measure": "5", + "system": "Klav. u.", + "position": "3/16", + "comment": "Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." + }, + { + "svgGroupId": "", + "measure": "6", + "system": "Klav.", + "position": "4/16", + "comment": "{{ref.getGlyph('[pp]')}} versetzt von 3/8." + }, + { + "svgGroupId": "", + "measure": "15", + "system": "Klav.", + "position": "Taktende", + "comment": "Taktstrich ergänzt (vgl. Korrekturen 2)." + }, + { + "svgGroupId": "", + "measure": "16", + "system": "Klav.", + "position": "Taktende", + "comment": "Taktstrich ergänzt (vgl. Korrekturen 2)." + }, + { + "svgGroupId": "", + "measure": "18", + "system": "Klav.", + "position": "4/16", + "comment": "{{ref.getGlyph('[pp]')}} versetzt von zwischen 3/8 und 4/8." + }, + { + "svgGroupId": "", + "measure": "23", + "system": "Klav.", + "position": "4/16", + "comment": "{{ref.getGlyph('[p]')}} versetzt von 3/8." + }, + { + "svgGroupId": "", + "measure": "28", + "system": "Klav.", + "position": "8/16", + "comment": "{{ref.getGlyph('[pp]')}} versetzt von 5/8." + } + ] + }, { "id": "M_31_Sk1", "label": "M 31 Sk1", @@ -14,7 +77,7 @@ "position": "(2/4)", "comment": "Zwei Achtelnoten überschreiben Viertelnote." } - ] + ] }, { "id": "M_31_Sk2", @@ -241,13 +304,14 @@ "position": "5–6/8", "comment": "a–d überschreibt F–D." } - ] - }, + ] + }, { "id": "M_31_Sk5", "label": "M 31 Sk5", "description": [ - "M 31 Sk5 enthält die Reprise des A-Teils zur Studienkomposition für Klavier M 31. Obwohl sämtliche Takte gestrichen sind, entsprechen sie der späteren Tintenniederschrift.", + "M 31 Sk5 enthält die Reprise des A-Teils zur Studienkomposition für Klavier M 31. Obwohl sämtliche Takte gestrichen sind, entsprechen sie der späteren Tintenniederschrift." + ], "comments": [ { "svgGroupId": "g1068", diff --git a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json index 411df3f5b8..cb5ac82c64 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json @@ -1,5 +1,21 @@ { "textcritics": [ + { + "id": "M_34_TF1", + "label": "M 34 einzige Textfassung", + "description": [ + "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 34 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." + ], + "comments": [ + { + "svgGroupId": "g5789", + "measure": "7", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Achtelnote g1 aufgrund des horizontal verschobenen Notenhalses auch als Viertelnote lesbar (vgl. Korrekturschicht 1). Eine Deutung als Viertelnote ist mit Blick auf Sk1 und Sk1.1 aber sehr unwahrscheinlich." + } + ] + }, { "id": "M_34_Sk1", "label": "M 34 Sk1", @@ -154,22 +170,6 @@ } } ] - }, - { - "id": "M_34_TF1", - "label": "M 34 einzige Textfassung", - "description": [ - "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 34 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." - ], - "comments": [ - { - "svgGroupId": "g5789", - "measure": "7", - "system": "Klav. o.", - "position": "1. Note", - "comment": "Achtelnote g1 aufgrund des horizontal verschobenen Notenhalses auch als Viertelnote lesbar (vgl. Korrekturschicht 1). Eine Deutung als Viertelnote ist mit Blick auf Sk1 und Sk1.1 aber sehr unwahrscheinlich." - } - ] } ] } diff --git a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json index 3689b356f4..b816b8f2ca 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json @@ -1,10 +1,47 @@ { "textcritics": [ + { + "id": "M_37_TF1", + "label": "M 37 einzige Textfassung", + "description": [ + "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 37 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." + ], + "comments": [ + { + "svgGroupId": "g4640", + "measure": "6", + "system": "Klav. u.", + "position": "3/4", + "comment": "Notenhals und nur im Ansatz vorhandenes {{ref.getGlyph('[#]')}} ergänzt." + }, + { + "svgGroupId": "g4643", + "measure": "10", + "system": "Klav.", + "position": "(2/4)", + "comment": "Gestrichelte Linie zwischen den Systemen zur Verdeutlichung des in B verschobenen Untersatzes weggelassen.###Grafik###." + }, + { + "svgGroupId": "g4646", + "measure": "19", + "system": "Klav. u.", + "position": "2/4", + "comment": "Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." + }, + { + "svgGroupId": "g4649", + "measure": "21", + "system": "Klav. u.", + "position": "1. Note", + "comment": "g korrigiert zu a mit Blick auf harmonischen Kontext." + } + ] + }, { "id": "M_37_Sk1", "label": "M 37 Sk1", "description": [ - "M 37 Sk1 skizziert möglicherweise eine erste melodische Linie für M 37. Die Zugehörigkeit zu der Studienkomposition für Klavier M 37 ist allerdings nicht eindeutig." + "Sk1 skizziert möglicherweise eine erste melodische Linie für M 37. Die Zugehörigkeit zu der Studienkomposition für Klavier M 37 ist allerdings nicht eindeutig." ], "linkBoxes": [ { @@ -27,7 +64,7 @@ "id": "M_37_Sk2", "label": "M 37 Sk2", "description": [ - "M 37 Sk2 skizziert möglicherweise eine Variante zu der ersten melodischen Linie aus Sk1. Die Zugehörigkeit zu der Studienkomposition für Klavier M 37 ist allerdings nicht eindeutig." + "Sk2 skizziert möglicherweise eine Variante zu der ersten melodischen Linie aus Sk1. Die Zugehörigkeit zu der Studienkomposition für Klavier M 37 ist allerdings nicht eindeutig." ], "comments": [ { @@ -65,9 +102,7 @@ { "id": "M_37_Sk3", "label": "M 37 Sk3", - "description": [ - "M 37 Sk3 ist die Verlaufsskizze zu der Studienkomposition für Klavier M 37." - ], + "description": ["Sk3 ist die Verlaufsskizze zu der Studienkomposition für Klavier M 37."], "comments": [ { "svgGroupId": "g56588", @@ -189,43 +224,6 @@ "comment": "Viertelnote überschreibt Halbe Note." } ] - }, - { - "id": "M_37_TF1", - "label": "M 37 einzige Textfassung", - "description": [ - "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 37 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." - ], - "comments": [ - { - "svgGroupId": "g4640", - "measure": "6", - "system": "Klav. u.", - "position": "3/4", - "comment": "Notenhals und nur im Ansatz vorhandenes [#] ergänzt." - }, - { - "svgGroupId": "g4643", - "measure": "10", - "system": "Klav.", - "position": "(2/4)", - "comment": "Gestrichelte Linie zwischen den Systemen zur Verdeutlichung des in B verschobenen Untersatzes weggelassen.###Grafik###." - }, - { - "svgGroupId": "g4646", - "measure": "19", - "system": "Klav. u.", - "position": "2/4", - "comment": "Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." - }, - { - "svgGroupId": "g4649", - "measure": "21", - "system": "Klav. u.", - "position": "1. Note", - "comment": "g korrigiert zu a mit Blick auf harmonischen Kontext." - } - ] } ] } From a6ab069884e62bd27ec0ce0e177ee8ec5ea00934 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:25:47 +0100 Subject: [PATCH 21/36] fix(assets): update source description for m30 --- .../2/section/2a/m30/source-description.json | 76 +++++++++++++------ 1 file changed, 53 insertions(+), 23 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m30/source-description.json b/src/assets/data/edition/series/2/section/2a/m30/source-description.json index 0a316dcea3..a814a68ec9 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m30/source-description.json @@ -24,7 +24,10 @@ "content": [ { "item": "M 31 Sk3", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3c" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -36,14 +39,14 @@ { "system": "1–2", "measure": "11–16", - "linkTo": "" + "linkTo": "M_31_Sk3c" } ], [ { "system": "5a–6a", "measure": "17–18", - "linkTo": "" + "linkTo": "M_31_Sk3d" } ] ] @@ -52,7 +55,10 @@ }, { "item": "M 31 Sk3.1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3_1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -73,7 +79,10 @@ }, { "item": "M 31 Sk3.2", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3_2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -84,7 +93,7 @@ [ { "system": "5c–6c", - "measure": "17–8", + "measure": "17–18", "linkTo": "" } ] @@ -94,7 +103,10 @@ }, { "item": "M 31 Sk4", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk4" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -106,21 +118,21 @@ { "system": "8–9", "measure": "12–15, {16A–18A}", - "linkTo": "" + "linkTo": "M_31_Sk4a" } ], [ { "system": "10–11", "measure": "{19A, 19B}", - "linkTo": "" + "linkTo": "M_31_Sk4b" } ], [ { "system": "13–14", "measure": "{16B–18B}, 16C–17C", - "linkTo": "" + "linkTo": "M_31_Sk4c" } ] ] @@ -223,7 +235,10 @@ }, { "item": "M 31 Sk5", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk5" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -235,21 +250,21 @@ { "system": "1–2", "measure": "{20–24}", - "linkTo": "" + "linkTo": "M_31_Sk5a" } ], [ { "system": "4–5", "measure": "{25–26, 27A, 27B, 28–29}", - "linkTo": "" + "linkTo": "M_31_Sk5b" } ], [ { "system": "7a–8a", "measure": "{30}", - "linkTo": "" + "linkTo": "M_31_Sk5c" } ] ] @@ -345,7 +360,10 @@ }, { "item": "M 31 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -357,14 +375,14 @@ { "system": "10b", "measure": "1–4", - "linkTo": "" + "linkTo": "M_31_Sk1a" } ], [ { "system": "11b", "measure": "5–9", - "linkTo": "" + "linkTo": "M_31_Sk1b" } ] ] @@ -373,7 +391,10 @@ }, { "item": "M 31 Sk2", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -394,7 +415,10 @@ }, { "item": "M 31 Sk3", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk3" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 31)", "folios": [ { @@ -406,14 +430,14 @@ { "system": "15–16", "measure": "1–5", - "linkTo": "" + "linkTo": "M_31_Sk3a" } ], [ { "system": "17–18", "measure": "6–10", - "linkTo": "" + "linkTo": "M_31_Sk3b" } ] ] @@ -445,7 +469,10 @@ "content": [ { "item": "M 31", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m31", + "sheetId": "M_31_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 31)", "folios": [ { @@ -501,7 +528,10 @@ }, { "item": "M 30", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m30", + "sheetId": "M_30_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 30)", "folios": [ { From d5dc23a0e11388a44976978408707bb495407cb9 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:26:42 +0100 Subject: [PATCH 22/36] fix(assets): fix folio convolute file for m30 --- .../2/section/2a/m30/folio-convolute.json | 299 +++++++++++++++++- 1 file changed, 297 insertions(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json index 9086c5fd95..b4293114e9 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m30/folio-convolute.json @@ -11,7 +11,132 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m31", + "sheetId": "M_31_Sk3c", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 11–16", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3d", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 17–18", + "sectionPartition": 3, + "sections": [ + { + "position": 1, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3_1", + "sigle": "M 31 Sk3.1", + "sigleAddendum": "T. 10+1", + "sectionPartition": 3, + "sections": [ + { + "position": 2, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3_2", + "sigle": "M 31 Sk3.2", + "sigleAddendum": "T. 17–18", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 5, + "endSystem": 6 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4a", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. 12–15, {16A–18A}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 8, + "endSystem": 9 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4b", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. {19A, 19B}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk4c", + "sigle": "M 31 Sk4", + "sigleAddendum": "T. {16B–18B}, 16C–17C", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk1a", + "sigle": "M* 403 Sk1", + "sigleAddendum": "T. 1–10", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk1b", + "sigle": "M* 403 Sk1", + "sigleAddendum": "T. 11–15", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18 + } + ] + } + ] }, { "folioId": "1v", @@ -121,7 +246,109 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m31", + "sheetId": "M_31_Sk5a", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {20–24}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk5b", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {25–29}", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk5c", + "sigle": "M 31 Sk5", + "sigleAddendum": "T. {30}", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2a", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 1–8", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 12, + "endSystem": 15 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2b", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 9–12", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2c", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. 13–15", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m_plus403", + "sheetId": "M*_403_Sk2d", + "sigle": "M* 403 Sk2", + "sigleAddendum": "T. x+16 bis x+23", + "selectable": false, + "linkTo": "VOL_2A_EDITION_COMING_SOON", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + } + ] }, { "folioId": "2v", @@ -183,6 +410,74 @@ "endSystem": 11 } ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk1a", + "sigle": "M 31 Sk1", + "sigleAddendum": "T. 1–4", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 10, + "endSystem": 10 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk1b", + "sigle": "M 31 Sk1", + "sigleAddendum": "T. 5–9", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 11, + "endSystem": 11 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk2", + "sigle": "M 31 Sk2", + "sigleAddendum": "T. x+1 bis x+4", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 13 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3a", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 1–5", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m31", + "sheetId": "M_31_Sk3b", + "sigle": "M 31 Sk3", + "sigleAddendum": "T. 6–10", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 17, + "endSystem": 18 + } + ] } ] } From e8fb6eeced313a54c4556ca522100f8c07c31411 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:27:51 +0100 Subject: [PATCH 23/36] fix(edition): adjust folio model for non-selectable items --- src/app/shared/modal/data/modal-content-snippets.data.ts | 4 ++-- .../views/edition-view/models/folio-calculation.model.ts | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/app/shared/modal/data/modal-content-snippets.data.ts b/src/app/shared/modal/data/modal-content-snippets.data.ts index 332e08196a..ad5604472d 100644 --- a/src/app/shared/modal/data/modal-content-snippets.data.ts +++ b/src/app/shared/modal/data/modal-content-snippets.data.ts @@ -16,10 +16,10 @@ export const MODAL_CONTENT_SNIPPETS = { '

Die Beschreibung der Quellen A sowie C–D einschließlich der darin gegebenenfalls enthaltenen Korrekturen erfolgt im Zusammenhang der vollständigen Edition der Drei Gesänge aus Viae Inviae von Hildegard Jone op. 23 in AWG I/5.

', OP24_SOURCE_NOT_AVAILABLE: '

Die Beschreibung der Quellen A sowie C–D einschließlich der darin gegebenenfalls enthaltenen Korrekturen erfolgt im Zusammenhang der vollständigen Edition des Konzert für neun Instrumente op. 24 in AWG I/1.

', - OP25_SHEET_COMING_SOON: - 'Die edierten Notentexte weiterer Skizzen der Drei Lieder nach Gedichten von Hildegard Jone op. 25 erscheinen in Kürze (02/2022).', OP25_SOURCE_NOT_AVAILABLE: '

Die Beschreibung der Quellen D und E einschließlich der darin gegebenenfalls enthaltenen Korrekturen erfolgt im Zusammenhang der vollständigen Edition der Drei Lieder nach Gedichten von Hildegard Jone op. 25 in AWG I/5.

', + VOL_2A_EDITION_COMING_SOON: + '

Die Einleitungen, edierten Notentexte und Kritischen Berichte zu

  • Studienkomposition für Klavier M* 402,
  • Studienkomposition für Klavier M* 403

erscheinen im Zusammenhang der vollständigen Edition der Studienkompositionen für Klavier in AWG II/2a.

', M198: '

Das Fragment „Schien mir’s als ich sah die Sonne“ (M 198) für Chor und Orchester wird in AWG II/3 ediert.

', HINT_EDITION_SHEETS: '

\n' + diff --git a/src/app/views/edition-view/models/folio-calculation.model.ts b/src/app/views/edition-view/models/folio-calculation.model.ts index 73fd1dc3ab..469c562346 100644 --- a/src/app/views/edition-view/models/folio-calculation.model.ts +++ b/src/app/views/edition-view/models/folio-calculation.model.ts @@ -591,12 +591,8 @@ export class FolioCalculation { calculatedContentItem.sheetId = content.sheetId; calculatedContentItem.sigle = content.sigle; calculatedContentItem.sigleAddendum = content.sigleAddendum; - calculatedContentItem.selectable = true; - calculatedContentItem.linkTo = ''; - if (content['selectable'] === false && content['linkTo']) { - calculatedContentItem.selectable = content.selectable; - calculatedContentItem.linkTo = content.linkTo; - } + calculatedContentItem.selectable = content.selectable ?? true; + calculatedContentItem.linkTo = content.linkTo || ''; calculatedContentItems.push(calculatedContentItem); }); From fe0bce0ed9dbee92987e313d5d75be0e711af693 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:39:18 +0100 Subject: [PATCH 24/36] fix(edition): add graph query example for edition complexes --- .../edition/series/1/section/5/op25/graph.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op25/graph.json b/src/assets/data/edition/series/1/section/5/op25/graph.json index 5cbf31e604..7f843235f1 100644 --- a/src/assets/data/edition/series/1/section/5/op25/graph.json +++ b/src/assets/data/edition/series/1/section/5/op25/graph.json @@ -11,10 +11,15 @@ "queryLabel": "Finde alle RDF-Triples", "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t ?subject ?predicate ?object . \n }" }, + { + "queryType": "construct", + "queryLabel": "Finde alle Editionskomplexe", + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t ?complex a awg:EditionComplex; rdfs:label ?label . \n }" + }, { "queryType": "construct", "queryLabel": "Finde alle Skizzen von op. 25", - "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t ?sketch a awg:Sketch \n }" + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t ?sketch a awg:Sketch . \n }" }, { "queryType": "construct", @@ -46,6 +51,11 @@ "queryLabel": "Finde alle Ressource-Klassen und zähle deren Vorkommen", "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT ?resource_class (COUNT (?resource_class) AS ?count) \n WHERE { \n\t ?resource a ?resource_class . \n } \n GROUP BY ?resource_class \n ORDER BY ?count \n LIMIT 100" }, + { + "queryType": "select", + "queryLabel": "Finde alle Editionskomplexe", + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT * \n WHERE { \n\t ?complex a awg:EditionComplex; rdfs:label ?label . \n }" + }, { "queryType": "select", "queryLabel": "Finde alle Skizzen von op. 25", @@ -72,7 +82,7 @@ "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT * \n WHERE { \n\t ?resource a ?resource_class ; awg:precedes ?preceding_sketch .\n ?preceding_sketch awg:concomitates ?concomitating_sketch . \n }" } ], - "triples": "@prefix dc: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix owl: .\n@prefix awg: .\n\n\n# ONTO\nawg:follows a rdf:Property .\n\nawg:precedes a owl:TransitiveProperty .\nawg:precedes_scripture rdfs:subPropertyOf awg:precedes .\nawg:precedes_content rdfs:subPropertyOf awg:precedes .\n\nawg:concomitates owl:inverseOf awg:is_concomitated_by .\nawg:concomitates_unsure rdfs:subPropertyOf awg:concomitates .\n\nawg:WorkComplex a owl:Thing .\nawg:Sketch a owl:Thing .\nawg:Paratext a owl:Thing .\n\n# DATA\n# Work complexes\nawg:Op24_1 a awg:WorkComplex ;\n\t\t\trdfs:label \"Op. 24/1\" .\n\nawg:Op25_1 a awg:WorkComplex ;\n\t\t\trdfs:label \"Op. 25/1\" .\n\n# Sk1\nawg:M317_Sk1 a awg:Sketch ;\n awg:precedes_scripture awg:M317_Sk2 ;\n\trdfs:label \"Sk1\" .\n\n#Sk2\nawg:M317_Sk2 a awg:Sketch ;\n awg:precedes_content awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk2\" .\n\nawg:M317_Sk2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2 ;\n\t\t\t\trdfs:label \"Sk2.1\" .\n\nawg:M317_Sk2_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n awg:precedes awg:M317_Sk2_1_2 ;\n\t\t\t\t\trdfs:label \"Sk2.1.1\" .\n\nawg:M317_Sk2_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.2\" .\n\nawg:M317_Sk2_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.3\" .\n\nawg:M317_Sk2_1_2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1_2 ;\n\t\t\t\t\t\trdfs:label \"Sk2.1.2.1\" .\n\n# Sk3\nawg:M317_Sk3 a awg:Sketch ;\n awg:precedes awg:M317_Sk4 ;\n\t\t\trdfs:label \"Sk3\" .\n\nawg:M317_Sk3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk3.1\" .\n\nawg:M317_Sk3_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.1\" .\n\nawg:M317_Sk3_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.2\" .\n\nawg:M317_Sk3_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.3 (Reihentabelle)\" .\n\nawg:M317_Sk3_1_3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1_3 ;\n\t\t\trdfs:label \"Sk3.1.3.1\" .\n\n# Sk4\nawg:M317_Sk4 a awg:Sketch ;\n rdfs:label \"Sk4 (Verlaufskizze)\" ;\n\t dc:hasPart awg:M317_Sk4_T1A_3A , awg:M317_Sk4_T3B_6 , awg:M317_Sk4_T7_12 , awg:M317_Sk4_T13_15 ;\n\t awg:precedes awg:PT_SB3_38v_6_page75 ;\n\t awg:precedes awg:PT_SB3_39r_3_page76 ;\n\t awg:precedes awg:PT_SB3_39r_2_date_19340716 .\n\nawg:M317_Sk4_T1A_3A a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 1A–3A\" ;\n\t awg:concomitates awg:M317_Sk4_1 ;\n\t awg:concomitates awg:PT_SB3_38v_4_Akk14_16 ;\n\t awg:precedes awg:M317_Sk4_T3B_6 .\n\nawg:M317_Sk4_T3B_6 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 3B–6\" ;\n\t awg:precedes awg:M317_Sk4_T7_12 .\n\nawg:M317_Sk4_T7_12 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 7–12\" ;\n\t awg:precedes awg:M317_Sk4_T13_15 .\n\nawg:M317_Sk4_T13_15 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 13–15\" ;\n\t awg:concomitates awg:M317_Sk4_2 ;\n\t awg:concomitates awg:M317_Sk4_3 .\n\nawg:M317_Sk4_1 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.1\" .\n\nawg:M317_Sk4_2 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.2\" .\n\nawg:M317_Sk4_3 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.3\" .\n\n# Paratexts\nawg:PT_SB3_39r_1_Akk a awg:Paratext ;\n \t\trdfs:label \"Akkolade\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_1_Akk1_4 a awg:Paratext ;\n \t\trdfs:label \"Akkoladenstrich: System 1–4\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_4_Akk14_16 a awg:Paratext ;\n\t\trdfs:label \"Akkoladenstrich: System 14–16\" ;\n\t\tawg:precedes awg:M317_Sk4_1 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_2_date_19340704 a awg:Paratext ;\n \t\trdfs:label \"Datierung: 4.VII 34\" ;\n \t\tawg:concomitates awg:M317_Sk1, awg:M317_Sk2 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_3_timesignature2 a awg:Paratext ;\n \t\trdfs:label \"Schlüssel- und Taktvorzeichnung\" ;\n \t\tawg:precedes_scripture awg:M317_Sk3 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_2_date_19340716 a awg:Paratext ;\n \t\trdfs:label \"Schlussdatierung: Maria Enzersdorf 16.VII.34\" ;\n\t\tawg:precedes awg:PT_SB3_38v_5_Titel ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_5_Titel a awg:Paratext ;\n \t\trdfs:label \"„Wie bin ich froh!“\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_6_page75 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 75\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_3_page76 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 76\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n" + "triples": "@prefix dc: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix owl: .\n@prefix awg: .\n\n\n# ONTO\nawg:follows a rdf:Property .\n\nawg:precedes a owl:TransitiveProperty .\nawg:precedes_scripture rdfs:subPropertyOf awg:precedes .\nawg:precedes_content rdfs:subPropertyOf awg:precedes .\n\nawg:concomitates owl:inverseOf awg:is_concomitated_by .\nawg:concomitates_unsure rdfs:subPropertyOf awg:concomitates .\n\nawg:EditionComplex a owl:Thing .\nawg:Sketch a owl:Thing .\nawg:Paratext a owl:Thing .\n\n# DATA\n# Work complexes\nawg:Op24_1 a awg:EditionComplex ;\n\t\t\trdfs:label \"Op. 24/1\" .\n\nawg:Op25_1 a awg:EditionComplex ;\n\t\t\trdfs:label \"Op. 25/1\" .\n\n# Sk1\nawg:M317_Sk1 a awg:Sketch ;\n awg:precedes_scripture awg:M317_Sk2 ;\n\trdfs:label \"Sk1\" .\n\n#Sk2\nawg:M317_Sk2 a awg:Sketch ;\n awg:precedes_content awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk2\" .\n\nawg:M317_Sk2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2 ;\n\t\t\t\trdfs:label \"Sk2.1\" .\n\nawg:M317_Sk2_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n awg:precedes awg:M317_Sk2_1_2 ;\n\t\t\t\t\trdfs:label \"Sk2.1.1\" .\n\nawg:M317_Sk2_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.2\" .\n\nawg:M317_Sk2_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.3\" .\n\nawg:M317_Sk2_1_2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1_2 ;\n\t\t\t\t\t\trdfs:label \"Sk2.1.2.1\" .\n\n# Sk3\nawg:M317_Sk3 a awg:Sketch ;\n awg:precedes awg:M317_Sk4 ;\n\t\t\trdfs:label \"Sk3\" .\n\nawg:M317_Sk3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk3.1\" .\n\nawg:M317_Sk3_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.1\" .\n\nawg:M317_Sk3_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.2\" .\n\nawg:M317_Sk3_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.3 (Reihentabelle)\" .\n\nawg:M317_Sk3_1_3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1_3 ;\n\t\t\trdfs:label \"Sk3.1.3.1\" .\n\n# Sk4\nawg:M317_Sk4 a awg:Sketch ;\n rdfs:label \"Sk4 (Verlaufskizze)\" ;\n\t dc:hasPart awg:M317_Sk4_T1A_3A , awg:M317_Sk4_T3B_6 , awg:M317_Sk4_T7_12 , awg:M317_Sk4_T13_15 ;\n\t awg:precedes awg:PT_SB3_38v_6_page75 ;\n\t awg:precedes awg:PT_SB3_39r_3_page76 ;\n\t awg:precedes awg:PT_SB3_39r_2_date_19340716 .\n\nawg:M317_Sk4_T1A_3A a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 1A–3A\" ;\n\t awg:concomitates awg:M317_Sk4_1 ;\n\t awg:concomitates awg:PT_SB3_38v_4_Akk14_16 ;\n\t awg:precedes awg:M317_Sk4_T3B_6 .\n\nawg:M317_Sk4_T3B_6 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 3B–6\" ;\n\t awg:precedes awg:M317_Sk4_T7_12 .\n\nawg:M317_Sk4_T7_12 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 7–12\" ;\n\t awg:precedes awg:M317_Sk4_T13_15 .\n\nawg:M317_Sk4_T13_15 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 13–15\" ;\n\t awg:concomitates awg:M317_Sk4_2 ;\n\t awg:concomitates awg:M317_Sk4_3 .\n\nawg:M317_Sk4_1 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.1\" .\n\nawg:M317_Sk4_2 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.2\" .\n\nawg:M317_Sk4_3 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.3\" .\n\n# Paratexts\nawg:PT_SB3_39r_1_Akk a awg:Paratext ;\n \t\trdfs:label \"Akkolade\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_1_Akk1_4 a awg:Paratext ;\n \t\trdfs:label \"Akkoladenstrich: System 1–4\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_4_Akk14_16 a awg:Paratext ;\n\t\trdfs:label \"Akkoladenstrich: System 14–16\" ;\n\t\tawg:precedes awg:M317_Sk4_1 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_2_date_19340704 a awg:Paratext ;\n \t\trdfs:label \"Datierung: 4.VII 34\" ;\n \t\tawg:concomitates awg:M317_Sk1, awg:M317_Sk2 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_3_timesignature2 a awg:Paratext ;\n \t\trdfs:label \"Schlüssel- und Taktvorzeichnung\" ;\n \t\tawg:precedes_scripture awg:M317_Sk3 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_2_date_19340716 a awg:Paratext ;\n \t\trdfs:label \"Schlussdatierung: Maria Enzersdorf 16.VII.34\" ;\n\t\tawg:precedes awg:PT_SB3_38v_5_Titel ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_5_Titel a awg:Paratext ;\n \t\trdfs:label \"„Wie bin ich froh!“\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_6_page75 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 75\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_3_page76 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 76\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n" }, "staticImage": "\"graphOp25\"" } From 6dfd59b29e285612f7671cf222c27ef564ab17ca Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 17 Jan 2024 18:56:42 +0100 Subject: [PATCH 25/36] fix(edition): fix naming and formatting of graph RDF triples --- .../data/edition/series/1/section/5/op25/graph.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op25/graph.json b/src/assets/data/edition/series/1/section/5/op25/graph.json index 7f843235f1..8105b8fcab 100644 --- a/src/assets/data/edition/series/1/section/5/op25/graph.json +++ b/src/assets/data/edition/series/1/section/5/op25/graph.json @@ -29,7 +29,7 @@ { "queryType": "construct", "queryLabel": "Finde alle mit Skizze Sk4 verknüpften Objekte", - "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t awg:M317_Sk4 ?predicate ?object . \n }" + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n CONSTRUCT \n WHERE { \n\t awg:M_317_Sk4 ?predicate ?object . \n }" }, { "queryType": "construct", @@ -49,7 +49,7 @@ { "queryType": "select", "queryLabel": "Finde alle Ressource-Klassen und zähle deren Vorkommen", - "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT ?resource_class (COUNT (?resource_class) AS ?count) \n WHERE { \n\t ?resource a ?resource_class . \n } \n GROUP BY ?resource_class \n ORDER BY ?count \n LIMIT 100" + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n\t SELECT ?resource_class (COUNT (?resource_class) AS ?count) \n WHERE { \n\t ?resource a ?resource_class . \n } \n GROUP BY ?resource_class \n ORDER BY ?count \n LIMIT 100" }, { "queryType": "select", @@ -69,7 +69,7 @@ { "queryType": "select", "queryLabel": "Finde alle mit Skizze Sk4 verknüpften Objekte", - "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT * \n WHERE { \n\t awg:M317_Sk4 ?predicate ?object . \n }" + "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT * \n WHERE { \n\t awg:M_317_Sk4 ?predicate ?object . \n }" }, { "queryType": "select", @@ -82,7 +82,7 @@ "queryString": "PREFIX dc: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX owl: \nPREFIX awg: \n\n SELECT * \n WHERE { \n\t ?resource a ?resource_class ; awg:precedes ?preceding_sketch .\n ?preceding_sketch awg:concomitates ?concomitating_sketch . \n }" } ], - "triples": "@prefix dc: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix owl: .\n@prefix awg: .\n\n\n# ONTO\nawg:follows a rdf:Property .\n\nawg:precedes a owl:TransitiveProperty .\nawg:precedes_scripture rdfs:subPropertyOf awg:precedes .\nawg:precedes_content rdfs:subPropertyOf awg:precedes .\n\nawg:concomitates owl:inverseOf awg:is_concomitated_by .\nawg:concomitates_unsure rdfs:subPropertyOf awg:concomitates .\n\nawg:EditionComplex a owl:Thing .\nawg:Sketch a owl:Thing .\nawg:Paratext a owl:Thing .\n\n# DATA\n# Work complexes\nawg:Op24_1 a awg:EditionComplex ;\n\t\t\trdfs:label \"Op. 24/1\" .\n\nawg:Op25_1 a awg:EditionComplex ;\n\t\t\trdfs:label \"Op. 25/1\" .\n\n# Sk1\nawg:M317_Sk1 a awg:Sketch ;\n awg:precedes_scripture awg:M317_Sk2 ;\n\trdfs:label \"Sk1\" .\n\n#Sk2\nawg:M317_Sk2 a awg:Sketch ;\n awg:precedes_content awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk2\" .\n\nawg:M317_Sk2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2 ;\n\t\t\t\trdfs:label \"Sk2.1\" .\n\nawg:M317_Sk2_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n awg:precedes awg:M317_Sk2_1_2 ;\n\t\t\t\t\trdfs:label \"Sk2.1.1\" .\n\nawg:M317_Sk2_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.2\" .\n\nawg:M317_Sk2_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1 ;\n\t\t\t\t\trdfs:label \"Sk2.1.3\" .\n\nawg:M317_Sk2_1_2_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk2_1_2 ;\n\t\t\t\t\t\trdfs:label \"Sk2.1.2.1\" .\n\n# Sk3\nawg:M317_Sk3 a awg:Sketch ;\n awg:precedes awg:M317_Sk4 ;\n\t\t\trdfs:label \"Sk3\" .\n\nawg:M317_Sk3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3 ;\n\t\t\trdfs:label \"Sk3.1\" .\n\nawg:M317_Sk3_1_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.1\" .\n\nawg:M317_Sk3_1_2 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t\t\trdfs:label \"Sk3.1.2\" .\n\nawg:M317_Sk3_1_3 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.3 (Reihentabelle)\" .\n\nawg:M317_Sk3_1_3_1 a awg:Sketch ;\n awg:concomitates awg:M317_Sk3_1_3 ;\n\t\t\trdfs:label \"Sk3.1.3.1\" .\n\n# Sk4\nawg:M317_Sk4 a awg:Sketch ;\n rdfs:label \"Sk4 (Verlaufskizze)\" ;\n\t dc:hasPart awg:M317_Sk4_T1A_3A , awg:M317_Sk4_T3B_6 , awg:M317_Sk4_T7_12 , awg:M317_Sk4_T13_15 ;\n\t awg:precedes awg:PT_SB3_38v_6_page75 ;\n\t awg:precedes awg:PT_SB3_39r_3_page76 ;\n\t awg:precedes awg:PT_SB3_39r_2_date_19340716 .\n\nawg:M317_Sk4_T1A_3A a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 1A–3A\" ;\n\t awg:concomitates awg:M317_Sk4_1 ;\n\t awg:concomitates awg:PT_SB3_38v_4_Akk14_16 ;\n\t awg:precedes awg:M317_Sk4_T3B_6 .\n\nawg:M317_Sk4_T3B_6 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 3B–6\" ;\n\t awg:precedes awg:M317_Sk4_T7_12 .\n\nawg:M317_Sk4_T7_12 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 7–12\" ;\n\t awg:precedes awg:M317_Sk4_T13_15 .\n\nawg:M317_Sk4_T13_15 a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 13–15\" ;\n\t awg:concomitates awg:M317_Sk4_2 ;\n\t awg:concomitates awg:M317_Sk4_3 .\n\nawg:M317_Sk4_1 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.1\" .\n\nawg:M317_Sk4_2 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.2\" .\n\nawg:M317_Sk4_3 a awg:Sketch ;\n\t awg:concomitates awg:M317_Sk4 ;\n\t rdfs:label \"Sk4.3\" .\n\n# Paratexts\nawg:PT_SB3_39r_1_Akk a awg:Paratext ;\n \t\trdfs:label \"Akkolade\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_1_Akk1_4 a awg:Paratext ;\n \t\trdfs:label \"Akkoladenstrich: System 1–4\" ;\n \t\tawg:precedes awg:M317_Sk1 ;\n\t\tdc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_4_Akk14_16 a awg:Paratext ;\n\t\trdfs:label \"Akkoladenstrich: System 14–16\" ;\n\t\tawg:precedes awg:M317_Sk4_1 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_2_date_19340704 a awg:Paratext ;\n \t\trdfs:label \"Datierung: 4.VII 34\" ;\n \t\tawg:concomitates awg:M317_Sk1, awg:M317_Sk2 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_3_timesignature2 a awg:Paratext ;\n \t\trdfs:label \"Schlüssel- und Taktvorzeichnung\" ;\n \t\tawg:precedes_scripture awg:M317_Sk3 ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_2_date_19340716 a awg:Paratext ;\n \t\trdfs:label \"Schlussdatierung: Maria Enzersdorf 16.VII.34\" ;\n\t\tawg:precedes awg:PT_SB3_38v_5_Titel ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_5_Titel a awg:Paratext ;\n \t\trdfs:label \"„Wie bin ich froh!“\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_6_page75 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 75\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_3_page76 a awg:Paratext ;\n \t\trdfs:label \"Seitenzahl: 76\" ;\n\t\tdc:isPartOf awg:Op25_1 .\n" + "triples": "@prefix dc: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix owl: .\n@prefix awg: .\n\n\n# ONTO\nawg:follows a rdf:Property .\n\nawg:precedes a owl:TransitiveProperty .\nawg:precedes_scripture rdfs:subPropertyOf awg:precedes .\nawg:precedes_content rdfs:subPropertyOf awg:precedes .\n\nawg:concomitates owl:inverseOf awg:is_concomitated_by .\nawg:concomitates_unsure rdfs:subPropertyOf awg:concomitates .\n\nawg:EditionComplex a owl:Thing .\nawg:Sketch a owl:Thing .\nawg:Paratext a owl:Thing .\n\n# DATA\n# Work complexes\nawg:Op24_1 a awg:EditionComplex ;\n\t rdfs:label \"Op. 24/1\" .\n\nawg:Op25_1 a awg:EditionComplex ;\n\t rdfs:label \"Op. 25/1\" .\n\n# Sk1\nawg:M_317_Sk1 a awg:Sketch ;\n\t awg:precedes_scripture awg:M_317_Sk2 ;\n\t rdfs:label \"Sk1\" .\n\n#Sk2\nawg:M_317_Sk2 a awg:Sketch ;\n\t awg:precedes_content awg:M_317_Sk3 ;\n\t rdfs:label \"Sk2\" .\n\nawg:M_317_Sk2_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk2 ;\n\t rdfs:label \"Sk2.1\" .\n\nawg:M_317_Sk2_1_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk2_1 ;\n\t awg:precedes awg:M_317_Sk2_1_2 ;\n\t rdfs:label \"Sk2.1.1\" .\n\nawg:M_317_Sk2_1_2 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk2_1 ;\n\t rdfs:label \"Sk2.1.2\" .\n\nawg:M_317_Sk2_1_3 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk2_1 ;\n\t rdfs:label \"Sk2.1.3\" .\n\nawg:M_317_Sk2_1_2_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk2_1_2 ;\n\t rdfs:label \"Sk2.1.2.1\" .\n\n# Sk3\nawg:M_317_Sk3 a awg:Sketch ;\n\t awg:precedes awg:M_317_Sk4 ;\n\t rdfs:label \"Sk3\" .\n\nawg:M_317_Sk3_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk3 ;\n\t rdfs:label \"Sk3.1\" .\n\nawg:M_317_Sk3_1_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.1\" .\n\nawg:M_317_Sk3_1_2 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.2\" .\n\nawg:M_317_Sk3_1_3 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk3_1 ;\n\t rdfs:label \"Sk3.1.3 (Reihentabelle)\" .\n\nawg:M_317_Sk3_1_3_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk3_1_3 ;\n\t rdfs:label \"Sk3.1.3.1\" .\n\n# Sk4\nawg:M_317_Sk4 a awg:Sketch ;\n\t rdfs:label \"Sk4 (Verlaufskizze)\" ;\n\t dc:hasPart awg:M_317_Sk4a , awg:M_317_Sk4b , awg:M_317_Sk4c , awg:M_317_Sk4d ;\n\t awg:precedes awg:PT_SB3_38v_6_page75 ;\n\t awg:precedes awg:PT_SB3_39r_3_page76 ;\n\t awg:precedes awg:PT_SB3_39r_2_date_19340716 .\n\nawg:M_317_Sk4a a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 1A–3A\" ;\n\t awg:concomitates awg:M_317_Sk4_1 ;\n\t awg:concomitates awg:PT_SB3_38v_4_Akk14_16 ;\n\t awg:precedes awg:M_317_Sk4b .\n\nawg:M_317_Sk4b a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 3B–6\" ;\n\t awg:precedes awg:M_317_Sk4c .\n\nawg:M_317_Sk4c a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 7–12\" ;\n\t awg:precedes awg:M_317_Sk4d .\n\nawg:M_317_Sk4d a awg:Sketch ;\n\t rdfs:label \"Sk4 T. 13–15\" ;\n\t awg:concomitates awg:M_317_Sk4_2 ;\n\t awg:concomitates awg:M_317_Sk4_3 .\n\nawg:M_317_Sk4_1 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk4 ;\n\t rdfs:label \"Sk4.1\" .\n\nawg:M_317_Sk4_2 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk4 ;\n\t rdfs:label \"Sk4.2\" .\n\nawg:M_317_Sk4_3 a awg:Sketch ;\n\t awg:concomitates awg:M_317_Sk4 ;\n\t rdfs:label \"Sk4.3\" .\n\n# Paratexts\nawg:PT_SB3_39r_1_Akk a awg:Paratext ;\n\t rdfs:label \"Akkolade\" ;\n\t awg:precedes awg:M_317_Sk1 ;\n\t dc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_1_Akk1_4 a awg:Paratext ;\n\t rdfs:label \"Akkoladenstrich: System 1–4\" ;\n\t awg:precedes awg:M_317_Sk1 ;\n\t dc:isPartOf awg:Op24_1 .\n\nawg:PT_SB3_38v_4_Akk14_16 a awg:Paratext ;\n\t rdfs:label \"Akkoladenstrich: System 14–16\" ;\n\t awg:precedes awg:M_317_Sk4_1 ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_2_date_19340704 a awg:Paratext ;\n\t rdfs:label \"Datierung: 4.VII 34\" ;\n\t awg:concomitates awg:M_317_Sk1, awg:M_317_Sk2 ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_3_timesignature2 a awg:Paratext ;\n\t rdfs:label \"Schlüssel- und Taktvorzeichnung\" ;\n\t awg:precedes_scripture awg:M_317_Sk3 ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_2_date_19340716 a awg:Paratext ;\n\t rdfs:label \"Schlussdatierung: Maria Enzersdorf 16.VII.34\" ;\n\t awg:precedes awg:PT_SB3_38v_5_Titel ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_5_Titel a awg:Paratext ;\n\t rdfs:label \"„Wie bin ich froh!“\" ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_38v_6_page75 a awg:Paratext ;\n\t rdfs:label \"Seitenzahl: 75\" ;\n\t dc:isPartOf awg:Op25_1 .\n\nawg:PT_SB3_39r_3_page76 a awg:Paratext ;\n\t rdfs:label \"Seitenzahl: 76\" ;\n\t dc:isPartOf awg:Op25_1 .\n" }, "staticImage": "\"graphOp25\"" } From e87a7e06448c7ba2f7e03eae6888678ddc9e92a4 Mon Sep 17 00:00:00 2001 From: chael-mi <108875866+chael-mi@users.noreply.github.com> Date: Fri, 19 Jan 2024 18:57:12 +0100 Subject: [PATCH 26/36] fix(assets): update files for m30, m31, and m37 (#1308) * fix(assets): optimize 8 SVG(s) with SVGO * feature/fix_files_m37_31_30 * feature/textedition_m31_update * feature/update_files_m30 * fix(assets): optimize 15 SVG(s) with SVGO --------- Co-authored-by: chael-mi --- .../2/section/2a/m37/source-description.json | 26 +- .../1/section/5/op25/M317_Sk4-1von4-final.svg | 208 +-- .../section/2a/m30/M30_Sk1-10von11-final.svg | 244 +-- .../section/2a/m30/M30_Sk1-11von11-final.svg | 279 +-- .../2/section/2a/m30/M30_Sk1-1von11-final.svg | 276 +-- .../2/section/2a/m30/M30_Sk1-2von11-final.svg | 324 ++-- .../2/section/2a/m30/M30_Sk1-3von11-final.svg | 276 +-- .../2/section/2a/m30/M30_Sk1-4von11-final.svg | 400 ++-- .../2/section/2a/m30/M30_Sk1-5von11-final.svg | 206 +- .../2/section/2a/m30/M30_Sk1-6von11-final.svg | 484 ++--- .../2/section/2a/m30/M30_Sk1-7von11-final.svg | 452 ++--- .../2/section/2a/m30/M30_Sk1-8von11-final.svg | 398 ++-- .../2/section/2a/m30/M30_Sk1-9von11-final.svg | 438 ++--- .../2a/m30/M30_Textfassung1-1von2-final.svg | 829 +++++++++ .../2a/m30/M30_Textfassung1-2von2-final.svg | 1649 +++++++++++++++++ .../2a/m31/M31_Textfassung1-1von2-final.svg | 1467 +++++++++++++++ .../2a/m31/M31_Textfassung1-2von2-final.svg | 1292 +++++++++++++ .../2/section/2a/m37/M37_Sk3-1von3-final.svg | 214 +-- .../2/section/2a/m37/M37_Sk3-2von3-final.svg | 242 +-- .../2/section/2a/m37/M37_Sk3-3von3-final.svg | 184 +- .../2a/m37/M37_Textfassung1-1von1-final.svg | 122 +- 21 files changed, 7630 insertions(+), 2380 deletions(-) create mode 100644 src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-2von2-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von2-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-2von2-final.svg diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index 479ae162d5..73c9817957 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -75,7 +75,7 @@ "systemGroups": [ [ { - "system": "7b–8b", + "system": "6–8b", "measure": "5–8", "linkTo": "" } @@ -131,7 +131,7 @@ ], [ { - "system": "14c, 15b", + "system": "14c–15b", "measure": "7", "linkTo": "" } @@ -306,7 +306,7 @@ "systemGroups": [ [ { - "system": "15, 16c", + "system": "15–16c", "measure": "1–4", "linkTo": "" } @@ -320,7 +320,7 @@ ], [ { - "system": "17c, 18", + "system": "17c–18", "measure": "6–8", "linkTo": "" } @@ -404,7 +404,7 @@ ], [ { - "system": "9c, 10", + "system": "9c–10", "measure": "{9B}", "linkTo": "" } @@ -456,10 +456,10 @@ ] }, { - "item": "M 37 Sk2", + "item": "M 37 Sk1", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk2" + "sheetId": "M_37_Sk1" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ @@ -471,7 +471,7 @@ [ { "system": "18a", - "measure": "9–12", + "measure": "1–4", "linkTo": "" } ] @@ -480,10 +480,10 @@ ] }, { - "item": "M 37 Sk3", + "item": "M 37 Sk2", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk3" + "sheetId": "M_37_Sk2" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ @@ -495,7 +495,7 @@ [ { "system": "18b", - "measure": "9–13", + "measure": "1, {2A}, 2B, 3–5", "linkTo": "" } ] @@ -546,10 +546,10 @@ ] }, { - "item": "M 37 Sk1", + "item": "M 37 Sk3", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk1" + "sheetId": "M_37_Sk3" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ diff --git a/src/assets/img/edition/series/1/section/5/op25/M317_Sk4-1von4-final.svg b/src/assets/img/edition/series/1/section/5/op25/M317_Sk4-1von4-final.svg index b9974ea732..8ec7667cc8 100644 --- a/src/assets/img/edition/series/1/section/5/op25/M317_Sk4-1von4-final.svg +++ b/src/assets/img/edition/series/1/section/5/op25/M317_Sk4-1von4-final.svg @@ -7,13 +7,13 @@ - + - + - + @@ -54,44 +54,44 @@ - + - + - + - + - + - + - + - + @@ -103,18 +103,18 @@ - + - + - + @@ -132,27 +132,27 @@ - + - + - + - + @@ -161,17 +161,17 @@ - + - + - + - + @@ -181,10 +181,10 @@ - + - + @@ -194,10 +194,10 @@ - + - + @@ -206,14 +206,14 @@ - + - + - + @@ -226,20 +226,20 @@ - + - + - + - + @@ -248,33 +248,33 @@ - + - + - + - + - + - + @@ -283,7 +283,7 @@ - + @@ -293,36 +293,36 @@ - + - + - + - + - + - + - + @@ -330,11 +330,11 @@ - + - - + + @@ -344,7 +344,7 @@ - + @@ -356,10 +356,10 @@ - + - + @@ -371,7 +371,7 @@ - + @@ -381,10 +381,10 @@ - + - + @@ -392,17 +392,17 @@ - + - + - + - + @@ -414,21 +414,21 @@ - + - + - + - + @@ -439,14 +439,14 @@ - + - + @@ -456,14 +456,14 @@ - + - + - + @@ -474,36 +474,36 @@ - + - + - + - + - + - + - + @@ -513,7 +513,7 @@ - + @@ -525,33 +525,33 @@ - + - + - + - + - + - + - + @@ -560,27 +560,27 @@ - + - + - + - + - + @@ -589,7 +589,7 @@ - + @@ -601,14 +601,14 @@ - + - + @@ -616,16 +616,16 @@ - + - + - - + + - + @@ -636,10 +636,10 @@ - + - + @@ -647,19 +647,19 @@ - + - + - + - + @@ -667,7 +667,7 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-10von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-10von11-final.svg index 749cdabf44..135b5a504f 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-10von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-10von11-final.svg @@ -1,4 +1,4 @@ - + @@ -7,8 +7,8 @@ - - + + @@ -18,15 +18,15 @@ - - - - - + + + + + - - - + + + @@ -34,14 +34,14 @@ - - + + - + - + - + @@ -52,22 +52,22 @@ - - + + - - - - - - + + + + + + - + - + @@ -86,42 +86,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -131,200 +131,200 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -335,93 +335,95 @@ - + - - + + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + + + - - + + - - + + - + - - + + - + - + - + - + @@ -429,16 +431,16 @@ - + - + - + - + @@ -450,16 +452,16 @@ - + - + - + @@ -468,10 +470,10 @@ - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg index 52d6c35d0c..18e4052c87 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg @@ -1,21 +1,18 @@ - + - - - - - - - + + + + - + @@ -24,19 +21,19 @@ - - + + - + - - - - - - - + + + + + + + @@ -45,19 +42,19 @@ - - + + - - - + + + - + - + @@ -73,41 +70,43 @@ - + - + - + - + - - - - - - - - + + + + + + + + + + - + - + - + @@ -115,127 +114,129 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + - - diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-1von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-1von11-final.svg index 6839ce1034..447a5a0f43 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-1von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-1von11-final.svg @@ -6,15 +6,15 @@ - - - - - - + + + + + + - - + + @@ -22,16 +22,16 @@ - - + + - + - + - - + + @@ -39,43 +39,43 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -95,20 +95,22 @@ - + - + - - - - - + + + + + + + - + @@ -116,10 +118,10 @@ - + - + @@ -135,31 +137,31 @@ - + - + - + - + - + - + @@ -173,11 +175,8 @@ - - - - + @@ -191,7 +190,7 @@ - + @@ -210,17 +209,17 @@ - + - + - + @@ -228,13 +227,13 @@ - + - + - + @@ -244,29 +243,26 @@ - - - - + - + - + - + - + @@ -280,21 +276,21 @@ - + - + - + - + - + @@ -319,20 +315,20 @@ - + - + - + - + @@ -340,27 +336,24 @@ - - - - + - + - + - + - + @@ -369,7 +362,7 @@ - + @@ -377,7 +370,7 @@ - + @@ -395,14 +388,14 @@ - + - + @@ -416,15 +409,15 @@ - + - + - + @@ -433,7 +426,7 @@ - + @@ -441,27 +434,24 @@ - - - - + - + - + - + - + @@ -473,7 +463,7 @@ - + @@ -483,11 +473,11 @@ - + - + @@ -496,28 +486,28 @@ - + - + - + - + - + @@ -529,29 +519,26 @@ - + - + - - - - + - + - + - + @@ -564,11 +551,11 @@ - + - + @@ -582,19 +569,19 @@ - + - + - + - + @@ -605,11 +592,28 @@ - + - - + + + + + + + + + + + + + + + + + + + @@ -631,19 +635,21 @@ - - - - - - - - + + + + + + + + + + - - + + @@ -659,17 +665,17 @@ - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-2von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-2von11-final.svg index 1fbcdc7c4c..e2eee7006a 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-2von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-2von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,15 +6,15 @@ - - - - - - + + + + + + - - + + @@ -22,14 +22,14 @@ - - + + - + - + - + @@ -37,48 +37,48 @@ - - + + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + @@ -95,39 +95,39 @@ - + - - - + + + - + - + - + - + - + - + @@ -136,41 +136,41 @@ - + - + - + - + - + - + - + - + - + @@ -179,43 +179,39 @@ - + - + - + - + - - - - - - - - - - - + + + + + + + - + - + - + - + @@ -223,48 +219,48 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -273,126 +269,101 @@ - + - + - + - + - + - + - - - - - - - + - + - + - + - + - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + @@ -400,77 +371,112 @@ - + - + - + - + - + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + - - + + - + - + - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-3von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-3von11-final.svg index 880a9e1aae..7136d7b72e 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-3von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-3von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,14 +6,14 @@ - - - - - - + + + + + + - + @@ -21,15 +21,15 @@ - - + + - + - - + + @@ -37,24 +37,24 @@ - + - + - - + + - - - - + + + + - + - + @@ -67,14 +67,14 @@ - - - - - + + + + + - + @@ -82,268 +82,274 @@ - + - - - - - - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + - + - + - + - + - + - + - + - + - + - - - - - - - - + - + - + - + - + - + - - - - - - - - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - - - - - - - + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-4von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-4von11-final.svg index fe3860abaa..39b0e0c197 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-4von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-4von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,16 +6,16 @@ - - - - - - + + + + + + - - - + + + @@ -23,12 +23,12 @@ - - + + - - + + @@ -36,46 +36,46 @@ - - + + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + @@ -97,36 +97,36 @@ - + - + - + - + - + - + @@ -138,134 +138,132 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + @@ -273,109 +271,101 @@ - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + @@ -389,68 +379,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + + + + + + + + + + + + + + + @@ -460,19 +464,21 @@ - - - - - - - - + + + + + + + + + + - - + + @@ -482,79 +488,81 @@ - + - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - - - + - + - + - + - + - + - + - + - + - + - + @@ -565,24 +573,24 @@ - + - + - + - + - + - + @@ -591,24 +599,28 @@ - + - - - + + + + + + + - - - - - - + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-5von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-5von11-final.svg index 61db9c7a9a..662b4d77f2 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-5von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-5von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,12 +6,12 @@ - - - - + + + + - + @@ -19,14 +19,14 @@ - - + + - - + + @@ -34,211 +34,217 @@ - - + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - - + + + + - - + + + + + + + + + + + + + + + - - - + - - - + + + - + - - + + - + - + - - + + - + @@ -246,13 +252,13 @@ - + - + - + @@ -260,21 +266,21 @@ - + - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-6von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-6von11-final.svg index d12df06214..71219decbb 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-6von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-6von11-final.svg @@ -1,4 +1,4 @@ - + @@ -7,13 +7,13 @@ - - - - - + + + + + - + @@ -21,13 +21,13 @@ - - + + - + - + @@ -35,22 +35,22 @@ - - + + - + - - - - - - - + + + + + + + - + @@ -69,137 +69,130 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + @@ -209,95 +202,82 @@ - - - - - - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + - - - - - @@ -310,15 +290,15 @@ - + - + - + @@ -327,159 +307,184 @@ - + - + - + - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + + + - - + + - + - + - - - - - - - - - - - - - - - - - + - - - - - - - - + + + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + - + - + - + @@ -493,70 +498,75 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -565,34 +575,34 @@ - - - - + + + + + + - - - + - + - + - + - + - + @@ -603,10 +613,10 @@ - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-7von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-7von11-final.svg index e1d3a86734..feb3aaf150 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-7von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-7von11-final.svg @@ -1,4 +1,4 @@ - + @@ -7,13 +7,13 @@ - - - - - + + + + + - + @@ -21,13 +21,13 @@ - - + + - + - - + + @@ -35,22 +35,22 @@ - - + + - - + + - - - - - - + + + + + + - + @@ -68,64 +68,64 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -139,129 +139,114 @@ - + - - - - - + - - - - - - - - - + - - - - + + + + + + + + + + + + + - + - + - + - + - - - - - - - - + - + - + - + - + - + - + - + - + - + - - - - - - + @@ -274,23 +259,23 @@ - + - + - + - + - + @@ -300,30 +285,25 @@ - + - - - - - - + - + - + - + @@ -335,34 +315,34 @@ - + - + - + - + - + - + - + @@ -370,11 +350,11 @@ - + - + @@ -382,23 +362,47 @@ - + - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -407,19 +411,21 @@ - - - - - - - - + + + + + + + + + + - - + + @@ -427,126 +433,107 @@ - + - - + + - - - - - - - - + + + + - - + + + + + + + + + + + + + + + - - + + + + - - + + + + + + + + + + + + + - + + - - - - - - - - + + + - - + + - - + + - - + + + + - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - + + + - - - - - - - - + - - - - - - - - + + + + - - - + + + - - - - - - - - + + + + + @@ -554,11 +541,34 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-8von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-8von11-final.svg index 451008de5a..c0448aa873 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-8von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-8von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,14 +6,14 @@ - - - - - - + + + + + + - + @@ -21,14 +21,14 @@ - - + + - + - - - + + + @@ -37,25 +37,25 @@ - - - + + + - + - - - - - + + + + + - + - + @@ -74,209 +74,199 @@ - + - + - - - - - + + + + + + + - + - + - + - - - - - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + @@ -285,50 +275,50 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -336,147 +326,161 @@ - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + - + @@ -484,7 +488,7 @@ - + @@ -495,24 +499,26 @@ - + - - - - - - - - + + + + + + + + + + - - + + @@ -522,76 +528,80 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + - - - + - + - + - + - + - + - - - + + + + + + + - - diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-9von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-9von11-final.svg index 22b5a56a4d..998eccd6bf 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-9von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-9von11-final.svg @@ -1,4 +1,4 @@ - + @@ -6,7 +6,7 @@ - + @@ -15,15 +15,15 @@ - - - - - - + + + + + + - - + + @@ -31,12 +31,12 @@ - - + + - - + + @@ -46,18 +46,18 @@ - + - + - - - - + + + + - - + + @@ -75,56 +75,55 @@ - - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132,31 +131,31 @@ - + - + - + - + - + - + - + - + @@ -164,46 +163,51 @@ - + - + - + - + - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -215,30 +219,30 @@ - + - + - + - + - + - + @@ -246,48 +250,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -297,156 +301,158 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -461,101 +467,105 @@ - - - - - - - - + + + + + + + + + + - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - + + + + + - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + - - + - + - + - + @@ -563,6 +573,6 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg new file mode 100644 index 0000000000..bfddf2ebc4 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-2von2-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-2von2-final.svg new file mode 100644 index 0000000000..a697131644 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-2von2-final.svg @@ -0,0 +1,1649 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von2-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von2-final.svg new file mode 100644 index 0000000000..22db44d7d1 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von2-final.svg @@ -0,0 +1,1467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-2von2-final.svg b/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-2von2-final.svg new file mode 100644 index 0000000000..2373bf4256 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-2von2-final.svg @@ -0,0 +1,1292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-1von3-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-1von3-final.svg index cac121220e..06a96894ce 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-1von3-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-1von3-final.svg @@ -1,4 +1,4 @@ - + @@ -7,14 +7,14 @@ - - - - + + + + - - - + + + @@ -22,12 +22,12 @@ - - + + - - + + @@ -35,21 +35,21 @@ - + - + - - + + - + - + - + @@ -68,214 +68,214 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -288,36 +288,36 @@ - + - + - + - + - + - + - + - + @@ -325,89 +325,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -415,10 +415,10 @@ - + - + @@ -440,7 +440,7 @@ - + @@ -448,7 +448,7 @@ - + @@ -456,15 +456,15 @@ - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-2von3-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-2von3-final.svg index 7d75195ae4..542da9bf84 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-2von3-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-2von3-final.svg @@ -1,4 +1,4 @@ - + @@ -7,13 +7,13 @@ - - - - - - - + + + + + + + @@ -21,13 +21,13 @@ - - + + - + - - + + @@ -35,21 +35,21 @@ - - + + - + - - + + - + - + @@ -72,62 +72,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -136,15 +136,15 @@ - + - + - + @@ -158,141 +158,141 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -302,24 +302,24 @@ - + - + - + - + - + @@ -329,39 +329,39 @@ - + - + - + - + - + - + - + - + - + @@ -369,14 +369,14 @@ - + - + - + @@ -384,30 +384,30 @@ - + - + - + - + - + - + - + @@ -415,56 +415,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -472,38 +472,38 @@ - + - + - + - + - + - + - + - + - + @@ -529,7 +529,7 @@ - + @@ -537,14 +537,14 @@ - - - + + + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-3von3-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-3von3-final.svg index 973a736a5b..ff1ea819c2 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-3von3-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk3-3von3-final.svg @@ -1,4 +1,4 @@ - + @@ -7,14 +7,14 @@ - - - - + + + + - - - + + + @@ -22,14 +22,14 @@ - + - + - - + + @@ -37,16 +37,16 @@ - - + + - + - - + + - - + + @@ -68,18 +68,18 @@ - + - + - + - + @@ -93,96 +93,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -197,27 +197,27 @@ - + - + - + - + - + @@ -227,13 +227,13 @@ - + - + @@ -247,89 +247,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -337,26 +337,26 @@ - + - + - + - + - + - + @@ -364,15 +364,15 @@ - + - + - + @@ -382,7 +382,7 @@ - + @@ -390,30 +390,30 @@ - - - + + + - + - + - + - + - + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Textfassung1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Textfassung1-1von1-final.svg index 96171ea0b6..d5812180a2 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Textfassung1-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Textfassung1-1von1-final.svg @@ -1,60 +1,54 @@ - + - - - - + - + - + - + - + - + - + - + - + - - - - + - + - + - + @@ -63,67 +57,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -147,13 +81,13 @@ - + - + - + @@ -168,7 +102,7 @@ - + @@ -180,7 +114,7 @@ - + @@ -189,13 +123,13 @@ - + - + @@ -436,7 +370,7 @@ - + @@ -566,10 +500,10 @@ - + - - + + @@ -694,8 +628,8 @@ - - + + From bfd2e83e120dcb261dd20d5d84f68ff3c47b7623 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 19:21:30 +0100 Subject: [PATCH 27/36] fix(assets): fix source descriptions for m34 and m37 --- .../2/section/2a/m34/source-description.json | 66 +++++++++++-------- .../2/section/2a/m37/source-description.json | 31 ++++----- 2 files changed, 51 insertions(+), 46 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m34/source-description.json b/src/assets/data/edition/series/2/section/2a/m34/source-description.json index 09f1e16ae7..8bc5bc9f35 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m34/source-description.json @@ -4,17 +4,23 @@ "id": "source_A", "siglum": "A", "siglumAddendum": "", - "type": "Skizzen.", + "type": "Skizzen zu
Studienkomposition für Klavier M 34.
Enthält auch Skizzen zu Studienkomposition für Klavier M 35–38, M 39 Textfassung 1→2 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 1/2) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8)." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format (hoch): 349 × 265 mm, Firmenzeichen [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "Bleistift", "secondary": [] }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", "content": [ { "item": "M 34 Sk1", @@ -69,7 +75,7 @@ "systemGroups": [ [ { - "system": "7b–8b", + "system": "6–8b", "measure": "5–8", "linkTo": "" } @@ -79,9 +85,9 @@ ] }, { - "item": "M 35 Sk1", + "item": "M 35/42 Sk1", "itemLinkTo": {}, - "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35)", + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", "folios": [ { "folio": "1r", @@ -125,14 +131,14 @@ ], [ { - "system": "14c, 15b", + "system": "14c–15b", "measure": "7", "linkTo": "" } ], [ { - "system": "13–14", + "system": "13b–14b", "measure": "8–11", "linkTo": "" } @@ -300,7 +306,7 @@ "systemGroups": [ [ { - "system": "15, 16c", + "system": "15–16c", "measure": "1–4", "linkTo": "" } @@ -314,7 +320,7 @@ ], [ { - "system": "17c, 18", + "system": "17c–18", "measure": "6–8", "linkTo": "" } @@ -398,7 +404,7 @@ ], [ { - "system": "9c, 10", + "system": "9c–10", "measure": "{9B}", "linkTo": "" } @@ -450,10 +456,10 @@ ] }, { - "item": "M 37 Sk2", + "item": "M 37 Sk1", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk2" + "sheetId": "M_37_Sk1" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ @@ -465,7 +471,7 @@ [ { "system": "18a", - "measure": "9–12", + "measure": "1–4", "linkTo": "" } ] @@ -474,10 +480,10 @@ ] }, { - "item": "M 37 Sk3", + "item": "M 37 Sk2", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk3" + "sheetId": "M_37_Sk2" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ @@ -489,7 +495,7 @@ [ { "system": "18b", - "measure": "9–13", + "measure": "1, {2A}, 2B, 3–5", "linkTo": "" } ] @@ -540,10 +546,10 @@ ] }, { - "item": "M 37 Sk1", + "item": "M 37 Sk3", "itemLinkTo": { "complexId": "m37", - "sheetId": "M_37_Sk1" + "sheetId": "M_37_Sk3" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", "folios": [ @@ -556,21 +562,21 @@ { "system": "7–8", "measure": "1–6", - "linkTo": "" + "linkTo": "M_37_Sk3a" } ], [ { "system": "10–11", "measure": "7–14", - "linkTo": "" + "linkTo": "M_37_Sk3b" } ], [ { "system": "13–14", "measure": "15–21", - "linkTo": "" + "linkTo": "M_37_Sk3c" } ] ] @@ -584,17 +590,23 @@ "id": "source_B", "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift.", + "type": "Tintenniederschrift von
Studienkomposition für Klavier M 34.
Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 35–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 3/4) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format (hoch): 349 × 267 mm, Firmenzeichen [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", "content": [ { "item": "M 34", @@ -628,9 +640,9 @@ ] }, { - "item": "M 35", + "item": "M 35/42", "itemLinkTo": {}, - "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35)", + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35/42)", "folios": [ { "folio": "1r", @@ -656,9 +668,9 @@ ] }, { - "item": "M 35 Sk2", + "item": "M 35/42 Sk2", "itemLinkTo": {}, - "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35)", + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", "folios": [ { "folio": "1r", diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index d9039e8893..989528e9be 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -26,7 +26,7 @@ "item": "M 34 Sk1", "itemLinkTo": { "complexId": "m34", - "sheetId": "M_34_Sk1" + "sheetId": "M_34_Sk1a" }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", "folios": [ @@ -39,21 +39,21 @@ { "system": "1–2", "measure": "1–7", - "linkTo": "" + "linkTo": "M_34_Sk1a" } ], [ { "system": "4–5", "measure": "8–14", - "linkTo": "" + "linkTo": "M_34_Sk1b" } ], [ { "system": "7a–8a", "measure": "15–16", - "linkTo": "" + "linkTo": "M_34_Sk1c" } ] ] @@ -104,7 +104,7 @@ [ { "system": "13a–14a", - "measure": "8(1–/4), {8(3/4)A–9A, 10}, 8(3/4)B–9B", + "measure": "8(1–2/4), {8(3/4)A–9A, 10}, 8(3/4)B–9B", "linkTo": "" } ] @@ -562,21 +562,21 @@ { "system": "7–8", "measure": "1–6", - "linkTo": "" + "linkTo": "M_37_Sk3a" } ], [ { "system": "10–11", "measure": "7–14", - "linkTo": "" + "linkTo": "M_37_Sk3b" } ], [ { "system": "13–14", "measure": "15–21", - "linkTo": "" + "linkTo": "M_37_Sk3c" } ] ] @@ -596,7 +596,7 @@ "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 3/4) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format (hoch): 349 × 267 mm, Firmenzeichen [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] @@ -746,7 +746,7 @@ [ { "system": "4–5", - "measure": "17", + "measure": "1–7", "linkTo": "" } ], @@ -806,7 +806,7 @@ { "item": "M 39", "itemLinkTo": {}, - "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→)", + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→2)", "folios": [ { "folio": "2r", @@ -889,14 +889,7 @@ "measure": "16–17(1–2/4)", "linkTo": "" } - ] - ] - }, - { - "folio": "", - "folioLinkTo": "", - "folioDescription": "", - "systemGroups": [ + ], [ { "system": "16b–17b (Bleistift)", From 2d0cf21db080846302373dc9f046e14b4fbdb757 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 19:47:54 +0100 Subject: [PATCH 28/36] fix(assets): add linkBoxes for m30 --- .../series/2/section/2a/m30/textcritics.json | 16 ++++++++++++++++ .../2/section/2a/m30/M30_Sk1-11von11-final.svg | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json index 88f7fe41c8..9db34ab8f0 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json @@ -455,6 +455,22 @@ "position": "(1/4)", "comment": "Viertelnote As/es gestrichen." } + ], + "linkBoxes": [ + { + "svgGroupId": "g5", + "linkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk1a" + } + }, + { + "svgGroupId": "g6", + "linkTo": { + "complexId": "m31", + "sheetId": "M_31_Sk1b" + } + } ] } ] diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg index 18e4052c87..0c10d3bf60 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Sk1-11von11-final.svg @@ -155,7 +155,7 @@
- + From 9ad36578f780d816d82881e089ae634ca7244f6f Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 20:00:55 +0100 Subject: [PATCH 29/36] fix(assets): activate Textfassung 1 for m30 and m31 --- .../series/2/section/2a/m30/svg-sheets.json | 20 ++++++++++++++++++- .../series/2/section/2a/m30/textcritics.json | 16 ++++++++------- .../series/2/section/2a/m31/svg-sheets.json | 9 +++++++-- .../series/2/section/2a/m31/textcritics.json | 20 ++++++++++--------- .../2a/m30/M30_Textfassung1-1von2-final.svg | 2 +- 5 files changed, 47 insertions(+), 20 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m30/svg-sheets.json b/src/assets/data/edition/series/2/section/2a/m30/svg-sheets.json index 58b224f033..65520e2bcb 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/svg-sheets.json +++ b/src/assets/data/edition/series/2/section/2a/m30/svg-sheets.json @@ -1,7 +1,25 @@ { "sheets": { "workEditions": [], - "textEditions": [], + "textEditions": [ + { + "id": "M_30_TF1", + "label": "M 30 einzige Textfassung", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg", + "image": "", + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-2von2-final.svg", + "image": "", + "partial": "b" + } + ], + "convolute": "" + } + ], "sketchEditions": [ { "id": "M_30_Sk1", diff --git a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json index 9db34ab8f0..f67bcfa32a 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m30/textcritics.json @@ -3,45 +3,47 @@ { "id": "M_30_TF1", "label": "M 30 einzige Textfassung", - "description": ["##Quellenbewertung:##"], + "description": [ + "##Quellenbewertung:## Für die Textedition der Studienkomposition für Klavier M 31 ist B relevante Quelle. A enthält Skizzen.
B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
Hauptquelle für die Textedition der Studienkomposition für Klavier M 31 ist B nach Korrekturen 1." + ], "comments": [ { - "svgGroupId": "", + "svgGroupId": "g2815", "measure": "8", "system": "Klav. u.", "position": "2/8", "comment": "Oberstimmenschicht: Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." }, { - "svgGroupId": "", + "svgGroupId": "g6275", "measure": "14", "system": "Klav. o.", "position": "6/8", "comment": "Unterstimmenschicht: Hilfslinie unter dem Notenkopf weggelassen (vgl. auch Korrekturen mit Bleistift)." }, { - "svgGroupId": "", + "svgGroupId": "g6279", "measure": "15", "system": "Klav. u.", "position": "4/8", "comment": "Gemeinsamer Notenkopf für Ober- und Unterstimmenschicht korrigiert zu zwei separate Notenköpfe." }, { - "svgGroupId": "", + "svgGroupId": "g6283", "measure": "20", "system": "Klav. u.", "position": "1–2/8", "comment": "Oberstimmenschicht: Viertelnoten b/es1–a/es1 korrigiert zu Achtelnoten mit Blick auf metrischen Kontext." }, { - "svgGroupId": "", + "svgGroupId": "g6318", "measure": "22", "system": "Klav. u.", "position": "1–3/8", "comment": "sic." }, { - "svgGroupId": "", + "svgGroupId": "g6321", "measure": "24", "system": "Klav.", "position": "Taktende", diff --git a/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json b/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json index 8637d7037a..6ff8a1355d 100644 --- a/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json +++ b/src/assets/data/edition/series/2/section/2a/m31/svg-sheets.json @@ -7,9 +7,14 @@ "label": "M 31 einzige Textfassung", "content": [ { - "svg": "assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von1-final.svg", + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-1von2-final.svg", "image": "", - "partial": "" + "partial": "a" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m31/M31_Textfassung1-2von2-final.svg", + "image": "", + "partial": "b" } ], "convolute": "" diff --git a/src/assets/data/edition/series/2/section/2a/m31/textcritics.json b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json index 46f35d9f13..de32af20a3 100644 --- a/src/assets/data/edition/series/2/section/2a/m31/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m31/textcritics.json @@ -3,59 +3,61 @@ { "id": "M_31_TF1", "label": "M 31 einzige Textfassung", - "description": ["##Quellenbewertung:##"], + "description": [ + "##Quellenbewertung:## Für die Textedition der Studienkomposition für Klavier M 31 ist B relevante Quelle. A enthält Skizzen.
B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
Hauptquelle für die Textedition der Studienkomposition für Klavier M 31 ist B nach Korrekturen 1." + ], "comments": [ { - "svgGroupId": "", + "svgGroupId": "g3298", "measure": "1", "system": "Klav.", "position": "4/16", "comment": "{{ref.getGlyph('[pp]')}} versetzt von 3/8." }, { - "svgGroupId": "", + "svgGroupId": "g3302", "measure": "5", "system": "Klav. u.", "position": "3/16", "comment": "Augmentationspunkt weggelassen mit Blick auf metrischen Kontext." }, { - "svgGroupId": "", + "svgGroupId": "g3306", "measure": "6", "system": "Klav.", "position": "4/16", "comment": "{{ref.getGlyph('[pp]')}} versetzt von 3/8." }, { - "svgGroupId": "", + "svgGroupId": "g2028", "measure": "15", "system": "Klav.", "position": "Taktende", "comment": "Taktstrich ergänzt (vgl. Korrekturen 2)." }, { - "svgGroupId": "", + "svgGroupId": "g3042", "measure": "16", "system": "Klav.", "position": "Taktende", "comment": "Taktstrich ergänzt (vgl. Korrekturen 2)." }, { - "svgGroupId": "", + "svgGroupId": "g3046", "measure": "18", "system": "Klav.", "position": "4/16", "comment": "{{ref.getGlyph('[pp]')}} versetzt von zwischen 3/8 und 4/8." }, { - "svgGroupId": "", + "svgGroupId": "g3050", "measure": "23", "system": "Klav.", "position": "4/16", "comment": "{{ref.getGlyph('[p]')}} versetzt von 3/8." }, { - "svgGroupId": "", + "svgGroupId": "g3054", "measure": "28", "system": "Klav.", "position": "8/16", diff --git a/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg index bfddf2ebc4..5468452c34 100644 --- a/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m30/M30_Textfassung1-1von2-final.svg @@ -636,7 +636,7 @@ - + From 3b7b7283bf596242da777ce719d28b753a3af7d9 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 20:11:12 +0100 Subject: [PATCH 30/36] fix(assets): update source evaluation for Textfassung 1 for m34 and m37 --- .../data/edition/series/2/section/2a/m34/textcritics.json | 2 +- .../data/edition/series/2/section/2a/m37/textcritics.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json index cb5ac82c64..5ad49c40a2 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m34/textcritics.json @@ -4,7 +4,7 @@ "id": "M_34_TF1", "label": "M 34 einzige Textfassung", "description": [ - "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 34 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." + "##Quellenbewertung:## Für die Textedition der Studienkomposition für Klavier M 34 ist B relevante Quelle. A enthält Skizzen.
B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
Hauptquelle für die Textedition der Studienkomposition für Klavier M 34 ist B nach Korrekturen 1." ], "comments": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json index b816b8f2ca..8cc5175450 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m37/textcritics.json @@ -4,7 +4,7 @@ "id": "M_37_TF1", "label": "M 37 einzige Textfassung", "description": [ - "##Quellenbewertung:## Maßgebend für die hier vorgelegte Textedition der Studienkomposition für Klavier M 37 ist die autographe Niederschrift mit Tinte inklusive Korrekturschicht 1 (Tinte).
Hauptquelle ist B." + "##Quellenbewertung:## Für die Textedition der Studienkomposition für Klavier M 37 ist B relevante Quelle. A enthält Skizzen.
B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
Hauptquelle für die Textedition der Studienkomposition für Klavier M 37 ist B nach Korrekturen 1." ], "comments": [ { From 957feb90da833ff5acf2ec072979aae47c4a1ab9 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 20:17:11 +0100 Subject: [PATCH 31/36] fix(assets): adjust folio convolute for m34 and m37 --- .../2/section/2a/m34/folio-convolute.json | 73 ++++++++++++++++++- .../2/section/2a/m37/folio-convolute.json | 57 ++++++++++++++- 2 files changed, 127 insertions(+), 3 deletions(-) diff --git a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json index 5323718dff..6f21b6dfca 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json @@ -84,7 +84,36 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m37", + "sheetId": "M_37_Sk1", + "sigle": "M 37 Sk1", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 1, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk2", + "sigle": "M 37 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 2, + "startSystem": 18, + "endSystem": 18 + } + ] + } + ] }, { "folioId": "2v", @@ -93,7 +122,47 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m37", + "sheetId": "M_37_Sk3a", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3b", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 7–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3c", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 15–21", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 14 + } + ] + } + ] } ] }, diff --git a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json index 7473f22919..6f21b6dfca 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json @@ -11,7 +11,62 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m34", + "sheetId": "M_34_Sk1a", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 1–7", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1b", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 8–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1c", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 15–16", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1_1", + "sigle": "M 34 Sk1.1", + "sigleAddendum": "T. 5–8", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 7, + "endSystem": 8 + } + ] + } + ] }, { "folioId": "1v", From 47692d0aa3c9846a147a7263dc8f8d3bc2bf70cd Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 21:26:31 +0100 Subject: [PATCH 32/36] fix(assets): add firm signs for m30, m31, m34, and m37 --- .../data/edition-firm-signs.data.ts | 27 ++++++++++++++++++ .../source-description.component.spec.ts | 14 +++++++++ .../source-description.component.ts | 14 +++++++++ .../2/section/2a/m30/source-description.json | 2 +- .../2/section/2a/m31/source-description.json | 2 +- .../2/section/2a/m34/source-description.json | 4 +-- .../2/section/2a/m37/source-description.json | 4 +-- .../edition/firm-signs/firm_je_no5_lin18b.png | Bin 0 -> 131742 bytes .../edition/firm-signs/firm_je_no5_lin18c.png | Bin 0 -> 137010 bytes .../edition/firm-signs/firm_je_no5_lin18d.png | Bin 0 -> 136131 bytes 10 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 src/assets/img/edition/firm-signs/firm_je_no5_lin18b.png create mode 100644 src/assets/img/edition/firm-signs/firm_je_no5_lin18c.png create mode 100644 src/assets/img/edition/firm-signs/firm_je_no5_lin18d.png diff --git a/src/app/views/edition-view/data/edition-firm-signs.data.ts b/src/app/views/edition-view/data/edition-firm-signs.data.ts index 6347767939..a35861a3dc 100644 --- a/src/app/views/edition-view/data/edition-firm-signs.data.ts +++ b/src/app/views/edition-view/data/edition-firm-signs.data.ts @@ -32,6 +32,33 @@ export const EDITION_FIRM_SIGNS_DATA = { full: 'J. E. & Co. [diagonal ansteigend auf schildförmiger Papierrolle, rechts von einem Löwen gehalten, links und unten Blattgirlande] | Protokoll. Schutzmarke | No. 3 | 14 linig.', }, + /** + * The path to the assets image of a firm sign: JE No. 5, 18 Lines. + */ + FIRM_JE_NO_5_LIN_18B: { + route: 'assets/img/edition/firm-signs/firm_je_no5_lin18b.png', + short: '[JE] | No. 5 | 18 linig.', + full: 'J. E. & Co. [diagonal ansteigend auf schildförmiger Papierrolle, rechts von einem Löwen gehalten, links und unten Blattgirlande] | Protokoll. Schutzmarke | No. 5 | 18 linig.', + }, + + /** + * The path to the assets image of a firm sign: JE No. 5, 18 Lines. + */ + FIRM_JE_NO_5_LIN_18C: { + route: 'assets/img/edition/firm-signs/firm_je_no5_lin18c.png', + short: '[JE] | No. 5 | 18 linig.', + full: 'J. E. & Co. [diagonal ansteigend auf schildförmiger Papierrolle, rechts von einem Löwen gehalten, links und unten Blattgirlande] | Protokoll. Schutzmarke | No. 5 | 18 linig.', + }, + + /** + * The path to the assets image of a firm sign: JE No. 5, 18 Lines. + */ + FIRM_JE_NO_5_LIN_18D: { + route: 'assets/img/edition/firm-signs/firm_je_no5_lin18d.png', + short: '[JE] | No. 5 | 18 linig.', + full: 'J. E. & Co. [diagonal ansteigend auf schildförmiger Papierrolle, rechts von einem Löwen gehalten, links und unten Blattgirlande] | Protokoll. Schutzmarke | No. 5 | 18 linig.', + }, + /** * The path to the assets image of a firm sign: JE No. 6, 20 Lines. */ diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts index 3d40ebd6d2..c922a1fd09 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts @@ -77,6 +77,20 @@ describe('SourceDescriptionComponent (DONE)', () => { OP27: { B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_6_LIN_20], }, + M30: { + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18B], + }, + M31: { + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18B], + }, + M34: { + A: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18C], + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18D], + }, + M37: { + A: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18C], + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18D], + }, }; // Spies on component functions diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.ts index c01ebff571..d364eb620b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.ts @@ -61,6 +61,20 @@ export class SourceDescriptionComponent { OP27: { B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_6_LIN_20], }, + M30: { + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18B], + }, + M31: { + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18B], + }, + M34: { + A: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18C], + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18D], + }, + M37: { + A: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18C], + B: [EDITION_FIRM_SIGNS_DATA.FIRM_JE_NO_5_LIN_18D], + }, }; /** diff --git a/src/assets/data/edition/series/2/section/2a/m30/source-description.json b/src/assets/data/edition/series/2/section/2a/m30/source-description.json index a814a68ec9..a06dc3690e 100644 --- a/src/assets/data/edition/series/2/section/2a/m30/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m30/source-description.json @@ -455,7 +455,7 @@ "location": "CH-Bps, Sammlung Anton Webern.", "description": { "desc": ["1 Blatt. Schnittspuren am rechten Rand: von Bogen abgeschnitten."], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen: [J.E. & Co.] | No. 5 | 18 linig. unten links auf Bl. 1v.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen:

unten links auf Bl. 1v.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] diff --git a/src/assets/data/edition/series/2/section/2a/m31/source-description.json b/src/assets/data/edition/series/2/section/2a/m31/source-description.json index a814a68ec9..7d3c8bf6c1 100644 --- a/src/assets/data/edition/series/2/section/2a/m31/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m31/source-description.json @@ -455,7 +455,7 @@ "location": "CH-Bps, Sammlung Anton Webern.", "description": { "desc": ["1 Blatt. Schnittspuren am rechten Rand: von Bogen abgeschnitten."], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen: [J.E. & Co.] | No. 5 | 18 linig. unten links auf Bl. 1v.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen:

unten links auf Bl. 1v.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] diff --git a/src/assets/data/edition/series/2/section/2a/m34/source-description.json b/src/assets/data/edition/series/2/section/2a/m34/source-description.json index 8bc5bc9f35..ae46885651 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m34/source-description.json @@ -10,7 +10,7 @@ "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 1/2) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8)." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen:

unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "Bleistift", "secondary": [] @@ -596,7 +596,7 @@ "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 3/4) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen:

unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index 989528e9be..f9c6d11398 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -10,7 +10,7 @@ "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 1/2) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8)." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen:

unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "Bleistift", "secondary": [] @@ -596,7 +596,7 @@ "desc": [ "1 Bogen (Bl. 1/2): Der Bogen ist Bestandteil (Bl. 3/4) eines größeren Konvoluts aus 2 Bögen (Bl. 1/2, 3/4), 2 Blättern (Bl. 5–6) und 1 Bogen (Bl. 7/8). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." ], - "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: [JE] | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r–2r.", + "writingMaterial": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen:

unten links auf Bl. 1r–2r.", "writingInstruments": { "main": "schwarze Tinte", "secondary": ["Bleistift"] diff --git a/src/assets/img/edition/firm-signs/firm_je_no5_lin18b.png b/src/assets/img/edition/firm-signs/firm_je_no5_lin18b.png new file mode 100644 index 0000000000000000000000000000000000000000..98e2f514eba5445d5102a1e5c156f4dacb997daa GIT binary patch literal 131742 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

TSaji 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≫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

ldrH9m4n1g6D-gO>ZqAfmuqc~Lxu#_BNC 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 T9anQO00000NkvXXu0mjf5IL>* literal 0 HcmV?d00001 diff --git a/src/assets/img/edition/firm-signs/firm_je_no5_lin18c.png b/src/assets/img/edition/firm-signs/firm_je_no5_lin18c.png new file mode 100644 index 0000000000000000000000000000000000000000..25494d50d431ad59386a1541bd243e5ac7a9bf96 GIT binary patch literal 137010 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�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

#b}Qy}O>FGHj*` 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%0D&XuNy*RQ$PR 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 literal 0 HcmV?d00001 diff --git a/src/assets/img/edition/firm-signs/firm_je_no5_lin18d.png b/src/assets/img/edition/firm-signs/firm_je_no5_lin18d.png new file mode 100644 index 0000000000000000000000000000000000000000..10bde66fbf0210522a18dccc90ae097214f44022 GIT binary patch literal 136131 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 e*-(;> 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 literal 0 HcmV?d00001 From 06c26a92297113138a01b23ae7aecb17379fa295 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 14:23:32 +0000 Subject: [PATCH 33/36] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 17.0.10 to 17.1.0 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/17.0.10...17.1.0) Updates `@angular/cli` from 17.0.10 to 17.1.0 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/17.0.10...17.1.0) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 1944 +++++++++++++++----------------------------------- 2 files changed, 577 insertions(+), 1371 deletions(-) diff --git a/package.json b/package.json index 23cb68899a..45c1129c28 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.10", + "@angular-devkit/build-angular": "^17.1.0", "@angular-eslint/builder": "^17.2.0", "@angular-eslint/eslint-plugin": "^17.2.0", "@angular-eslint/eslint-plugin-template": "^17.2.0", "@angular-eslint/schematics": "^17.2.0", "@angular-eslint/template-parser": "^17.2.0", - "@angular/cli": "^17.0.10", + "@angular/cli": "^17.1.0", "@angular/compiler-cli": "^17.0.9", "@commitlint/cli": "^18.4.4", "@commitlint/config-angular": "^18.4.4", diff --git a/yarn.lock b/yarn.lock index 91bdb8fc03..829580d0f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,50 +20,48 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@angular-devkit/architect@0.1700.10": - version "0.1700.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1700.10.tgz#cf3bb2dfca17bb7d78639b7e55e13bb16627fa62" - integrity sha512-JD/3jkdN1jrFMIDEk9grKdbjutIoxUDMRazq1LZooWjTkzlYk09i/s6HwvIPao7zvxJfelD6asTPspgkjOMP5A== +"@angular-devkit/architect@0.1701.0": + version "0.1701.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1701.0.tgz#993ff25c079c6f439e0eec90d85953639f789a75" + integrity sha512-VP6mjptKFn0HO2dn4bH0mFMe4CrexlWlgnTHyAUbL7ZFaV9w4VQuE/vXr60wMlQ+83NIGUeJImjt1QVNlIjJnQ== dependencies: - "@angular-devkit/core" "17.0.10" + "@angular-devkit/core" "17.1.0" rxjs "7.8.1" -"@angular-devkit/build-angular@^17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.0.10.tgz#d18b6d4609f6d971805ebace94732355938dcf6d" - integrity sha512-RWVu5Pdg6VdO3v1i0oI+HGr/NE4rhbNelM43w+9TqrzDtwmvckWsadSp0H88cPhQ4YGY5ldGKyQufO1UItR26w== +"@angular-devkit/build-angular@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.1.0.tgz#c3edbf9a3ec005d1f8baa154d3990798cd508384" + integrity sha512-N9B2SlKewD48qKFgRPKDH1X2EvOGll1ocMlFxi95mT9aXuFd2d75JUYHzS1v3FQRU3peoAoFKxCV7OuIL/cmTA== dependencies: "@ampproject/remapping" "2.2.1" - "@angular-devkit/architect" "0.1700.10" - "@angular-devkit/build-webpack" "0.1700.10" - "@angular-devkit/core" "17.0.10" - "@babel/core" "7.23.2" - "@babel/generator" "7.23.0" + "@angular-devkit/architect" "0.1701.0" + "@angular-devkit/build-webpack" "0.1701.0" + "@angular-devkit/core" "17.1.0" + "@babel/core" "7.23.7" + "@babel/generator" "7.23.6" "@babel/helper-annotate-as-pure" "7.22.5" "@babel/helper-split-export-declaration" "7.22.6" - "@babel/plugin-transform-async-generator-functions" "7.23.2" - "@babel/plugin-transform-async-to-generator" "7.22.5" - "@babel/plugin-transform-runtime" "7.23.2" - "@babel/preset-env" "7.23.2" - "@babel/runtime" "7.23.2" + "@babel/plugin-transform-async-generator-functions" "7.23.7" + "@babel/plugin-transform-async-to-generator" "7.23.3" + "@babel/plugin-transform-runtime" "7.23.7" + "@babel/preset-env" "7.23.7" + "@babel/runtime" "7.23.7" "@discoveryjs/json-ext" "0.5.7" - "@ngtools/webpack" "17.0.10" - "@vitejs/plugin-basic-ssl" "1.0.1" + "@ngtools/webpack" "17.1.0" + "@vitejs/plugin-basic-ssl" "1.0.2" ansi-colors "4.1.3" autoprefixer "10.4.16" babel-loader "9.1.3" babel-plugin-istanbul "6.1.1" - browser-sync "2.29.3" browserslist "^4.21.5" - chokidar "3.5.3" copy-webpack-plugin "11.0.0" critters "0.0.20" css-loader "6.8.1" - esbuild-wasm "0.19.5" - fast-glob "3.3.1" + esbuild-wasm "0.19.11" + fast-glob "3.3.2" http-proxy-middleware "2.0.6" https-proxy-agent "7.0.2" - inquirer "9.2.11" + inquirer "9.2.12" jsonc-parser "3.2.0" karma-source-map-support "1.4.0" less "4.2.0" @@ -72,41 +70,42 @@ loader-utils "3.2.1" magic-string "0.30.5" mini-css-extract-plugin "2.7.6" - mrmime "1.0.1" + mrmime "2.0.0" open "8.4.2" ora "5.4.1" parse5-html-rewriting-stream "7.0.0" picomatch "3.0.1" - piscina "4.1.0" - postcss "8.4.31" - postcss-loader "7.3.3" + piscina "4.2.1" + postcss "8.4.33" + postcss-loader "7.3.4" resolve-url-loader "5.0.0" rxjs "7.8.1" - sass "1.69.5" - sass-loader "13.3.2" + sass "1.69.7" + sass-loader "13.3.3" semver "7.5.4" - source-map-loader "4.0.1" + source-map-loader "5.0.0" source-map-support "0.5.21" - terser "5.24.0" + terser "5.26.0" text-table "0.2.0" tree-kill "1.2.2" tslib "2.6.2" - undici "5.27.2" - vite "4.5.1" + undici "6.2.1" + vite "5.0.11" + watchpack "2.4.0" webpack "5.89.0" webpack-dev-middleware "6.1.1" webpack-dev-server "4.15.1" webpack-merge "5.10.0" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.19.5" + esbuild "0.19.11" -"@angular-devkit/build-webpack@0.1700.10": - version "0.1700.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1700.10.tgz#c3837bd15735caef3b4bd651f01dec23dbeb84cd" - integrity sha512-jjcH5zGWre+adnVqjBdAr04Yto8oG6j7fFWuoiBVWEtK8AmesukGJQY8+QKX5UcrsyjP7COsfbz5WeJk3g1KOg== +"@angular-devkit/build-webpack@0.1701.0": + version "0.1701.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1701.0.tgz#41a5235c4c9cfb728a43a01cb7da59edc18ae412" + integrity sha512-AUQbdnAXMdXKPj51RWr+0SusTh5M1EWEpXtEZgDSO5Vab6ak+xsX+k1IhjlEoliF0prHjD5WzBegr6WKCjZ30w== dependencies: - "@angular-devkit/architect" "0.1700.10" + "@angular-devkit/architect" "0.1701.0" rxjs "7.8.1" "@angular-devkit/core@14.2.12": @@ -120,10 +119,10 @@ rxjs "6.6.7" source-map "0.7.4" -"@angular-devkit/core@17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.0.10.tgz#dce8b3cd4b90d694ed5ccf405c8f25e45938b310" - integrity sha512-93N6oHnmtRt0hL3AXxvnk47sN1rHndfj+pqI5haEY41AGWzIWv9cSBsqlM0PWltNpo6VivcExZESvbLJ71wqbQ== +"@angular-devkit/core@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.1.0.tgz#51fad193655f34b73675b252883a02211926ef64" + integrity sha512-w7HeJjyM6YtjXrwFdmFIsp9lzDPAFJov8hVCD18DZaCwryRixz+o8egfw2SkpI4L8kuGAiGxpaCTRsTQtmR4/w== dependencies: ajv "8.12.0" ajv-formats "2.1.1" @@ -143,12 +142,12 @@ ora "5.4.1" rxjs "6.6.7" -"@angular-devkit/schematics@17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.0.10.tgz#700067a2db9cd89883ec838b674c111c9cafdcc4" - integrity sha512-hjf4gaMx2uB6ZhBstBSH0Q2hzfp6kxI4IiJ5i1QrxPNE1MdGnb2h+LgPTRCdO72a7PGeWcSxFRE7cxrXeQy19g== +"@angular-devkit/schematics@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.1.0.tgz#00036eb9126cbf89417341ed62ef578d1d83b2f4" + integrity sha512-7q4Bk3+ePBdzrmMWxWBnNdN4kmBe2jJwa3vAofaMqZiIBEor85YcOsrUJvcWM/3+/TusgZr4p/4+oJgiYDrj5A== dependencies: - "@angular-devkit/core" "17.0.10" + "@angular-devkit/core" "17.1.0" jsonc-parser "3.2.0" magic-string "0.30.5" ora "5.4.1" @@ -223,25 +222,25 @@ dependencies: tslib "^2.3.0" -"@angular/cli@^17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.0.10.tgz#24a9cdbdf2d19eb4138c9ccada5eebd4202014b4" - integrity sha512-52rd8KmOMe3NJDp/wA+Mwj21qd4HR8fuLtfrErgVnZaJZKX2Bzi/z7FHQD3gdgMAdzUiG0OJWGM0h75Ls9X6Gw== +"@angular/cli@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.1.0.tgz#5ec9341b7a55018b649500c2ec2dbce7d4421881" + integrity sha512-mZh8ibV94CqHls+GTHok9rF78UvrtKZx+o1QOcG50ZM1L5O5s2NYrBhf+QXVeTTmzhSH1wXQb7ueyuLNLVB/eA== dependencies: - "@angular-devkit/architect" "0.1700.10" - "@angular-devkit/core" "17.0.10" - "@angular-devkit/schematics" "17.0.10" - "@schematics/angular" "17.0.10" + "@angular-devkit/architect" "0.1701.0" + "@angular-devkit/core" "17.1.0" + "@angular-devkit/schematics" "17.1.0" + "@schematics/angular" "17.1.0" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.3" ini "4.1.1" - inquirer "9.2.11" + inquirer "9.2.12" jsonc-parser "3.2.0" npm-package-arg "11.0.1" npm-pick-manifest "9.0.0" open "8.4.2" ora "5.4.1" - pacote "17.0.4" + pacote "17.0.5" resolve "1.22.8" semver "7.5.4" symbol-observable "4.0.0" @@ -347,34 +346,29 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/code-frame@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" - integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" - integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== - "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/compat-data@^7.23.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - "@babel/compat-data@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + "@babel/core@7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" @@ -396,43 +390,33 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.12.3", "@babel/core@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== +"@babel/core@7.23.7", "@babel/core@^7.12.3", "@babel/core@^7.23.3": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" - integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== +"@babel/generator@7.23.6", "@babel/generator@^7.23.0", "@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.23.4" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -451,13 +435,6 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-compilation-targets@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" @@ -469,17 +446,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" - integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - "@babel/helper-compilation-targets@^7.22.6": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" @@ -491,6 +457,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" @@ -506,21 +483,6 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" - integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - semver "^6.3.0" - "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" @@ -539,10 +501,21 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -590,13 +563,6 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-imports@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" @@ -604,27 +570,6 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-transforms@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" - integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-module-transforms@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" @@ -668,16 +613,6 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" @@ -687,18 +622,6 @@ "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -713,7 +636,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@7.22.6", "@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": +"@babel/helper-split-export-declaration@7.22.6", "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== @@ -750,6 +673,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -759,16 +687,6 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helpers@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" @@ -778,6 +696,15 @@ "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + "@babel/highlight@^7.22.13": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" @@ -815,19 +742,19 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/parser@^7.23.3", "@babel/parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" - integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== +"@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== @@ -836,10 +763,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -892,13 +819,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-import-assertions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" @@ -906,13 +826,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-import-attributes@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" @@ -998,13 +911,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-arrow-functions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" @@ -1012,36 +918,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" - integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-generator-functions@^7.23.2", "@babel/plugin-transform-async-generator-functions@^7.23.3": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@7.23.7", "@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - -"@babel/plugin-transform-async-to-generator@^7.22.5", "@babel/plugin-transform-async-to-generator@^7.23.3": +"@babel/plugin-transform-async-to-generator@7.23.3", "@babel/plugin-transform-async-to-generator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== @@ -1050,13 +937,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" @@ -1064,21 +944,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.23.0", "@babel/plugin-transform-block-scoping@^7.23.3": +"@babel/plugin-transform-block-scoping@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-class-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" @@ -1087,7 +959,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.22.11", "@babel/plugin-transform-class-static-block@^7.23.3": +"@babel/plugin-transform-class-static-block@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== @@ -1096,44 +968,20 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.15": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" - integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/plugin-transform-computed-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" @@ -1142,21 +990,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.23.0", "@babel/plugin-transform-destructuring@^7.23.3": +"@babel/plugin-transform-destructuring@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-dotall-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" @@ -1165,13 +1005,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-duplicate-keys@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" @@ -1179,7 +1012,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.22.11", "@babel/plugin-transform-dynamic-import@^7.23.3": +"@babel/plugin-transform-dynamic-import@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== @@ -1187,14 +1020,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-exponentiation-operator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" @@ -1203,7 +1028,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.22.11", "@babel/plugin-transform-export-namespace-from@^7.23.3": +"@babel/plugin-transform-export-namespace-from@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== @@ -1211,7 +1036,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.22.15": +"@babel/plugin-transform-for-of@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== @@ -1219,22 +1044,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" @@ -1244,7 +1053,7 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.22.11", "@babel/plugin-transform-json-strings@^7.23.3": +"@babel/plugin-transform-json-strings@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== @@ -1252,13 +1061,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" @@ -1266,7 +1068,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.22.11", "@babel/plugin-transform-logical-assignment-operators@^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== @@ -1274,13 +1076,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-member-expression-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" @@ -1288,7 +1083,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.23.0", "@babel/plugin-transform-modules-amd@^7.23.3": +"@babel/plugin-transform-modules-amd@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== @@ -1296,7 +1091,7 @@ "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.23.0", "@babel/plugin-transform-modules-commonjs@^7.23.3": +"@babel/plugin-transform-modules-commonjs@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== @@ -1305,7 +1100,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.23.0", "@babel/plugin-transform-modules-systemjs@^7.23.3": +"@babel/plugin-transform-modules-systemjs@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== @@ -1315,14 +1110,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-modules-umd@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" @@ -1339,13 +1126,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-new-target@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" @@ -1353,7 +1133,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11", "@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== @@ -1361,7 +1141,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.11", "@babel/plugin-transform-numeric-separator@^7.23.3": +"@babel/plugin-transform-numeric-separator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== @@ -1369,7 +1149,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.15", "@babel/plugin-transform-object-rest-spread@^7.23.3": +"@babel/plugin-transform-object-rest-spread@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== @@ -1380,14 +1160,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/plugin-transform-object-super@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" @@ -1396,7 +1168,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.22.11", "@babel/plugin-transform-optional-catch-binding@^7.23.3": +"@babel/plugin-transform-optional-catch-binding@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== @@ -1404,7 +1176,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.0", "@babel/plugin-transform-optional-chaining@^7.23.3": +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== @@ -1413,21 +1185,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.23.3": +"@babel/plugin-transform-parameters@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-private-methods@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" @@ -1436,7 +1200,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.23.3": +"@babel/plugin-transform-private-property-in-object@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== @@ -1446,13 +1210,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-property-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" @@ -1460,7 +1217,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.23.3": +"@babel/plugin-transform-regenerator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== @@ -1468,13 +1225,6 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-reserved-words@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" @@ -1482,25 +1232,18 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz#c956a3f8d1aa50816ff6c30c6288d66635c12990" - integrity sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA== +"@babel/plugin-transform-runtime@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-shorthand-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" @@ -1508,14 +1251,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-spread@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" @@ -1524,13 +1259,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-sticky-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" @@ -1538,13 +1266,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-template-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" @@ -1552,13 +1273,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-typeof-symbol@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" @@ -1566,21 +1280,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.10", "@babel/plugin-transform-unicode-escapes@^7.23.3": +"@babel/plugin-transform-unicode-escapes@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-property-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" @@ -1589,14 +1295,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" @@ -1605,14 +1303,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" @@ -1621,104 +1311,18 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" - integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== +"@babel/preset-env@7.23.7", "@babel/preset-env@^7.23.3": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241" + integrity sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA== dependencies: - "@babel/compat-data" "^7.23.2" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.23.2" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.23.0" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.15" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.23.0" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.11" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.15" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.11" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.23.0" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-modules-systemjs" "^7.23.0" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" - "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.15" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.23.0" - "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.10" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.10" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.23.0" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - core-js-compat "^3.31.0" - semver "^6.3.1" - -"@babel/preset-env@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.3.tgz#d299e0140a7650684b95c62be2db0ef8c975143e" - integrity sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q== - dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" + "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1739,25 +1343,25 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.3" - "@babel/plugin-transform-classes" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.3" - "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" @@ -1765,15 +1369,15 @@ "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.3" - "@babel/plugin-transform-numeric-separator" "^7.23.3" - "@babel/plugin-transform-object-rest-spread" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.3" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" "@babel/plugin-transform-parameters" "^7.23.3" "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" "@babel/plugin-transform-property-literals" "^7.23.3" "@babel/plugin-transform-regenerator" "^7.23.3" "@babel/plugin-transform-reserved-words" "^7.23.3" @@ -1787,9 +1391,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1807,17 +1411,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== +"@babel/runtime@7.23.7", "@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193" + integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA== dependencies: regenerator-runtime "^0.14.0" @@ -1830,7 +1427,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.2": +"@babel/traverse@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== @@ -1846,20 +1443,20 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.23.3": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" - integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== +"@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: - "@babel/code-frame" "^7.23.4" - "@babel/generator" "^7.23.4" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.4" - "@babel/types" "^7.23.4" - debug "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.23.0": @@ -1880,10 +1477,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@babel/types@^7.23.3", "@babel/types@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" - integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== +"@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -2237,225 +1834,120 @@ esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" - integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" - integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/android-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" - integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" - integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/darwin-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" - integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" - integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/freebsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" - integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" - integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" - integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" - integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-loong64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" - integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-mips64el@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" - integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-ppc64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" - integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-riscv64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" - integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-s390x@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" - integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/linux-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" - integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/netbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" - integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/openbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" - integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/sunos-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" - integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" - integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" - integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== - -"@esbuild/win32-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" - integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== +"@esbuild/aix-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3" + integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g== + +"@esbuild/android-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220" + integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q== + +"@esbuild/android-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c" + integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw== + +"@esbuild/android-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2" + integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg== + +"@esbuild/darwin-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf" + integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ== + +"@esbuild/darwin-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e" + integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g== + +"@esbuild/freebsd-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a" + integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA== + +"@esbuild/freebsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2" + integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw== + +"@esbuild/linux-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545" + integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg== + +"@esbuild/linux-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3" + integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q== + +"@esbuild/linux-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4" + integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA== + +"@esbuild/linux-loong64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121" + integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg== + +"@esbuild/linux-mips64el@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9" + integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg== + +"@esbuild/linux-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912" + integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA== + +"@esbuild/linux-riscv64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916" + integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ== + +"@esbuild/linux-s390x@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8" + integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q== + +"@esbuild/linux-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766" + integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA== + +"@esbuild/netbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d" + integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ== + +"@esbuild/openbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2" + integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw== + +"@esbuild/sunos-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767" + integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ== + +"@esbuild/win32-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee" + integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ== + +"@esbuild/win32-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c" + integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg== + +"@esbuild/win32-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04" + integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -2707,7 +2199,7 @@ dependencies: "@lezer/common" "^1.0.0" -"@ljharb/through@^2.3.9": +"@ljharb/through@^2.3.11": version "2.3.11" resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== @@ -2736,10 +2228,10 @@ dependencies: tslib "^2.3.0" -"@ngtools/webpack@17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.0.10.tgz#5e6d5ec4a2c89be5b79513b7317519a8c457d471" - integrity sha512-UCiLrV2aLrtR7Wr/jJi0nH2Xzb7ETenrPWU/EcW9V3lnlDun5g1J0y01jRzvcipxNTOmFfI4lqv288nKSmSOAA== +"@ngtools/webpack@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.1.0.tgz#e88acf71eaeea44377d1311209936bac583fd066" + integrity sha512-FAp5Vh4Y4DFDnrxEitggEkeDwHCml7m6hZUgohvA6n6mwrMT0ZZXnk3MIrKRnT6A9cr1wcnxMW+jIXx/cJZGlw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2946,13 +2438,78 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@schematics/angular@17.0.10": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.0.10.tgz#cd3a918ac47032591138b6169fddc35706625b13" - integrity sha512-rRBlDMXfVPkW3CqVQxazFqkuJXd0BFnD1zjI9WtDiNt3o2pTHbLzuWJnXKuIt5rzv0x/bFwNqIt4CPW2DYGNMg== - dependencies: - "@angular-devkit/core" "17.0.10" - "@angular-devkit/schematics" "17.0.10" +"@rollup/rollup-android-arm-eabi@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz#b752b6c88a14ccfcbdf3f48c577ccc3a7f0e66b9" + integrity sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA== + +"@rollup/rollup-android-arm64@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz#33757c3a448b9ef77b6f6292d8b0ec45c87e9c1a" + integrity sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg== + +"@rollup/rollup-darwin-arm64@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz#5234ba62665a3f443143bc8bcea9df2cc58f55fb" + integrity sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w== + +"@rollup/rollup-darwin-x64@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz#981256c054d3247b83313724938d606798a919d1" + integrity sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz#120678a5a2b3a283a548dbb4d337f9187a793560" + integrity sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g== + +"@rollup/rollup-linux-arm64-gnu@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz#c99d857e2372ece544b6f60b85058ad259f64114" + integrity sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA== + +"@rollup/rollup-linux-arm64-musl@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz#3064060f568a5718c2a06858cd6e6d24f2ff8632" + integrity sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ== + +"@rollup/rollup-linux-riscv64-gnu@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz#987d30b5d2b992fff07d055015991a57ff55fbad" + integrity sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA== + +"@rollup/rollup-linux-x64-gnu@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz#85946ee4d068bd12197aeeec2c6f679c94978a49" + integrity sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA== + +"@rollup/rollup-linux-x64-musl@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz#fe0b20f9749a60eb1df43d20effa96c756ddcbd4" + integrity sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg== + +"@rollup/rollup-win32-arm64-msvc@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz#422661ef0e16699a234465d15b2c1089ef963b2a" + integrity sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ== + +"@rollup/rollup-win32-ia32-msvc@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz#7b73a145891c202fbcc08759248983667a035d85" + integrity sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA== + +"@rollup/rollup-win32-x64-msvc@4.9.5": + version "4.9.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz#10491ccf4f63c814d4149e0316541476ea603602" + integrity sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ== + +"@schematics/angular@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.1.0.tgz#d8a1e1a9646627b7952a8752b20b6918d2b1d162" + integrity sha512-u9pCesRWb6mVtLnFLSfZ8R21TDz8YCebAxViefWsJlb0+p0yknesVL1nG/Oi9tgfhczS991HGIVsLT41bZthUw== + dependencies: + "@angular-devkit/core" "17.1.0" + "@angular-devkit/schematics" "17.1.0" jsonc-parser "3.2.0" "@sigstore/bundle@^2.1.0": @@ -3305,6 +2862,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.17.35" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" @@ -3596,10 +3158,10 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitejs/plugin-basic-ssl@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz#48c46eab21e0730921986ce742563ae83fe7fe34" - integrity sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A== +"@vitejs/plugin-basic-ssl@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz#bac6553842b215f17b052d27c82e2b2ef29236dc" + integrity sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw== "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" @@ -3760,11 +3322,6 @@ JSONStream@^1.0.4, JSONStream@^1.3.5: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -4178,12 +3735,7 @@ ast-types@^0.7.0: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" integrity sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q== -async-each-series@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" - integrity sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ== - -async@^2.6.0, async@^2.6.1: +async@^2.6.1: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -4222,13 +3774,6 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios@0.21.4: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - axios@^1.5.1: version "1.6.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" @@ -4264,29 +3809,29 @@ babel-plugin-istanbul@6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz#a75fa1b0c3fc5bd6837f9ec465c0f48031b8cab1" - integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.32.2" + "@babel/helper-define-polyfill-provider" "^0.4.4" + core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" balanced-match@^1.0.0: version "1.0.2" @@ -4466,63 +4011,6 @@ browser-resolve@^1.8.1: dependencies: resolve "1.1.7" -browser-sync-client@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.29.3.tgz#9300b97f42abc2c4f95ca29b5a9781b5c492f14a" - integrity sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ== - dependencies: - etag "1.8.1" - fresh "0.5.2" - mitt "^1.1.3" - -browser-sync-ui@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz#35e2ce3b470dce6b7219307cac7278bf324a0f16" - integrity sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg== - dependencies: - async-each-series "0.1.1" - chalk "4.1.2" - connect-history-api-fallback "^1" - immutable "^3" - server-destroy "1.0.1" - socket.io-client "^4.4.1" - stream-throttle "^0.1.3" - -browser-sync@2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.29.3.tgz#c2a3ff00c659eb87a13cae9d7a427e1b4b580ee1" - integrity sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg== - dependencies: - browser-sync-client "^2.29.3" - browser-sync-ui "^2.29.3" - bs-recipes "1.3.4" - chalk "4.1.2" - chokidar "^3.5.1" - connect "3.6.6" - connect-history-api-fallback "^1" - dev-ip "^1.0.1" - easy-extender "^2.3.4" - eazy-logger "^4.0.1" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "3.0.1" - http-proxy "^1.18.1" - immutable "^3" - localtunnel "^2.0.1" - micromatch "^4.0.2" - opn "5.3.0" - portscanner "2.2.0" - raw-body "^2.3.2" - resp-modifier "6.0.2" - rx "4.1.0" - send "0.16.2" - serve-index "1.9.1" - serve-static "1.13.2" - server-destroy "1.0.1" - socket.io "^4.4.1" - ua-parser-js "^1.0.33" - yargs "^17.3.1" - browserify-optional@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" @@ -4532,7 +4020,7 @@ browserify-optional@^1.0.1: ast-types "^0.7.0" browser-resolve "^1.8.1" -browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.3, browserslist@^4.21.5, browserslist@^4.21.9, browserslist@^4.22.1: +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.5, browserslist@^4.21.9, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -4542,11 +4030,6 @@ browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.3, browserslist@ node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs-recipes@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" - integrity sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw== - btoa@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" @@ -4752,7 +4235,7 @@ cheerio@^1.0.0-rc.12: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4925,7 +4408,7 @@ commander@7, commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.18.0, commander@^2.2.0, commander@^2.20.0: +commander@^2.18.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -5003,26 +4486,11 @@ concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -connect-history-api-fallback@^1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - connect-history-api-fallback@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -connect@3.6.6: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - connect@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" @@ -5303,12 +4771,12 @@ core-js-compat@^3.31.0: dependencies: browserslist "^4.21.9" -core-js-compat@^3.32.2: - version "3.33.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.1.tgz#debe80464107d75419e00c2ee29f35982118ff84" - integrity sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ== +core-js-compat@^3.33.1: + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: - browserslist "^4.22.1" + browserslist "^4.22.2" core-util-is@~1.0.0: version "1.0.3" @@ -5330,7 +4798,7 @@ cosmiconfig-typescript-loader@^5.0.0: dependencies: jiti "^1.19.1" -cosmiconfig@^8.2.0, cosmiconfig@^8.3.6: +cosmiconfig@^8.3.5, cosmiconfig@^8.3.6: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -5547,27 +5015,20 @@ debounce@^1.2.1: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9, debug@^2.2.0: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -5725,11 +5186,6 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== - detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" @@ -5750,11 +5206,6 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dev-ip@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" - integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== - dfa@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" @@ -5905,20 +5356,6 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -easy-extender@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.4.tgz#298789b64f9aaba62169c77a2b3b64b4c9589b8f" - integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== - dependencies: - lodash "^4.17.10" - -eazy-logger@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-4.0.1.tgz#2e9fe487fb14ed6ac20d5f01d90dff377d403041" - integrity sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw== - dependencies: - chalk "4.1.2" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5966,7 +5403,7 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.1, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== @@ -5985,27 +5422,11 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.3.tgz#4cf6fa24845029b238f83c628916d9149c399bc5" - integrity sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.11.0" - xmlhttprequest-ssl "~2.0.0" - engine.io-parser@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.1.0.tgz#d593d6372d7f79212df48f807b8cace1ea1cb1b8" integrity sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w== -engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== - engine.io@~6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.0.tgz#02b9d9941c0d3ab2d46628e98ac3331dd533dff0" @@ -6216,66 +5637,39 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: d "^1.0.1" ext "^1.1.2" -esbuild-wasm@0.19.5: - version "0.19.5" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz#28f4563d7e3bcbe9462813e376b2fb6024931fd9" - integrity sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA== +esbuild-wasm@0.19.11: + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz#4ed96cdd1a289bc08432a25fd38b7331d3eac98d" + integrity sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ== -esbuild@0.19.5: - version "0.19.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" - integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== - optionalDependencies: - "@esbuild/android-arm" "0.19.5" - "@esbuild/android-arm64" "0.19.5" - "@esbuild/android-x64" "0.19.5" - "@esbuild/darwin-arm64" "0.19.5" - "@esbuild/darwin-x64" "0.19.5" - "@esbuild/freebsd-arm64" "0.19.5" - "@esbuild/freebsd-x64" "0.19.5" - "@esbuild/linux-arm" "0.19.5" - "@esbuild/linux-arm64" "0.19.5" - "@esbuild/linux-ia32" "0.19.5" - "@esbuild/linux-loong64" "0.19.5" - "@esbuild/linux-mips64el" "0.19.5" - "@esbuild/linux-ppc64" "0.19.5" - "@esbuild/linux-riscv64" "0.19.5" - "@esbuild/linux-s390x" "0.19.5" - "@esbuild/linux-x64" "0.19.5" - "@esbuild/netbsd-x64" "0.19.5" - "@esbuild/openbsd-x64" "0.19.5" - "@esbuild/sunos-x64" "0.19.5" - "@esbuild/win32-arm64" "0.19.5" - "@esbuild/win32-ia32" "0.19.5" - "@esbuild/win32-x64" "0.19.5" - -esbuild@^0.18.10: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== +esbuild@0.19.11, esbuild@^0.19.3: + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96" + integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" + "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/android-arm" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/android-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/freebsd-x64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-arm64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + "@esbuild/linux-ppc64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-s390x" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/openbsd-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-arm64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" + "@esbuild/win32-x64" "0.19.11" escalade@^3.1.1: version "3.1.1" @@ -6542,7 +5936,7 @@ esutils@~1.0.0: resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" integrity sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg== -etag@1.8.1, etag@^1.8.1, etag@~1.8.1: +etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== @@ -6578,11 +5972,6 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter-asyncresource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" - integrity sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -6749,7 +6138,7 @@ fast-glob@3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: +fast-glob@3.3.2, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -6842,19 +6231,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw== - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - finalhandler@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -6954,7 +6330,7 @@ flatted@^3.1.0, flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.15.0: +follow-redirects@^1.0.0, follow-redirects@^1.15.0: version "1.15.4" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== @@ -7005,7 +6381,7 @@ fraction.js@^4.3.6: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fresh@0.5.2, fresh@^0.5.2: +fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -7020,15 +6396,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" @@ -7086,6 +6453,11 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -7765,11 +7137,6 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== -immutable@^3: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== - immutable@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" @@ -7835,12 +7202,12 @@ ini@^1.3.2, ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@9.2.11: - version "9.2.11" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.11.tgz#e9003755c233a414fceda1891c23bd622cad4a95" - integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== +inquirer@9.2.12: + version "9.2.12" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.12.tgz#0348e9311765b7c93fce143bb1c0ef1ae879b1d7" + integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== dependencies: - "@ljharb/through" "^2.3.9" + "@ljharb/through" "^2.3.11" ansi-escapes "^4.3.2" chalk "^5.3.0" cli-cursor "^3.1.0" @@ -8016,13 +7383,6 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-number-like@^1.0.3: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" - integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== - dependencies: - lodash.isfinite "^3.3.2" - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -8178,11 +7538,6 @@ is-what@^3.14.1: resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -8320,12 +7675,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jiti@^1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" - integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== - -jiti@^1.19.1: +jiti@^1.19.1, jiti@^1.20.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -8427,13 +7777,6 @@ jsonc-parser@3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -8621,11 +7964,6 @@ lilconfig@3.0.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== -limiter@^1.0.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" - integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -8693,16 +8031,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -localtunnel@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.2.tgz#528d50087151c4790f89c2db374fe7b0a48501f0" - integrity sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug== - dependencies: - axios "0.21.4" - debug "4.3.2" - openurl "1.1.1" - yargs "17.1.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -8750,11 +8078,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.isfinite@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" - integrity sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA== - lodash.isfunction@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" @@ -8805,7 +8128,7 @@ lodash.upperfirst@^4.3.1: resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9060,11 +8383,6 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, dependencies: mime-db "1.52.0" -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - mime@1.6.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -9116,7 +8434,7 @@ minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -9241,11 +8559,6 @@ minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mitt@^1.1.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" - integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== - mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -9284,7 +8597,12 @@ morgan@^1.10.0: on-finished "~2.3.0" on-headers "~1.0.2" -mrmime@1.0.1, mrmime@^1.0.0: +mrmime@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +mrmime@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== @@ -9330,11 +8648,6 @@ n3@^1.17.2: queue-microtask "^1.1.2" readable-stream "^4.0.0" -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -9829,18 +9142,6 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openurl@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" - integrity sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA== - -opn@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== - dependencies: - is-wsl "^1.1.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -9981,10 +9282,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pacote@17.0.4: - version "17.0.4" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.4.tgz#4bac6c0745967bde96985ec12fbbfc8dea7140e8" - integrity sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg== +pacote@17.0.5: + version "17.0.5" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.5.tgz#e9854edee7a073635cdd36b0c07cd4f2ab1757b6" + integrity sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA== dependencies: "@npmcli/git" "^5.0.0" "@npmcli/installed-package-contents" "^2.0.1" @@ -10224,12 +9525,11 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -piscina@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.1.0.tgz#809578ee3ab2ecf4cf71c2a062100b4b95a85b96" - integrity sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig== +piscina@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.2.1.tgz#efb7f009d3a961e02ae08f1909bd24b5423e77fa" + integrity sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA== dependencies: - eventemitter-asyncresource "^1.0.0" hdr-histogram-js "^2.0.1" hdr-histogram-percentiles-obj "^3.0.0" optionalDependencies: @@ -10254,22 +9554,14 @@ png-js@^1.0.0: resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g== -portscanner@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.2.0.tgz#6059189b3efa0965c9d96a56b958eb9508411cf1" - integrity sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== - dependencies: - async "^2.6.0" - is-number-like "^1.0.3" - -postcss-loader@7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" - integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== +postcss-loader@7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== dependencies: - cosmiconfig "^8.2.0" - jiti "^1.18.2" - semver "^7.3.8" + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" postcss-modules-extract-imports@^3.0.0: version "3.0.0" @@ -10312,19 +9604,10 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.31: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.27: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== +postcss@8.4.33, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.32: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -10499,7 +9782,7 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -10514,7 +9797,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.5.2, raw-body@^2.3.2: +raw-body@2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== @@ -10775,14 +10058,6 @@ resolve@1.22.8, resolve@^1.1.5, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resp-modifier@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" - integrity sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw== - dependencies: - debug "^2.2.0" - minimatch "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -10833,11 +10108,26 @@ rimraf@~2.6.2: dependencies: glob "^7.1.3" -rollup@^3.27.1: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== +rollup@^4.2.0: + version "4.9.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.5.tgz#62999462c90f4c8b5d7c38fc7161e63b29101b05" + integrity sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.5" + "@rollup/rollup-android-arm64" "4.9.5" + "@rollup/rollup-darwin-arm64" "4.9.5" + "@rollup/rollup-darwin-x64" "4.9.5" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.5" + "@rollup/rollup-linux-arm64-gnu" "4.9.5" + "@rollup/rollup-linux-arm64-musl" "4.9.5" + "@rollup/rollup-linux-riscv64-gnu" "4.9.5" + "@rollup/rollup-linux-x64-gnu" "4.9.5" + "@rollup/rollup-linux-x64-musl" "4.9.5" + "@rollup/rollup-win32-arm64-msvc" "4.9.5" + "@rollup/rollup-win32-ia32-msvc" "4.9.5" + "@rollup/rollup-win32-x64-msvc" "4.9.5" fsevents "~2.3.2" run-applescript@^5.0.0: @@ -10864,11 +10154,6 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== -rx@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug== - rxjs@6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" @@ -10917,17 +10202,17 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6" - integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== +sass-loader@13.3.3: + version "13.3.3" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.3.tgz#60df5e858788cffb1a3215e5b92e9cba61e7e133" + integrity sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA== dependencies: neo-async "^2.6.2" -sass@1.69.5: - version "1.69.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" - integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== +sass@1.69.7: + version "1.69.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.7.tgz#6e7e1c8f51e8162faec3e9619babc7da780af3b7" + integrity sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -11006,25 +10291,6 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - send@0.18.0, send@latest: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -11051,7 +10317,7 @@ serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" -serve-index@1.9.1, serve-index@^1.9.1: +serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== @@ -11064,16 +10330,6 @@ serve-index@1.9.1, serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -11084,11 +10340,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -server-destroy@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -11255,16 +10506,6 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-client@^4.4.1: - version "4.7.2" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.2.tgz#f2f13f68058bd4e40f94f2a1541f275157ff2c08" - integrity sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.5.2" - socket.io-parser "~4.2.4" - socket.io-parser@~4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" @@ -11344,12 +10585,11 @@ source-map-explorer@^2.5.3: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -11551,16 +10791,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg== - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" @@ -11581,14 +10811,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-throttle@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" - integrity sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ== - dependencies: - commander "^2.2.0" - limiter "^1.0.5" - stream@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef" @@ -11849,10 +11071,10 @@ terser-webpack-plugin@^5.3.7: serialize-javascript "^6.0.1" terser "^5.16.8" -terser@5.24.0, terser@^5.16.8: - version "5.24.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" - integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== +terser@5.26.0, terser@^5.16.8: + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -12165,11 +11387,6 @@ ua-parser-js@^0.7.30: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g== -ua-parser-js@^1.0.33: - version "1.0.37" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" - integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -12195,7 +11412,14 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici@5.27.2, undici@^5.21.2: +undici@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.2.1.tgz#554293044619e065d986c37a4c92185c3bc02121" + integrity sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw== + dependencies: + "@fastify/busboy" "^2.0.0" + +undici@^5.21.2: version "5.27.2" resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== @@ -12365,16 +11589,16 @@ vis@^4.21.0-EOL: moment "^2.18.1" propagating-hammerjs "^1.4.6" -vite@4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.1.tgz#3370986e1ed5dbabbf35a6c2e1fb1e18555b968a" - integrity sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA== +vite@5.0.11: + version "5.0.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4" + integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA== dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" void-elements@^2.0.0: version "2.0.1" @@ -12386,7 +11610,7 @@ w3c-keyname@^2.2.4: resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== -watchpack@^2.4.0: +watchpack@2.4.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -12730,11 +11954,6 @@ xmldoc@^1.1.2: dependencies: sax "^1.2.4" -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -12770,20 +11989,7 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@17.1.1: - version "17.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@17.7.2, yargs@^17.0.0, yargs@^17.2.1, yargs@^17.3.1, yargs@^17.6.2: +yargs@17.7.2, yargs@^17.0.0, yargs@^17.2.1, yargs@^17.6.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From d5c28958b1ce7d76d34b88eb7c64034adc20e6d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 20:54:10 +0000 Subject: [PATCH 34/36] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `17.0.9` | `17.1.0` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `17.0.9` | `17.1.0` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `17.0.9` | `17.1.0` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `17.0.9` | `17.1.0` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `17.0.9` | `17.1.0` | | [@angular/localize](https://github.com/angular/angular) | `17.0.9` | `17.1.0` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `17.0.9` | `17.1.0` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `17.0.9` | `17.1.0` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `17.0.9` | `17.1.0` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `17.0.9` | `17.1.0` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `17.0.9` | `17.1.0` | Updates `@angular/animations` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/animations) Updates `@angular/common` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/common) Updates `@angular/compiler` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/compiler) Updates `@angular/core` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/core) Updates `@angular/forms` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/forms) Updates `@angular/localize` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/17.0.9...17.1.0) Updates `@angular/platform-browser` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/platform-server) Updates `@angular/router` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/router) Updates `@angular/compiler-cli` from 17.0.9 to 17.1.0 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/17.1.0/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 ++++---- yarn.lock | 150 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 103 insertions(+), 69 deletions(-) diff --git a/package.json b/package.json index 45c1129c28..cd10736d10 100644 --- a/package.json +++ b/package.json @@ -82,16 +82,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^17.0.9", - "@angular/common": "^17.0.9", - "@angular/compiler": "^17.0.9", - "@angular/core": "^17.0.9", - "@angular/forms": "^17.0.9", - "@angular/localize": "^17.0.9", - "@angular/platform-browser": "^17.0.9", - "@angular/platform-browser-dynamic": "^17.0.9", - "@angular/platform-server": "^17.0.9", - "@angular/router": "^17.0.9", + "@angular/animations": "^17.1.0", + "@angular/common": "^17.1.0", + "@angular/compiler": "^17.1.0", + "@angular/core": "^17.1.0", + "@angular/forms": "^17.1.0", + "@angular/localize": "^17.1.0", + "@angular/platform-browser": "^17.1.0", + "@angular/platform-browser-dynamic": "^17.1.0", + "@angular/platform-server": "^17.1.0", + "@angular/router": "^17.1.0", "@codemirror/legacy-modes": "^6.3.3", "@fortawesome/angular-fontawesome": "^0.14.1", "@fortawesome/fontawesome-svg-core": "^6.5.1", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^17.2.0", "@angular-eslint/template-parser": "^17.2.0", "@angular/cli": "^17.1.0", - "@angular/compiler-cli": "^17.0.9", + "@angular/compiler-cli": "^17.1.0", "@commitlint/cli": "^18.4.4", "@commitlint/config-angular": "^18.4.4", "@compodoc/compodoc": "^1.1.23", diff --git a/yarn.lock b/yarn.lock index 829580d0f7..78e502a540 100644 --- a/yarn.lock +++ b/yarn.lock @@ -215,10 +215,10 @@ "@angular-eslint/bundled-angular-compiler" "17.2.0" "@typescript-eslint/utils" "6.18.0" -"@angular/animations@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.0.9.tgz#0e5a6a47d037a9a75b982fcd25596a55c1b1561e" - integrity sha512-TcAdBQyGqglgbxdiJcaHc7FcDNkzTXGRtZuPOcr4sYmBvryBu2q18edwzo6+QDYFaoGredFhE5RnOIw+M4A3Xw== +"@angular/animations@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.1.0.tgz#6367e5d0a127b4dd121b50af2f9f2faa0207e21f" + integrity sha512-EzyJsla/CnRX4ARmHe9J1m3Pl+J4m5hznzeQFyZpJehikaHKAGGJTGM/+DFAX9TuR1ZpCmS0z0oWsYzag2Q7RA== dependencies: tslib "^2.3.0" @@ -246,17 +246,17 @@ symbol-observable "4.0.0" yargs "17.7.2" -"@angular/common@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.0.9.tgz#f8b591b3db8ff8eb188f38110d7d7f3c27853f90" - integrity sha512-xNS7DDfvFqfLr6xeZNJ+jORuGXP6hhv2HsYD3jb6ZQ8+QuMg+3MDij4a0L5npn72gH/Zz4JRKZ3Bt4Cq6cUqUA== +"@angular/common@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.1.0.tgz#5e1edc2fccd580300cd75c72c5a70c538823cdf2" + integrity sha512-0Zg62iSynyRr2QslC8dVwSo46mkKrVENnwcBvsgTJ8rfGiuRdKMX8nWm5EUEm3ohKmYLfHvyEjsKDRn//UefVw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.0.9.tgz#c5e1055af604a1e7b20ba40534cef62a69c001b2" - integrity sha512-fpbs8ZuHi2Z/uOIAxEICzQ1aYbc8Z2TOjB0PDP1RJ1kQmtlWNWxgMqV/uJ59sJO9AMYxc496msMtmOa3OByPYQ== +"@angular/compiler-cli@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.1.0.tgz#19b0d50514f4668585a09d549d21816eeaeb4576" + integrity sha512-WDpO4WvC5ItjaRexnpFpKPpT+cu+5GYkWF8h74iHhfxOgU+gaQiMWERHylWCqF25AzmhKu0iI3ZZtaIJ6qqwog== dependencies: "@babel/core" "7.23.2" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -267,62 +267,63 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.0.9.tgz#fce96ccc6cb4603978d1d95da71678b6f6a37d95" - integrity sha512-xf0JChGttVoYPh0PRV3KnbujtlNFavcYzElS6W8iW64O+2HaSxaquWnolcgL5QT1rNGp4s/TxsttloLhbqxNmw== +"@angular/compiler@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.1.0.tgz#51057f798dbce4427cd3ba628d00f8f4f30dfadb" + integrity sha512-gF4i/WtPSiSvT4YNasTNnckOxdxuSNwi0EsncrtewwveBcCatjqaXNssUCiF5TgxlC2sKTmsPcMqDJrfX2LMpw== dependencies: tslib "^2.3.0" -"@angular/core@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.0.9.tgz#407f8ee879af777f092f64886fc7b82ccf6e8b80" - integrity sha512-LtDWzyx19XNmAjXju9xjw//rDZPUFu2bllHqzS6NVO1bE4PwJHIs0zfvygh0j46ubKp1gUICNk3jvYK9FMVinA== +"@angular/core@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.1.0.tgz#69dfc831a266ba7da63e5888f64cf2c904bd8977" + integrity sha512-9OvRRZq+46S+ICZLRYIGVU2pknuPz23B+5V3jz7cDA5V43GVcMnfmAbMClPQxm7kRGnqtQ+yzBjn+HubCerE6g== dependencies: tslib "^2.3.0" -"@angular/forms@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.0.9.tgz#9edb3298714354197fc9dfaed46c40cdb646d870" - integrity sha512-UCZhJH5FCRPGmYHfKCTGbOXqz4SEs9bVkAQGwhHzhM3Bwn3cZ/LKN2UfOglIcwkqKXxKnRx+VkJ2M1KfZJAvLQ== +"@angular/forms@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.1.0.tgz#7bf2621ae89ceb5ff06310b92fbc6b0cd4b26089" + integrity sha512-JD9IAxa5gQnjzxYJXm3H+lBuyv/dCnPHl6fpvb/JGrxY6xi4gfndyI8AkAb/wOAQgZDsIPaq5s4eWDjhr7CpyA== dependencies: tslib "^2.3.0" -"@angular/localize@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.0.9.tgz#8e61af0e7491a10c0c92261aba85c485e962cf89" - integrity sha512-myLcvyzn/ShUTpbrIu4MPizCxv2RwGYOTWZBd6XwXiXu5+Kiu7mpQZ+BiElseEF6Dsw1HUgsIkbUS+hAR0GBLQ== +"@angular/localize@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.1.0.tgz#f57b0f63a9a99c18eed74f09a26603773344fcc9" + integrity sha512-GW+1F72lRnCwppu2GzGP04d3UhtdhqMHlCbBdZzQUbv8XQfU+22MOGZx/Ry8sXnanZDgH+u+2A4bvrKZPsVgZg== dependencies: "@babel/core" "7.23.2" + "@types/babel__core" "7.20.2" fast-glob "3.3.1" yargs "^17.2.1" -"@angular/platform-browser-dynamic@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.9.tgz#08b145faf325cea971cd9ce9e9dc2908ce186e1e" - integrity sha512-44wIecNzxEUi3T/bggeJsgK+iD7Snu64sqQg00ewsuFCMpaWwyC80LnTIff/QnBVoggAjXvEql6vwr3AZNTcuQ== +"@angular/platform-browser-dynamic@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.0.tgz#22efff906107764cff5cddfa1445dfccee5eabd5" + integrity sha512-rqPRZZx6VcSx81HIQr1XMBgb7fYSj6pOZNTJGZkn2KNxrz6hyU3A3qaom1VSVRK5vvNb1cFn35mg/zyOIliTIg== dependencies: tslib "^2.3.0" -"@angular/platform-browser@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.0.9.tgz#a33bcfdfa96d5ca4ba738f64c10e3bfe8a8ec84a" - integrity sha512-Edz039lTJ9tHR6VEPHXUcQHqdCXAhJcdPoWSWsUBJ30eZFx0VlxQEb4ujlz8LBgIVvthp5WYhHMjd/ueWzEINw== +"@angular/platform-browser@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.1.0.tgz#a20406f038ba965a2e802781da27f5855f41a49b" + integrity sha512-Klq92ZUX0+ZsxLvbYtIEP3GtVEfMLYPxmBP0pWNZyYIeJCg/YxPS76QSvEhBaMqFelk4RzkDQEIfixC16UIgOA== dependencies: tslib "^2.3.0" -"@angular/platform-server@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-17.0.9.tgz#322115b69765687f5c669746e9ca68afa71dbe67" - integrity sha512-d8mUwbGwOBvrUwUd1w1o4fcnzkVsajqCtAKx+b9HI4+VOrKsNzdPKxwzzEq7+zMMGQrgagC1El6Fkr+3VNRJ1g== +"@angular/platform-server@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-17.1.0.tgz#b3278b875f43d55329252290629e03f72c41aa31" + integrity sha512-UdP97SMIzNybss2GoFFAQNwSu0XdK0PbY992nDWVhwP8PAWO0aBKiVP6HyuPmw7REkKEd4gTqtQoPrcz+rAfsg== dependencies: tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.0.9.tgz#933c748773db353e5098e037fab8457ea32e7a79" - integrity sha512-kQHtPVh06g1AWA0Ntn/1Z2PX79hLwRQsTMcbU4ej1oka50C8Y97cAOMtmX9v3kqSN5fL/MEpBb44zi/X8SfPeA== +"@angular/router@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.1.0.tgz#7b9f1575667573fe62b3dbe90f6945ac21bba414" + integrity sha512-VDeVLiiS4iEwqwgsLyL9hqA1djFW3yveMnhZIwviJlnp9vG2r/ggMKhNmdP1Hb2iaNgflyhyhwafJ0gi9SLi5A== dependencies: tslib "^2.3.0" @@ -732,6 +733,11 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + "@babel/parser@^7.14.7": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" @@ -742,11 +748,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" @@ -1459,6 +1460,15 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" @@ -1477,15 +1487,6 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@babel/types@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - "@codemirror/autocomplete@^6.0.0": version "6.8.1" resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.8.1.tgz#3f3daa9f591186901db07f58d17256656242e841" @@ -2589,6 +2590,39 @@ "@tufjs/canonical-json" "2.0.0" minimatch "^9.0.3" +"@types/babel__core@7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" From 57e16ac6669b341f977ad6d685206e4355853174 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 22:06:35 +0100 Subject: [PATCH 35/36] chore(release): 0.11.3 --- CHANGELOG.md | 56 ++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- src/app/app.globals.ts | 6 ++--- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b1815cbfe..e94409ec79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,62 @@ 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.11.3](https://github.com/webern-unibas-ch/awg-app/compare/v0.11.2...v0.11.3) (2024-01-19) + + +### Features + +* **assets:** add files for M 31 ([#844](https://github.com/webern-unibas-ch/awg-app/issues/844)) ([1a5347b](https://github.com/webern-unibas-ch/awg-app/commit/1a5347b80d3a7338e988adf4d72ee4a06009dee4)) +* **edition:** add edition complex M 31 ([b66bb54](https://github.com/webern-unibas-ch/awg-app/commit/b66bb54b5aa5c9e806af8ec2d5872c0c6d9e3d6c)) +* **edition:** adjust selectSvgSheet for cross-complex linking ([81a9940](https://github.com/webern-unibas-ch/awg-app/commit/81a99408e9a0462e21f35b4e04a6a5d27a0fbc45)) + + +### Bug Fixes + +* **app:** avoid conditional expression for default assignment ([ae21c7f](https://github.com/webern-unibas-ch/awg-app/commit/ae21c7f3daa313815e8934b5c929e12812078d9b)) +* **app:** fix unexpected lexical declaration in case blocks ([ff30f8d](https://github.com/webern-unibas-ch/awg-app/commit/ff30f8d8df397c806b317df44a4ea717f4f3316b)) +* **app:** fix unnecessary use of boolean literals ([a2e999e](https://github.com/webern-unibas-ch/awg-app/commit/a2e999ec760a1a801ed82176d6abe21a27ba7c7c)) +* **app:** prefer object chaining for object checks ([e4c3749](https://github.com/webern-unibas-ch/awg-app/commit/e4c37493ab680a9f85f8ce5100ca1bc046dd5964)) +* **assets:** activate Textfassung 1 for m30 and m31 ([9ad3657](https://github.com/webern-unibas-ch/awg-app/commit/9ad36578f780d816d82881e089ae634ca7244f6f)) +* **assets:** add firm signs for m30, m31, m34, and m37 ([47692d0](https://github.com/webern-unibas-ch/awg-app/commit/47692d0aa3c9846a147a7263dc8f8d3bc2bf70cd)) +* **assets:** add linkBoxes for m30 ([2d0cf21](https://github.com/webern-unibas-ch/awg-app/commit/2d0cf21db080846302373dc9f046e14b4fbdb757)) +* **assets:** add missing data files and placeholders for m31 ([dac88d0](https://github.com/webern-unibas-ch/awg-app/commit/dac88d037ce295f505e1c2cb6955e03ffdc087b4)) +* **assets:** adjust data after changes to svg link models ([1ee7268](https://github.com/webern-unibas-ch/awg-app/commit/1ee72685f4f72886e795ad6483e21873bf861c71)) +* **assets:** adjust folio convolute for m34 and m37 ([957feb9](https://github.com/webern-unibas-ch/awg-app/commit/957feb90da833ff5acf2ec072979aae47c4a1ab9)) +* **assets:** fix folio convolute file for m30 ([d5dc23a](https://github.com/webern-unibas-ch/awg-app/commit/d5dc23a0e11388a44976978408707bb495407cb9)) +* **assets:** fix link box for m37 ([7ee69f0](https://github.com/webern-unibas-ch/awg-app/commit/7ee69f0722fa715ca4676699be6ade5dcee5d0a5)) +* **assets:** fix source descriptions for m34 and m37 ([bfd2e83](https://github.com/webern-unibas-ch/awg-app/commit/bfd2e83e120dcb261dd20d5d84f68ff3c47b7623)) +* **assets:** format textcritics files ([0db6905](https://github.com/webern-unibas-ch/awg-app/commit/0db69053d149983115980c59f3b3a8d7d4f6eb2d)) +* **assets:** rename svg file for m 31 ([6b49eae](https://github.com/webern-unibas-ch/awg-app/commit/6b49eaeca64ac6cfd7fa9fe9c6c511ce6aa4e0c0)) +* **assets:** unify naming of sources ([bbb444b](https://github.com/webern-unibas-ch/awg-app/commit/bbb444b220d17cc8814fe91238ad6d06f971b224)) +* **assets:** update files for m30, m31, and m37 ([#1308](https://github.com/webern-unibas-ch/awg-app/issues/1308)) ([e87a7e0](https://github.com/webern-unibas-ch/awg-app/commit/e87a7e06448c7ba2f7e03eae6888678ddc9e92a4)) +* **assets:** update source description for m30 ([a6ab069](https://github.com/webern-unibas-ch/awg-app/commit/a6ab069884e62bd27ec0ce0e177ee8ec5ea00934)) +* **assets:** update source evaluation for Textfassung 1 for m34 and m37 ([3b7b728](https://github.com/webern-unibas-ch/awg-app/commit/3b7b7283bf596242da777ce719d28b753a3af7d9)) +* **edition:** add graph query example for edition complexes ([fe0bce0](https://github.com/webern-unibas-ch/awg-app/commit/fe0bce0ed9dbee92987e313d5d75be0e711af693)) +* **edition:** adjust folio model for non-selectable items ([e8fb6ee](https://github.com/webern-unibas-ch/awg-app/commit/e8fb6eeced313a54c4556ca522100f8c07c31411)) +* **edition:** fix naming and formatting of graph RDF triples ([6dfd59b](https://github.com/webern-unibas-ch/awg-app/commit/6dfd59b29e285612f7671cf222c27ef564ab17ca)) +* **edition:** remove unused method from sheet viewer ([8fe1e8a](https://github.com/webern-unibas-ch/awg-app/commit/8fe1e8a79388b59933b1d9fd2a96ffd9932fb1d1)) + + +### Tests + +* **edition:** adjust tests after changes to svg link models ([08e687f](https://github.com/webern-unibas-ch/awg-app/commit/08e687f10169bf6848bb9e4ec1c11ac7fba3de3f)) + + +### Code Refactoring + +* **edition:** move tka description into separate component ([5a2fab9](https://github.com/webern-unibas-ch/awg-app/commit/5a2fab90742da512ec3f945f96bef8c8483615a7)) +* **search:** simplify methods in bibliography format pipe ([eebc87d](https://github.com/webern-unibas-ch/awg-app/commit/eebc87dde827c8e3917f0a29faa7bfbe2de8a444)) + + +### Build System + +* **deps-dev:** bump prettier from 3.1.1 to 3.2.2 ([01b85dd](https://github.com/webern-unibas-ch/awg-app/commit/01b85dd64c43ce744e70005b4359ea4e950c240b)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([06c26a9](https://github.com/webern-unibas-ch/awg-app/commit/06c26a92297113138a01b23ae7aecb17379fa295)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([01f5691](https://github.com/webern-unibas-ch/awg-app/commit/01f569174ee7fd25760e1366aa9f5eb466c1b1c9)) +* **deps:** bump the angular group with 11 updates ([d5c2895](https://github.com/webern-unibas-ch/awg-app/commit/d5c28958b1ce7d76d34b88eb7c64034adc20e6d8)) +* **deps:** bump the angular group with 11 updates ([930dd6f](https://github.com/webern-unibas-ch/awg-app/commit/930dd6fc7f838d1c7fddeac4de0882ccfa12ea67)) + ### [0.11.2](https://github.com/webern-unibas-ch/awg-app/compare/v0.11.1...v0.11.2) (2024-01-10) ### Features diff --git a/package.json b/package.json index cd10736d10..911c105a95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "awg-app", - "version": "0.11.2", + "version": "0.11.3", "license": "MIT", "author": { "name": "Stefan Münnich", diff --git a/src/app/app.globals.ts b/src/app/app.globals.ts index 05b01b3993..9ce99c0f87 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 Wed, Jan 10, 2024 9:50:54 PM +// Generated last time on Fri, Jan 19, 2024 10:06:33 PM /** * The latest version of the AWG App */ -export const appVersion = '0.11.2'; +export const appVersion = '0.11.3'; /** * The release date of the latest version of the AWG App */ -export const appVersionReleaseDate = '10. Januar 2024'; +export const appVersionReleaseDate = '19. Januar 2024'; /** * The URL of the AWG App From 42a432fc693a9fd0ba59bb4afab8f5e788b38872 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 19 Jan 2024 22:10:22 +0100 Subject: [PATCH 36/36] docs(CHANGELOG): add credits to contributors --- CHANGELOG.md | 73 ++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e94409ec79..5a519834e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,59 +4,54 @@ All notable changes to this project will be documented in this file. See [standa ### [0.11.3](https://github.com/webern-unibas-ch/awg-app/compare/v0.11.2...v0.11.3) (2024-01-19) - ### Features -* **assets:** add files for M 31 ([#844](https://github.com/webern-unibas-ch/awg-app/issues/844)) ([1a5347b](https://github.com/webern-unibas-ch/awg-app/commit/1a5347b80d3a7338e988adf4d72ee4a06009dee4)) -* **edition:** add edition complex M 31 ([b66bb54](https://github.com/webern-unibas-ch/awg-app/commit/b66bb54b5aa5c9e806af8ec2d5872c0c6d9e3d6c)) -* **edition:** adjust selectSvgSheet for cross-complex linking ([81a9940](https://github.com/webern-unibas-ch/awg-app/commit/81a99408e9a0462e21f35b4e04a6a5d27a0fbc45)) - +- **assets:** add files for M 31 ([#844](https://github.com/webern-unibas-ch/awg-app/issues/844)) ([1a5347b](https://github.com/webern-unibas-ch/awg-app/commit/1a5347b80d3a7338e988adf4d72ee4a06009dee4); thanks to [@chael-mi](https://github.com/chael-mi)) +- **edition:** add edition complex M 31 ([b66bb54](https://github.com/webern-unibas-ch/awg-app/commit/b66bb54b5aa5c9e806af8ec2d5872c0c6d9e3d6c)) +- **edition:** adjust selectSvgSheet for cross-complex linking ([81a9940](https://github.com/webern-unibas-ch/awg-app/commit/81a99408e9a0462e21f35b4e04a6a5d27a0fbc45)) ### Bug Fixes -* **app:** avoid conditional expression for default assignment ([ae21c7f](https://github.com/webern-unibas-ch/awg-app/commit/ae21c7f3daa313815e8934b5c929e12812078d9b)) -* **app:** fix unexpected lexical declaration in case blocks ([ff30f8d](https://github.com/webern-unibas-ch/awg-app/commit/ff30f8d8df397c806b317df44a4ea717f4f3316b)) -* **app:** fix unnecessary use of boolean literals ([a2e999e](https://github.com/webern-unibas-ch/awg-app/commit/a2e999ec760a1a801ed82176d6abe21a27ba7c7c)) -* **app:** prefer object chaining for object checks ([e4c3749](https://github.com/webern-unibas-ch/awg-app/commit/e4c37493ab680a9f85f8ce5100ca1bc046dd5964)) -* **assets:** activate Textfassung 1 for m30 and m31 ([9ad3657](https://github.com/webern-unibas-ch/awg-app/commit/9ad36578f780d816d82881e089ae634ca7244f6f)) -* **assets:** add firm signs for m30, m31, m34, and m37 ([47692d0](https://github.com/webern-unibas-ch/awg-app/commit/47692d0aa3c9846a147a7263dc8f8d3bc2bf70cd)) -* **assets:** add linkBoxes for m30 ([2d0cf21](https://github.com/webern-unibas-ch/awg-app/commit/2d0cf21db080846302373dc9f046e14b4fbdb757)) -* **assets:** add missing data files and placeholders for m31 ([dac88d0](https://github.com/webern-unibas-ch/awg-app/commit/dac88d037ce295f505e1c2cb6955e03ffdc087b4)) -* **assets:** adjust data after changes to svg link models ([1ee7268](https://github.com/webern-unibas-ch/awg-app/commit/1ee72685f4f72886e795ad6483e21873bf861c71)) -* **assets:** adjust folio convolute for m34 and m37 ([957feb9](https://github.com/webern-unibas-ch/awg-app/commit/957feb90da833ff5acf2ec072979aae47c4a1ab9)) -* **assets:** fix folio convolute file for m30 ([d5dc23a](https://github.com/webern-unibas-ch/awg-app/commit/d5dc23a0e11388a44976978408707bb495407cb9)) -* **assets:** fix link box for m37 ([7ee69f0](https://github.com/webern-unibas-ch/awg-app/commit/7ee69f0722fa715ca4676699be6ade5dcee5d0a5)) -* **assets:** fix source descriptions for m34 and m37 ([bfd2e83](https://github.com/webern-unibas-ch/awg-app/commit/bfd2e83e120dcb261dd20d5d84f68ff3c47b7623)) -* **assets:** format textcritics files ([0db6905](https://github.com/webern-unibas-ch/awg-app/commit/0db69053d149983115980c59f3b3a8d7d4f6eb2d)) -* **assets:** rename svg file for m 31 ([6b49eae](https://github.com/webern-unibas-ch/awg-app/commit/6b49eaeca64ac6cfd7fa9fe9c6c511ce6aa4e0c0)) -* **assets:** unify naming of sources ([bbb444b](https://github.com/webern-unibas-ch/awg-app/commit/bbb444b220d17cc8814fe91238ad6d06f971b224)) -* **assets:** update files for m30, m31, and m37 ([#1308](https://github.com/webern-unibas-ch/awg-app/issues/1308)) ([e87a7e0](https://github.com/webern-unibas-ch/awg-app/commit/e87a7e06448c7ba2f7e03eae6888678ddc9e92a4)) -* **assets:** update source description for m30 ([a6ab069](https://github.com/webern-unibas-ch/awg-app/commit/a6ab069884e62bd27ec0ce0e177ee8ec5ea00934)) -* **assets:** update source evaluation for Textfassung 1 for m34 and m37 ([3b7b728](https://github.com/webern-unibas-ch/awg-app/commit/3b7b7283bf596242da777ce719d28b753a3af7d9)) -* **edition:** add graph query example for edition complexes ([fe0bce0](https://github.com/webern-unibas-ch/awg-app/commit/fe0bce0ed9dbee92987e313d5d75be0e711af693)) -* **edition:** adjust folio model for non-selectable items ([e8fb6ee](https://github.com/webern-unibas-ch/awg-app/commit/e8fb6eeced313a54c4556ca522100f8c07c31411)) -* **edition:** fix naming and formatting of graph RDF triples ([6dfd59b](https://github.com/webern-unibas-ch/awg-app/commit/6dfd59b29e285612f7671cf222c27ef564ab17ca)) -* **edition:** remove unused method from sheet viewer ([8fe1e8a](https://github.com/webern-unibas-ch/awg-app/commit/8fe1e8a79388b59933b1d9fd2a96ffd9932fb1d1)) - +- **app:** avoid conditional expression for default assignment ([ae21c7f](https://github.com/webern-unibas-ch/awg-app/commit/ae21c7f3daa313815e8934b5c929e12812078d9b)) +- **app:** fix unexpected lexical declaration in case blocks ([ff30f8d](https://github.com/webern-unibas-ch/awg-app/commit/ff30f8d8df397c806b317df44a4ea717f4f3316b)) +- **app:** fix unnecessary use of boolean literals ([a2e999e](https://github.com/webern-unibas-ch/awg-app/commit/a2e999ec760a1a801ed82176d6abe21a27ba7c7c)) +- **app:** prefer object chaining for object checks ([e4c3749](https://github.com/webern-unibas-ch/awg-app/commit/e4c37493ab680a9f85f8ce5100ca1bc046dd5964)) +- **assets:** activate Textfassung 1 for m30 and m31 ([9ad3657](https://github.com/webern-unibas-ch/awg-app/commit/9ad36578f780d816d82881e089ae634ca7244f6f)) +- **assets:** add firm signs for m30, m31, m34, and m37 ([47692d0](https://github.com/webern-unibas-ch/awg-app/commit/47692d0aa3c9846a147a7263dc8f8d3bc2bf70cd)) +- **assets:** add linkBoxes for m30 ([2d0cf21](https://github.com/webern-unibas-ch/awg-app/commit/2d0cf21db080846302373dc9f046e14b4fbdb757)) +- **assets:** add missing data files and placeholders for m31 ([dac88d0](https://github.com/webern-unibas-ch/awg-app/commit/dac88d037ce295f505e1c2cb6955e03ffdc087b4)) +- **assets:** adjust data after changes to svg link models ([1ee7268](https://github.com/webern-unibas-ch/awg-app/commit/1ee72685f4f72886e795ad6483e21873bf861c71)) +- **assets:** adjust folio convolute for m34 and m37 ([957feb9](https://github.com/webern-unibas-ch/awg-app/commit/957feb90da833ff5acf2ec072979aae47c4a1ab9)) +- **assets:** fix folio convolute file for m30 ([d5dc23a](https://github.com/webern-unibas-ch/awg-app/commit/d5dc23a0e11388a44976978408707bb495407cb9)) +- **assets:** fix link box for m37 ([7ee69f0](https://github.com/webern-unibas-ch/awg-app/commit/7ee69f0722fa715ca4676699be6ade5dcee5d0a5)) +- **assets:** fix source descriptions for m34 and m37 ([bfd2e83](https://github.com/webern-unibas-ch/awg-app/commit/bfd2e83e120dcb261dd20d5d84f68ff3c47b7623)) +- **assets:** format textcritics files ([0db6905](https://github.com/webern-unibas-ch/awg-app/commit/0db69053d149983115980c59f3b3a8d7d4f6eb2d)) +- **assets:** rename svg file for m 31 ([6b49eae](https://github.com/webern-unibas-ch/awg-app/commit/6b49eaeca64ac6cfd7fa9fe9c6c511ce6aa4e0c0)) +- **assets:** unify naming of sources ([bbb444b](https://github.com/webern-unibas-ch/awg-app/commit/bbb444b220d17cc8814fe91238ad6d06f971b224)) +- **assets:** update files for m30, m31, and m37 ([#1308](https://github.com/webern-unibas-ch/awg-app/issues/1308)) ([e87a7e0](https://github.com/webern-unibas-ch/awg-app/commit/e87a7e06448c7ba2f7e03eae6888678ddc9e92a4)) +- **assets:** update source description for m30 ([a6ab069](https://github.com/webern-unibas-ch/awg-app/commit/a6ab069884e62bd27ec0ce0e177ee8ec5ea00934)) +- **assets:** update source evaluation for Textfassung 1 for m34 and m37 ([3b7b728](https://github.com/webern-unibas-ch/awg-app/commit/3b7b7283bf596242da777ce719d28b753a3af7d9)) +- **edition:** add graph query example for edition complexes ([fe0bce0](https://github.com/webern-unibas-ch/awg-app/commit/fe0bce0ed9dbee92987e313d5d75be0e711af693)) +- **edition:** adjust folio model for non-selectable items ([e8fb6ee](https://github.com/webern-unibas-ch/awg-app/commit/e8fb6eeced313a54c4556ca522100f8c07c31411)) +- **edition:** fix naming and formatting of graph RDF triples ([6dfd59b](https://github.com/webern-unibas-ch/awg-app/commit/6dfd59b29e285612f7671cf222c27ef564ab17ca)) +- **edition:** remove unused method from sheet viewer ([8fe1e8a](https://github.com/webern-unibas-ch/awg-app/commit/8fe1e8a79388b59933b1d9fd2a96ffd9932fb1d1)) ### Tests -* **edition:** adjust tests after changes to svg link models ([08e687f](https://github.com/webern-unibas-ch/awg-app/commit/08e687f10169bf6848bb9e4ec1c11ac7fba3de3f)) - +- **edition:** adjust tests after changes to svg link models ([08e687f](https://github.com/webern-unibas-ch/awg-app/commit/08e687f10169bf6848bb9e4ec1c11ac7fba3de3f)) ### Code Refactoring -* **edition:** move tka description into separate component ([5a2fab9](https://github.com/webern-unibas-ch/awg-app/commit/5a2fab90742da512ec3f945f96bef8c8483615a7)) -* **search:** simplify methods in bibliography format pipe ([eebc87d](https://github.com/webern-unibas-ch/awg-app/commit/eebc87dde827c8e3917f0a29faa7bfbe2de8a444)) - +- **edition:** move tka description into separate component ([5a2fab9](https://github.com/webern-unibas-ch/awg-app/commit/5a2fab90742da512ec3f945f96bef8c8483615a7)) +- **search:** simplify methods in bibliography format pipe ([eebc87d](https://github.com/webern-unibas-ch/awg-app/commit/eebc87dde827c8e3917f0a29faa7bfbe2de8a444)) ### Build System -* **deps-dev:** bump prettier from 3.1.1 to 3.2.2 ([01b85dd](https://github.com/webern-unibas-ch/awg-app/commit/01b85dd64c43ce744e70005b4359ea4e950c240b)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([06c26a9](https://github.com/webern-unibas-ch/awg-app/commit/06c26a92297113138a01b23ae7aecb17379fa295)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([01f5691](https://github.com/webern-unibas-ch/awg-app/commit/01f569174ee7fd25760e1366aa9f5eb466c1b1c9)) -* **deps:** bump the angular group with 11 updates ([d5c2895](https://github.com/webern-unibas-ch/awg-app/commit/d5c28958b1ce7d76d34b88eb7c64034adc20e6d8)) -* **deps:** bump the angular group with 11 updates ([930dd6f](https://github.com/webern-unibas-ch/awg-app/commit/930dd6fc7f838d1c7fddeac4de0882ccfa12ea67)) +- **deps-dev:** bump prettier from 3.1.1 to 3.2.2 ([01b85dd](https://github.com/webern-unibas-ch/awg-app/commit/01b85dd64c43ce744e70005b4359ea4e950c240b)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([06c26a9](https://github.com/webern-unibas-ch/awg-app/commit/06c26a92297113138a01b23ae7aecb17379fa295)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([01f5691](https://github.com/webern-unibas-ch/awg-app/commit/01f569174ee7fd25760e1366aa9f5eb466c1b1c9)) +- **deps:** bump the angular group with 11 updates ([d5c2895](https://github.com/webern-unibas-ch/awg-app/commit/d5c28958b1ce7d76d34b88eb7c64034adc20e6d8)) +- **deps:** bump the angular group with 11 updates ([930dd6f](https://github.com/webern-unibas-ch/awg-app/commit/930dd6fc7f838d1c7fddeac4de0882ccfa12ea67)) ### [0.11.2](https://github.com/webern-unibas-ch/awg-app/compare/v0.11.1...v0.11.2) (2024-01-10)