From d63027bba92972be7509a8293bbc95c36ef40c50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 08:58:30 +0200 Subject: [PATCH 01/43] Bump postcss from 8.5.15 to 8.5.23 in /packages/openslides-motion-diff (#6440) --- packages/openslides-motion-diff/package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/openslides-motion-diff/package-lock.json b/packages/openslides-motion-diff/package-lock.json index f781f2e6f2..21ce82a4c8 100644 --- a/packages/openslides-motion-diff/package-lock.json +++ b/packages/openslides-motion-diff/package-lock.json @@ -1654,9 +1654,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -1756,9 +1756,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -1776,7 +1776,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, From 519ab125367eca1db7f96a791b7c30288c32abbf Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 27 Jul 2026 09:47:21 +0200 Subject: [PATCH 02/43] Update account-detail and user-detail (#6438) --- .../user-detail-view.component.html | 42 +++++----- .../user-detail-view.component.ts | 81 +++++++++---------- .../account-detail.component.ts | 26 +++--- 3 files changed, 67 insertions(+), 82 deletions(-) diff --git a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.html b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.html index 91d951780a..90fd4ea93b 100644 --- a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.html +++ b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.html @@ -1,12 +1,12 @@ -
+
@if (isEditing) { - @if (useMatcard) { + @if (useMatcard()) { - @if (editView && useAdditionalEditTemplate) { + @if (editView && useAdditionalEditTemplate()) { @@ -14,9 +14,9 @@ } } - @if (!useMatcard) { + @if (!useMatcard()) { - @if (editView && useAdditionalEditTemplate) { + @if (editView && useAdditionalEditTemplate()) { @@ -41,7 +41,7 @@ } } } - @if (!useMatcard) { + @if (!useMatcard()) { @if (showView) { @for (showViewElement of showView; track showViewElement) { @@ -59,7 +59,7 @@

{{ 'Personal information' | translate }}

- @if (!isAccountSelfUpdate) { + @if (!isAccountSelfUpdate()) {
@@ -82,7 +82,7 @@

{{ 'Personal information' | translate }}

- @if (disableGenderField) { + @if (disableGenderField()) { {{ 'Gender' | translate }} @@ -113,8 +113,8 @@

{{ 'Personal information' | translate }}

{{ 'Email' | translate }} @@ -126,7 +126,7 @@

{{ 'Personal information' | translate }}

}
- @if (isAllowed('update') && !isAccountSelfUpdate) { + @if (isAllowed('update') && !isAccountSelfUpdate()) { {{ 'Membership number' | translate }} @@ -141,13 +141,13 @@

{{ 'Personal information' | translate }}

{{ 'Username' | translate }} - @if (isNewUser) { + @if (isNewUser()) { } - @if (isNewUser) { + @if (isNewUser()) {
- @if (isAllowed('seeName') && !isAccountSelfUpdate) { + @if (isAllowed('seeName') && !isAccountSelfUpdate()) {
@if (!isSelf) { {{ 'active' | translate }} @@ -210,7 +210,7 @@

{{ 'Personal information' | translate }}

-

{{ 'Personal information' | translate }}

+

{{ 'Personal information' | translate }}

@if (user) { @if (isAllowed('seeName')) { diff --git a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts index 33637c5809..8a0d8831e7 100644 --- a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts +++ b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts @@ -6,7 +6,9 @@ import { ContentChild, ContentChildren, EventEmitter, + inject, Input, + input, OnInit, Output, QueryList, @@ -66,9 +68,6 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, return this._user; } - @Input() - public isNewUser = false; - @Input() public set isEditing(is: boolean) { this._isEditing = is; @@ -81,15 +80,6 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, return this._isEditing; } - @Input() - public useMatcard = true; - - @Input() - public useBottomMargin = true; - - @Input() - public useAdditionalEditTemplate = true; - @Input() public set additionalFormControls(controls: any) { this._additionalFormControls = controls; @@ -105,23 +95,25 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, this.prepareForm(); } - @Input() - public isAccountSelfUpdate = false; + public readonly generatePasswordFn = input<(() => string) | null | undefined>(null); - @Input() - public patchFormValueFn: (controlName: string, user?: ViewUser) => any | null = () => {}; + public readonly isNewUser = input(false); - @Input() - public isAllowedFn: (permission: string) => boolean = () => true; + public readonly useMatcard = input(true); - @Input() - public generatePasswordFn: (() => string) | null | undefined; + public readonly useBottomMargin = input(true); - @Input() - public shouldEnableFormControlFn: (controlName: string) => boolean = () => true; + public readonly useAdditionalEditTemplate = input(true); - @Input() - public disableGenderField = false; + public readonly isAccountSelfUpdate = input(false); + + public readonly patchFormValueFn = input<(controlName: string, user?: ViewUser) => any | null>(() => {}); + + public readonly isAllowedFn = input<(permission: string) => boolean>(() => true); + + public readonly shouldEnableFormControlFn = input<(controlName: string) => boolean>(() => true); + + public readonly disableGenderField = input(false); @Output() public changeEvent = new EventEmitter(); @@ -176,41 +168,37 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, private selfUpdateEnabled = false; - public constructor( - private fb: UntypedFormBuilder, - private operator: OperatorService, - public genderRepo: GenderControllerService, - private cd: ChangeDetectorRef, - private translate: TranslateService - ) { - super(); - } + public genderRepo = inject(GenderControllerService); + private fb = inject(UntypedFormBuilder); + private operator = inject(OperatorService); + private cd = inject(ChangeDetectorRef); + private translate = inject(TranslateService); public ngOnInit(): void { this.subscriptions.push( this.operator.operatorUpdated.subscribe(() => - this.updateFormControlsAccessibility(this.shouldEnableFormControlFn) + this.updateFormControlsAccessibility(this.shouldEnableFormControlFn()) ) ); } public ngAfterViewInit(): void { - this.updateFormControlsAccessibility(this.shouldEnableFormControlFn); + this.updateFormControlsAccessibility(this.shouldEnableFormControlFn()); this.cd.detectChanges(); } public update(): void { - this.updateFormControlsAccessibility(this.shouldEnableFormControlFn); + this.updateFormControlsAccessibility(this.shouldEnableFormControlFn()); } public isAllowed(permission: string): boolean { - return this.isAllowedFn(permission); + return this.isAllowedFn()(permission); } public setRandomPassword(): void { - if (this.generatePasswordFn) { + if (this.generatePasswordFn()) { this.personalInfoForm.patchValue({ - default_password: this.generatePasswordFn() + default_password: this.generatePasswordFn()() }); } } @@ -232,7 +220,7 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, private enterEditMode(): void { this.prepareForm(); - this.updateFormControlsAccessibility(this.shouldEnableFormControlFn); + this.updateFormControlsAccessibility(this.shouldEnableFormControlFn()); if (this.user) { this.patchFormValues(); } @@ -299,11 +287,11 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, }); this.personalInfoForm.patchValue(personalInfoPatch); this._initialState = personalInfoPatch; - this.updateFormControlsAccessibility(this.shouldEnableFormControlFn); + this.updateFormControlsAccessibility(this.shouldEnableFormControlFn()); } private getFormValuePatch(controlName: keyof ViewUser): any { - let patchValue = this.patchFormValueFn(controlName, this.user!); + let patchValue = this.patchFormValueFn()(controlName, this.user!); if (!patchValue) { const userValue = this.user![controlName] as () => unknown | string; patchValue = typeof userValue === `function` ? userValue.call(this.user) : userValue; @@ -340,7 +328,10 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, private getCreateFormControlsConfig(): Record { return { - username: [``, this.isNewUser ? [this.noSpaceValidator()] : [Validators.required, this.noSpaceValidator()]], + username: [ + ``, + this.isNewUser() ? [this.noSpaceValidator()] : [Validators.required, this.noSpaceValidator()] + ], pronoun: [``, Validators.maxLength(32)], title: [``], first_name: [``], @@ -361,7 +352,7 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, // setTimeout prevents 'ExpressionChangedAfterItHasBeenChecked'-error const changes = this.getChangedValues(this.personalInfoForm.value); this.changeEvent.emit(changes); - this.validEvent.emit(this.personalInfoForm.valid && (this.isNewUser || this._hasChanges)); + this.validEvent.emit(this.personalInfoForm.valid && (this.isNewUser() || this._hasChanges)); this.errorEvent.emit(this.personalInfoForm.errors); }); } @@ -383,7 +374,7 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, } private getChangedValues(formData: Record): Record { - const data = this.useAdditionalEditTemplate + const data = this.useAdditionalEditTemplate() ? formData : Object.keys(formData).mapToObject(key => Object.keys(this._additionalFormControls ?? {}).includes(key) ? {} : { [key]: formData[key] } diff --git a/client/src/app/site/pages/organization/pages/accounts/pages/account-detail/components/account-detail/account-detail.component.ts b/client/src/app/site/pages/organization/pages/accounts/pages/account-detail/components/account-detail/account-detail.component.ts index 27c94c737f..d35c70d248 100644 --- a/client/src/app/site/pages/organization/pages/accounts/pages/account-detail/components/account-detail/account-detail.component.ts +++ b/client/src/app/site/pages/organization/pages/accounts/pages/account-detail/components/account-detail/account-detail.component.ts @@ -1,5 +1,5 @@ import { KeyValue } from '@angular/common'; -import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, inject, OnInit, ViewChild } from '@angular/core'; import { Validators } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; import { Id } from '@app/domain/definitions/key-types'; @@ -12,7 +12,6 @@ import { OpenSlidesRouterService } from '@app/site/services/openslides-router.se import { OperatorService } from '@app/site/services/operator.service'; import { UserControllerService } from '@app/site/services/user-controller.service'; import { PromptService } from '@app/ui/modules/prompt-dialog'; -import { TranslateService } from '@ngx-translate/core'; import { ViewCommittee } from '../../../../../committees'; import { getCommitteeListMinimalSubscriptionConfig } from '../../../../../committees/committees.subscription'; @@ -147,20 +146,15 @@ export class AccountDetailComponent extends BaseComponent implements OnInit { private _tableData: ParticipationTableData = {}; private _numCommittees = 0; - public constructor( - protected override translate: TranslateService, - private route: ActivatedRoute, - private osRouter: OpenSlidesRouterService, - private operator: OperatorService, - public readonly committeeController: CommitteeControllerService, - public readonly committeeSortService: CommitteeSortService, - private accountController: AccountControllerService, - private userController: UserControllerService, - private promptService: PromptService, - private scopePresenter: GetUserScopePresenterService - ) { - super(); - } + public readonly committeeController = inject(CommitteeControllerService); + public readonly committeeSortService = inject(CommitteeSortService); + private route = inject(ActivatedRoute); + private osRouter = inject(OpenSlidesRouterService); + private operator = inject(OperatorService); + private accountController = inject(AccountControllerService); + private userController = inject(UserControllerService); + private promptService = inject(PromptService); + private scopePresenter = inject(GetUserScopePresenterService); public ngOnInit(): void { this.getUserByUrl(); From f58a3864b2f9075ae03382d8b53459cb69142b79 Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 27 Jul 2026 09:49:27 +0200 Subject: [PATCH 03/43] Fix livestream double audio (#6437) --- .../components/video-player/video-player.component.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/client/src/app/site/pages/meetings/pages/interaction/modules/interaction-container/components/video-player/video-player.component.ts b/client/src/app/site/pages/meetings/pages/interaction/modules/interaction-container/components/video-player/video-player.component.ts index 7eba8222a4..b501a21c0a 100644 --- a/client/src/app/site/pages/meetings/pages/interaction/modules/interaction-container/components/video-player/video-player.component.ts +++ b/client/src/app/site/pages/meetings/pages/interaction/modules/interaction-container/components/video-player/video-player.component.ts @@ -8,7 +8,7 @@ import { Input, OnDestroy, Output, - ViewChild, + viewChild, ViewEncapsulation } from '@angular/core'; import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; @@ -42,8 +42,7 @@ enum Player { standalone: false }) export class VideoPlayerComponent implements AfterViewInit, OnDestroy { - @ViewChild(`vjs`, { static: false }) - private vjsPlayerElementRef!: ElementRef; + private vjsPlayerElementRef = viewChild(`vjs`); private _videoUrl!: string; @@ -267,7 +266,11 @@ export class VideoPlayerComponent implements AfterViewInit, OnDestroy { await this.isUrlReachable(); if (!this.vjsPlayer && this.usingVjs && this.vjsPlayerElementRef) { const videojs = (await import(`video.js`)).default; - this.vjsPlayer = videojs(this.vjsPlayerElementRef.nativeElement, { + const vjsEl = this.vjsPlayerElementRef().nativeElement; + if (!vjsEl?.isConnected) { + return; + } + this.vjsPlayer = videojs(vjsEl, { textTrackSettings: { persistTextTrackSettings: false }, fluid: true, autoplay: `any`, From 860caf21b25379a24c892f8bc1870bb0fcd577f5 Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 27 Jul 2026 09:52:49 +0200 Subject: [PATCH 04/43] Fix checkbox with reason width in amendment (#6410) --- .../motion-content/motion-content.component.html | 8 +++++--- .../motion-content/motion-content.component.scss | 6 ++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html index 9fa22beebf..8eb1f064ae 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html @@ -61,11 +61,13 @@
} -
+
@if (showReason) {
-

{{ 'Reason' | translate }}

+

+ {{ 'Reason' | translate }} +

} @@ -75,7 +77,7 @@

{{ 'Reason' | translate }}

-

+

{{ 'Attachments' | translate }} attach_file

diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss index e246d0033f..a840605c3a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss @@ -5,10 +5,8 @@ margin-top: 10px; } -.motion-content { - h3 { - font-weight: bold; - } +.motion-h3 { + font-weight: bold; } .attachment-entry { From 732d635bdb9cb1566d3687165e1c54106c29e54a Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 27 Jul 2026 10:00:48 +0200 Subject: [PATCH 05/43] Add aria labels for badges (#6416) --- .../speaker-button.component.html | 30 ++++++++++++------- ...meetings-navigation-wrapper.component.html | 2 ++ .../autopilot/autopilot.component.html | 2 ++ .../chat-group-list.component.html | 4 +++ .../action-bar/action-bar.component.html | 2 ++ .../motion-call-list.component.html | 4 +++ .../motion-detail-diff-summary.component.html | 7 ++++- .../motion-list/motion-list.component.html | 4 +++ .../committee-meeting-preview.component.html | 4 +++ .../sort-filter-bar.component.html | 14 ++++++++- 10 files changed, 61 insertions(+), 12 deletions(-) diff --git a/client/src/app/site/pages/meetings/modules/meetings-component-collector/speaker-button/components/speaker-button/speaker-button.component.html b/client/src/app/site/pages/meetings/modules/meetings-component-collector/speaker-button/components/speaker-button/speaker-button.component.html index d71082a807..12ef8bd86b 100644 --- a/client/src/app/site/pages/meetings/modules/meetings-component-collector/speaker-button/components/speaker-button/speaker-button.component.html +++ b/client/src/app/site/pages/meetings/modules/meetings-component-collector/speaker-button/components/speaker-button/speaker-button.component.html @@ -11,16 +11,26 @@ type="button" [disabled]="disabled" > - - {{ listOfSpeakers.closed ? 'voice_over_off' : 'record_voice_over' }} - + @if (canSee) { + + {{ listOfSpeakers.closed ? 'voice_over_off' : 'record_voice_over' }} + + } @else { + + {{ listOfSpeakers.closed ? 'voice_over_off' : 'record_voice_over' }} + + } } @else {
diff --git a/client/src/app/site/pages/meetings/pages/interaction/modules/action-bar/components/action-bar/action-bar.component.html b/client/src/app/site/pages/meetings/pages/interaction/modules/action-bar/components/action-bar/action-bar.component.html index 122838ca2e..7aa5b716fb 100644 --- a/client/src/app/site/pages/meetings/pages/interaction/modules/action-bar/components/action-bar/action-bar.component.html +++ b/client/src/app/site/pages/meetings/pages/interaction/modules/action-bar/components/action-bar/action-bar.component.html @@ -61,6 +61,8 @@ class="action-bar-shadow background-default" mat-mini-fab matTooltip="{{ 'Give applause' | translate }}" + [attr.aria-hidden]="false" + [attr.aria-label]="('Amount of applause' | translate) + ': ' + (applauseLevel | async)" [disabled]="sendsApplause | async" [matBadge]="applauseLevel | async" [matBadgeHidden]="(showApplauseLevel | async) === false" diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.html index 1e313a28c6..d5c9f96f55 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.html @@ -35,6 +35,8 @@

Call list

@@ -49,6 +51,8 @@

Call list

diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html index c10d411b28..6b42f94dc7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html @@ -1,7 +1,12 @@ @if (changes?.length) {
- + {{ 'Summary of changes' | translate }}  Motions
diff --git a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html index af9a5060bd..0f671d4625 100644 --- a/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html +++ b/client/src/app/site/pages/organization/pages/committees/modules/committee-meeting-preview/committee-meeting-preview.component.html @@ -103,6 +103,8 @@
} - @for (filter of filterService?.filterStack || []; track filter) { + @for (filter of filterService?.filterStack || []; track filter.option) {
} @@ -25,7 +25,7 @@ @if (showLongpollingIcon) {
- sync_problem + sync_problem
} diff --git a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss index 2143e2fc32..3130f25076 100644 --- a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss +++ b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss @@ -46,7 +46,7 @@ } .adjust-icon { - margin-left: -1px; + margin-left: -16px; margin-top: -3px; transform: scale(0.75); } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.html index 9d0c7fb958..5f5be6b8f4 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.html @@ -52,7 +52,7 @@

Motion blocks

- + {{ getMotionAmount(block) }}
diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.html index 11d58afb41..a9785353ec 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.html @@ -27,13 +27,13 @@

Tags

diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/tags/tags.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/tags/tags.module.ts index c88de563e9..6acb7cf48c 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/tags/tags.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/tags/tags.module.ts @@ -6,6 +6,7 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { OpenSlidesTranslationModule } from '@app/site/modules/translations'; import { HeadBarModule } from '@app/ui/modules/head-bar'; import { ListModule } from '@app/ui/modules/list'; @@ -23,6 +24,7 @@ import { TagsRoutingModule } from './tags-routing.module'; MatButtonModule, MatInputModule, MatDialogModule, + MatTooltipModule, ReactiveFormsModule, HeadBarModule, ListModule, diff --git a/client/src/app/site/pages/meetings/pages/projectors/modules/projector-list/components/projector-list-entry/projector-list-entry.component.html b/client/src/app/site/pages/meetings/pages/projectors/modules/projector-list/components/projector-list-entry/projector-list-entry.component.html index 36ba7891d3..1a75331fe7 100644 --- a/client/src/app/site/pages/meetings/pages/projectors/modules/projector-list/components/projector-list-entry/projector-list-entry.component.html +++ b/client/src/app/site/pages/meetings/pages/projectors/modules/projector-list/components/projector-list-entry/projector-list-entry.component.html @@ -16,7 +16,10 @@ - -
} diff --git a/client/src/app/site/pages/organization/pages/organization-tags/pages/organization-tag-list/organization-tag-list.module.ts b/client/src/app/site/pages/organization/pages/organization-tags/pages/organization-tag-list/organization-tag-list.module.ts index 6fecb178a8..677432537e 100644 --- a/client/src/app/site/pages/organization/pages/organization-tags/pages/organization-tag-list/organization-tag-list.module.ts +++ b/client/src/app/site/pages/organization/pages/organization-tags/pages/organization-tag-list/organization-tag-list.module.ts @@ -4,6 +4,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatDividerModule } from '@angular/material/divider'; import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule } from '@angular/material/menu'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { OpenSlidesTranslationModule } from '@app/site/modules/translations'; import { ChipComponent } from '@app/ui/modules/chip'; import { HeadBarModule } from '@app/ui/modules/head-bar/head-bar.module'; @@ -26,6 +27,7 @@ import { OrganizationTagListRoutingModule } from './organization-tag-list-routin MatIconModule, MatMenuModule, MatButtonModule, + MatTooltipModule, MatDividerModule ] }) From 1ee9e9113dc3698a92c70eb6dfb33508127c7222 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 13:03:19 +0200 Subject: [PATCH 07/43] Bump the angular group in /client with 16 updates (#6450) --- client/package-lock.json | 230 +++++++++++++++++++-------------------- client/package.json | 32 +++--- 2 files changed, 131 insertions(+), 131 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 484899d106..c47e4a4f2e 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,18 +9,18 @@ "version": "4.2.x-dev", "license": "MIT", "dependencies": { - "@angular/animations": "^22.0.7", - "@angular/cdk": "^22.0.5", - "@angular/common": "^22.0.7", - "@angular/compiler": "^22.0.7", - "@angular/core": "^22.0.7", - "@angular/forms": "^22.0.7", - "@angular/material": "^22.0.5", - "@angular/material-date-fns-adapter": "^22.0.5", - "@angular/platform-browser": "^22.0.7", - "@angular/platform-browser-dynamic": "^22.0.7", - "@angular/router": "^22.0.7", - "@angular/service-worker": "^22.0.7", + "@angular/animations": "^22.0.8", + "@angular/cdk": "^22.0.6", + "@angular/common": "^22.0.8", + "@angular/compiler": "^22.0.8", + "@angular/core": "^22.0.8", + "@angular/forms": "^22.0.8", + "@angular/material": "^22.0.6", + "@angular/material-date-fns-adapter": "^22.0.6", + "@angular/platform-browser": "^22.0.8", + "@angular/platform-browser-dynamic": "^22.0.8", + "@angular/router": "^22.0.8", + "@angular/service-worker": "^22.0.8", "@cantoo/pdf-lib": "^2.7.4", "@coreui/angular-chartjs": "~5.7.6", "@coreui/chartjs": "^4.1.0", @@ -80,10 +80,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.7", - "@angular/cli": "^22.0.7", - "@angular/compiler-cli": "^22.0.7", - "@angular/language-server": "^22.0.7", + "@angular/build": "^22.0.8", + "@angular/cli": "^22.0.8", + "@angular/compiler-cli": "^22.0.8", + "@angular/language-server": "^22.0.8", "@stylistic/eslint-plugin": "^5.10.0", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.15", @@ -362,13 +362,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2200.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2200.7.tgz", - "integrity": "sha512-t03YYe5amlcpsX5gpMGi96kpBNTMKY7/rJsRDNO3v98mSy7kzNXlgzy/jyfdFev7AJusuwVM5TKVsUAgQxCgCw==", + "version": "0.2200.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2200.8.tgz", + "integrity": "sha512-LFKK2v96nO0ESM9nftlCkTy+O/66AxNkwUpG+Q1er7LLNR2S8UReZnQ1/RhMkldCWxsmp2rQzdgHWnubaY/ZfA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", + "@angular-devkit/core": "22.0.8", "rxjs": "7.8.2" }, "bin": { @@ -381,9 +381,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.0.7.tgz", - "integrity": "sha512-r8XiflsVYcsvWp+zVvaNv5GsDoihaZ2OwWfn++N6YqTUZLcqDzqhsxeNk60sJ5V+Jn4ck1aKF4A9flmvSY+tpQ==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.0.8.tgz", + "integrity": "sha512-Hnr4SCkxQM+xtq4uERC09qwTZpt97t4CwDZYzv/HbQA4pMYDfTxvIRHCyl+UHf4NbkC7ZVgyiab+KzTfuc609Q==", "dev": true, "license": "MIT", "dependencies": { @@ -409,13 +409,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.0.7.tgz", - "integrity": "sha512-bKgnBB0LPAj44uVXfW0UO1rQBb3HGXDZxa1bLtESr/KCK4j5iiaXlHqvJjc/z0em1Ds9WNQOfNXjV3IdJo9sSw==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.0.8.tgz", + "integrity": "sha512-9WjTKnW/5oIw4hNNcd0rSYtgHRrHKKAkG6+bdLqTCY68P2brO2yEJM2JjYtMYk/WSovknb0GxUP4n3dY3IxPug==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", + "@angular-devkit/core": "22.0.8", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", "ora": "9.4.0", @@ -569,9 +569,9 @@ } }, "node_modules/@angular/animations": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.0.7.tgz", - "integrity": "sha512-Q9PS2SYyvY4/K90GGy4+F0X7X7YmEfzKOw3eGgJ+6MnpVFo2kII2WK/bI5spr3PWNrn/TvNNNqP//c8BNX2Lbg==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.0.8.tgz", + "integrity": "sha512-hdBlckl5mARzuc5gt2siydIAxeJbBiRneg8V0kazEDH6xNkNp/1siro68ZaHgTY5dCUEOec/eC4zbhB8AlSLhQ==", "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", "license": "MIT", "dependencies": { @@ -581,18 +581,18 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.7" + "@angular/core": "22.0.8" } }, "node_modules/@angular/build": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.0.7.tgz", - "integrity": "sha512-cm/QJmrIgsjzZJeBeqeNwgdgK6BGBKk7ca21jnSsrwlae3F9u1E8cImFbLeZSjEGghx4wFUacFDG+6lFEICntw==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.0.8.tgz", + "integrity": "sha512-QJVVTROVb27Ixk+RU4FSKwwyRbLdtNH20zFm1CwOKzA0wQHrWfxHTqlwMhnTOsOt5Cb3eX+6IjDXoGmAfJ81mA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2200.7", + "@angular-devkit/architect": "0.2200.8", "@babel/core": "7.29.7", "@babel/helper-annotate-as-pure": "7.29.7", "@babel/helper-split-export-declaration": "7.24.7", @@ -614,7 +614,7 @@ "semver": "7.7.4", "source-map-support": "0.5.21", "tinyglobby": "0.2.16", - "vite": "7.3.5", + "vite": "7.3.6", "watchpack": "2.5.1" }, "engines": { @@ -633,7 +633,7 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-server": "^22.0.0", "@angular/service-worker": "^22.0.0", - "@angular/ssr": "^22.0.7", + "@angular/ssr": "^22.0.8", "istanbul-lib-instrument": "^6.0.0", "karma": "^6.4.0", "less": "^4.2.0", @@ -1195,9 +1195,9 @@ } }, "node_modules/@angular/cdk": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.0.5.tgz", - "integrity": "sha512-qy1scYkkhedGxrU2GjOUoh76xjsxCDOODWdVfg4aXLXG7RBIH6hOuKdcNpR/sWhfSdY02a11QYRN2CqoqWDvZQ==", + "version": "22.0.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.0.6.tgz", + "integrity": "sha512-b36f4b+7yQpuulG9Ai2O38SV2tsqyNeYTYCH9TehMir18XlTx+NtLELwA8Sfi24tHByJHEDADQZtHPWWUj71/w==", "license": "MIT", "dependencies": { "parse5": "^8.0.0", @@ -1211,19 +1211,19 @@ } }, "node_modules/@angular/cli": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.0.7.tgz", - "integrity": "sha512-5r+fgP8ARnXZeylAGt5BuToVcR8Vn2QQZ6dPMe7V9o4NdvJqqOKmE7fEiRe7KaxIx5WSDhuAhgW9t+scLZQbvw==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.0.8.tgz", + "integrity": "sha512-kefbTsmf7sEmW5g3NIRvH0OrM18I1jjZHlB9KABgRQhsDfD/WgfLt6aSLJQeFDlAOs+ehDPzzOwd9l48wyBlFQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2200.7", - "@angular-devkit/core": "22.0.7", - "@angular-devkit/schematics": "22.0.7", + "@angular-devkit/architect": "0.2200.8", + "@angular-devkit/core": "22.0.8", + "@angular-devkit/schematics": "22.0.8", "@inquirer/prompts": "8.4.2", "@listr2/prompt-adapter-inquirer": "4.2.3", "@modelcontextprotocol/sdk": "1.29.0", - "@schematics/angular": "22.0.7", + "@schematics/angular": "22.0.8", "@yarnpkg/lockfile": "1.1.0", "algoliasearch": "5.52.0", "ini": "6.0.0", @@ -1246,9 +1246,9 @@ } }, "node_modules/@angular/common": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.0.7.tgz", - "integrity": "sha512-iun8auXVnpPzunhtaPHMF0gSpByxv7kHhG3Nb6r34eJITW5p06LYyZbkAnl5ERArmgQvEV4pTjoo7ZTK3cJzzw==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.0.8.tgz", + "integrity": "sha512-FnwkXndUgAyWk1/p5flMfocIUtuuneJ01mxC1FxRc5/bdWTyNVeQDsM9Lw4PEAPc0AHu//EnblegRq8o6LGdUQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1257,14 +1257,14 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.7", + "@angular/core": "22.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.0.7.tgz", - "integrity": "sha512-zhFPKYJzpml5bt58DkJq8S6S2bSJBomebgLYtUvZNLdQMicd5qmRGX6I3LO7Jd+HgjB2Flne/sloI+Jcyz1aOQ==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.0.8.tgz", + "integrity": "sha512-ot7rvntfkZsPHmp8yl6PWUj/yG4e50X0+YeR7QYy/rEYKBiIg91w8GwjxSzaF4g5+bzJGDv7l/XnachKm0IySg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1274,9 +1274,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.0.7.tgz", - "integrity": "sha512-/3HjBJUzljyPgb77R679+FN1+27xIGuLCAhuqzfj6DxX5WJOOmQOWE/k12eAZujE+ZypSf8ZGkfaukZV43FwoA==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.0.8.tgz", + "integrity": "sha512-shBqaUxMtqriv4UG2MHmYT8GSvDizI40mUFkOfeQ1yRJ2C9dk0TnWKPwjSO7o6bs6UiU6V8Y3uSWdmfCGVVZAA==", "dev": true, "license": "MIT", "dependencies": { @@ -1297,7 +1297,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/compiler": "22.0.7", + "@angular/compiler": "22.0.8", "typescript": ">=6.0 <6.1" }, "peerDependenciesMeta": { @@ -1307,9 +1307,9 @@ } }, "node_modules/@angular/core": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.0.7.tgz", - "integrity": "sha512-A5xKJx5wuuZfeJhShyZvbgicYtT3Jpw/5wJd1cfrcKU+i63CagRIg9jSktTW/e+2hxG1tIQrfKQUGeclmsAUUA==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.0.8.tgz", + "integrity": "sha512-HagZZVzbtXd+ZhMb++k/HOtr/UTiBROHHH7xutgYgnSnPRXX0kCca5EQ02OZ/OCWfsMP5liSJDfwiePFULKA6Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1318,7 +1318,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/compiler": "22.0.7", + "@angular/compiler": "22.0.8", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0 || ~0.16.0" }, @@ -1332,9 +1332,9 @@ } }, "node_modules/@angular/forms": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.0.7.tgz", - "integrity": "sha512-24ldrCORVCi3SoqtshjD8PcT5zg4aIXy9p8+GsO/c3yuhAouVOwL4z1/btNdo7UZv1asyaT3w4lgzprN8TGpjA==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.0.8.tgz", + "integrity": "sha512-KlLJE8rgziSBqCQy+cqCHPEQPGjJEY53i1vZbpnBoLXhnwswLJ3O0c76RHNpIrlrvr9v4p3b2/LxSE8wQmdStg==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", @@ -1345,20 +1345,20 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7", + "@angular/common": "22.0.8", + "@angular/core": "22.0.8", + "@angular/platform-browser": "22.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-server": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.0.7.tgz", - "integrity": "sha512-bjW+Rzh/cY3q8I0Ss5M07GMmDLiNxREPLnnqe4W2u9TPvBEHZjJLU7tWMgdmBfxndZFEfF5ij4vCpSdSJ9mlbw==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.0.8.tgz", + "integrity": "sha512-d4Ulw0PKC9N+7EfmoH0sGeUg81TEa5UsAISJi0jfXCLpgLP2HAEJffqdIR9GwCinqx/Mxc5mXpaVi2yDmzTuLA==", "dev": true, "license": "MIT", "dependencies": { - "@angular/language-service": "22.0.7", + "@angular/language-service": "22.0.8", "typescript": "6.0.3" }, "bin": { @@ -1369,9 +1369,9 @@ } }, "node_modules/@angular/language-service": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.0.7.tgz", - "integrity": "sha512-IT2CSgrb26S2SlVhWfCe0VHjv3Tdh5BG0W7LmFn1SWeQZQmUpKwyy+3pvCh3OKIUeNfqd4YNznIv8Vslnpof1A==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.0.8.tgz", + "integrity": "sha512-mPSWGX1t09Bf0c+JXtq0xUNbyGAPCnWJndbn+VPA5fmnNDbVZiINuDn8MhXnYZAqK1GCvl/MTtg2TKFUWHnU0g==", "dev": true, "license": "MIT", "engines": { @@ -1379,15 +1379,15 @@ } }, "node_modules/@angular/material": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.0.5.tgz", - "integrity": "sha512-A0SnDMvWQBxv3dB2w33GXwuo1/puKtFe8ZMQmIiurS5bbTQpV7UHAM0pWzg7L4DG2cvaH4WZGRPfNG3f8fh+yA==", + "version": "22.0.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.0.6.tgz", + "integrity": "sha512-EVKhP3689o+7J4TD7KMzmypxKGAUdvU3UsIhXYEoJ2IyxF/jAfuWSVKBmR8Ig6w74wSayBglfOTVoI3RuDL9NA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "22.0.5", + "@angular/cdk": "22.0.6", "@angular/common": "^22.0.0 || ^23.0.0", "@angular/core": "^22.0.0 || ^23.0.0", "@angular/forms": "^22.0.0 || ^23.0.0", @@ -1396,23 +1396,23 @@ } }, "node_modules/@angular/material-date-fns-adapter": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.0.5.tgz", - "integrity": "sha512-TXag0QF9CwR5jR0dvX7wt23nk1Ck2EmfJg/xR/RI4HfHRz+1qiHhZ9K8oqU/37hGfFUCdL137hFw3OAMVYaywQ==", + "version": "22.0.6", + "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.0.6.tgz", + "integrity": "sha512-1Px8uzyjWgSbRvcAITHjoY4Kh0MJIBJXG0v2a0JiNhr6wMmw0CjQFNHuFmRdIIVjTeWjAjJN8F3sfYfKmlfhuQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^22.0.0 || ^23.0.0", - "@angular/material": "22.0.5", + "@angular/material": "22.0.6", "date-fns": ">2.20.0 <5.0" } }, "node_modules/@angular/platform-browser": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.0.7.tgz", - "integrity": "sha512-iCuREIWRnDCsd7mI5vn5ovXjcSwseWR4qfd+zo6QUrY2O9zkUNV79YuCqVjSzvWyvU2rtR5iRBvpB5JQgBELeg==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.0.8.tgz", + "integrity": "sha512-FllGHCayu5Dv82HAA9ORL04Xf+In9JGMbQ1Vn4QnhrAVxBz182vm+ZwszLzRDSAwmfeIjZDeK49tKAcqHR9XNg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1421,9 +1421,9 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/animations": "22.0.7", - "@angular/common": "22.0.7", - "@angular/core": "22.0.7" + "@angular/animations": "22.0.8", + "@angular/common": "22.0.8", + "@angular/core": "22.0.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1432,9 +1432,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.0.7.tgz", - "integrity": "sha512-FssnDZLIOYBsUO9EF4oHPHaNZyyCptVV0wYlGV5TlMWEJ6R3UllynUiQi03Zqyg344azgbPr2ieW3qoz0PAbsQ==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.0.8.tgz", + "integrity": "sha512-HQ5GeMoKqd2eMy9hHga1F0yumhrt4gVlhoP8YfmQnZWluVagdyinUpGdd3dNiuYjLcbHB+KXdW9c6LnqEmU+dg==", "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", "license": "MIT", "dependencies": { @@ -1444,16 +1444,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/compiler": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7" + "@angular/common": "22.0.8", + "@angular/compiler": "22.0.8", + "@angular/core": "22.0.8", + "@angular/platform-browser": "22.0.8" } }, "node_modules/@angular/router": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.0.7.tgz", - "integrity": "sha512-uMh+2S5y5Z6hTeFL85tDehfqAwVYjnTlHxpCrW+75RD4Z+rLl0/ff2ag3bXknzNyg0Q9LPOH6t/eCcQYajNOQQ==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.0.8.tgz", + "integrity": "sha512-9NO5K03QqfWMWWZ+Uu4WqBSLw/YAot918cBUFdgl6mTUOfoHi/xWO5pAt0SEpbXMHmWafJBdb99GRlAGybGSTg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1462,16 +1462,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.7", - "@angular/core": "22.0.7", - "@angular/platform-browser": "22.0.7", + "@angular/common": "22.0.8", + "@angular/core": "22.0.8", + "@angular/platform-browser": "22.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.0.7.tgz", - "integrity": "sha512-Xd47hbaVZvkA4wcXBY570rkfX2eONyUfV15vgPx18bKrmPFlat7Fj75PCWIMn90Tg31BLtuozTZenGGjQXSy4g==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.0.8.tgz", + "integrity": "sha512-Vf97d5CqZzqZpSEyXey5HxIsmo7QsRlgkP6aC9wXasYxQiHeI1iO2CRF4mbSr58F6OqjaH/ReljsEBgbV5bgpw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1483,7 +1483,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.7", + "@angular/core": "22.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -4854,14 +4854,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "22.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.0.7.tgz", - "integrity": "sha512-/GVLhB5zaxYGIaC4GFfsfk81SDq9ht0HbEHhHB+t1SqNPV8gnULDV2ZE0Cg+LGj+3YnPtSwpb7tS0vaHUcihVg==", + "version": "22.0.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.0.8.tgz", + "integrity": "sha512-zD2WLe15SoKYyBZH1GTLLaVABNNObHkH4soQqXb9agN6zkrpE0naeWaBSFSWD+95VKCiMZl8LkiOXvK+6b8S6w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.7", - "@angular-devkit/schematics": "22.0.7", + "@angular-devkit/core": "22.0.8", + "@angular-devkit/schematics": "22.0.8", "jsonc-parser": "3.3.1", "typescript": "6.0.3" }, @@ -14617,13 +14617,13 @@ } }, "node_modules/vite": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz", - "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.27.0", + "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", diff --git a/client/package.json b/client/package.json index 7ee71cce38..0c9db127b5 100644 --- a/client/package.json +++ b/client/package.json @@ -32,18 +32,18 @@ "get-available-languages": "npm run ts -- cli/get-available-languages.ts" }, "dependencies": { - "@angular/animations": "^22.0.7", - "@angular/cdk": "^22.0.5", - "@angular/common": "^22.0.7", - "@angular/compiler": "^22.0.7", - "@angular/core": "^22.0.7", - "@angular/forms": "^22.0.7", - "@angular/material": "^22.0.5", - "@angular/material-date-fns-adapter": "^22.0.5", - "@angular/platform-browser": "^22.0.7", - "@angular/platform-browser-dynamic": "^22.0.7", - "@angular/router": "^22.0.7", - "@angular/service-worker": "^22.0.7", + "@angular/animations": "^22.0.8", + "@angular/cdk": "^22.0.6", + "@angular/common": "^22.0.8", + "@angular/compiler": "^22.0.8", + "@angular/core": "^22.0.8", + "@angular/forms": "^22.0.8", + "@angular/material": "^22.0.6", + "@angular/material-date-fns-adapter": "^22.0.6", + "@angular/platform-browser": "^22.0.8", + "@angular/platform-browser-dynamic": "^22.0.8", + "@angular/router": "^22.0.8", + "@angular/service-worker": "^22.0.8", "@cantoo/pdf-lib": "^2.7.4", "@coreui/angular-chartjs": "~5.7.6", "@coreui/chartjs": "^4.1.0", @@ -103,10 +103,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.7", - "@angular/cli": "^22.0.7", - "@angular/compiler-cli": "^22.0.7", - "@angular/language-server": "^22.0.7", + "@angular/build": "^22.0.8", + "@angular/cli": "^22.0.8", + "@angular/compiler-cli": "^22.0.8", + "@angular/language-server": "^22.0.8", "@stylistic/eslint-plugin": "^5.10.0", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.15", From 55f2ddb97063c3e411df1a49b14ad17719905021 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 11:12:03 +0000 Subject: [PATCH 08/43] Bump playwright from v1.61.1-jammy to v1.62.0-jammy in /client/tests (#6448) --- client/tests/Dockerfile.test | 2 +- client/tests/package-lock.json | 30 +++++++++++++++--------------- client/tests/package.json | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/client/tests/Dockerfile.test b/client/tests/Dockerfile.test index 22a9f2f377..ddaefc4826 100644 --- a/client/tests/Dockerfile.test +++ b/client/tests/Dockerfile.test @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/playwright:v1.61.1-jammy +FROM mcr.microsoft.com/playwright:v1.62.0-jammy WORKDIR /app COPY ./package.json . diff --git a/client/tests/package-lock.json b/client/tests/package-lock.json index 681cf0dab3..d4ba63d739 100644 --- a/client/tests/package-lock.json +++ b/client/tests/package-lock.json @@ -5,23 +5,23 @@ "packages": { "": { "devDependencies": { - "@playwright/test": "^1.61.1" + "@playwright/test": "^1.62.0" } }, "node_modules/@playwright/test": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.1.tgz", - "integrity": "sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==", + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.0.tgz", + "integrity": "sha512-9zOJ6ZQRAena31MpOH9VSzIz8Ou3YJ/wtY/eQm5T2uhfhG7/U3COrMS8xOtUrZrp9OgdmzEnIYODye3nY1VqzA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.61.1" + "playwright": "1.62.0" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/fsevents": { @@ -40,35 +40,35 @@ } }, "node_modules/playwright": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.61.1.tgz", - "integrity": "sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==", + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.0.tgz", + "integrity": "sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.61.1" + "playwright-core": "1.62.0" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", - "integrity": "sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==", + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.0.tgz", + "integrity": "sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==", "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } } } diff --git a/client/tests/package.json b/client/tests/package.json index 89e5db5807..ad298af209 100644 --- a/client/tests/package.json +++ b/client/tests/package.json @@ -1,6 +1,6 @@ { "scripts": {}, "devDependencies": { - "@playwright/test": "^1.61.1" + "@playwright/test": "^1.62.0" } } From 9862165ec80f06fc9e5336d81cd2d50317a9160e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 11:15:36 +0000 Subject: [PATCH 09/43] Bump @coreui/angular-chartjs from 5.7.6 to 5.7.9 in /client (#6453) --- client/package-lock.json | 8 ++++---- client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index c47e4a4f2e..9e919ab666 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -22,7 +22,7 @@ "@angular/router": "^22.0.8", "@angular/service-worker": "^22.0.8", "@cantoo/pdf-lib": "^2.7.4", - "@coreui/angular-chartjs": "~5.7.6", + "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", @@ -1815,9 +1815,9 @@ } }, "node_modules/@coreui/angular-chartjs": { - "version": "5.7.6", - "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.6.tgz", - "integrity": "sha512-Yv+5FNF/w52hH7GQmjM6YDlvlC7VtClMMcjyii5D8sLjeS6tQoQlONgydRNhcU05xq588FxhYG0Bv6ibSj0R1Q==", + "version": "5.7.9", + "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.9.tgz", + "integrity": "sha512-Wdg0rweyyS4iSTy2arGgmMirUIBNbiuwc0EdW7G8A6i+9gBelFhzdyFQQ5+W0noOVnu4NavzvWcttvBs9augTQ==", "license": "MIT", "dependencies": { "lodash-es": "^4.18.1", diff --git a/client/package.json b/client/package.json index 0c9db127b5..5168b0428d 100644 --- a/client/package.json +++ b/client/package.json @@ -45,7 +45,7 @@ "@angular/router": "^22.0.8", "@angular/service-worker": "^22.0.8", "@cantoo/pdf-lib": "^2.7.4", - "@coreui/angular-chartjs": "~5.7.6", + "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", From c0b474a1a042d6703988ea20b4e48bf608e44b17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 11:16:05 +0000 Subject: [PATCH 10/43] Bump the tiptap group in /client with 15 updates (#6451) --- client/package-lock.json | 392 +++++++++++++++++++-------------------- client/package.json | 18 +- 2 files changed, 205 insertions(+), 205 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 9e919ab666..e4c46b1078 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -31,21 +31,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.28.0", + "@tiptap/core": "^3.29.1", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.28.0", - "@tiptap/extension-highlight": "^3.28.0", - "@tiptap/extension-image": "^3.28.0", + "@tiptap/extension-color": "^3.29.1", + "@tiptap/extension-highlight": "^3.29.1", + "@tiptap/extension-image": "^3.29.1", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.28.0", - "@tiptap/extension-superscript": "^3.28.0", - "@tiptap/extension-table": "^3.28.0", - "@tiptap/extension-text-align": "^3.28.0", + "@tiptap/extension-subscript": "^3.29.1", + "@tiptap/extension-superscript": "^3.29.1", + "@tiptap/extension-table": "^3.29.1", + "@tiptap/extension-text-align": "^3.29.1", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.28.0", + "@tiptap/starter-kit": "^3.29.1", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", @@ -4995,220 +4995,192 @@ } }, "node_modules/@tiptap/core": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.28.0.tgz", - "integrity": "sha512-gUuD5WAYfbDxNSSJya/emh2KSzXZXLUYKW4fEnc1AQ5FE2twzh4LJ9UlKFIawigrUCAksWI5Fy1hRbv+5m4ZdQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.29.1.tgz", + "integrity": "sha512-aXTluPLRB2cFyEw77KkGKtTcfhQ6Snf1KPRpQnpYNGQm8uAmJenl0Cui7PRl2OxuY0Kb2PQ4XhR8p63lyLyKvw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/pm": "3.28.0" + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-blockquote": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.28.0.tgz", - "integrity": "sha512-y8Xi6Z3AQLXedz0J8Z3kDsu7SKBmL50gKVXx3RK1Oo1cuCGhNChm3syChkAz3PLAbrPUM5rvJDSZdF2jUrDnng==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.29.1.tgz", + "integrity": "sha512-ELA0pvI/mAsIHkZRp7ngzdc1v4j/hmJIwsFKgqwTjsEduYS/BgheCEImhAppeaTb4C2rSic3Bnt7reYWhQv3dw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-bold": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.28.0.tgz", - "integrity": "sha512-JhZQmr0AU741bOwjVMfuwJdK4g0TQwwPbeca9aqKHv5zvZw4i4G9G6fESVyMFc3Yag1ffpnq5EtNldHKTnMhlw==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.29.1.tgz", + "integrity": "sha512-2m7Vw4hf8Up/jC4069wmbqAipxd7mHr5UmBXfTcxM6XiVIKoc3HT4qEvLDgRKexvDGZsTN7p4ZppH73Cv7RMgA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.28.0.tgz", - "integrity": "sha512-dSVuNiH7PFMmWGkNER9vfUb5bXUHDARvHbJ3l+APEb+ZiusVN1KFdM3nd/RsW/Rt5Gd3XwlIEU/c2Uf7cxYDcw==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.29.1.tgz", + "integrity": "sha512-Z5dXne6mnBOlsOVkmtxBSiTpDJ1MQZ9IDCoRxeabAf9AOXbyrv4h+JcPkgMkbUMflx/xkG3gUVgfrki4EGKn1Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.1" } }, "node_modules/@tiptap/extension-code": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.28.0.tgz", - "integrity": "sha512-AUw2Acof3CQE6Q6Y22saK4lyg0nkeJ4XXniU65TdAi/9TE66TGiO4NQJJNNPgu8+VMEwl5j8VsIFK8sfTcNYtg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.29.1.tgz", + "integrity": "sha512-1dCacqr+Il816DWPVlaXzEVJdXMZJHeHs69U2rB137AD85KeqKPMqkPCEw1zb36fY5PdnjKrw1J4TmVIuDjPXQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" - } - }, - "node_modules/@tiptap/extension-code-block": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.28.0.tgz", - "integrity": "sha512-bHITDzT0umTLh+SiEVQzIXkCMt/TzbPM1+HQy9ZxgQDHAJj/vdmfNAnP3RCOrz4lETXyhNQ2b6kxeu3lWckxyA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-color": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.28.0.tgz", - "integrity": "sha512-YbUMUdrgU04GDYoii1wuFVkiTSQoaEQh04kwgQayEQ46aUBEnnaJitWdp39aGMWYTIXD/c9K9cr5Vg8GSKcVxA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.29.1.tgz", + "integrity": "sha512-y54Ib3vKi4qQSwXaeEVLVldF9CdxxU+oL+wT+G92RTliDpHHeHDtMDZQRwjLWCN+kQEaoz1nVyD1eQt00wBFnw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-text-style": "3.28.0" + "@tiptap/extension-text-style": "3.29.1" } }, "node_modules/@tiptap/extension-document": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.28.0.tgz", - "integrity": "sha512-5SAKtlB1Tr/eZFhISL86HqmUup6rItvPtuPyRjmZo/VgbMwXEwiyAh1sMgFp5VNaeSMM14vJSyQpjhSaOmaBqg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.29.1.tgz", + "integrity": "sha512-mnBPM8equ1SpxcfD2Mh5IkFPV9QnJ4iKuVd2xT6CDEBRsh1KRhkDuDH/hJKfSNiXja51v23r51UvfVmL+j9KHQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.28.0.tgz", - "integrity": "sha512-JA+dXQjjfJBpD0nVsZeddGVXRsmanESM9+8CtM35hI9wJnYMXay/B+5GUhswO20zhT3zhB2ZOTGe9knu6A8nIQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.29.1.tgz", + "integrity": "sha512-2/Fhyr2DGNZ5HhLWQHlqhOJEzgnW2Wh3+u3/iCO/oYCjLZqsR7k8NoeFSTyRru7Cs1EMvMG/1uID69hPhqU6ng==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.28.0" + "@tiptap/extensions": "3.29.1" } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.28.0.tgz", - "integrity": "sha512-Wo73kM4q8z4Va9i4+0n1cO0UEMVUVBHPqM6cAqEYXjB4T48LQkKjRsiQydCezm185rQAsmm1dyi72gtvVQfdMg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.29.1.tgz", + "integrity": "sha512-JZkPZjoBZI75gwLqEyh2YhPM4LnrwDjEiLMxb758qHQ96tBze39W6prH0oPC6p06pBf2eloAgMLSkmauqlzScw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.28.0" + "@tiptap/extensions": "3.29.1" } }, "node_modules/@tiptap/extension-hard-break": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.28.0.tgz", - "integrity": "sha512-JHIFjX1luJgQ4VFEkIeXZpbc54Qiw+69P8FmlazYTh7AIJ6iLCpMFgQFELnivEAZ+/vS0lMPQubg0rCeM3UrHw==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.29.1.tgz", + "integrity": "sha512-GZ5kBS29XWetk0yFmXNbIpL4qI1d9IpHIJI7yGxS8/NCtMlMQoEjI/0qnrHH75FkOZLwK31f0TZSVh8C1m7gZw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-heading": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.28.0.tgz", - "integrity": "sha512-rKjGG/Ik2lNaXBNVmONEDm5DBfGDLM1NWgSf5RRfBISrH8Lm1xqFruOB9tIaB0YUoSV3SBOiwTF9svmzvKSoRA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.29.1.tgz", + "integrity": "sha512-5Lq2rIFOTXHVammrMvBSiTUjy2sc0cJfFNOMJHCypuQLz5rnAnNZ2L3xXCbtm/ZMVh3MiWSR5ay1xnW4BJIOiA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-highlight": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.28.0.tgz", - "integrity": "sha512-T8uvQ1aZs+u496XxycMk5zAIwA0DxN+SCdSAFWCU7bqCAen3ulzOsk6RXJ+Jx40GqTV/ShPyIcEuaJVNurXxbg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "3.28.0" - } - }, - "node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.28.0.tgz", - "integrity": "sha512-neBCMWprkppQUoLWyeJZDHqBw+xKX2oNhLD9MbFlhKIr092zgfP4mpCvQnSkn1OHl156KzZMp070+NyLBjgQ7A==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.29.1.tgz", + "integrity": "sha512-cJ4JOUdru9a76w2qPbX2PgqOSOmRzlCZQkyZ4Z4IyHq4WpL9kWy4RWEyj0x2FKI6WZdKATn6WrjWmLA8i7A9sA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-image": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.28.0.tgz", - "integrity": "sha512-aKGCdEjyujUcQ6tEtq4EPbKxEC16QsKapv3DeZs1c/UHFiEUalbbPHBnxjGnupiLz75IR+07GYqBoZ81kSCxiA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.29.1.tgz", + "integrity": "sha512-NIED2sLQgRuIvvvTvl3gLsOUmaES3fp2bCziFhb906EG56pNUjr7omlPqlJfJIFM21fkYmUmuQjrGlByURpx5g==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-italic": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.28.0.tgz", - "integrity": "sha512-Yur/ELz6dNVKQC7m8wGjtoLFxamGjJmA0rUEEOacTH6J39aFmcSxYkEGNDkYHbZFyHFYqbej6eI3VE0h08O0mg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.29.1.tgz", + "integrity": "sha512-WzBTQ6XUv/7I0EzGgImpBa4vFGlHbOCq22NNo4CGjRnIRFyDwC+8mqSNawJzrFOborKjgKbn8dJVlJ+uuVZYKw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-link": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.28.0.tgz", - "integrity": "sha512-hy/PqSeTyl317yseFcHGE+3XVfQKQYaL4uZuj27xlrcO7MZ15drt1h9sUZy1FTBF3mr8676pQu7aoEm/Ww4ZRA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.29.1.tgz", + "integrity": "sha512-KtWfsxG/NzNaAwcOSTRyn1r1W6KlkEU4Q8pq7ZxB6ltjXF3TJkUKYe/sQpvfjy9RtEVwh6zdB7ZhsEl8CX8EkA==", "license": "MIT", "dependencies": { "linkifyjs": "^4.3.3" @@ -5218,201 +5190,201 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.28.0.tgz", - "integrity": "sha512-zQ66i5DuhVOndmZ0d7H475Y5Yb+BMx+zfCjFkCzEc6WVef5MumtxBVTkGLQ0ibxUaD71s4QQZbjHWagpaTg0eQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.29.1.tgz", + "integrity": "sha512-Uclc3pMjylz0xpIArgKKmo7WSlMO370H+K+45uN5hU0uSkp1A8YGBwtU6rBsVAx6nbMXLrhNQjZ1IbLtF605OQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-list-item": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.28.0.tgz", - "integrity": "sha512-GbXrnMac6knSetZY33NHwOrgXFPqH28uCklQqmOZQlsrdGqezDKk31qoEMr4GsKW9n/lViAeuc07oIzwLwCMng==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.29.1.tgz", + "integrity": "sha512-zwMNXxi2AXPWk9z6t4/5J7b11An5WZ4AYR4mpjqrcAnE5G4epOZlX+GLaZK16PzGWm0JouDskcYicu5GL1AE8Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.1" } }, "node_modules/@tiptap/extension-list-keymap": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.28.0.tgz", - "integrity": "sha512-u9Wks8c/eQAv0RkULNggOyTKDD69WVbcV9H5cbasPDUbq5XbEFVa9ajxhEGfMmQ5et3EX0QL8qBi50K0GqbIjA==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.29.1.tgz", + "integrity": "sha512-1Z1DC8eB0Jg1ya7Q6icGTpTBqaCL/hwqVsep7hmpwd8Benu+ke6Ja2hGKUfDuv9hargv5+S7cqEsHLQaMIBSew==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.1" } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.28.0.tgz", - "integrity": "sha512-OZNYrKKL9D01ySOujlNbKlLS9/3wGgKNYeoHZUg0e+Ta8WPVvL3W1zH6TgiU5sF2ZSGUBoq3w7mdaO/iROlUkw==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.29.1.tgz", + "integrity": "sha512-eLKZHk+8/XJA78zjAipcDt/0cCXo1P6KmT/5PjWZepXY4BoMBFFK8mjW+l3cUQJsKIyknvwoepiMpg1Om31o/g==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.28.0" + "@tiptap/extension-list": "3.29.1" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.28.0.tgz", - "integrity": "sha512-8UMlQIjzqf6r2hSJ/VeJ00RqaOrOB1J5rTk02Vcw2pYeHkOqp+B0ff0HFu4abT9x1q4oXrBAgMsxRtgh/kR14Q==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.29.1.tgz", + "integrity": "sha512-kfYkKXce3AjU8hWW1gFES7xsKn7UgObpmVLjufKgoT9h82faAE7lWE7IMAtl30ztVVvQSpF9RdxGoIUXdLiSxA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-strike": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.28.0.tgz", - "integrity": "sha512-VVj2ZZU9QYqiHLcjqMqRYvuHSsokj/AgUl+6TzLrKjlWwyZ18D4H2vkyI0g70iVTKnUpZ3sEy8WA/rqjgBjqBg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.29.1.tgz", + "integrity": "sha512-7/8yUQN1/P5JCbhT+TycziNG3XWBMXADjNPmDipflpyi4EEApoFSamnj5+JL48qYj7bC1JmGtw7eXANPKva+9Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-subscript": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.28.0.tgz", - "integrity": "sha512-lHROuWtzuMv3V4Q11j43Grqci5t0BAMbzIFinPyDSwxDfOCdpj0AwUS+TNNmi4sxZ49QwOXm/vzVMSSi2ChO5g==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.29.1.tgz", + "integrity": "sha512-DoEcAguIjCfw/d8IDm3sTEDfABSvTSnITI+bWS1Y6/VGBu1h3wypkHhPxO5rvK7W0GKJ/Imvak5aywflLL557w==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-superscript": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.28.0.tgz", - "integrity": "sha512-19MWwQIoREjZsEQ7fa/6DUMx15GKZ+iPkOcSdm/PE2rKiDXhec0acWPZTZgH5dluW9GJOMilk7Xl7U8oBNGfjQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.29.1.tgz", + "integrity": "sha512-RnyddBezW8o4bOI8z2RLfWtbC/Je7zCmFXZ8iHw/i7k/BDfHAVdtdGUrg5s+aR+n6AxN0Mk/6N+vn0MEKn4ahA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-table": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.28.0.tgz", - "integrity": "sha512-SX2Uwn/bFyrqjbBo2Hg9wfLT/ofByHm4f80BuG0h5/m89Ve78CgtaK2lGz9jHZRM7rKTG6eqel+PUZQUwcSzOg==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.29.1.tgz", + "integrity": "sha512-YGKG1XMCYFOCZQ5Go+mOerLgO+EuVt+Th4wXdXhi5w9lopN93lHmI8mfyI7xV8rrZmI5te8IhMYtaAXoKhBHAw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/extension-text": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.28.0.tgz", - "integrity": "sha512-Jqp1LgfY1mnp4TQHoy+vnHyfn6qnnAM6nHgGwbY5zA8b/Xf1Etll6pziTx9p1J1qcfAgSrnjOyAmA++H7VQqww==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.29.1.tgz", + "integrity": "sha512-SdwfKTchZf0saMSwmXFEqpYMjgAGXaiUGuwYic/oB5Ri6NCTH2gy8SrCqISBLfUOP7YXGtPGyifZtMtXKAgFAg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-text-align": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.28.0.tgz", - "integrity": "sha512-P+KQMTtCpLFq9dRvy/fbyu2BGALulT/1HtsLbpFG4tKATaKa+cFnJ7rLZF7b3AdAMDNtXdnivxAtixAMBt2QWw==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.29.1.tgz", + "integrity": "sha512-pTPpuHs8MIAvt0tTmtlN2S72UJG3DtA8GSJnwdmEG9C9xz0UkrAKyymrojcLvflILmamJHfhJHtkGhOJsl85WA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-text-style": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.28.0.tgz", - "integrity": "sha512-UreMyqZSv770+CXJK/l1qeHUdaNMQAVkxSOPWpiY9FiT8B4OQyjA7WBOlWrzbvVTzfJvXWk2Y3SWgVRx+/Cd9A==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.29.1.tgz", + "integrity": "sha512-Ap2jdvNg33QpQskDUEjHdFaUx8zkwYZ1KvvYFeUYPbR3qKzbWWd0GrlvtBKd3CvPYKCuMoUvp+qizwhgzOk3Hg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extension-underline": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.28.0.tgz", - "integrity": "sha512-rwxCS6vTh2DJkNIYQX7JSrrRSmm76e2y48aZeuZO5ShkvLWMuJ3/zqDHRxAQVDiJhuE2Cp8NrTmPYlUc9YrT0A==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.29.1.tgz", + "integrity": "sha512-BsZk6GDmmlPFqAtUbEQtiwuLAihLt9A4YvyZEwLm7d2zMbzMLJZK/5RD2JvKGJ0jwrcS3ZIo015bEvKa8h/3KQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0" + "@tiptap/core": "3.29.1" } }, "node_modules/@tiptap/extensions": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.28.0.tgz", - "integrity": "sha512-DJT1khCK+O/pT1gQlAnoKAx6zwDkgv7GtnhSfkqm1/4KHC3x+SSJnBIgBl9oGHymA+DxWbW1EULU4V3d/kT2uQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.29.1.tgz", + "integrity": "sha512-GZMW2r56dnTS28o2wlW8vHxUU4hofZryw03eJnch+amap96tjSU81aV0JCHUN/ySd43KKR5fEZMjhELk6VeYpQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.28.0", - "@tiptap/pm": "3.28.0" + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" } }, "node_modules/@tiptap/pm": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.28.0.tgz", - "integrity": "sha512-ALcpwZMUdat9gjJKlpscpoqXStoLhU246LPEVBDvJdIsoUKvUu3MrzfXik2Y8mtSGfhjtm9O2TRkWxQiFVMwsQ==", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.29.1.tgz", + "integrity": "sha512-fAzlr2RoV9amvMzioJ0dJHtehsMAO8RZktA9XwDk/Qy+WwgMjlCi9g19d4e6cR/WEwaC5KBsQkAyaWzQYGFxAA==", "license": "MIT", "dependencies": { "prosemirror-changeset": "^2.4.1", @@ -5422,7 +5394,7 @@ "prosemirror-history": "^1.5.0", "prosemirror-inputrules": "^1.5.1", "prosemirror-keymap": "^1.2.3", - "prosemirror-model": "^1.25.9", + "prosemirror-model": "^1.25.11", "prosemirror-schema-list": "^1.5.1", "prosemirror-state": "^1.4.4", "prosemirror-tables": "^1.8.5", @@ -5435,41 +5407,69 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.28.0.tgz", - "integrity": "sha512-pqvFpValV+ONtlu3l4s73ROm/tEjoGMmt6uHmSJaLbqTcMHkdWuR3flJ/5brr4IDHe1foxmNicMbRxlje7yBYw==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.28.0", - "@tiptap/extension-blockquote": "^3.28.0", - "@tiptap/extension-bold": "^3.28.0", - "@tiptap/extension-bullet-list": "^3.28.0", - "@tiptap/extension-code": "^3.28.0", - "@tiptap/extension-code-block": "^3.28.0", - "@tiptap/extension-document": "^3.28.0", - "@tiptap/extension-dropcursor": "^3.28.0", - "@tiptap/extension-gapcursor": "^3.28.0", - "@tiptap/extension-hard-break": "^3.28.0", - "@tiptap/extension-heading": "^3.28.0", - "@tiptap/extension-horizontal-rule": "^3.28.0", - "@tiptap/extension-italic": "^3.28.0", - "@tiptap/extension-link": "^3.28.0", - "@tiptap/extension-list": "^3.28.0", - "@tiptap/extension-list-item": "^3.28.0", - "@tiptap/extension-list-keymap": "^3.28.0", - "@tiptap/extension-ordered-list": "^3.28.0", - "@tiptap/extension-paragraph": "^3.28.0", - "@tiptap/extension-strike": "^3.28.0", - "@tiptap/extension-text": "^3.28.0", - "@tiptap/extension-underline": "^3.28.0", - "@tiptap/extensions": "^3.28.0", - "@tiptap/pm": "^3.28.0" + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.29.1.tgz", + "integrity": "sha512-n7njOpcJJd4L3Ma1UmipwwL7gilJ8PZHCNHNhCY+jlemRp8sGf3WoMJst4FKAqU15QaYWhQpYYgc0TWQ55Z04g==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.29.1", + "@tiptap/extension-blockquote": "^3.29.1", + "@tiptap/extension-bold": "^3.29.1", + "@tiptap/extension-bullet-list": "^3.29.1", + "@tiptap/extension-code": "^3.29.1", + "@tiptap/extension-code-block": "^3.29.1", + "@tiptap/extension-document": "^3.29.1", + "@tiptap/extension-dropcursor": "^3.29.1", + "@tiptap/extension-gapcursor": "^3.29.1", + "@tiptap/extension-hard-break": "^3.29.1", + "@tiptap/extension-heading": "^3.29.1", + "@tiptap/extension-horizontal-rule": "^3.29.1", + "@tiptap/extension-italic": "^3.29.1", + "@tiptap/extension-link": "^3.29.1", + "@tiptap/extension-list": "^3.29.1", + "@tiptap/extension-list-item": "^3.29.1", + "@tiptap/extension-list-keymap": "^3.29.1", + "@tiptap/extension-ordered-list": "^3.29.1", + "@tiptap/extension-paragraph": "^3.29.1", + "@tiptap/extension-strike": "^3.29.1", + "@tiptap/extension-text": "^3.29.1", + "@tiptap/extension-underline": "^3.29.1", + "@tiptap/extensions": "^3.29.1", + "@tiptap/pm": "^3.29.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" } }, + "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-code-block": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.29.1.tgz", + "integrity": "sha512-oGd4mvdJm2UaW+B3XaRT+gP+IOz5qLkd24IOxWCKdmbACCT+fd4DFmvghASeL49EPvaTJtXAfXiB9AeksDUmbQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" + } + }, + "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.29.1.tgz", + "integrity": "sha512-/jZ8oxlp06qa5JR9CHSx6vZyp2zFuv7RsHVG9nouFqpmz2nuHUUDm3d/nltNqX5QjuYfx2zjT9CEJ6uQexSzdw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.29.1", + "@tiptap/pm": "3.29.1" + } + }, "node_modules/@ts-morph/common": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.29.0.tgz", @@ -12706,9 +12706,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.25.10", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.10.tgz", - "integrity": "sha512-9n6rH4DbJU1eH4SxLt6Y0HhJIo6cZsb7DJ/30uob1hOKPeO6TAaMWI2tc7kwR92BjfPOU2fFHWbZLovLi3XQfA==", + "version": "1.25.11", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.11.tgz", + "integrity": "sha512-QWg9RhnpLlogAmp3p96uEFrE5txQpFynd4vhBAELkwgOCWQs/X0yCzB3/hrHqiPwf91RG5KyWq6553zs9JqIOQ==", "license": "MIT", "dependencies": { "orderedmap": "^2.0.0" diff --git a/client/package.json b/client/package.json index 5168b0428d..0844fde755 100644 --- a/client/package.json +++ b/client/package.json @@ -54,21 +54,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.28.0", + "@tiptap/core": "^3.29.1", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.28.0", - "@tiptap/extension-highlight": "^3.28.0", - "@tiptap/extension-image": "^3.28.0", + "@tiptap/extension-color": "^3.29.1", + "@tiptap/extension-highlight": "^3.29.1", + "@tiptap/extension-image": "^3.29.1", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.28.0", - "@tiptap/extension-superscript": "^3.28.0", - "@tiptap/extension-table": "^3.28.0", - "@tiptap/extension-text-align": "^3.28.0", + "@tiptap/extension-subscript": "^3.29.1", + "@tiptap/extension-superscript": "^3.29.1", + "@tiptap/extension-table": "^3.29.1", + "@tiptap/extension-text-align": "^3.29.1", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.28.0", + "@tiptap/starter-kit": "^3.29.1", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", From 56d961f267c8a58df4d14d55fdb23e7a5a885af9 Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Wed, 29 Jul 2026 12:47:34 +0200 Subject: [PATCH 11/43] Fix reset to default settings (#6455) --- .github/workflows/continuous-integration.yml | 2 +- .../definitions/meeting-settings-defaults.ts | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 0748bee79a..f85af17679 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -127,7 +127,7 @@ jobs: working-directory: client/ - name: Check generated defaults are up to date - run: npm run generate-defaults && git diff --exit-code -- src/app/domain/models + run: npm run generate-defaults && git diff --exit-code -- src/app/domain/definitions working-directory: client/ - uses: browser-actions/setup-chrome@v2 diff --git a/client/src/app/domain/definitions/meeting-settings-defaults.ts b/client/src/app/domain/definitions/meeting-settings-defaults.ts index 3dd6d913cf..0453069dd6 100644 --- a/client/src/app/domain/definitions/meeting-settings-defaults.ts +++ b/client/src/app/domain/definitions/meeting-settings-defaults.ts @@ -53,11 +53,26 @@ export const meetingSettingsDefaults: Record = { motions_amendments_prefix: '-Ä', motions_amendments_text_mode: 'paragraph', motions_supporters_min_amount: 0, + motion_poll_default_type: 'pseudoanonymous', poll_default_live_voting_enabled: false, + motion_poll_default_method: 'YNA', + motion_poll_default_onehundred_percent_base: 'YNA', + motion_poll_default_backend: 'fast', + motion_poll_projection_name_order_first: 'last_name', + motion_poll_projection_max_columns: 6, + motion_poll_ballot_paper_selection: 'CUSTOM_NUMBER', + motion_poll_ballot_paper_number: 8, motions_enable_origin_motion_display: false, motions_origin_motion_toggle_default: false, - assignment_poll_default_method: 'selection', + assignment_poll_default_type: 'pseudoanonymous', + assignment_poll_default_method: 'Y', + assignment_poll_default_onehundred_percent_base: 'valid', + assignment_poll_default_backend: 'fast', + assignment_poll_enable_max_votes_per_option: false, + assignment_poll_sort_poll_result_by_votes: true, assignment_poll_add_candidates_to_list_of_speakers: false, + assignment_poll_ballot_paper_selection: 'CUSTOM_NUMBER', + assignment_poll_ballot_paper_number: 8, users_allow_self_set_present: true, users_enable_presence_view: false, users_enable_vote_weight: false, From 66591708e883778f42b71fd7ecae882578be0c20 Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Wed, 29 Jul 2026 14:04:34 +0200 Subject: [PATCH 12/43] Add stucture level tooltip (#6457) --- .../structure-level-list.component.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/components/structure-level-list/structure-level-list.component.html b/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/components/structure-level-list/structure-level-list.component.html index 0635a33994..faaf987f4e 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/components/structure-level-list/structure-level-list.component.html +++ b/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/components/structure-level-list/structure-level-list.component.html @@ -1,4 +1,10 @@ - +

Structure levels

From f43f2da04f3278cd651af71be023760043208f11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 08:49:05 +0200 Subject: [PATCH 13/43] Bump esbuild from 0.27.7 to 0.28.1 in /client (#6463) --- client/package-lock.json | 698 ++++++--------------------------------- 1 file changed, 107 insertions(+), 591 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index e4c46b1078..3e7d15c53a 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -686,448 +686,6 @@ } } }, - "node_modules/@angular/build/node_modules/@esbuild/aix-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", - "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/android-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", - "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/android-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", - "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/android-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", - "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/darwin-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", - "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/darwin-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", - "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", - "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/freebsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", - "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-arm": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", - "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", - "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", - "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-loong64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", - "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-mips64el": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", - "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-ppc64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", - "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-riscv64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", - "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-s390x": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", - "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/linux-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", - "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", - "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/netbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", - "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", - "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/openbsd-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", - "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", - "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/sunos-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", - "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/win32-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", - "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/win32-ia32": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", - "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@angular/build/node_modules/@esbuild/win32-x64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", - "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@angular/build/node_modules/agent-base": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", @@ -1138,48 +696,6 @@ "node": ">= 20" } }, - "node_modules/@angular/build/node_modules/esbuild": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", - "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.1", - "@esbuild/android-arm": "0.28.1", - "@esbuild/android-arm64": "0.28.1", - "@esbuild/android-x64": "0.28.1", - "@esbuild/darwin-arm64": "0.28.1", - "@esbuild/darwin-x64": "0.28.1", - "@esbuild/freebsd-arm64": "0.28.1", - "@esbuild/freebsd-x64": "0.28.1", - "@esbuild/linux-arm": "0.28.1", - "@esbuild/linux-arm64": "0.28.1", - "@esbuild/linux-ia32": "0.28.1", - "@esbuild/linux-loong64": "0.28.1", - "@esbuild/linux-mips64el": "0.28.1", - "@esbuild/linux-ppc64": "0.28.1", - "@esbuild/linux-riscv64": "0.28.1", - "@esbuild/linux-s390x": "0.28.1", - "@esbuild/linux-x64": "0.28.1", - "@esbuild/netbsd-arm64": "0.28.1", - "@esbuild/netbsd-x64": "0.28.1", - "@esbuild/openbsd-arm64": "0.28.1", - "@esbuild/openbsd-x64": "0.28.1", - "@esbuild/openharmony-arm64": "0.28.1", - "@esbuild/sunos-x64": "0.28.1", - "@esbuild/win32-arm64": "0.28.1", - "@esbuild/win32-ia32": "0.28.1", - "@esbuild/win32-x64": "0.28.1" - } - }, "node_modules/@angular/build/node_modules/https-proxy-agent": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-9.0.0.tgz", @@ -1888,9 +1404,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", - "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -1905,9 +1421,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", - "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -1922,9 +1438,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", - "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -1939,9 +1455,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", - "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -1956,9 +1472,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", - "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -1973,9 +1489,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", - "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -1990,9 +1506,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", - "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -2007,9 +1523,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", - "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -2024,9 +1540,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", - "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -2041,9 +1557,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", - "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -2058,9 +1574,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", - "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -2075,9 +1591,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", - "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -2092,9 +1608,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", - "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -2109,9 +1625,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", - "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -2126,9 +1642,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", - "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -2143,9 +1659,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", - "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -2160,9 +1676,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", - "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -2177,9 +1693,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", - "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -2194,9 +1710,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", - "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -2211,9 +1727,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", - "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -2228,9 +1744,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", - "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -2245,9 +1761,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", - "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -2262,9 +1778,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", - "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -2279,9 +1795,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", - "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -2296,9 +1812,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", - "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -2313,9 +1829,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", - "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -8260,9 +7776,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", - "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8273,32 +7789,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.7", - "@esbuild/android-arm": "0.27.7", - "@esbuild/android-arm64": "0.27.7", - "@esbuild/android-x64": "0.27.7", - "@esbuild/darwin-arm64": "0.27.7", - "@esbuild/darwin-x64": "0.27.7", - "@esbuild/freebsd-arm64": "0.27.7", - "@esbuild/freebsd-x64": "0.27.7", - "@esbuild/linux-arm": "0.27.7", - "@esbuild/linux-arm64": "0.27.7", - "@esbuild/linux-ia32": "0.27.7", - "@esbuild/linux-loong64": "0.27.7", - "@esbuild/linux-mips64el": "0.27.7", - "@esbuild/linux-ppc64": "0.27.7", - "@esbuild/linux-riscv64": "0.27.7", - "@esbuild/linux-s390x": "0.27.7", - "@esbuild/linux-x64": "0.27.7", - "@esbuild/netbsd-arm64": "0.27.7", - "@esbuild/netbsd-x64": "0.27.7", - "@esbuild/openbsd-arm64": "0.27.7", - "@esbuild/openbsd-x64": "0.27.7", - "@esbuild/openharmony-arm64": "0.27.7", - "@esbuild/sunos-x64": "0.27.7", - "@esbuild/win32-arm64": "0.27.7", - "@esbuild/win32-ia32": "0.27.7", - "@esbuild/win32-x64": "0.27.7" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { From 43ba7db3583c3cec337d5ee844c0470513233369 Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 3 Aug 2026 09:29:09 +0200 Subject: [PATCH 14/43] Remove Category from amendment create (#6456) --- .../motion-form/motion-form.component.html | 2 +- .../motion-form/motion-form.component.ts | 43 ++++++++++--------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html index 2a45bca9ae..9ab96da48d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html @@ -173,7 +173,7 @@

- @if (newMotion && hasCategories) { + @if (newMotion && !amendmentEdit && hasCategories) {
{{ 'Category' | translate }} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts index b6fc9959d8..5cedfda789 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts @@ -3,6 +3,7 @@ import { ChangeDetectorRef, Component, HostListener, + inject, OnInit, ViewEncapsulation } from '@angular/core'; @@ -23,7 +24,6 @@ import { ParticipantControllerService } from '@app/site/pages/meetings/pages/par import { OperatorService } from '@app/site/services/operator.service'; import { ViewPortService } from '@app/site/services/view-port.service'; import { PromptService } from '@app/ui/modules/prompt-dialog'; -import { TranslateService } from '@ngx-translate/core'; import { auditTime, BehaviorSubject, @@ -185,24 +185,23 @@ export class MotionFormComponent extends BaseMeetingComponent implements OnInit private _motionId: Id | null = null; private _parentId: Id | null = null; - public constructor( - protected override translate: TranslateService, - public vp: ViewPortService, - public participantRepo: ParticipantControllerService, - public participantSortService: ParticipantListSortService, - public userRepo: UserRepositoryService, - public categoryRepo: MotionCategoryControllerService, - public workflowRepo: MotionWorkflowControllerService, - private fb: UntypedFormBuilder, - private route: ActivatedRoute, - private motionController: MotionControllerService, - private amendmentRepo: AmendmentControllerService, - private perms: MotionPermissionService, - private prompt: PromptService, - private cd: ChangeDetectorRef, - private operator: OperatorService, - private presenter: GetForwardingCommitteesPresenterService - ) { + public categoryRepo = inject(MotionCategoryControllerService); + public participantRepo = inject(ParticipantControllerService); + public participantSortService = inject(ParticipantListSortService); + public userRepo = inject(UserRepositoryService); + public vp = inject(ViewPortService); + public workflowRepo = inject(MotionWorkflowControllerService); + private amendmentRepo = inject(AmendmentControllerService); + private cd = inject(ChangeDetectorRef); + private fb = inject(UntypedFormBuilder); + private motionController = inject(MotionControllerService); + private operator = inject(OperatorService); + private perms = inject(MotionPermissionService); + private presenter = inject(GetForwardingCommitteesPresenterService); + private prompt = inject(PromptService); + private route = inject(ActivatedRoute); + + public constructor() { super(); this.subscriptions.push( @@ -250,12 +249,16 @@ export class MotionFormComponent extends BaseMeetingComponent implements OnInit delete update.supporter_ids; } + if (this.amendmentEdit && update.category_id) { + delete update.category_id; + } + if (this.newMotion) { update.submitter_meeting_user_ids = []; if (update.submitter_ids.length === 0 && this.operator.isInMeeting(this.activeMeetingId)) { update.submitter_meeting_user_ids = [this.operator.user.getMeetingUser(this.activeMeetingId).id]; } else { - update.submitter_ids.forEach(id => { + update.submitter_ids.forEach((id: number) => { update.submitter_meeting_user_ids.push( this.userRepo.getViewModel(id).getMeetingUser(this.activeMeetingId).id ); From 124b6da6573e6b6818e9fbcbb3a76223d401842b Mon Sep 17 00:00:00 2001 From: Loki Elble <69210919+Elblinator@users.noreply.github.com> Date: Mon, 3 Aug 2026 09:54:19 +0200 Subject: [PATCH 15/43] Add Tooltips and aria-labels to list views (#6391) --- .../components/banner/banner.component.html | 1 + .../agenda-item-list.component.html | 16 ++++++-- .../assignment-list.component.html | 15 ++++++-- .../motion-list/motion-list.component.html | 22 +++++++++-- .../participant-list.component.html | 38 ++++++++++++++++--- .../file-list/file-list.component.html | 7 +++- 6 files changed, 83 insertions(+), 16 deletions(-) diff --git a/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html b/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html index b72a27c864..100084c2b2 100644 --- a/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html +++ b/client/src/app/site/modules/site-wrapper/components/banner/banner.component.html @@ -2,6 +2,7 @@ @for (banner of activeBanners | async; track banner) {
- + {{ getCandidateAmount(assignment) }}
diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.html index 178602f6cc..22e2bbee06 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.html @@ -223,7 +223,15 @@

- + @if (motion.category.parent) {
{{ motion.category.parent.toString() }} @@ -236,13 +244,21 @@

- {{ motion.block.title }} + + {{ motion.block.title }} +

} @if (motion.tags && motion.tags.length) {
- + {{ tag.getTitle() }} diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html index 5c5fafdbff..439ff40877 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html @@ -129,7 +129,11 @@

Participants

@if (user.groups()?.length) {
- + {{ group.getTitle() }} @@ -138,12 +142,22 @@

Participants

} @if (user.structure_levels()?.length) {
- {{ user.structure_levels() }} + + {{ user.structure_levels() }} +
} @if (user.number()) {
- {{ user.number() }} + + {{ user.number() }} +
} @if (user.vote_delegated_to() && voteDelegationEnabled) { @@ -152,7 +166,15 @@

Participants

matTooltip="{{ 'Voting right delegated to (proxy)' | translate }}" matTooltipPosition="left" > - {{ user.vote_delegated_to() }} + + {{ user.vote_delegated_to() }} +
} @if (user.vote_delegations_from_ids()?.length && voteDelegationEnabled) { @@ -161,7 +183,13 @@

Participants

matTooltip="{{ 'Voting right received from (principals)' | translate }}" matTooltipPosition="left" > - + {{ user.vote_delegations_from().length }}: {{ user.vote_delegations_from() }} diff --git a/client/src/app/ui/modules/file-list/file-list.component.html b/client/src/app/ui/modules/file-list/file-list.component.html index a2a1e6f45a..783a6a84b5 100644 --- a/client/src/app/ui/modules/file-list/file-list.component.html +++ b/client/src/app/ui/modules/file-list/file-list.component.html @@ -126,14 +126,17 @@ (keydown.enter)="onEditFile(mediafile, fileEditDialog)" > @if (isInMeeting) { - + {{ $any(group).getTitle() }} } @if (!isInMeeting) { - + }
} From f7c5ac2f779db2cb1b24879ec3f4e969ac08f845 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:35:31 +0200 Subject: [PATCH 16/43] Bump ip-address from 10.2.0 to 10.4.0 in /client (#6469) --- client/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 3e7d15c53a..3c6b892c91 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9439,9 +9439,9 @@ } }, "node_modules/ip-address": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", - "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", + "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", "dev": true, "license": "MIT", "engines": { From 62592de76b079ae6e12f8a47f82d4fd5487ffba3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:35:57 +0200 Subject: [PATCH 17/43] Bump socket.io-parser from 4.2.4 to 4.2.7 in /client (#6468) --- client/package-lock.json | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 3c6b892c91..636c5b4c6f 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -13268,37 +13268,19 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.7.tgz", + "integrity": "sha512-IH/iSeO9T6gz1KkFleGDWkG9N3dl4jXVYUtMhIqH10Md0ttMer8nUNWiP1DKuNrybD2xBrixLJdCC9J6ECoYkg==", "dev": true, "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "debug": "~4.4.1" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/socket.io/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", From 1a07e471fa9fd1a4c98f5c91130ea6eea0d41915 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:50:03 +0200 Subject: [PATCH 18/43] Bump fast-uri from 3.1.4 to 3.1.5 in /client (#6471) --- client/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 636c5b4c6f..b970901d11 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8525,9 +8525,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", - "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", "dev": true, "funding": [ { From 68ec0e8a5488f3b34277b11e903cfdc7c321afd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:50:16 +0200 Subject: [PATCH 19/43] Bump undici from 6.27.0 to 6.28.0 in /client (#6472) --- client/package-lock.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index b970901d11..1b8bfe153e 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -11343,16 +11343,6 @@ "node": ">=20" } }, - "node_modules/node-gyp/node_modules/undici": { - "version": "6.27.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", - "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, "node_modules/node-gyp/node_modules/which": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", @@ -13859,6 +13849,16 @@ "node": "*" } }, + "node_modules/undici": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz", + "integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", From 066bebca5bea18faa93106737050bf57bf57f982 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:50:31 +0200 Subject: [PATCH 20/43] Bump postcss from 8.5.18 to 8.5.25 in /client (#6473) --- client/package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 1b8bfe153e..3c2873330e 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -12010,9 +12010,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.5.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.18.tgz", - "integrity": "sha512-xdB1oSLHbz1vRWgCDalrCqEFTWzFlhqFC5tIHLMOSUIjhm3XXQ1qrFy8S/ESr1JYRRXqM3c1QFiMZUJdUTqyMQ==", + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", "dev": true, "funding": [ { @@ -12030,7 +12030,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, From 1359ecbb1313d181c92dc9a19bc3a1a5048e6fe8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:59:57 +0200 Subject: [PATCH 21/43] Bump undici from 7.28.0 to 7.29.0 in /packages/openslides-motion-diff (#6470) --- packages/openslides-motion-diff/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/openslides-motion-diff/package-lock.json b/packages/openslides-motion-diff/package-lock.json index 21ce82a4c8..9a562d9f6a 100644 --- a/packages/openslides-motion-diff/package-lock.json +++ b/packages/openslides-motion-diff/package-lock.json @@ -2058,9 +2058,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", - "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", "dev": true, "license": "MIT", "engines": { From 98d7d3436ab1efc6cedfecae4fc50dfcb2e3feff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:09:23 +0200 Subject: [PATCH 22/43] Bump @cantoo/pdf-lib from 2.7.4 to 2.8.1 in /client (#6481) --- client/package-lock.json | 38 +++++++++++++++++++++++++++++--------- client/package.json | 2 +- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 3c2873330e..ada741e10f 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -21,7 +21,7 @@ "@angular/platform-browser-dynamic": "^22.0.8", "@angular/router": "^22.0.8", "@angular/service-worker": "^22.0.8", - "@cantoo/pdf-lib": "^2.7.4", + "@cantoo/pdf-lib": "^2.8.1", "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", @@ -1306,20 +1306,40 @@ } }, "node_modules/@cantoo/pdf-lib": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/@cantoo/pdf-lib/-/pdf-lib-2.7.4.tgz", - "integrity": "sha512-tMet5mSJOESLAvSw/NnVoty2L7hHtWGtXt7CjxL4jeq1r3fg8lB7+sO0qKRyqR3kxeWfa8W5C5IuyNtHSVaTeQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@cantoo/pdf-lib/-/pdf-lib-2.8.1.tgz", + "integrity": "sha512-ChSLQuCqetxsElt45FXs/4CmsgYIlI12PBfo0HPyQnhH6U+Rs1WSNekNwG8ppAi2N/1eqjIr7ldeGrtjtkRhbQ==", "license": "MIT", "dependencies": { "@pdf-lib/standard-fonts": "^1.0.0", "@pdf-lib/upng": "^1.0.1", "color": "^4.2.3", "crypto-js": "^4.2.0", - "node-html-better-parser": ">=1.4.0", - "pako": "^1.0.11", + "html-entities": "^2.3.2", + "node-html-better-parser": ">=1.5.9", + "pako": "^2.2.0", "tslib": ">=2" + }, + "peerDependencies": { + "html-entities": "^2.3.2" } }, + "node_modules/@cantoo/pdf-lib/node_modules/pako": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.2.0.tgz", + "integrity": "sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "(MIT AND Zlib)" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -11360,9 +11380,9 @@ } }, "node_modules/node-html-better-parser": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/node-html-better-parser/-/node-html-better-parser-1.5.8.tgz", - "integrity": "sha512-t/wAKvaTSKco43X+yf9+76RiMt18MtMmzd4wc7rKj+fWav6DV4ajDEKdWlLzSE8USDF5zr/06uGj0Wr/dGAFtw==", + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/node-html-better-parser/-/node-html-better-parser-1.5.9.tgz", + "integrity": "sha512-z1I5UINMezJXYL9cH3h0a9KBth2G978gSLlfkpQ+CQzzVHVQy9gpARgm9eDsz1O4gn1HtgUqjdAIYxKFZm6uHQ==", "license": "MIT", "dependencies": { "html-entities": "^2.3.2" diff --git a/client/package.json b/client/package.json index 0844fde755..54bf42940b 100644 --- a/client/package.json +++ b/client/package.json @@ -44,7 +44,7 @@ "@angular/platform-browser-dynamic": "^22.0.8", "@angular/router": "^22.0.8", "@angular/service-worker": "^22.0.8", - "@cantoo/pdf-lib": "^2.7.4", + "@cantoo/pdf-lib": "^2.8.1", "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", From 55506743b859e2b7ce092ab5f779db55f86e4d5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:09:47 +0200 Subject: [PATCH 23/43] Bump js-yaml from 5.2.1 to 5.2.3 in /client (#6480) --- client/package-lock.json | 8 ++++---- client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index ada741e10f..e4a482525d 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -105,7 +105,7 @@ "fetch-mock": "^12.6.0", "istanbul-lib-instrument": "^6.0.3", "jasmine-core": "^5.13.0", - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.3", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", @@ -9742,9 +9742,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz", - "integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.3.tgz", + "integrity": "sha512-n+mUVyUX5bVv7G/G2zyIHOhdxfuU1dY2NOFzTQUWiMUbFss8b57NFlgCCaggU78wSw5KVS9cllzeLyzyR+n5nw==", "dev": true, "funding": [ { diff --git a/client/package.json b/client/package.json index 54bf42940b..dc3ce5844f 100644 --- a/client/package.json +++ b/client/package.json @@ -128,7 +128,7 @@ "fetch-mock": "^12.6.0", "istanbul-lib-instrument": "^6.0.3", "jasmine-core": "^5.13.0", - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.3", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.1", From 130bd4878c85adf685acdc26ed59b5aaf1ee2616 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:35 +0200 Subject: [PATCH 24/43] Bump @playwright/test from 1.62.0 to 1.62.1 in /client/tests (#6476) --- client/tests/package-lock.json | 24 ++++++++++++------------ client/tests/package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/client/tests/package-lock.json b/client/tests/package-lock.json index d4ba63d739..6a6ce20050 100644 --- a/client/tests/package-lock.json +++ b/client/tests/package-lock.json @@ -5,17 +5,17 @@ "packages": { "": { "devDependencies": { - "@playwright/test": "^1.62.0" + "@playwright/test": "^1.62.1" } }, "node_modules/@playwright/test": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.0.tgz", - "integrity": "sha512-9zOJ6ZQRAena31MpOH9VSzIz8Ou3YJ/wtY/eQm5T2uhfhG7/U3COrMS8xOtUrZrp9OgdmzEnIYODye3nY1VqzA==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", + "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.62.0" + "playwright": "1.62.1" }, "bin": { "playwright": "cli.js" @@ -40,13 +40,13 @@ } }, "node_modules/playwright": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.0.tgz", - "integrity": "sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.62.0" + "playwright-core": "1.62.1" }, "bin": { "playwright": "cli.js" @@ -59,9 +59,9 @@ } }, "node_modules/playwright-core": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.0.tgz", - "integrity": "sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/client/tests/package.json b/client/tests/package.json index ad298af209..8ebff0b515 100644 --- a/client/tests/package.json +++ b/client/tests/package.json @@ -1,6 +1,6 @@ { "scripts": {}, "devDependencies": { - "@playwright/test": "^1.62.0" + "@playwright/test": "^1.62.1" } } From 4e2ab574ec91aa47547f617ec7f99ac417cbe7c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:50 +0200 Subject: [PATCH 25/43] Bump playwright from v1.62.0-jammy to v1.62.1-jammy in /client/tests (#6475) --- client/tests/Dockerfile.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/tests/Dockerfile.test b/client/tests/Dockerfile.test index ddaefc4826..01b8f00a49 100644 --- a/client/tests/Dockerfile.test +++ b/client/tests/Dockerfile.test @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/playwright:v1.62.0-jammy +FROM mcr.microsoft.com/playwright:v1.62.1-jammy WORKDIR /app COPY ./package.json . From 1c65ac0463b7a8b71b53dad07c405de8750d8d21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 15:12:38 +0200 Subject: [PATCH 26/43] Bump the angular group across 1 directory with 16 updates (#6477) --- client/package-lock.json | 4110 +++++++++++++++++++++----------------- client/package.json | 32 +- 2 files changed, 2256 insertions(+), 1886 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index e4a482525d..469be086f4 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,18 +9,18 @@ "version": "4.2.x-dev", "license": "MIT", "dependencies": { - "@angular/animations": "^22.0.8", - "@angular/cdk": "^22.0.6", - "@angular/common": "^22.0.8", - "@angular/compiler": "^22.0.8", - "@angular/core": "^22.0.8", - "@angular/forms": "^22.0.8", - "@angular/material": "^22.0.6", - "@angular/material-date-fns-adapter": "^22.0.6", - "@angular/platform-browser": "^22.0.8", - "@angular/platform-browser-dynamic": "^22.0.8", - "@angular/router": "^22.0.8", - "@angular/service-worker": "^22.0.8", + "@angular/animations": "^22.1.0", + "@angular/cdk": "^22.1.0", + "@angular/common": "^22.1.0", + "@angular/compiler": "^22.1.0", + "@angular/core": "^22.1.0", + "@angular/forms": "^22.1.0", + "@angular/material": "^22.1.0", + "@angular/material-date-fns-adapter": "^22.1.0", + "@angular/platform-browser": "^22.1.0", + "@angular/platform-browser-dynamic": "^22.1.0", + "@angular/router": "^22.1.0", + "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", @@ -80,10 +80,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.8", - "@angular/cli": "^22.0.8", - "@angular/compiler-cli": "^22.0.8", - "@angular/language-server": "^22.0.8", + "@angular/build": "^22.1.2", + "@angular/cli": "^22.1.2", + "@angular/compiler-cli": "^22.1.0", + "@angular/language-server": "^22.1.0", "@stylistic/eslint-plugin": "^5.10.0", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.15", @@ -138,215 +138,6 @@ "vitest": "^4.1.8" } }, - "node_modules/@algolia/abtesting": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.18.0.tgz", - "integrity": "sha512-8siuLG+FIns1AjZ/g2SDVwHz9S+ObacDQISEJvS8XsNei1zl3FXqfqQrBpmrG7ACWCyesXHbicMJtvRbg00FEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.52.0.tgz", - "integrity": "sha512-wtwPgyPmO7b7sQPVgoK29c1VpfS08DnnJCmxX/oU1pV2DlMRJCzQcLN7JSloYpodyKHwM8+9wOzlAM0co3TDmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.52.0.tgz", - "integrity": "sha512-9KY36bRl4AH7RjqSeDDOKnjsz4IxQFBEOB8/fWmEbdQe+Isbs5jGzVJu9NEPQ1Tgwxlf8Uf07Swj3jZyMNUZ2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.52.0.tgz", - "integrity": "sha512-3a/qM3dzJqqfTx7Yrw7uGQ98I3Q0rDfb4Vkv0wEzko96l7YQMxfBVz/VbLq2N+c59GweYv6Vhp8mPeqnWJSITw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.52.0.tgz", - "integrity": "sha512-Rki7ACbMcvbQW0BuM84x9dkGHY47ABmv4jU6tYssat2k02p3mIUms2YOLUAMeknhmnFsj6lb6ZzOXdMWMyc1sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.52.0.tgz", - "integrity": "sha512-96s4Uzc3kk+/f4jJXIVVGWP5XlngOGNQ1x6hW9AT59pOixHlOs5tqJg+ZUS/GQ6h/iYP0ceQcmxDQeLyCLTaDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.52.0.tgz", - "integrity": "sha512-lqeycNpSPe5Qa0OUWpejVvYQjQWV5nQuLT0a4aq7XzRAvCxprV/6Lf841EygdD2nrFnuS58ok7Au1uOtXzpnkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.52.0.tgz", - "integrity": "sha512-ly1wETVGRo30cx61O7fetESN+ElL9c9K+bD/AVgnT1ar4c6v+/Yqjrhdtu6Fm4D0s4NZP081Isf6tunH1wUXHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/ingestion": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.52.0.tgz", - "integrity": "sha512-U4EeTvgmluRjj39ykZSAd5X+a6LD5m7/mcOWDmB7hqm1R6QY0yT8jLxpNVEjYhzgEN5hcDGW6X67EWQY8KiYGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.52.0.tgz", - "integrity": "sha512-FCPnDcILfpTE94u7BVlV4DmnSV5wE3+j25EEF+3dYPrVzkVCSoAHs318oWDGxnxsAgiL4HpL12Jc4XHmw9shpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.52.0.tgz", - "integrity": "sha512-br3DO7n4N8CXwTRbZS0MnB4WQ9YHfNjCwkCEzVR/wek/qNTDQKDb0nROmkFaNZ8ucUqUVKZi074dbwMwRDlK8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.52.0.tgz", - "integrity": "sha512-b0T/Ca2c9KyEslKsVrGZvbe1UrrKKSdfXhBZ2pbpKahFUzJfziRZ0urbOm7V65O0tO/jwU+Lo/+bIiiyhzGt8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.52.0.tgz", - "integrity": "sha512-ozBT8J/mtD4H4IAojw8QPirlcL2gHrI1BGuZ4/ZXXO/rTE1yQ4VIPJj4mTTbwo4FbkS1MoJsD/DsrqLzhnc4/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.52.0.tgz", - "integrity": "sha512-gyyWcLD22tnabmoit4iukCXuoRc5HYJuUjPSEa8a0D/f/NlRafpWi52AlAaa4Uu/rsl7saHsJFTNjTptWbu2+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -362,13 +153,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2200.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2200.8.tgz", - "integrity": "sha512-LFKK2v96nO0ESM9nftlCkTy+O/66AxNkwUpG+Q1er7LLNR2S8UReZnQ1/RhMkldCWxsmp2rQzdgHWnubaY/ZfA==", + "version": "0.2201.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2201.2.tgz", + "integrity": "sha512-RRG3JA3hPH0ypbDIyquZt9DDTP5pOMPgqQ/iLSkok1MZdKiOgpk6FGfXCa1ei72SwlX7lnJdq94d6WWdqpbyKg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.8", + "@angular-devkit/core": "22.1.2", "rxjs": "7.8.2" }, "bin": { @@ -381,16 +172,16 @@ } }, "node_modules/@angular-devkit/core": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.0.8.tgz", - "integrity": "sha512-Hnr4SCkxQM+xtq4uERC09qwTZpt97t4CwDZYzv/HbQA4pMYDfTxvIRHCyl+UHf4NbkC7ZVgyiab+KzTfuc609Q==", + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-22.1.2.tgz", + "integrity": "sha512-tF1oEE7KPs8I08HJQmH5e4GkLUB3+MXXy8t6gMJULaLFxZYP9K1oXRFLappMpdm9OIbEXOChk23hrho0By9aYg==", "dev": true, "license": "MIT", "dependencies": { "ajv": "8.20.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", + "picomatch": "4.0.5", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -409,16 +200,16 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.0.8.tgz", - "integrity": "sha512-9WjTKnW/5oIw4hNNcd0rSYtgHRrHKKAkG6+bdLqTCY68P2brO2yEJM2JjYtMYk/WSovknb0GxUP4n3dY3IxPug==", + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-22.1.2.tgz", + "integrity": "sha512-Lw6NvW5rfMUl/2dsuWY8l6wlfWCuYBzCYSSqqliLPDco0doGzBliHwY9uxuzuUKZgOl5TvuVyvEo0t3o4Jj4GA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.8", + "@angular-devkit/core": "22.1.2", "jsonc-parser": "3.3.1", - "magic-string": "0.30.21", - "ora": "9.4.0", + "magic-string": "1.0.0", + "ora": "9.4.1", "rxjs": "7.8.2" }, "engines": { @@ -506,19 +297,6 @@ "@angular/cli": ">= 22.0.0 < 23.0.0" } }, - "node_modules/@angular-eslint/schematics/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-eslint/template-parser": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-22.1.0.tgz", @@ -569,9 +347,9 @@ } }, "node_modules/@angular/animations": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.0.8.tgz", - "integrity": "sha512-hdBlckl5mARzuc5gt2siydIAxeJbBiRneg8V0kazEDH6xNkNp/1siro68ZaHgTY5dCUEOec/eC4zbhB8AlSLhQ==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-22.1.0.tgz", + "integrity": "sha512-MHXOXmn9zmkiq234J+pr2Ir4A+z1iiVmQ0WjQ4skvK8GHTjnjeHKb4HrpAo5f7S3W0oenszmkNCddTQ3pvoJPw==", "deprecated": "@angular/animations is deprecated. Use `animate.enter` and `animate.leave` instead. For more information see: https://v22.angular.dev/guide/animations.", "license": "MIT", "dependencies": { @@ -581,41 +359,42 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.8" + "@angular/core": "22.1.0" } }, "node_modules/@angular/build": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.0.8.tgz", - "integrity": "sha512-QJVVTROVb27Ixk+RU4FSKwwyRbLdtNH20zFm1CwOKzA0wQHrWfxHTqlwMhnTOsOt5Cb3eX+6IjDXoGmAfJ81mA==", + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-22.1.2.tgz", + "integrity": "sha512-DE/3o17JTel4EBt2BA4DqJYeBBuz5Ef/kf1jL9YZTyJu4SrLr/HI79K14jFr0VRIxzcqG92FdIzfLDxbOesQsg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2200.8", - "@babel/core": "7.29.7", - "@babel/helper-annotate-as-pure": "7.29.7", + "@angular-devkit/architect": "0.2201.2", + "@babel/core": "8.0.1", + "@babel/helper-annotate-as-pure": "8.0.0", "@babel/helper-split-export-declaration": "7.24.7", - "@inquirer/confirm": "6.0.12", + "@inquirer/confirm": "6.1.1", "@vitejs/plugin-basic-ssl": "2.3.0", - "beasties": "0.4.2", + "beasties": "0.4.3", "browserslist": "^4.26.0", "esbuild": "0.28.1", - "https-proxy-agent": "9.0.0", + "https-proxy-agent": "9.1.0", "jsonc-parser": "3.3.1", - "listr2": "10.2.1", - "magic-string": "0.30.21", + "listr2": "10.2.2", + "magic-string": "1.0.0", "mrmime": "2.0.1", + "oxc-parser": "0.142.0", "parse5-html-rewriting-stream": "8.0.1", - "picomatch": "4.0.4", + "picomatch": "4.0.5", "piscina": "5.2.0", - "rollup": "4.60.2", - "sass": "1.99.0", - "semver": "7.7.4", + "rolldown": "1.2.0", + "sass": "1.101.0", + "semver": "7.8.5", "source-map-support": "0.5.21", - "tinyglobby": "0.2.16", - "vite": "7.3.6", - "watchpack": "2.5.1" + "tinyglobby": "0.2.17", + "vite": "8.1.5", + "watchpack": "2.5.2" }, "engines": { "node": "^22.22.3 || ^24.15.0 || >=26.0.0", @@ -623,7 +402,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.5.4" + "lmdb": "3.5.6" }, "peerDependencies": { "@angular/compiler": "^22.0.0", @@ -633,12 +412,13 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-server": "^22.0.0", "@angular/service-worker": "^22.0.0", - "@angular/ssr": "^22.0.8", + "@angular/ssr": "^22.1.2", "istanbul-lib-instrument": "^6.0.0", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^22.0.0", "postcss": "^8.4.0", + "rollup": "^4.0.0", "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", "tslib": "^2.3.0", "typescript": ">=6.0 <6.1", @@ -678,6 +458,9 @@ "postcss": { "optional": true }, + "rollup": { + "optional": true + }, "tailwindcss": { "optional": true }, @@ -686,6 +469,215 @@ } } }, + "node_modules/@angular/build/node_modules/@babel/code-frame": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz", + "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^8.0.0", + "js-tokens": "^10.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/compat-data": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz", + "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/core": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz", + "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helpers": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0", + "@types/gensync": "^1.0.5", + "convert-source-map": "^2.0.0", + "empathic": "^2.0.1", + "gensync": "^1.0.0-beta.2", + "import-meta-resolve": "^4.2.0", + "json5": "^2.2.3", + "obug": "^2.1.1", + "semver": "^7.7.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/build/node_modules/@babel/generator": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helper-compilation-targets": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz", + "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^8.0.0", + "@babel/helper-validator-option": "^8.0.0", + "browserslist": "^4.24.0", + "lru-cache": "^11.0.0", + "semver": "^7.7.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helper-globals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz", + "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helper-validator-option": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz", + "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/helpers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/parser": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz", + "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/template": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz", + "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/traverse": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.4.tgz", + "integrity": "sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/parser": "^8.0.4", + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.4", + "obug": "^2.1.1" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/build/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, "node_modules/@angular/build/node_modules/agent-base": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", @@ -696,24 +688,104 @@ "node": ">= 20" } }, + "node_modules/@angular/build/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@angular/build/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@angular/build/node_modules/https-proxy-agent": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-9.0.0.tgz", - "integrity": "sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-9.1.0.tgz", + "integrity": "sha512-ag87y7cJJ9/3+GxFr8Oy4O5faDsGRGnBGsJj/YjOSsSx/5eadKLYTMPlzuR6obgoCDDm0abAAZitXXQkMOPSpA==", "dev": true, "license": "MIT", "dependencies": { "agent-base": "9.0.0", - "debug": "^4.3.4" + "debug": "^4.3.4", + "proxy-agent-negotiate": "1.1.0" }, "engines": { "node": ">= 20" } }, + "node_modules/@angular/build/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/listr2": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.2.tgz", + "integrity": "sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.2.0", + "eventemitter3": "^5.0.4", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^10.0.0" + }, + "engines": { + "node": ">=22.13.0" + } + }, + "node_modules/@angular/build/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@angular/build/node_modules/wrap-ansi": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@angular/cdk": { - "version": "22.0.6", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.0.6.tgz", - "integrity": "sha512-b36f4b+7yQpuulG9Ai2O38SV2tsqyNeYTYCH9TehMir18XlTx+NtLELwA8Sfi24tHByJHEDADQZtHPWWUj71/w==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-22.1.0.tgz", + "integrity": "sha512-yfQug47CZ+51mHy0ZLWzi6F/YHfsAF2Z7Jxo3JLM7Aj3Er47hHB8VnrNERwK5tBLs0bE5DoEIm59ga/MI3fVGg==", "license": "MIT", "dependencies": { "parse5": "^8.0.0", @@ -727,30 +799,26 @@ } }, "node_modules/@angular/cli": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.0.8.tgz", - "integrity": "sha512-kefbTsmf7sEmW5g3NIRvH0OrM18I1jjZHlB9KABgRQhsDfD/WgfLt6aSLJQeFDlAOs+ehDPzzOwd9l48wyBlFQ==", + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-22.1.2.tgz", + "integrity": "sha512-gzB+iuZzB507DAkZb9s5+Jw8QRzOBolUhHEuAKH74xF6oWlEP5JdexfTgti45SjXaKKqeYpODJFnUmSQQJRhxA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2200.8", - "@angular-devkit/core": "22.0.8", - "@angular-devkit/schematics": "22.0.8", - "@inquirer/prompts": "8.4.2", - "@listr2/prompt-adapter-inquirer": "4.2.3", + "@angular-devkit/architect": "0.2201.2", + "@angular-devkit/core": "22.1.2", + "@angular-devkit/schematics": "22.1.2", + "@inquirer/prompts": "8.5.2", + "@listr2/prompt-adapter-inquirer": "4.2.4", "@modelcontextprotocol/sdk": "1.29.0", - "@schematics/angular": "22.0.8", - "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.52.0", - "ini": "6.0.0", + "@schematics/angular": "22.1.2", "jsonc-parser": "3.3.1", - "listr2": "10.2.1", - "npm-package-arg": "13.0.2", - "pacote": "21.5.1", + "listr2": "10.2.2", + "npm-package-arg": "14.0.0", "parse5-html-rewriting-stream": "8.0.1", - "semver": "7.7.4", + "semver": "7.8.5", "yargs": "18.0.0", - "zod": "4.4.2" + "zod": "4.4.3" }, "bin": { "ng": "bin/ng.js" @@ -761,10 +829,65 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/cli/node_modules/listr2": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-10.2.2.tgz", + "integrity": "sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.2.0", + "eventemitter3": "^5.0.4", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^10.0.0" + }, + "engines": { + "node": ">=22.13.0" + } + }, + "node_modules/@angular/cli/node_modules/wrap-ansi": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@angular/common": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.0.8.tgz", - "integrity": "sha512-FnwkXndUgAyWk1/p5flMfocIUtuuneJ01mxC1FxRc5/bdWTyNVeQDsM9Lw4PEAPc0AHu//EnblegRq8o6LGdUQ==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-22.1.0.tgz", + "integrity": "sha512-67L8AS00egxwEKnoMhNDxy+TY+eKOwvwa+os0Odq8nLm7+Qh7JnMVeub8hfncpenOFqlC/RUjO2W9H7Gd2veNA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -773,14 +896,14 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.8", + "@angular/core": "22.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.0.8.tgz", - "integrity": "sha512-ot7rvntfkZsPHmp8yl6PWUj/yG4e50X0+YeR7QYy/rEYKBiIg91w8GwjxSzaF4g5+bzJGDv7l/XnachKm0IySg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.1.0.tgz", + "integrity": "sha512-WCmuPnuXgqnqrkbrwqQRyldi1k3rlzNLVDl8ntINF7XWuJh0KfQLEkRK0FCCmBztWJkbGug4RBVnKTWlKhRzCQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -790,13 +913,13 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.0.8.tgz", - "integrity": "sha512-shBqaUxMtqriv4UG2MHmYT8GSvDizI40mUFkOfeQ1yRJ2C9dk0TnWKPwjSO7o6bs6UiU6V8Y3uSWdmfCGVVZAA==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-22.1.0.tgz", + "integrity": "sha512-jL89dbzkrV8AeLaxedBgT7ErMnbfi2dvwDJuCrUgm3eCNfbcOpGbNxzH+wDgvbRg2Lhj11/u3JPbW50xA6rvvg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.29.7", + "@babel/core": "8.0.1", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^5.0.0", "convert-source-map": "^1.5.1", @@ -813,19 +936,252 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/compiler": "22.0.8", + "@angular/compiler": "22.1.0", "typescript": ">=6.0 <6.1" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/code-frame": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz", + "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^8.0.0", + "js-tokens": "^10.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/compat-data": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz", + "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz", + "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helpers": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0", + "@types/gensync": "^1.0.5", + "convert-source-map": "^2.0.0", + "empathic": "^2.0.1", + "gensync": "^1.0.0-beta.2", + "import-meta-resolve": "^4.2.0", + "json5": "^2.2.3", + "obug": "^2.1.1", + "semver": "^7.7.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-compilation-targets": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz", + "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^8.0.0", + "@babel/helper-validator-option": "^8.0.0", + "browserslist": "^4.24.0", + "lru-cache": "^11.0.0", + "semver": "^7.7.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-globals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz", + "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-validator-option": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz", + "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helpers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/parser": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.4.tgz", + "integrity": "sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/template": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz", + "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/traverse": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.4.tgz", + "integrity": "sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/parser": "^8.0.4", + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.4", + "obug": "^2.1.1" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" } }, "node_modules/@angular/core": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.0.8.tgz", - "integrity": "sha512-HagZZVzbtXd+ZhMb++k/HOtr/UTiBROHHH7xutgYgnSnPRXX0kCca5EQ02OZ/OCWfsMP5liSJDfwiePFULKA6Q==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.1.0.tgz", + "integrity": "sha512-X5UaMuOCI4HAvSQIs3QtM+5e0Cni16DRaHUIL3BIBd4ZQNnSH3pZ25TsKQ8Jlu/3hAQ9rzV278kNQcecooGJ7g==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -834,7 +1190,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/compiler": "22.0.8", + "@angular/compiler": "22.1.0", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0 || ~0.16.0" }, @@ -848,9 +1204,9 @@ } }, "node_modules/@angular/forms": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.0.8.tgz", - "integrity": "sha512-KlLJE8rgziSBqCQy+cqCHPEQPGjJEY53i1vZbpnBoLXhnwswLJ3O0c76RHNpIrlrvr9v4p3b2/LxSE8wQmdStg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-22.1.0.tgz", + "integrity": "sha512-nWlSM/pPp78Sx/fBM/tFEgZxdfZe50LkCE2/hkO22Fi1UM2maGc43LDsu/s6l0q9hFep4Wj+xa30KXDBS7Cn8A==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", @@ -861,20 +1217,20 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.8", - "@angular/core": "22.0.8", - "@angular/platform-browser": "22.0.8", + "@angular/common": "22.1.0", + "@angular/core": "22.1.0", + "@angular/platform-browser": "22.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-server": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.0.8.tgz", - "integrity": "sha512-d4Ulw0PKC9N+7EfmoH0sGeUg81TEa5UsAISJi0jfXCLpgLP2HAEJffqdIR9GwCinqx/Mxc5mXpaVi2yDmzTuLA==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/language-server/-/language-server-22.1.0.tgz", + "integrity": "sha512-KrHmcIKlqT8S8KNGr8uQjkVPyoFkmF/yVeLHwOtE8rRd/LRW2ClQVe3jxZDfHWOAxh1F1FHlcgTPTDrtMuRRfA==", "dev": true, "license": "MIT", "dependencies": { - "@angular/language-service": "22.0.8", + "@angular/language-service": "22.1.0", "typescript": "6.0.3" }, "bin": { @@ -885,9 +1241,9 @@ } }, "node_modules/@angular/language-service": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.0.8.tgz", - "integrity": "sha512-mPSWGX1t09Bf0c+JXtq0xUNbyGAPCnWJndbn+VPA5fmnNDbVZiINuDn8MhXnYZAqK1GCvl/MTtg2TKFUWHnU0g==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-22.1.0.tgz", + "integrity": "sha512-5J+j17o9rvJEiTVotsQfHprPCgKrHhYxz+SpiV25p5mG2qOJ9vX465o/ODbFpRapK8eyHqd/HkPRaGafu3nZkg==", "dev": true, "license": "MIT", "engines": { @@ -895,15 +1251,15 @@ } }, "node_modules/@angular/material": { - "version": "22.0.6", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.0.6.tgz", - "integrity": "sha512-EVKhP3689o+7J4TD7KMzmypxKGAUdvU3UsIhXYEoJ2IyxF/jAfuWSVKBmR8Ig6w74wSayBglfOTVoI3RuDL9NA==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-22.1.0.tgz", + "integrity": "sha512-i3Os8JZg4DejgNTtw8GCLQbbZ8+lv8h/ym6PxRwmYNpegmyGiVSKAZ2JBkEs5f1pmMaTppuG3MF6mXei4xi6Wg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "22.0.6", + "@angular/cdk": "22.1.0", "@angular/common": "^22.0.0 || ^23.0.0", "@angular/core": "^22.0.0 || ^23.0.0", "@angular/forms": "^22.0.0 || ^23.0.0", @@ -912,23 +1268,23 @@ } }, "node_modules/@angular/material-date-fns-adapter": { - "version": "22.0.6", - "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.0.6.tgz", - "integrity": "sha512-1Px8uzyjWgSbRvcAITHjoY4Kh0MJIBJXG0v2a0JiNhr6wMmw0CjQFNHuFmRdIIVjTeWjAjJN8F3sfYfKmlfhuQ==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-22.1.0.tgz", + "integrity": "sha512-Vjw4+bLj/qMgPsETX2RAGWpUYQ/nj/Wo8+lS4I9vXNhDxyKkFDX2Gvwr54SJ/LoqBRbCW2yMErLNT+n0b1ugKA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^22.0.0 || ^23.0.0", - "@angular/material": "22.0.6", + "@angular/material": "22.1.0", "date-fns": ">2.20.0 <5.0" } }, "node_modules/@angular/platform-browser": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.0.8.tgz", - "integrity": "sha512-FllGHCayu5Dv82HAA9ORL04Xf+In9JGMbQ1Vn4QnhrAVxBz182vm+ZwszLzRDSAwmfeIjZDeK49tKAcqHR9XNg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-22.1.0.tgz", + "integrity": "sha512-gqUYDUiPfwbaLYdH8WLnOLl3feo3OcNpnMO08HBHaUdi4TLNkC28xwa9fC6ANyYD22QZ5A3abSg8fmR6upWMwg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -937,9 +1293,9 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/animations": "22.0.8", - "@angular/common": "22.0.8", - "@angular/core": "22.0.8" + "@angular/animations": "22.1.0", + "@angular/common": "22.1.0", + "@angular/core": "22.1.0" }, "peerDependenciesMeta": { "@angular/animations": { @@ -948,9 +1304,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.0.8.tgz", - "integrity": "sha512-HQ5GeMoKqd2eMy9hHga1F0yumhrt4gVlhoP8YfmQnZWluVagdyinUpGdd3dNiuYjLcbHB+KXdW9c6LnqEmU+dg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-22.1.0.tgz", + "integrity": "sha512-iLn9vCk6HhxQZhFJIEBjHH1CbyOLEABw0Do3VAzly2YimemitgQEmTLJ5a96qd70rYmpJH6zudhnYqUjyaI6Ig==", "deprecated": "@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.", "license": "MIT", "dependencies": { @@ -960,16 +1316,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.8", - "@angular/compiler": "22.0.8", - "@angular/core": "22.0.8", - "@angular/platform-browser": "22.0.8" + "@angular/common": "22.1.0", + "@angular/compiler": "22.1.0", + "@angular/core": "22.1.0", + "@angular/platform-browser": "22.1.0" } }, "node_modules/@angular/router": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.0.8.tgz", - "integrity": "sha512-9NO5K03QqfWMWWZ+Uu4WqBSLw/YAot918cBUFdgl6mTUOfoHi/xWO5pAt0SEpbXMHmWafJBdb99GRlAGybGSTg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-22.1.0.tgz", + "integrity": "sha512-42Bs0g+tV2gE70Lqnt+VD/+DWbvWwQcg8QgXkTIu3A504tYknrZG/wmvki2AJGyZhmyQ46B4pfXLG4WDP8MFSA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -978,16 +1334,16 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/common": "22.0.8", - "@angular/core": "22.0.8", - "@angular/platform-browser": "22.0.8", + "@angular/common": "22.1.0", + "@angular/core": "22.1.0", + "@angular/platform-browser": "22.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.0.8.tgz", - "integrity": "sha512-Vf97d5CqZzqZpSEyXey5HxIsmo7QsRlgkP6aC9wXasYxQiHeI1iO2CRF4mbSr58F6OqjaH/ReljsEBgbV5bgpw==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-22.1.0.tgz", + "integrity": "sha512-apz0zZ8at3D1Y1FcxrxJknLOyjWvwhzEEoPYIzMvPnMzKUTucU8IhZBHJ4adX3wRLoDPCAVDJrKSnXeOogveWw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -999,7 +1355,7 @@ "node": "^22.22.3 || ^24.15.0 || >=26.0.0" }, "peerDependencies": { - "@angular/core": "22.0.8", + "@angular/core": "22.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1094,16 +1450,50 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", - "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-8.0.0.tgz", + "integrity": "sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.7" + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/helper-string-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.4.tgz", + "integrity": "sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.4.tgz", + "integrity": "sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.4" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-compilation-targets": { @@ -1423,6 +1813,40 @@ "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", "license": "MIT" }, + "node_modules/@emnapi/core": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", + "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", + "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", @@ -2155,16 +2579,6 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", "license": "MIT" }, - "node_modules/@gar/promise-retry": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", - "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@harperfast/extended-iterable": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", @@ -2287,17 +2701,17 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.12.tgz", - "integrity": "sha512-h9FgGun3QwVYNj5TWIZZ+slii73bMoBFjPfVIGtnFuL4t8gBiNDV9PcSfIzkuxvgquJKt9nr1QzszpBzTbH8Og==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.1.1.tgz", + "integrity": "sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.9", - "@inquirer/type": "^4.0.5" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -2497,25 +2911,25 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.4.2.tgz", - "integrity": "sha512-XJmn/wY4AX56l1BRU+ZjDrFtg9+2uBEi4JvJQj82kwJDQKiPgSn4CEsbfGGygS4Gw6rkL4W18oATjfVfaqub2Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.5.2.tgz", + "integrity": "sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.4", - "@inquirer/confirm": "^6.0.12", - "@inquirer/editor": "^5.1.1", - "@inquirer/expand": "^5.0.13", - "@inquirer/input": "^5.0.12", - "@inquirer/number": "^4.0.12", - "@inquirer/password": "^5.0.12", - "@inquirer/rawlist": "^5.2.8", - "@inquirer/search": "^4.1.8", - "@inquirer/select": "^5.1.4" + "@inquirer/checkbox": "^5.2.1", + "@inquirer/confirm": "^6.1.1", + "@inquirer/editor": "^5.2.2", + "@inquirer/expand": "^5.1.1", + "@inquirer/input": "^5.1.2", + "@inquirer/number": "^4.1.1", + "@inquirer/password": "^5.1.1", + "@inquirer/rawlist": "^5.3.1", + "@inquirer/search": "^4.2.1", + "@inquirer/select": "^5.2.1" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -2623,19 +3037,6 @@ "@tiptap/pm": "^2.10.3 || ^3.0.0" } }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2703,13 +3104,13 @@ "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-4.2.3.tgz", - "integrity": "sha512-Co9U3AJ3LW0J8XBHjVoNKA79dMAyFt8EZH3OaKTMcDTj8r+6kG3vSUPq/eGLHT7P0iK3uLaFfhdFYd3033P24g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-4.2.4.tgz", + "integrity": "sha512-/KRI2DMD7JGSYaREF0Ygl7AefJ/2ase4Gc5cBiKqT5l4tFjsSJfhFGcc5nSkgl0Sp9LkCQNzl/cqbVJYP2L3dw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/type": "^4.0.5" + "@inquirer/type": "^4.0.6" }, "engines": { "node": ">=22.13.0" @@ -2720,9 +3121,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.4.tgz", - "integrity": "sha512-Kk4Kz3iyu1QiLsLZBS9Af1eSKUC8VR2T+/jyE2iAyuGw2VwK08pp5iTbZnXn6sWu0LogO/RFktMxOjiDA2sS3w==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.6.tgz", + "integrity": "sha512-mY5FG4TjPAkY4P0w+OhHaUka5mDh2TX2WKYIwuKzJ1zeW3VvRgxdam/lGJTquI+bthTx5CSHDW+BAQCnNAzkEA==", "cpu": [ "arm64" ], @@ -2734,9 +3135,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.4.tgz", - "integrity": "sha512-BEe5Rp3trn26oxoXOVL5HVDoiYmjUDwr8NRPkBOdUdCSBEorKI+7JrZLRKAdxO+G6cGQLgseXk0gR7qIQa7aGw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.6.tgz", + "integrity": "sha512-foa+pwitysO8k+xhs7psBFfTKnVgR69NlZRRTHaFVDqphh7AdGpLeyRzKw/ofatr/sN6TiHRRW6mmop0ZrrppQ==", "cpu": [ "x64" ], @@ -2748,9 +3149,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.4.tgz", - "integrity": "sha512-SGbFR7816uBcTHc2ZY4S6WyOkl9bICnzqTQd2Mv4V/j24cfds88xx2nC6cm/y8zGQL7Ds31YF/5NGxjgcdM5Hw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.6.tgz", + "integrity": "sha512-QR4YRyR5h5Z8eGXrNQjiyo2NNDfqi3tCc9dQG5Is1blCt+qWw1ZoBWhlWAr5d+jshkifMIJjVHzHGKbkKzF8Tw==", "cpu": [ "arm" ], @@ -2762,9 +3163,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.4.tgz", - "integrity": "sha512-cUXEengO8o60v1SWerJTH4/RH4U3+9jC0/4njp2Z9NdmvaGzhKsbRM2wpXuRYrN8tytsoJCg0SvWEWwHAwLbCA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.6.tgz", + "integrity": "sha512-HmiyFFdJa38s1heCMSooSPaBSFTHJ3C+ERPp28xAPlDX1YiALJVOgbry065nXd8Y7KISWjnw05zpG1RX8IfftA==", "cpu": [ "arm64" ], @@ -2776,9 +3177,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.4.tgz", - "integrity": "sha512-Gxq8jpgOWXwd0PUR+c9R2Ik1/uBnGd5GMIIzRRDqABCkvmjtC3KWcyhesV9jSPCz759isl0NlbsstZ2oyvk8lA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.6.tgz", + "integrity": "sha512-ADzCuCF2cTNiX9kDScqcz1fjnAkxPpQNneV3KFTdV3wWtVlI2sTGzySoMTgDpinkMMFj1NTJlxA6XR8fwc4hlA==", "cpu": [ "x64" ], @@ -2790,9 +3191,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-arm64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.4.tgz", - "integrity": "sha512-pKv1DJ1bPZAaHkdFsSz5IDfUG8x9vntgquXF9/Dm2xuupcIe/EkLzylpoBxppFVK5vzbV561Dq26jNY2fIMA7g==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.6.tgz", + "integrity": "sha512-J7A9aEQsQiv0TYtBGL7NDIPp2lOS8nnl+zm4sWZm1xlsTTaQ4PgD096Adzdrk27rw3UxCkDXdCUa4ax41oztBQ==", "cpu": [ "arm64" ], @@ -2804,9 +3205,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.4.tgz", - "integrity": "sha512-JF1BmLCm9kGEVZgYmJq43zeQVdHVgAJnTi/NURWEsy6L1ZrrlSmdltS+D17QN4LODwf+1LMXAA9auIZVXtWwzw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.6.tgz", + "integrity": "sha512-1g7G0knRX2iV/voDu54yxrGqw5Dk0w2oIYb7dgJq8IkOi+m7wbD8Q3QpPFjh0C01G58S88dqGn03len6UPCXsg==", "cpu": [ "x64" ], @@ -3328,6 +3729,28 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, "node_modules/@ngx-pwa/local-storage": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@ngx-pwa/local-storage/-/local-storage-22.0.0.tgz", @@ -3396,218 +3819,386 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@npmcli/agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz", - "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==", + "node_modules/@openslides/motion-diff": { + "resolved": "../packages/openslides-motion-diff", + "link": true + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.142.0.tgz", + "integrity": "sha512-ZiRGDutGsv1G6bL/ozy/koC0Sv39T1DqyoC4KD1DOy9ZoACm1O5UWhEK2c02Qdk+4lfLVkvFa/mQ0fm/4h1BtQ==", + "cpu": [ + "arm" + ], "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^11.2.1", - "socks-proxy-agent": "^8.0.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.142.0.tgz", + "integrity": "sha512-WZkvGRLNQTz8lR9zP5nLjUdlroRCopBu3g9zF1p/laE6DzT1UbQo8Rdz5MWhaJUPYg/6gp+jo7HUgsyKaN1FtQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/fs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", - "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.142.0.tgz", + "integrity": "sha512-l4khS8LQOOVYsGRVARo1gSaCT/aBSceUVXgtovWc2+drnxVuDr082WA3OCHVdVzIz5JIrP/y9CWsSKxBDNmYGg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", - "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.142.0.tgz", + "integrity": "sha512-QBsNF3nqlXmcH2B1YOPqQYmCJoy4HuIjUxGbBO/k5JAJUl68ghU2psRY2zPk+RyBaWqKP/qfL4oaFgEMCdwskA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "ini": "^6.0.0", - "lru-cache": "^11.2.1", - "npm-pick-manifest": "^11.0.1", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "which": "^6.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.142.0.tgz", + "integrity": "sha512-b7Q7m4Cqc6XqNhri3R+QhU+GVy646Pn+bkdhrDdWym/Fdi0ZUa+d73H9dm5H91JtbtAQ/z1d8XKMW3oOV8a4tQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.142.0.tgz", + "integrity": "sha512-3riVS5IhdH3uCZj1Y9ftDQlR0dvLsIlw/edrRqk8JhgNd5K0XSs+UBtgh50N13CAlW9/TXj6sVGXaKNBocd0Yg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.142.0.tgz", + "integrity": "sha512-NmXUOpgpTSkhl795TiXmWppTwmSJ92RC1qvD6e4XOF+slgmo3e6Ah+kEu+6AN8s7NAOEwqGmir58MgSQSWmBSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.142.0.tgz", + "integrity": "sha512-gc0EXsKtXgerujmU2Bql3u1L1HsSQ2774R83idq/FoNMPVV/RY/1ErFsvnit7KoiP/sLvzQixeUo4Ut0ic0wmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.142.0.tgz", + "integrity": "sha512-F2XvmWSE0uWpie+jHKKIFgdVOe9ypGhkEZxKx5DuW215K6cbAC274yYaPkcM7EqY4Df3Weyhpcz3lsURyH2LVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.142.0.tgz", + "integrity": "sha512-wLMbT21U/QxknQsk+VvNF0b9D2/aGWhcaQQQ+VYlE8FwD5+GoWZIPPXNzyHmkYyhm0KB3itL+TBavjMatqNnYA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.142.0.tgz", + "integrity": "sha512-+G8F/4ckwT7FCJV4H2bt09xEzJbjNCfuL4Sp1AYNaFtFMVtgIGMuJlteT82U+K0UIZ/DzAR/LDlMFnEuajG7Kw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=20" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.142.0.tgz", + "integrity": "sha512-hTsHtTLxMAfCo+rpF5K3qZJKW2NpPN/CHd4mYB3y7XlSdspHkd2gehDIofP64AacA9nWQw2tY3O7wR6UY8IVOA==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.142.0.tgz", + "integrity": "sha512-6y7qYY3TCUDYjqswImdTGl92y+KA/80twALegQPN27kfY+bG7Ib1+L3jbmrCZQx6wrVnai9IPsEZp07I0hx7JQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", - "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.142.0.tgz", + "integrity": "sha512-i69kAWU+2LgoH5bR+zWiiu+UzAw7Oxkwv7COeJTeY19pn4e70nKQcr9Pm6cL2Z0Z54d+gl9qADlK/0yyuCPiBA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^5.0.0", - "npm-normalize-package-bin": "^5.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/node-gyp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", - "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.142.0.tgz", + "integrity": "sha512-4SQs678MmjYVrmhAgCWD4o0vpaFszXw9xLX5p2Z9MMFcltxiLkA88wQjh80YHjPrXtpyZ2CWI5m+1yNKM0m2Pw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/package-json": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", - "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.142.0.tgz", + "integrity": "sha512-YHpx9N7Ln3a++Tc8rv+H7mrK1zyJQOAwCFg8LZ3lTs1T5afGWeZrLPhPT9HLnIwSjCyJqPWVMIrMxbjcmBr2oQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^7.0.0", - "glob": "^13.0.0", - "hosted-git-info": "^9.0.0", - "json-parse-even-better-errors": "^5.0.0", - "proc-log": "^6.0.0", - "semver": "^7.5.3", - "spdx-expression-parse": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", - "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.142.0.tgz", + "integrity": "sha512-3pLDyY3+oogW73RM5uehNgAiR/Xfb7fvO2Q1Z1gIqZ2+50XDVQmBVlRkHXZTU4gKnQHpwETNsYQVsJ3joVB2iA==", + "cpu": [ + "wasm32" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, "dependencies": { - "which": "^6.0.0" + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", + "@napi-rs/wasm-runtime": "^1.1.6" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.142.0.tgz", + "integrity": "sha512-Had/VeVY28Oyb0K+Q4FV8KCzoBycIh93oDK6pCbya9lkzdq+ikMHMgBubsdqqlybjJmQRawCQRrnBRHyQwYvcQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=20" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.142.0.tgz", + "integrity": "sha512-GGi3+YphVHavvgs6gum2UXoNCqzHAmPt/nXkn8ZQZstV2Q1qZD1Mn8fz/nWrDkefHQtrG/+1/XrbMxsBTo6Svw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/redact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", - "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.142.0.tgz", + "integrity": "sha512-Ny/Wv4Us1LGC/ljwNTp+Hx3r/pH15EFfeDF0p+n898gt+TtRd6C9SccHcuUhDiNTb8s5tt7jdeAMDRQZ4Vq6hg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@npmcli/run-script": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", - "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", + "node_modules/@oxc-project/types": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^5.0.0", - "@npmcli/package-json": "^7.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "node-gyp": "^12.1.0", - "proc-log": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, - "node_modules/@openslides/motion-diff": { - "resolved": "../packages/openslides-motion-diff", - "link": true - }, "node_modules/@parcel/watcher": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", @@ -4000,24 +4591,10 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", - "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", - "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.0.tgz", + "integrity": "sha512-9yB1l95IrJuNGDFdOYe79vdApdz6WWBCObE+rQ2LUliYUlcyFwSYIb2xb5/Ifw7dAtMy2ZqNyd8QTSOc7duAKw==", "cpu": [ "arm64" ], @@ -4026,12 +4603,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", - "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.0.tgz", + "integrity": "sha512-pexNaW9ACLUOaBITOpU6qVu4VrsOFIjTv6bzgu0YUATo4eUJx0V605PxwZfndpPOn0ilqGqvGQ0M8UW0IE24jg==", "cpu": [ "arm64" ], @@ -4040,12 +4620,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", - "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.0.tgz", + "integrity": "sha512-NqKYaq0355ZmNMG4QGpxtEDxsc7tGDhjhCm4PpE0cwnBW+5Il95LJyq414niEiaKLVjnVHBEjSo1wngKxJNiFw==", "cpu": [ "x64" ], @@ -4054,26 +4637,15 @@ "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", - "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", - "cpu": [ - "arm64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", - "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.0.tgz", + "integrity": "sha512-3vPoHzh6eBTz9IbB0/qZdSr0Qeks2echn+I4cHu2joV74VriPDdldswksEDzrl1mBB+oPRi+67+3Ib59paxIPQ==", "cpu": [ "x64" ], @@ -4082,116 +4654,34 @@ "optional": true, "os": [ "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", - "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", - "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", - "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", - "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", - "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", - "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.0.tgz", + "integrity": "sha512-E6NNefZ1bUVmKJq2tJkf45J4Zyczj7qm9rUT7NY+Xo2474Y13qWAwc2tvBt0BAVbmtXR1llkxXg0Ou1jbDf2SQ==", "cpu": [ - "loong64" + "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", - "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.0.tgz", + "integrity": "sha512-D+TgkdgM1vu+7/Fpf8+v0ARW+RXEP9Ccazgm8zQ4JFFd9Q7SrYQ2TakU5S5ihazQDgpKyAgZDOcIFsvoHmTZ8w==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "libc": [ @@ -4201,14 +4691,17 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", - "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.0.tgz", + "integrity": "sha512-wUqdwJBbAv0APN87GecstdMUtLjjNTs0hBALpxETD73mccFxdmt/XeizXDtN5RAlBwNKmI+Tg+blect2G+8IeQ==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "libc": [ @@ -4218,14 +4711,17 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", - "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.0.tgz", + "integrity": "sha512-9DtF35qR9/NrfhM4oxLplCzVVjE+KKm8Pjemi0i/sdhAWkUasjmSo8WTTubNJClhSHCfyk2yeyoXDQEDPtDAAw==", "cpu": [ - "riscv64" + "ppc64" ], "dev": true, "libc": [ @@ -4235,29 +4731,15 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", - "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", - "cpu": [ - "riscv64" ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", - "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.0.tgz", + "integrity": "sha512-RzuHrBh8X8Hntd2N4VR02QGEciq/9JhcZoTpR/Cee6otRrlILGCf3cg2ygHuih+ZebUnWmMrDX6ITI85btO6rQ==", "cpu": [ "s390x" ], @@ -4269,12 +4751,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", - "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.0.tgz", + "integrity": "sha512-MK7L0018jjh1jR3mh21G2j1zAVcpscJBlPo2z19pRjv2XOYGRhaV4LyiD8HO6nCDdZln9IFgCMIV5yt4E3klGQ==", "cpu": [ "x64" ], @@ -4286,12 +4771,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", - "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.0.tgz", + "integrity": "sha512-gyrxLQ9NfGb/9LoVnC4kb9miUghw1mghnkfYvNHSnVIXriabnfgGPUP4RLcJm87q3KgYz4FYUG8IDiWUT+CpSw==", "cpu": [ "x64" ], @@ -4303,26 +4791,15 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", - "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", - "cpu": [ - "x64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", - "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.0.tgz", + "integrity": "sha512-/6VFMQGRmrhP77KXDC+StIxGzcNp5JOIyYtw0CQ8gPlzhpiIRucYfoM5FaFamHd5BJYIdH86yfP46l1p3WdrFA==", "cpu": [ "arm64" ], @@ -4331,40 +4808,51 @@ "optional": true, "os": [ "openharmony" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", - "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.0.tgz", + "integrity": "sha512-rwdbUL465kisF24WEJLvP3JrEG6E5GRuIHt5wpMwHGERtHe4Wm2CIvtf5gTBgr2tGOHKh5NdKEAFS2VkOPE91g==", "cpu": [ - "arm64" + "wasm32" ], "dev": true, "license": "MIT", "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@emnapi/core": "1.11.2", + "@emnapi/runtime": "1.11.2", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", - "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.0.tgz", + "integrity": "sha512-+5suHwRiKGmhwyUaNT8a5QbrBvLFh2DbO910TEmGRH1aSxwrCezodvGQnulv4uiWEIv1Kq4ypRsJ5+O+ry1DiA==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", - "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.0.tgz", + "integrity": "sha512-WfFv6/qGufotqBSBzBYwgpCkJBk8Nj7697LL9vTz/XWc67e0r3oewu8iMRwQj3AUL45GVD7wVsPjCsAAtW66Wg==", "cpu": [ "x64" ], @@ -4373,31 +4861,27 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", - "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", - "cpu": [ - "x64" ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, "node_modules/@schematics/angular": { - "version": "22.0.8", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.0.8.tgz", - "integrity": "sha512-zD2WLe15SoKYyBZH1GTLLaVABNNObHkH4soQqXb9agN6zkrpE0naeWaBSFSWD+95VKCiMZl8LkiOXvK+6b8S6w==", + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-22.1.2.tgz", + "integrity": "sha512-52udja/QGSNH5geSnL4JWFOEfx8M7tqf7LNXz8byjki4VshVOkKHTawQcL4YbJfo3MfwwXm4AsoadMOk8EST2w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "22.0.8", - "@angular-devkit/schematics": "22.0.8", + "@angular-devkit/core": "22.1.2", + "@angular-devkit/schematics": "22.1.2", "jsonc-parser": "3.3.1", "typescript": "6.0.3" }, @@ -4407,86 +4891,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@sigstore/bundle": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", - "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/core": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", - "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz", - "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", - "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@gar/promise-retry": "^1.0.2", - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.0", - "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.4", - "proc-log": "^6.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", - "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.5.0", - "tuf-js": "^4.1.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", - "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -5547,28 +5951,15 @@ "@tsparticles/engine": "3.9.1" } }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", - "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^10.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" + "tslib": "^2.4.0" } }, "node_modules/@types/cors": { @@ -5612,6 +6003,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/gensync": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.5.tgz", + "integrity": "sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/glob-to-regexp": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz", @@ -5633,6 +6031,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -6034,23 +6439,6 @@ "node": ">=10.0.0" } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/abbrev": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", - "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6123,16 +6511,6 @@ "pkcs7": "^1.0.4" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ajv": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", @@ -6168,32 +6546,6 @@ } } }, - "node_modules/algoliasearch": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.52.0.tgz", - "integrity": "sha512-0ZzY9mjqV7gop/AH8pIBiAS8giXP7WcSiUfoFYIzYAK9QC5c37E4SIVtJVBMwlURc0/uNt2o4RcNRvdHa4CJ5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.18.0", - "@algolia/client-abtesting": "5.52.0", - "@algolia/client-analytics": "5.52.0", - "@algolia/client-common": "5.52.0", - "@algolia/client-insights": "5.52.0", - "@algolia/client-personalization": "5.52.0", - "@algolia/client-query-suggestions": "5.52.0", - "@algolia/client-search": "5.52.0", - "@algolia/ingestion": "1.52.0", - "@algolia/monitoring": "1.52.0", - "@algolia/recommend": "5.52.0", - "@algolia/requester-browser-xhr": "5.52.0", - "@algolia/requester-fetch": "5.52.0", - "@algolia/requester-node-http": "5.52.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/angular-eslint": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-22.1.0.tgz", @@ -6491,9 +6843,9 @@ } }, "node_modules/beasties": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.2.tgz", - "integrity": "sha512-NvcGjG/7AVUAfRbvrJmHunDQS9uHnE6Q/7AkaPr8oKE8HjOlpjRG5075z/th2Tmlezk3VlaaS8+X9I1RwHJMQw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.3.tgz", + "integrity": "sha512-fIIeLOcbAB/K1kb1HBVJoiq1alHL4RCYBSo5e7HzrNkkgMggXR1Vqt/Z9JWnkfe/qdCo66Ux3QRwZioAIBdWRA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6753,38 +7105,6 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", - "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^5.0.0", - "fs-minipass": "^3.0.0", - "glob": "^13.0.0", - "lru-cache": "^11.1.0", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^7.0.2", - "ssri": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -6926,16 +7246,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/cli-cursor": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", @@ -7450,7 +7760,6 @@ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -7636,6 +7945,16 @@ "dev": true, "license": "MIT" }, + "node_modules/empathic": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", + "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -7739,16 +8058,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/environment": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", @@ -8212,13 +8521,6 @@ "node": ">=8.3.0" } }, - "node_modules/exponential-backoff": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/express": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", @@ -8816,19 +9118,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -9176,22 +9465,22 @@ } }, "node_modules/hosted-git-info": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", - "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-10.1.1.tgz", + "integrity": "sha512-DeOnSPAvOndYKfw075gt8yZzQ7S2hNztw34zBTfhIzLhmBTswIBg5/y+pqu/VD5cYWm5goAFTusDmUEmKZ0PEQ==", "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^11.1.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -9250,16 +9539,9 @@ "engines": { "node": ">=0.12" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true, - "license": "BSD-2-Clause" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/http-errors": { "version": "2.0.1", @@ -9307,34 +9589,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9378,19 +9632,6 @@ "node": ">= 4" } }, - "node_modules/ignore-walk": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", - "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^10.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -9421,6 +9662,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -9448,16 +9700,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/ini": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", - "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/ip-address": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", @@ -9784,16 +10026,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", - "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -9845,16 +10077,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -10287,89 +10509,362 @@ "node": ">=10" } }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/linebreak": { @@ -10409,6 +10904,7 @@ "integrity": "sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cli-truncate": "^5.2.0", "eventemitter3": "^5.0.4", @@ -10426,6 +10922,7 @@ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10438,7 +10935,8 @@ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/listr2/node_modules/wrap-ansi": { "version": "10.0.0", @@ -10446,6 +10944,7 @@ "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^6.2.3", "string-width": "^8.2.0", @@ -10459,9 +10958,9 @@ } }, "node_modules/lmdb": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.4.tgz", - "integrity": "sha512-9FKQA6G1MMtqNxfxvSBNXD/axeG2QRjYbNh0/ykRL5xYcRbCm2vXq7B9bhc7nSuKdHzr8/BHIwfPuYYH1UsXXw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.6.tgz", + "integrity": "sha512-j3uE8ReKNyUWDjhfEFSJqE/1DLtfTR5Z8yFzVHvBjAk37wNg7HdScjcv8ttPHRvrdgPQMPWxFFI0SsdBzI5lBw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -10478,13 +10977,13 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.5.4", - "@lmdb/lmdb-darwin-x64": "3.5.4", - "@lmdb/lmdb-linux-arm": "3.5.4", - "@lmdb/lmdb-linux-arm64": "3.5.4", - "@lmdb/lmdb-linux-x64": "3.5.4", - "@lmdb/lmdb-win32-arm64": "3.5.4", - "@lmdb/lmdb-win32-x64": "3.5.4" + "@lmdb/lmdb-darwin-arm64": "3.5.6", + "@lmdb/lmdb-darwin-x64": "3.5.6", + "@lmdb/lmdb-linux-arm": "3.5.6", + "@lmdb/lmdb-linux-arm64": "3.5.6", + "@lmdb/lmdb-linux-x64": "3.5.6", + "@lmdb/lmdb-win32-arm64": "3.5.6", + "@lmdb/lmdb-win32-x64": "3.5.6" } }, "node_modules/locate-path": { @@ -10744,9 +11243,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.0.0.tgz", + "integrity": "sha512-CGvjzMN08iv6w1mm4/x3Gh1hLb4VnyRUA15FFpl6CsCIGGoe36k7kY5KNz9QDbSBN5I/fWHM6ZlIkUTa5xdUEA==", "dev": true, "license": "MIT", "dependencies": { @@ -10776,30 +11275,6 @@ "dev": true, "license": "ISC" }, - "node_modules/make-fetch-happen": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz", - "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/agent": "^4.0.0", - "@npmcli/redact": "^4.0.0", - "cacache": "^20.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^6.0.0", - "ssri": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/material-design-icons-iconfont": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz", @@ -10955,147 +11430,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", - "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^2.0.0", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - }, - "optionalDependencies": { - "iconv-lite": "^0.7.2" - } - }, - "node_modules/minipass-fetch/node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", - "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", - "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -11304,38 +11638,13 @@ "tslib": "^2.6.1" } }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-gyp": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", - "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "graceful-fs": "^4.2.6", - "nopt": "^9.0.0", - "proc-log": "^6.0.0", - "semver": "^7.3.5", - "tar": "^7.5.4", - "tinyglobby": "^0.2.12", - "undici": "^6.25.0", - "which": "^6.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT", + "optional": true }, "node_modules/node-gyp-build-optional-packages": { "version": "5.2.2", @@ -11353,32 +11662,6 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=20" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^4.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/node-html-better-parser": { "version": "1.5.9", "resolved": "https://registry.npmjs.org/node-html-better-parser/-/node-html-better-parser-1.5.9.tgz", @@ -11395,22 +11678,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nopt": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", - "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", - "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "^4.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11420,106 +11687,20 @@ "node": ">=0.10.0" } }, - "node_modules/npm-bundled": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", - "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^5.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-install-checks": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", - "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", - "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/npm-package-arg": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", - "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-14.0.0.tgz", + "integrity": "sha512-69XQh3k+dtGa1p+7RaR57IuG3rCko96xr/nUfN4yDYBXbTYICiWcOpsFKLN2GtGE9cyIljE+f1exnaYt9MvM+Q==", "dev": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^9.0.0", - "proc-log": "^6.0.0", + "hosted-git-info": "^10.1.0", + "proc-log": "^7.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^7.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-packlist": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", - "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", - "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^8.0.0", - "proc-log": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", - "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^8.0.0", - "npm-normalize-package-bin": "^5.0.0", - "npm-package-arg": "^13.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", - "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^4.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^15.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minizlib": "^3.0.1", - "npm-package-arg": "^13.0.0", - "proc-log": "^6.0.0" + "validate-npm-package-name": "^8.0.0" }, "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/nth-check": { @@ -11558,6 +11739,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -11615,9 +11810,9 @@ } }, "node_modules/ora": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz", - "integrity": "sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", "dev": true, "license": "MIT", "dependencies": { @@ -11664,6 +11859,44 @@ "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", "license": "MIT" }, + "node_modules/oxc-parser": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.142.0.tgz", + "integrity": "sha512-kKR+jPiRJYJDexVoziIg/FVGvr1fT1FZSSJOk6tVoMKKSlsf1Cso+cgGCJkOEDWOP174vRntCPFKg+AS7InWvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.142.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.142.0", + "@oxc-parser/binding-android-arm64": "0.142.0", + "@oxc-parser/binding-darwin-arm64": "0.142.0", + "@oxc-parser/binding-darwin-x64": "0.142.0", + "@oxc-parser/binding-freebsd-x64": "0.142.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.142.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.142.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.142.0", + "@oxc-parser/binding-linux-arm64-musl": "0.142.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.142.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.142.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.142.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.142.0", + "@oxc-parser/binding-linux-x64-gnu": "0.142.0", + "@oxc-parser/binding-linux-x64-musl": "0.142.0", + "@oxc-parser/binding-openharmony-arm64": "0.142.0", + "@oxc-parser/binding-wasm32-wasi": "0.142.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.142.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.142.0", + "@oxc-parser/binding-win32-x64-msvc": "0.142.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -11696,19 +11929,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", - "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -11718,38 +11938,6 @@ "node": ">=6" } }, - "node_modules/pacote": { - "version": "21.5.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz", - "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promise-retry": "^1.0.0", - "@npmcli/git": "^7.0.0", - "@npmcli/installed-package-contents": "^4.0.0", - "@npmcli/package-json": "^7.0.0", - "@npmcli/promise-spawn": "^9.0.0", - "@npmcli/run-script": "^10.0.0", - "cacache": "^20.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^13.0.0", - "npm-packlist": "^10.0.1", - "npm-pick-manifest": "^11.0.1", - "npm-registry-fetch": "^19.0.0", - "proc-log": "^6.0.0", - "sigstore": "^4.0.0", - "ssri": "^13.0.0", - "tar": "^7.4.3" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -11959,9 +12147,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -12132,13 +12320,13 @@ } }, "node_modules/proc-log": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-7.0.0.tgz", + "integrity": "sha512-FYgfaA69XZ93zaXLoMNQ+ViDXGGBgR8aLh03txzcFhV+9xOXx7+8DLCULrKKpR9+GsH9ZfHm82aSUPpozX0Ztg==", "dev": true, "license": "ISC", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/process": { @@ -12309,6 +12497,24 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent-negotiate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-agent-negotiate/-/proxy-agent-negotiate-1.1.0.tgz", + "integrity": "sha512-N8IBcM3UgCVzz2L2Lqv8DVntDnnC8/hiV4nEDUPkqq72TPUgYWjQc+bdZlBPZK9LzPAvOY//gAt0S0DApoOXWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "peerDependencies": { + "kerberos": "^2.0.0" + }, + "peerDependenciesMeta": { + "kerberos": { + "optional": true + } + } + }, "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -12740,49 +12946,48 @@ "node": "*" } }, - "node_modules/rollup": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", - "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "node_modules/rolldown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.0.tgz", + "integrity": "sha512-u7tgm5l4Yw1iTqUL4EcYOAt7fFvCgQMLeidrnD4GALlC6aOznCjezYajgxeyKw27u0Q5N7fwgCzjVyPIWzwuBA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@oxc-project/types": "=0.140.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { - "rollup": "dist/bin/rollup" + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.2", - "@rollup/rollup-android-arm64": "4.60.2", - "@rollup/rollup-darwin-arm64": "4.60.2", - "@rollup/rollup-darwin-x64": "4.60.2", - "@rollup/rollup-freebsd-arm64": "4.60.2", - "@rollup/rollup-freebsd-x64": "4.60.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", - "@rollup/rollup-linux-arm-musleabihf": "4.60.2", - "@rollup/rollup-linux-arm64-gnu": "4.60.2", - "@rollup/rollup-linux-arm64-musl": "4.60.2", - "@rollup/rollup-linux-loong64-gnu": "4.60.2", - "@rollup/rollup-linux-loong64-musl": "4.60.2", - "@rollup/rollup-linux-ppc64-gnu": "4.60.2", - "@rollup/rollup-linux-ppc64-musl": "4.60.2", - "@rollup/rollup-linux-riscv64-gnu": "4.60.2", - "@rollup/rollup-linux-riscv64-musl": "4.60.2", - "@rollup/rollup-linux-s390x-gnu": "4.60.2", - "@rollup/rollup-linux-x64-gnu": "4.60.2", - "@rollup/rollup-linux-x64-musl": "4.60.2", - "@rollup/rollup-openbsd-x64": "4.60.2", - "@rollup/rollup-openharmony-arm64": "4.60.2", - "@rollup/rollup-win32-arm64-msvc": "4.60.2", - "@rollup/rollup-win32-ia32-msvc": "4.60.2", - "@rollup/rollup-win32-x64-gnu": "4.60.2", - "@rollup/rollup-win32-x64-msvc": "4.60.2", - "fsevents": "~2.3.2" + "@rolldown/binding-android-arm64": "1.2.0", + "@rolldown/binding-darwin-arm64": "1.2.0", + "@rolldown/binding-darwin-x64": "1.2.0", + "@rolldown/binding-freebsd-x64": "1.2.0", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.0", + "@rolldown/binding-linux-arm64-gnu": "1.2.0", + "@rolldown/binding-linux-arm64-musl": "1.2.0", + "@rolldown/binding-linux-ppc64-gnu": "1.2.0", + "@rolldown/binding-linux-s390x-gnu": "1.2.0", + "@rolldown/binding-linux-x64-gnu": "1.2.0", + "@rolldown/binding-linux-x64-musl": "1.2.0", + "@rolldown/binding-openharmony-arm64": "1.2.0", + "@rolldown/binding-wasm32-wasi": "1.2.0", + "@rolldown/binding-win32-arm64-msvc": "1.2.0", + "@rolldown/binding-win32-x64-msvc": "1.2.0" + } + }, + "node_modules/rolldown/node_modules/@oxc-project/types": { + "version": "0.140.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.140.0.tgz", + "integrity": "sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, "node_modules/rope-sequence": { @@ -12863,13 +13068,13 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.99.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.99.0.tgz", - "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.101.0.tgz", + "integrity": "sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^4.0.0", + "chokidar": "^5.0.0", "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -12877,42 +13082,12 @@ "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.19.0" }, "optionalDependencies": { "@parcel/watcher": "^2.4.1" } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/sax": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", @@ -12932,9 +13107,9 @@ } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -13179,24 +13354,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sigstore": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", - "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.1", - "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.1.1", - "@sigstore/tuf": "^4.0.2", - "@sigstore/verify": "^3.1.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/simple-swizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", @@ -13236,17 +13393,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/socket.io": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", @@ -13309,36 +13455,6 @@ } } }, - "node_modules/socks": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.1.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", @@ -13380,44 +13496,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/ssri": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -13550,23 +13628,6 @@ "url": "https://opencollective.com/synckit" } }, - "node_modules/tar": { - "version": "7.5.20", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.20.tgz", - "integrity": "sha512-9FcyK4PA6+WbzlTM9WhQm6vB5W7cP7dUiPsv1g7YDwEQnQ1CGpK3MGlKk/ITVWMk05kHZuBhmVhiv8LZoy/PFQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", @@ -13583,16 +13644,6 @@ "node": ">=6" } }, - "node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", @@ -13606,9 +13657,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -13762,21 +13813,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tuf-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", - "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "4.1.0", - "debug": "^4.4.3", - "make-fetch-happen": "^15.0.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -13869,16 +13905,6 @@ "node": "*" } }, - "node_modules/undici": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz", - "integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -14064,13 +14090,13 @@ "license": "MIT" }, "node_modules/validate-npm-package-name": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", - "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-8.0.0.tgz", + "integrity": "sha512-SCv6OOV6Xj2/3cXy3dGmADluJTNcL3o7hZAglNPTe+WYuEuvxgJzxPrSDLZhF+CwyQOubqgecjMmTJGMVLWjYQ==", "dev": true, "license": "ISC", "engines": { - "node": "^20.17.0 || >=22.9.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/vary": { @@ -14135,18 +14161,17 @@ } }, "node_modules/vite": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", + "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.27.0 || ^0.28.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.17", + "rolldown": "~1.1.5", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" @@ -14162,9 +14187,10 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", - "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", @@ -14177,13 +14203,16 @@ "@types/node": { "optional": true }, - "jiti": { + "@vitejs/devtools": { "optional": true }, - "less": { + "esbuild": { + "optional": true + }, + "jiti": { "optional": true }, - "lightningcss": { + "less": { "optional": true }, "sass": { @@ -14209,6 +14238,348 @@ } } }, + "node_modules/vite/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -14226,13 +14597,12 @@ "license": "MIT" }, "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { @@ -14476,9 +14846,9 @@ } }, "node_modules/yoctocolors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", - "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", "dev": true, "license": "MIT", "engines": { @@ -14567,9 +14937,9 @@ } }, "node_modules/zod": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.2.tgz", - "integrity": "sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/client/package.json b/client/package.json index dc3ce5844f..d9229969b3 100644 --- a/client/package.json +++ b/client/package.json @@ -32,18 +32,18 @@ "get-available-languages": "npm run ts -- cli/get-available-languages.ts" }, "dependencies": { - "@angular/animations": "^22.0.8", - "@angular/cdk": "^22.0.6", - "@angular/common": "^22.0.8", - "@angular/compiler": "^22.0.8", - "@angular/core": "^22.0.8", - "@angular/forms": "^22.0.8", - "@angular/material": "^22.0.6", - "@angular/material-date-fns-adapter": "^22.0.6", - "@angular/platform-browser": "^22.0.8", - "@angular/platform-browser-dynamic": "^22.0.8", - "@angular/router": "^22.0.8", - "@angular/service-worker": "^22.0.8", + "@angular/animations": "^22.1.0", + "@angular/cdk": "^22.1.0", + "@angular/common": "^22.1.0", + "@angular/compiler": "^22.1.0", + "@angular/core": "^22.1.0", + "@angular/forms": "^22.1.0", + "@angular/material": "^22.1.0", + "@angular/material-date-fns-adapter": "^22.1.0", + "@angular/platform-browser": "^22.1.0", + "@angular/platform-browser-dynamic": "^22.1.0", + "@angular/router": "^22.1.0", + "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", "@coreui/angular-chartjs": "~5.7.9", "@coreui/chartjs": "^4.1.0", @@ -103,10 +103,10 @@ "@angular-eslint/eslint-plugin-template": "^22.1.0", "@angular-eslint/schematics": "^22.1.0", "@angular-eslint/template-parser": "^22.1.0", - "@angular/build": "^22.0.8", - "@angular/cli": "^22.0.8", - "@angular/compiler-cli": "^22.0.8", - "@angular/language-server": "^22.0.8", + "@angular/build": "^22.1.2", + "@angular/cli": "^22.1.2", + "@angular/compiler-cli": "^22.1.0", + "@angular/language-server": "^22.1.0", "@stylistic/eslint-plugin": "^5.10.0", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.15", From c3e0777f3a4804290945227515001f49ef854be1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 15:42:32 +0200 Subject: [PATCH 27/43] Bump @coreui/angular-chartjs from 5.7.9 to 5.7.12 in /client (#6479) --- client/package-lock.json | 12 ++++++------ client/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 469be086f4..3cbb2a2033 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -22,7 +22,7 @@ "@angular/router": "^22.1.0", "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", - "@coreui/angular-chartjs": "~5.7.9", + "@coreui/angular-chartjs": "~5.7.12", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", @@ -1741,18 +1741,18 @@ } }, "node_modules/@coreui/angular-chartjs": { - "version": "5.7.9", - "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.9.tgz", - "integrity": "sha512-Wdg0rweyyS4iSTy2arGgmMirUIBNbiuwc0EdW7G8A6i+9gBelFhzdyFQQ5+W0noOVnu4NavzvWcttvBs9augTQ==", + "version": "5.7.12", + "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.12.tgz", + "integrity": "sha512-vlVz5b0LDlPs23e44bH1ovBCNOP+J7QINjnult+MfpTYKCksqlkwb9V4lK/1ZVTQA03fHnh2y0TcBjodZbIxzQ==", "license": "MIT", "dependencies": { "lodash-es": "^4.18.1", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^22.0.0", + "@angular/core": "^22.1.0", "@coreui/chartjs": "^4.2.0", - "chart.js": "^4.5.0" + "chart.js": "^4.5.1" } }, "node_modules/@coreui/chartjs": { diff --git a/client/package.json b/client/package.json index d9229969b3..1e8c10beed 100644 --- a/client/package.json +++ b/client/package.json @@ -45,7 +45,7 @@ "@angular/router": "^22.1.0", "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", - "@coreui/angular-chartjs": "~5.7.9", + "@coreui/angular-chartjs": "~5.7.12", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", From f7996a182982e03591623df9214411d49e7db235 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:53:09 +0000 Subject: [PATCH 28/43] Bump the tiptap group in /client with 15 updates (#6478) --- client/package-lock.json | 386 +++++++++++++++++++-------------------- client/package.json | 20 +- 2 files changed, 203 insertions(+), 203 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 3cbb2a2033..93429bb5b8 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -31,21 +31,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.29.1", + "@tiptap/core": "^3.29.2", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.29.1", - "@tiptap/extension-highlight": "^3.29.1", - "@tiptap/extension-image": "^3.29.1", + "@tiptap/extension-color": "^3.29.2", + "@tiptap/extension-highlight": "^3.29.2", + "@tiptap/extension-image": "^3.29.2", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.29.1", - "@tiptap/extension-superscript": "^3.29.1", - "@tiptap/extension-table": "^3.29.1", - "@tiptap/extension-text-align": "^3.29.1", + "@tiptap/extension-subscript": "^3.29.2", + "@tiptap/extension-superscript": "^3.29.2", + "@tiptap/extension-table": "^3.29.2", + "@tiptap/extension-text-align": "^3.29.2", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", - "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.29.1", + "@tiptap/pm": "^3.29.2", + "@tiptap/starter-kit": "^3.29.2", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", @@ -4935,192 +4935,220 @@ } }, "node_modules/@tiptap/core": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.29.1.tgz", - "integrity": "sha512-aXTluPLRB2cFyEw77KkGKtTcfhQ6Snf1KPRpQnpYNGQm8uAmJenl0Cui7PRl2OxuY0Kb2PQ4XhR8p63lyLyKvw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.29.2.tgz", + "integrity": "sha512-oKUkiPUB7noilVYxI9lNzUD4rX17sHub+PYjMfHMWHG9A3nvIy+FdePIVIIhThKWF7ijhr3eIqHY51Bn+GAFtw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/pm": "3.29.1" + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-blockquote": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.29.1.tgz", - "integrity": "sha512-ELA0pvI/mAsIHkZRp7ngzdc1v4j/hmJIwsFKgqwTjsEduYS/BgheCEImhAppeaTb4C2rSic3Bnt7reYWhQv3dw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.29.2.tgz", + "integrity": "sha512-ca4OzKDh0yaxg2+Z56bC2QnWsNsFp2YMRfVig1PDXyMVFMNJpLcnhxgq/9btn+xYAlYrj8RymOeCTYREOR6Zjg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-bold": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.29.1.tgz", - "integrity": "sha512-2m7Vw4hf8Up/jC4069wmbqAipxd7mHr5UmBXfTcxM6XiVIKoc3HT4qEvLDgRKexvDGZsTN7p4ZppH73Cv7RMgA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.29.2.tgz", + "integrity": "sha512-elYbGxJsYnBb4leqrcjdIJuiG380BcOgN+UUzvOv+qEjfGVzHodFOMBl3qnmD6urYHNu5/qQK2S0qSSRXKCLNQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.29.1.tgz", - "integrity": "sha512-Z5dXne6mnBOlsOVkmtxBSiTpDJ1MQZ9IDCoRxeabAf9AOXbyrv4h+JcPkgMkbUMflx/xkG3gUVgfrki4EGKn1Q==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.29.2.tgz", + "integrity": "sha512-3bWcCUPbCHv0XttlMdnAtXLNYWx2pblByMgxmGsaP9FU0QnslGXty6A6gHCqI33ygRg1vrA6U5Wtpwbi5aKu5g==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.29.1" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-code": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.29.1.tgz", - "integrity": "sha512-1dCacqr+Il816DWPVlaXzEVJdXMZJHeHs69U2rB137AD85KeqKPMqkPCEw1zb36fY5PdnjKrw1J4TmVIuDjPXQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.29.2.tgz", + "integrity": "sha512-c6W5UGuB7WNLpYocsgRzpO2OOTI4QjaI9jjHRMuty9z+s9DtaYM/HrRLNwVh6MopkHb+i/89Wkv8gCS34fftig==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.29.2.tgz", + "integrity": "sha512-w153ct8g6dLiPTdXQ6SOIMxX4SEo5Q50AmjdEEEcJ7ZcYUcde/ScSskLHfOYmyt5ZFAiyEwr121+pux+p3/oAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-color": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.29.1.tgz", - "integrity": "sha512-y54Ib3vKi4qQSwXaeEVLVldF9CdxxU+oL+wT+G92RTliDpHHeHDtMDZQRwjLWCN+kQEaoz1nVyD1eQt00wBFnw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.29.2.tgz", + "integrity": "sha512-DMeyDRGZXIe2m2/QlrBoN15R4Ufwz3ERiG//OM7bjcYpiTZiO+pLC6tyabI1+QcJrYUGTu5zVah583xXzt89Kw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-text-style": "3.29.1" + "@tiptap/extension-text-style": "3.29.2" } }, "node_modules/@tiptap/extension-document": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.29.1.tgz", - "integrity": "sha512-mnBPM8equ1SpxcfD2Mh5IkFPV9QnJ4iKuVd2xT6CDEBRsh1KRhkDuDH/hJKfSNiXja51v23r51UvfVmL+j9KHQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.29.2.tgz", + "integrity": "sha512-YUamvefLnsqu6124GavVTI7nqcFlQJ12ROB0oSwG69eSBZYNjg1tIs05LFrBxkwf4Xgqd6YzfJ9+FeG428RvzQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.29.1.tgz", - "integrity": "sha512-2/Fhyr2DGNZ5HhLWQHlqhOJEzgnW2Wh3+u3/iCO/oYCjLZqsR7k8NoeFSTyRru7Cs1EMvMG/1uID69hPhqU6ng==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.29.2.tgz", + "integrity": "sha512-KKno7cU9r1HdR48CRrsDu69/1UjZdoslq/UcE+Kx+tdhAv/aljXMkRSNzGMrBNOBDmHRgS1+58zm21WQWdQzwA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.29.1" + "@tiptap/extensions": "3.29.2" } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.29.1.tgz", - "integrity": "sha512-JZkPZjoBZI75gwLqEyh2YhPM4LnrwDjEiLMxb758qHQ96tBze39W6prH0oPC6p06pBf2eloAgMLSkmauqlzScw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.29.2.tgz", + "integrity": "sha512-8Q39UR4/Tit759IeW9xZIe3NMwN11GsuA3FLheDyyGn7RrW02HD3HhUDlazE54Ki4HoosjFmChPlN4Ik2ubdRQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extensions": "3.29.1" + "@tiptap/extensions": "3.29.2" } }, "node_modules/@tiptap/extension-hard-break": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.29.1.tgz", - "integrity": "sha512-GZ5kBS29XWetk0yFmXNbIpL4qI1d9IpHIJI7yGxS8/NCtMlMQoEjI/0qnrHH75FkOZLwK31f0TZSVh8C1m7gZw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.29.2.tgz", + "integrity": "sha512-eUW3LN3fq8rXnjEUeI3D2QONYdLsU3yYQm4jxlErs2h4cfwrFjgf19VSUFVmm6LrFbbQ0OnDVPeVLL6iOwDw2w==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-heading": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.29.1.tgz", - "integrity": "sha512-5Lq2rIFOTXHVammrMvBSiTUjy2sc0cJfFNOMJHCypuQLz5rnAnNZ2L3xXCbtm/ZMVh3MiWSR5ay1xnW4BJIOiA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.29.2.tgz", + "integrity": "sha512-6W4aIy70Mh7BNlbG9zZ5FBLhJhU2UUEzgZJ/jwYSCcB30o8McLxJSEjhtoHiX8R78Ah2/JzBGvIe5olZlbeE4A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-highlight": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.29.1.tgz", - "integrity": "sha512-cJ4JOUdru9a76w2qPbX2PgqOSOmRzlCZQkyZ4Z4IyHq4WpL9kWy4RWEyj0x2FKI6WZdKATn6WrjWmLA8i7A9sA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.29.2.tgz", + "integrity": "sha512-bSeZ1C8OlthyK7BzgtqOGfQymdap9V38W2hbr9KGlhVOIAmTqneOwjm27iFcu7jKqkMArVu6WBYN18Lom6umHQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "3.29.2" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.29.2.tgz", + "integrity": "sha512-8/ZPzbB9X85Mc9/7xVLZupQKBr2UVcQTGr512xtqMW+XkCQRHCph46tRo828YE13IMWI5fWn/FaNCqXG9cULSw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-image": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.29.1.tgz", - "integrity": "sha512-NIED2sLQgRuIvvvTvl3gLsOUmaES3fp2bCziFhb906EG56pNUjr7omlPqlJfJIFM21fkYmUmuQjrGlByURpx5g==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.29.2.tgz", + "integrity": "sha512-F+S4iru247mNVZdkNwNDZHeb281DkjsBJinaOGsOyJTvXY+KU5Uq7vY1LQTn493dTfU48Z0yMBUXwJffCT92Mg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-italic": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.29.1.tgz", - "integrity": "sha512-WzBTQ6XUv/7I0EzGgImpBa4vFGlHbOCq22NNo4CGjRnIRFyDwC+8mqSNawJzrFOborKjgKbn8dJVlJ+uuVZYKw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.29.2.tgz", + "integrity": "sha512-iH63V/5wsaMnY4Jz0+meaAGhaec4AiOzOduzl6ZZr5IyGhZ1kthyW84ELt0dyLI3hNceAUhaNWc+I7+vX0aoXA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-link": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.29.1.tgz", - "integrity": "sha512-KtWfsxG/NzNaAwcOSTRyn1r1W6KlkEU4Q8pq7ZxB6ltjXF3TJkUKYe/sQpvfjy9RtEVwh6zdB7ZhsEl8CX8EkA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.29.2.tgz", + "integrity": "sha512-DcVer5SqrexKCEP6Ip1UPxJUMvcRCCItSv0wxoGytanrimBh2smvcg6X0DWnjlsi5H0updhyl+atYCmmQXUIXA==", "license": "MIT", "dependencies": { "linkifyjs": "^4.3.3" @@ -5130,201 +5158,201 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-list": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.29.1.tgz", - "integrity": "sha512-Uclc3pMjylz0xpIArgKKmo7WSlMO370H+K+45uN5hU0uSkp1A8YGBwtU6rBsVAx6nbMXLrhNQjZ1IbLtF605OQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.29.2.tgz", + "integrity": "sha512-WPZ9BHAPT6QeIm1vdVkuoOWvy9a8/EZeJwV2VhU8LXyTAttvzyj4rsbbHyJWvYWlUSTt/QF2AZ2zhKo7u1w3/A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-list-item": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.29.1.tgz", - "integrity": "sha512-zwMNXxi2AXPWk9z6t4/5J7b11An5WZ4AYR4mpjqrcAnE5G4epOZlX+GLaZK16PzGWm0JouDskcYicu5GL1AE8Q==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.29.2.tgz", + "integrity": "sha512-s8vBVHHFT0Qpu7CzAZ7S1kYmSiVaDvUNvMNcZUWnxj6VPfiwmx0eXd9FsjePrRCMoM5tFmPnhFTHDxY3D/eZeQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.29.1" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-list-keymap": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.29.1.tgz", - "integrity": "sha512-1Z1DC8eB0Jg1ya7Q6icGTpTBqaCL/hwqVsep7hmpwd8Benu+ke6Ja2hGKUfDuv9hargv5+S7cqEsHLQaMIBSew==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.29.2.tgz", + "integrity": "sha512-R+3k8OLnxdCH7Xy9ieOwUt5m2Je74u8mikothGmsYVO2Zyq48fIbmZ+X6RBPCu7DBOI2FIUhHEFbKQeDWvDNmA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.29.1" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.29.1.tgz", - "integrity": "sha512-eLKZHk+8/XJA78zjAipcDt/0cCXo1P6KmT/5PjWZepXY4BoMBFFK8mjW+l3cUQJsKIyknvwoepiMpg1Om31o/g==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.29.2.tgz", + "integrity": "sha512-ndCunC+UsYOpkOtL7vGnDz21UNa45WUlcO9wMT1fbuYow2QnRhsuMlCWENXI52YPPARWuQ0RDgN7q6TaxPERBg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/extension-list": "3.29.1" + "@tiptap/extension-list": "3.29.2" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.29.1.tgz", - "integrity": "sha512-kfYkKXce3AjU8hWW1gFES7xsKn7UgObpmVLjufKgoT9h82faAE7lWE7IMAtl30ztVVvQSpF9RdxGoIUXdLiSxA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.29.2.tgz", + "integrity": "sha512-7qJj5YTr11vvjNgjDN1ypOfwTovc0QOCYcit/rskeuVgnmQZOZQzC/BbyKLLG7UGnpRLemU/mEGbW9pAqjAXkQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-strike": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.29.1.tgz", - "integrity": "sha512-7/8yUQN1/P5JCbhT+TycziNG3XWBMXADjNPmDipflpyi4EEApoFSamnj5+JL48qYj7bC1JmGtw7eXANPKva+9Q==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.29.2.tgz", + "integrity": "sha512-aEvLAbddUQZ+FukCreV3q4G2HfNI+odE7E9U+wbq6XsSWKyo8/pDu1muz+TFKNre4blSMOQ3JQmw5UeHDKy+fg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-subscript": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.29.1.tgz", - "integrity": "sha512-DoEcAguIjCfw/d8IDm3sTEDfABSvTSnITI+bWS1Y6/VGBu1h3wypkHhPxO5rvK7W0GKJ/Imvak5aywflLL557w==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-3.29.2.tgz", + "integrity": "sha512-3fpp1B2kZWBfmVYZ1ak3yFWiKR3eV9GR/vYGPDMrkZoTdG9LKylRAJs3Fk2gDgTtOPmbrtilGQjl2o55RuoGxw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-superscript": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.29.1.tgz", - "integrity": "sha512-RnyddBezW8o4bOI8z2RLfWtbC/Je7zCmFXZ8iHw/i7k/BDfHAVdtdGUrg5s+aR+n6AxN0Mk/6N+vn0MEKn4ahA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-3.29.2.tgz", + "integrity": "sha512-/bPgdY7zUHtvToHizvzR6Yf4uIWO35cKj9EZsl/vyFb2mXyJ3a2mysCZgZq+5uvhZS/16eNNKOcezlkayhhkMA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-table": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.29.1.tgz", - "integrity": "sha512-YGKG1XMCYFOCZQ5Go+mOerLgO+EuVt+Th4wXdXhi5w9lopN93lHmI8mfyI7xV8rrZmI5te8IhMYtaAXoKhBHAw==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.29.2.tgz", + "integrity": "sha512-HY3JWD8i/F8W1oWw56DMqEMqxScIAZFRrhL3rUwiuowHG8LLDqDdQjBV3w1DY8lUZOtNY9grpuMtGlPUFrOVAA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/extension-text": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.29.1.tgz", - "integrity": "sha512-SdwfKTchZf0saMSwmXFEqpYMjgAGXaiUGuwYic/oB5Ri6NCTH2gy8SrCqISBLfUOP7YXGtPGyifZtMtXKAgFAg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.29.2.tgz", + "integrity": "sha512-Ubko45JWWHe8glBt2PiGNF8hcbys/JNalFhiR7Y1X4iOOtAxAKJJxh3+eq+//NTlGuBPdWGp7zw8EEUp7anjKA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-text-align": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.29.1.tgz", - "integrity": "sha512-pTPpuHs8MIAvt0tTmtlN2S72UJG3DtA8GSJnwdmEG9C9xz0UkrAKyymrojcLvflILmamJHfhJHtkGhOJsl85WA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.29.2.tgz", + "integrity": "sha512-205FF87zjUEh79n6dgVy9SMj1P+rNserHMqPd8lF7YS2TOWikXPG4PFuQHWXXCYzaCvQXAiATSAyPXXmUWUvaQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-text-style": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.29.1.tgz", - "integrity": "sha512-Ap2jdvNg33QpQskDUEjHdFaUx8zkwYZ1KvvYFeUYPbR3qKzbWWd0GrlvtBKd3CvPYKCuMoUvp+qizwhgzOk3Hg==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.29.2.tgz", + "integrity": "sha512-aQad9V9ROaEi3hE4g5z9wQ6lv5FSnzlnWFMVJxRjNlwXgm7H0fymxb4rGfca+pAwYkiRwpKYh1LatpJw2ECQAA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extension-underline": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.29.1.tgz", - "integrity": "sha512-BsZk6GDmmlPFqAtUbEQtiwuLAihLt9A4YvyZEwLm7d2zMbzMLJZK/5RD2JvKGJ0jwrcS3ZIo015bEvKa8h/3KQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.29.2.tgz", + "integrity": "sha512-K7XwH/xS/5AIREWQ00VTEf/W5U0olp7j6wwit7cdd/8nHv6h6AGr1+iEApHKoLXWQZLfGQKzJlT9W61LAl+fHA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1" + "@tiptap/core": "3.29.2" } }, "node_modules/@tiptap/extensions": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.29.1.tgz", - "integrity": "sha512-GZMW2r56dnTS28o2wlW8vHxUU4hofZryw03eJnch+amap96tjSU81aV0JCHUN/ySd43KKR5fEZMjhELk6VeYpQ==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.29.2.tgz", + "integrity": "sha512-BCz+FCAChSYtUe4BFj97HEO+nSK+J7GxbJgZG4Hg7DT/gI+hRyeNndU8efiQAx3WGdzsFi3UxRpcF1tTQM7iMQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" + "@tiptap/core": "3.29.2", + "@tiptap/pm": "3.29.2" } }, "node_modules/@tiptap/pm": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.29.1.tgz", - "integrity": "sha512-fAzlr2RoV9amvMzioJ0dJHtehsMAO8RZktA9XwDk/Qy+WwgMjlCi9g19d4e6cR/WEwaC5KBsQkAyaWzQYGFxAA==", + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.29.2.tgz", + "integrity": "sha512-GCOme7xHaS+DSoaA4CDcAD3l6JyBlvZhvCyfsy2Vp6j8tEoBkZWio7soYVosmlyn7zq8/64VeFZP5s47yfG7fQ==", "license": "MIT", "dependencies": { "prosemirror-changeset": "^2.4.1", @@ -5347,69 +5375,41 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.29.1.tgz", - "integrity": "sha512-n7njOpcJJd4L3Ma1UmipwwL7gilJ8PZHCNHNhCY+jlemRp8sGf3WoMJst4FKAqU15QaYWhQpYYgc0TWQ55Z04g==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.29.1", - "@tiptap/extension-blockquote": "^3.29.1", - "@tiptap/extension-bold": "^3.29.1", - "@tiptap/extension-bullet-list": "^3.29.1", - "@tiptap/extension-code": "^3.29.1", - "@tiptap/extension-code-block": "^3.29.1", - "@tiptap/extension-document": "^3.29.1", - "@tiptap/extension-dropcursor": "^3.29.1", - "@tiptap/extension-gapcursor": "^3.29.1", - "@tiptap/extension-hard-break": "^3.29.1", - "@tiptap/extension-heading": "^3.29.1", - "@tiptap/extension-horizontal-rule": "^3.29.1", - "@tiptap/extension-italic": "^3.29.1", - "@tiptap/extension-link": "^3.29.1", - "@tiptap/extension-list": "^3.29.1", - "@tiptap/extension-list-item": "^3.29.1", - "@tiptap/extension-list-keymap": "^3.29.1", - "@tiptap/extension-ordered-list": "^3.29.1", - "@tiptap/extension-paragraph": "^3.29.1", - "@tiptap/extension-strike": "^3.29.1", - "@tiptap/extension-text": "^3.29.1", - "@tiptap/extension-underline": "^3.29.1", - "@tiptap/extensions": "^3.29.1", - "@tiptap/pm": "^3.29.1" + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.29.2.tgz", + "integrity": "sha512-oTu0tysiqk4zgjEtxRHjAQgxUKaAevZwueOWwSWubHdokqp7SpcbE5n9USJv89HKuTUDm3GjnQH6q8HNn/2DsA==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.29.2", + "@tiptap/extension-blockquote": "^3.29.2", + "@tiptap/extension-bold": "^3.29.2", + "@tiptap/extension-bullet-list": "^3.29.2", + "@tiptap/extension-code": "^3.29.2", + "@tiptap/extension-code-block": "^3.29.2", + "@tiptap/extension-document": "^3.29.2", + "@tiptap/extension-dropcursor": "^3.29.2", + "@tiptap/extension-gapcursor": "^3.29.2", + "@tiptap/extension-hard-break": "^3.29.2", + "@tiptap/extension-heading": "^3.29.2", + "@tiptap/extension-horizontal-rule": "^3.29.2", + "@tiptap/extension-italic": "^3.29.2", + "@tiptap/extension-link": "^3.29.2", + "@tiptap/extension-list": "^3.29.2", + "@tiptap/extension-list-item": "^3.29.2", + "@tiptap/extension-list-keymap": "^3.29.2", + "@tiptap/extension-ordered-list": "^3.29.2", + "@tiptap/extension-paragraph": "^3.29.2", + "@tiptap/extension-strike": "^3.29.2", + "@tiptap/extension-text": "^3.29.2", + "@tiptap/extension-underline": "^3.29.2", + "@tiptap/extensions": "^3.29.2", + "@tiptap/pm": "^3.29.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-code-block": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.29.1.tgz", - "integrity": "sha512-oGd4mvdJm2UaW+B3XaRT+gP+IOz5qLkd24IOxWCKdmbACCT+fd4DFmvghASeL49EPvaTJtXAfXiB9AeksDUmbQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" - } - }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.29.1.tgz", - "integrity": "sha512-/jZ8oxlp06qa5JR9CHSx6vZyp2zFuv7RsHVG9nouFqpmz2nuHUUDm3d/nltNqX5QjuYfx2zjT9CEJ6uQexSzdw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "3.29.1", - "@tiptap/pm": "3.29.1" - } - }, "node_modules/@ts-morph/common": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.29.0.tgz", diff --git a/client/package.json b/client/package.json index 1e8c10beed..18216f4b87 100644 --- a/client/package.json +++ b/client/package.json @@ -54,21 +54,21 @@ "@ngx-translate/core": "^17.0.0", "@ngx-translate/http-loader": "^17.0.0", "@openslides/motion-diff": "file:../packages/openslides-motion-diff", - "@tiptap/core": "^3.29.1", + "@tiptap/core": "^3.29.2", "@tiptap/extension-blockquote": "^3.27.4", - "@tiptap/extension-color": "^3.29.1", - "@tiptap/extension-highlight": "^3.29.1", - "@tiptap/extension-image": "^3.29.1", + "@tiptap/extension-color": "^3.29.2", + "@tiptap/extension-highlight": "^3.29.2", + "@tiptap/extension-image": "^3.29.2", "@tiptap/extension-link": "^3.23.4", "@tiptap/extension-list": "^3.22.4", - "@tiptap/extension-subscript": "^3.29.1", - "@tiptap/extension-superscript": "^3.29.1", - "@tiptap/extension-table": "^3.29.1", - "@tiptap/extension-text-align": "^3.29.1", + "@tiptap/extension-subscript": "^3.29.2", + "@tiptap/extension-superscript": "^3.29.2", + "@tiptap/extension-table": "^3.29.2", + "@tiptap/extension-text-align": "^3.29.2", "@tiptap/extension-text-style": "^3.4.2", "@tiptap/extensions": "^3.22.4", - "@tiptap/pm": "^3.28.0", - "@tiptap/starter-kit": "^3.29.1", + "@tiptap/pm": "^3.29.2", + "@tiptap/starter-kit": "^3.29.2", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.9.1", "@tsparticles/plugin-emitters": "^3.9.1", From c02bbf950ec5d20a28f535768f1be2dd511df678 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 09:02:53 +0200 Subject: [PATCH 29/43] Bump hono from 4.12.30 to 4.13.1 in /client (#6486) --- client/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 93429bb5b8..6fa3714ffc 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9455,9 +9455,9 @@ } }, "node_modules/hono": { - "version": "4.12.30", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.30.tgz", - "integrity": "sha512-emn+JoJjrN9YTpRDS5it/UI2SO9BAE37T6I3d963RxcZ81G9A4pr2SZTEiiaiKbzx+NKRg5BZ89fCL7gCJCUog==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.1.tgz", + "integrity": "sha512-kdJoFVv2xmayw6cY09H7AbMJMt8Jn5jdlEdXsP7AGBdF2DIptVlKlOLKXP41yPip4/a3yQPv9gVcJYI8YY04dw==", "dev": true, "license": "MIT", "engines": { From ffaa1ab2531823afce4ed266151939b907a72947 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:44:04 +0200 Subject: [PATCH 30/43] Bump @coreui/angular-chartjs from 5.7.12 to 5.7.15 in /client (#6493) --- client/package-lock.json | 8 ++++---- client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 6fa3714ffc..3756f39a86 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -22,7 +22,7 @@ "@angular/router": "^22.1.0", "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", - "@coreui/angular-chartjs": "~5.7.12", + "@coreui/angular-chartjs": "~5.7.15", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", @@ -1741,9 +1741,9 @@ } }, "node_modules/@coreui/angular-chartjs": { - "version": "5.7.12", - "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.12.tgz", - "integrity": "sha512-vlVz5b0LDlPs23e44bH1ovBCNOP+J7QINjnult+MfpTYKCksqlkwb9V4lK/1ZVTQA03fHnh2y0TcBjodZbIxzQ==", + "version": "5.7.15", + "resolved": "https://registry.npmjs.org/@coreui/angular-chartjs/-/angular-chartjs-5.7.15.tgz", + "integrity": "sha512-imaDmy47TG1mntjWpDv6VNQzcwljsBPUlkSqecgX4SHc2Ozo7qx69JM+oSSCA6DBwPcmWUaGwUQtuM/9kXzT7Q==", "license": "MIT", "dependencies": { "lodash-es": "^4.18.1", diff --git a/client/package.json b/client/package.json index 18216f4b87..dd4195993b 100644 --- a/client/package.json +++ b/client/package.json @@ -45,7 +45,7 @@ "@angular/router": "^22.1.0", "@angular/service-worker": "^22.1.0", "@cantoo/pdf-lib": "^2.8.1", - "@coreui/angular-chartjs": "~5.7.12", + "@coreui/angular-chartjs": "~5.7.15", "@coreui/chartjs": "^4.1.0", "@date-fns/tz": "^1.5.0", "@intevation/tiptap-extension-office-paste": "^0.1.2", From 3ca98d7d1574e638e2afa548a26138576af4b48a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:44:22 +0200 Subject: [PATCH 31/43] Bump the typescript-eslint group in /client with 3 updates (#6489) --- client/package-lock.json | 128 +++++++++++++++++++-------------------- client/package.json | 6 +- 2 files changed, 67 insertions(+), 67 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 3756f39a86..e59382e3fb 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -93,8 +93,8 @@ "@types/qrcode": "^1.5.6", "@types/tinycolor2": "^1.4.6", "@types/video.js": "^7.3.58", - "@typescript-eslint/eslint-plugin": "^8.65.0", - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/eslint-plugin": "^8.66.0", + "@typescript-eslint/parser": "^8.66.0", "@vendure/ngx-translate-extract": "^10.2.0", "angular-eslint": "^22.1.0", "eslint": "^9.39.5", @@ -117,7 +117,7 @@ "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.65.0" + "typescript-eslint": "^8.66.0" } }, "../packages/openslides-motion-diff": { @@ -6111,17 +6111,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", - "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", + "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/type-utils": "8.65.0", - "@typescript-eslint/utils": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/type-utils": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -6134,22 +6134,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/parser": "^8.66.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", - "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", + "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "debug": "^4.4.3" }, "engines": { @@ -6165,14 +6165,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", - "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", + "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.65.0", - "@typescript-eslint/types": "^8.65.0", + "@typescript-eslint/tsconfig-utils": "^8.66.0", + "@typescript-eslint/types": "^8.66.0", "debug": "^4.4.3" }, "engines": { @@ -6187,14 +6187,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", - "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", + "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0" + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6205,9 +6205,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", - "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", + "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", "dev": true, "license": "MIT", "engines": { @@ -6222,15 +6222,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", - "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", + "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -6247,9 +6247,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", + "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", "dev": true, "license": "MIT", "engines": { @@ -6261,16 +6261,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", - "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", + "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.65.0", - "@typescript-eslint/tsconfig-utils": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0", + "@typescript-eslint/project-service": "8.66.0", + "@typescript-eslint/tsconfig-utils": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -6289,16 +6289,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", - "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", + "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.65.0", - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0" + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6313,13 +6313,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", - "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", + "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/types": "8.66.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -13855,16 +13855,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.65.0.tgz", - "integrity": "sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==", + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", + "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.65.0", - "@typescript-eslint/parser": "8.65.0", - "@typescript-eslint/typescript-estree": "8.65.0", - "@typescript-eslint/utils": "8.65.0" + "@typescript-eslint/eslint-plugin": "8.66.0", + "@typescript-eslint/parser": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/client/package.json b/client/package.json index dd4195993b..ba3d3ad740 100644 --- a/client/package.json +++ b/client/package.json @@ -116,8 +116,8 @@ "@types/qrcode": "^1.5.6", "@types/tinycolor2": "^1.4.6", "@types/video.js": "^7.3.58", - "@typescript-eslint/eslint-plugin": "^8.65.0", - "@typescript-eslint/parser": "^8.65.0", + "@typescript-eslint/eslint-plugin": "^8.66.0", + "@typescript-eslint/parser": "^8.66.0", "@vendure/ngx-translate-extract": "^10.2.0", "angular-eslint": "^22.1.0", "eslint": "^9.39.5", @@ -140,7 +140,7 @@ "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.65.0" + "typescript-eslint": "^8.66.0" }, "browser": { "fs": false From 7ba01f858f793144e3b8ad867e8519c573a3e2f7 Mon Sep 17 00:00:00 2001 From: "openslides-automation[bot]" <125256978+openslides-automation[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:48:12 +0200 Subject: [PATCH 32/43] Update meta repository (#6381) --- meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta b/meta index 8d674fe32c..79a70534c7 160000 --- a/meta +++ b/meta @@ -1 +1 @@ -Subproject commit 8d674fe32cbadef2d572f11abf4cfa81f09c94e1 +Subproject commit 79a70534c7b3ac14c6048b562b0b60fa15b6d21c From 3ed06f600faf826c6feca28191a1233c3581373c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:55:50 +0200 Subject: [PATCH 33/43] Bump video.js from 8.23.9 to 8.24.0 in /client (#6492) --- client/package-lock.json | 8 ++++---- client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index e59382e3fb..d0972e58ea 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -71,7 +71,7 @@ "qrcode": "^1.5.4", "rxjs": "^7.8.2", "tinycolor2": "1.6.0", - "video.js": "^8.23.9", + "video.js": "^8.24.0", "zone.js": "^0.16.2" }, "devDependencies": { @@ -14110,9 +14110,9 @@ } }, "node_modules/video.js": { - "version": "8.23.9", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.23.9.tgz", - "integrity": "sha512-3UCqyFW4wIusQu4TuhgRUxqtbzbj0WPT9hps0XIEXST43QBD11zb+bG7tBPrinrZztwVYdXCiOBo2pcGj9L05w==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.24.0.tgz", + "integrity": "sha512-ZUuxTlDRkEWhpp2mvGCSFzI0Tc3zcC6IUZbIhBcZ3QW0Ms+IRp/tzYkhqexcMYwrcukRFiWWJmRANsLKvv8Vsg==", "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.28.4", diff --git a/client/package.json b/client/package.json index ba3d3ad740..5b1860ee98 100644 --- a/client/package.json +++ b/client/package.json @@ -94,7 +94,7 @@ "qrcode": "^1.5.4", "rxjs": "^7.8.2", "tinycolor2": "1.6.0", - "video.js": "^8.23.9", + "video.js": "^8.24.0", "zone.js": "^0.16.2" }, "devDependencies": { From f6716186be03dfddac4123c1473289c76af6b605 Mon Sep 17 00:00:00 2001 From: Bastian Rihm Date: Wed, 12 Aug 2026 11:00:26 +0200 Subject: [PATCH 34/43] Motion detail subscription not opened after create (#6485) --- .../domain/models/assignments/assignment.ts | 2 +- .../list-of-speakers/list-of-speakers.ts | 2 +- .../meeting-mediafile/meeting-mediafile.ts | 2 +- .../app/domain/models/motions/motion-block.ts | 2 +- .../domain/models/motions/motion-category.ts | 3 +- .../domain/models/motions/motion-workflow.ts | 2 +- .../point-of-order-category.ts | 2 +- .../poll-candidate-list.ts | 2 +- .../poll-candidate-lists/poll-candidate.ts | 2 +- .../app/domain/models/projector/projector.ts | 2 +- client/src/app/domain/models/topics/topic.ts | 2 +- .../gateways/error-mapping/error-map-utils.ts | 6 +- .../error-mapping/error-map.service.spec.ts | 4 +- .../csv-export-for-backend.service.spec.ts | 2 +- .../csv-export-for-backend.service.ts | 2 +- client/src/app/gateways/http.service.ts | 2 +- .../meeting-media-adapter.service.spec.ts | 4 +- .../gateways/meeting-media-adapter.service.ts | 4 +- .../action-worker-repository.service.ts | 8 +- .../agenda/agenda-item-repository.service.ts | 8 +- ...assignment-candidate-repository.service.ts | 8 +- .../assignment-repository.service.ts | 27 +++-- ...t-of-speakers-content-object-repository.ts | 13 +- ...e-agenda-item-content-object-repository.ts | 15 +-- ...t-of-speakers-content-object-repository.ts | 12 +- .../base-meeting-related-repository.ts | 29 ++--- .../gateways/repositories/base-repository.ts | 67 ++++------- .../chat-group-repository.service.ts | 8 +- .../chat-message-repository.service.ts | 8 +- .../committee-repository.service.ts | 14 +-- .../gender/gender-repository.service.ts | 10 +- .../groups/group-repository.service.ts | 8 +- .../history-entry-repository.service.ts | 8 +- .../history-position-repository.service.ts | 8 +- .../list-of-speakers-repository.service.ts | 11 +- .../mediafile-repository.service.ts | 6 +- .../meeting-mediafile-repository.service.ts | 6 +- .../meeting-repository.service.ts | 10 +- .../meeting-user-repository.service.ts | 8 +- .../gateways/repositories/motions/index.ts | 10 -- .../motion-block-repository.service.ts | 11 +- .../motion-category-repository.service.ts | 8 +- ...hange-recommendation-repository.service.ts | 8 +- .../motion-comment-repository.service.ts | 8 +- ...tion-comment-section-repository.service.ts | 8 +- .../motion-editor-repository.service.ts | 9 +- .../motion-repository.service.ts | 31 +++-- .../motion-state-repository.service.ts | 8 +- .../motion-submitter-repository.service.ts | 9 +- .../motion-supporter-repository.service.ts | 8 +- .../motion-workflow-repository.service.ts | 8 +- ...orking-group-speaker-repository.service.ts | 9 +- .../personal-note-repository.service.ts | 8 +- .../app/gateways/repositories/motions/util.ts | 14 +-- .../organization-repository.service.ts | 10 +- .../organization-tag-repository.service.ts | 20 ++-- ...nt-of-order-category-repository.service.ts | 10 +- .../poll-candidate-list-repository.service.ts | 8 +- .../poll-candidate-repository.service.ts | 8 +- .../option-repository.service.ts | 8 +- .../poll-repository.service.ts | 8 +- .../vote-repository.service.ts | 6 +- .../projection-repository.service.ts | 8 +- .../projector-countdown-repository.service.ts | 6 +- .../projector-message-repository.service.ts | 8 +- .../projector-repository.service.ts | 10 +- ...-meeting-service-collector.service.spec.ts | 112 ------------------ ...itory-meeting-service-collector.service.ts | 68 ----------- .../repository-service-collector.service.ts | 17 +-- .../speakers/speaker-repository.service.ts | 8 +- ...vel-list-of-speakers-repository.service.ts | 8 +- .../structure-level-repository.service.ts | 12 +- .../tags/tag-repository.service.ts | 13 +- .../themes/theme-repository.service.ts | 8 +- .../topics/topic-repository.service.ts | 14 +-- .../users/user-repository.service.ts | 16 +-- .../definitions/relations/relations.ts | 74 ++++++------ .../utils/di/openslides-injector.ts | 2 +- .../openslides-main.module.ts | 4 +- .../services/app-load.service.ts | 2 +- client/src/app/site/base/base-controller.ts | 17 +-- .../base-via-backend-import-list.component.ts | 2 +- .../global-headbar/global-headbar.module.ts | 4 +- .../global-spinner/global-spinner.module.ts | 2 +- .../password-form/password-form.component.ts | 2 +- .../user-detail-view.component.ts | 2 +- .../services/user-delete-dialog.service.ts | 2 +- .../wait-for-action-banner.component.ts | 2 +- .../wait-for-action-dialog.module.ts | 2 +- .../base/base-meeting-controller.service.ts | 37 ++---- .../speaking-times.component.spec.ts | 2 +- .../speaking-times.component.ts | 4 +- .../list-of-speakers-content.module.ts | 4 +- .../speaker-user-select-dialog.module.ts | 2 +- .../agenda-content-object-form.service.ts | 2 +- .../meetings-navigation-wrapper.component.ts | 3 +- .../participant-search-selector.component.ts | 2 +- .../poll/base/base-poll-detail.component.ts | 4 +- .../poll/base/base-poll-pdf.service.ts | 4 +- .../base-poll-form.component.ts | 5 +- .../base-poll-vote.component.ts | 4 +- .../entitled-users-table.component.ts | 2 +- .../poll-cannot-vote-message.component.ts | 4 +- .../poll-filtered-votes-chart.component.ts | 3 +- .../poll-percent-base.pipe.spec.ts | 2 +- .../meetings/modules/poll/poll.module.ts | 6 +- .../poll-controller.service.ts | 11 +- .../vote-controller.service.ts | 12 +- .../poll/services/votes-filter.service.ts | 4 +- .../projector/projector.component.ts | 2 +- .../modules/projector/projector.module.ts | 2 +- .../meetings/pages/agenda/agenda.config.ts | 8 +- .../pages/agenda/agenda.subscription.ts | 5 +- .../agenda-forward-dialog.component.ts | 2 +- .../services/agenda-forward-dialog.service.ts | 4 +- .../list-of-speakers.component.ts | 2 +- .../current-list-of-speakers-slide.service.ts | 2 +- .../current-list-of-speakers.service.ts | 5 +- ...-speaking-structure-level-slide.service.ts | 2 +- ...rent-structure-level-list-slide.service.ts | 2 +- .../list-of-speakers-controller.service.ts | 14 +-- ...nt-of-order-category-controller.service.ts | 9 +- .../services/speaker-controller.service.ts | 12 +- .../view-models/view-list-of-speakers.ts | 2 +- .../topic-poll-dialog.component.ts | 2 +- .../topic-poll-vote.component.ts | 2 +- .../topic-poll/topic-poll.component.ts | 2 +- .../services/topic-poll-dialog.service.ts | 2 +- .../topic-poll-pdf.service.ts | 4 +- .../topic-poll/services/topic-poll.service.ts | 2 +- .../topic-detail/topic-detail.component.ts | 4 +- .../topic-import/topic-import.component.ts | 4 +- .../topic-export.service.ts | 2 +- .../topic-import.service.ts | 2 +- .../topic-controller.service.ts | 11 +- .../topic-pdf.service/topic-pdf.service.ts | 4 +- .../modules/topics/view-models/view-topic.ts | 2 +- .../agenda-item-info-dialog.component.ts | 6 +- .../agenda-item-list.component.ts | 6 +- .../agenda-item-multiselect.service.ts | 8 +- .../agenda-item-controller.service.ts | 11 +- .../agenda-pdf-catalog-export.service.ts | 10 +- .../agenda/view-models/view-agenda-item.ts | 2 +- .../pages/assignments/assignments.config.ts | 3 +- .../assignments/assignments.subscription.ts | 2 +- ...ssignment-poll-detail-content.component.ts | 4 +- .../assignment-poll-form.component.ts | 2 +- .../assignment-poll-pdf.service.ts | 2 +- .../assignment-detail.module.ts | 2 +- .../assignment-detail.component.ts | 2 +- ...assignment-candidate-controller.service.ts | 9 +- .../assignment-list.component.ts | 2 +- .../assignment-filter-list.service.ts | 2 +- .../assignment-poll-main.component.ts | 2 +- .../services/assignment-controller.service.ts | 9 +- .../services/assignment-export.service.ts | 2 +- .../services/assignment-pdf.service.ts | 2 +- .../view-models/view-assignment.ts | 2 +- .../pages/autopilot/autopilot.subscription.ts | 2 +- .../autopilot/autopilot.component.ts | 7 +- .../poll-collection.component.spec.ts | 2 +- .../pages/meetings/pages/chat/chat.config.ts | 3 +- .../chat-group-dialog.component.ts | 2 +- .../chat-group-detail.component.ts | 3 +- .../chat-group-list.component.ts | 3 +- .../services/chat-group-controller.service.ts | 11 +- .../chat-message-controller.service.ts | 11 +- .../services/chat-notification.service.ts | 2 +- .../history-list/history-list.component.ts | 9 +- .../services/call-restriction.service.ts | 2 +- .../mediafile-delete-dialog.component.ts | 2 +- .../pages/mediafiles/mediafiles.config.ts | 2 +- .../mediafiles/meeting-mediafiles.config.ts | 2 +- .../mediafile-list.component.ts | 2 +- .../mediafile-list-group.service.ts | 2 +- .../services/mediafile-common.service.ts | 2 +- .../services/mediafile-controller.service.ts | 14 +-- .../mediafiles/view-models/view-mediafile.ts | 2 +- .../view-models/view-meeting-mediafile.ts | 2 +- .../motion-forward-dialog.component.ts | 2 +- .../services/motion-forward-dialog.service.ts | 8 +- .../motion-multiselect-actions.component.ts | 6 +- .../services/motion-multiselect.service.ts | 20 ++-- .../definitions/recommendation-type-names.ts | 3 +- .../pages/meetings/pages/motions/index.ts | 1 - .../motion-category-controller.service.ts | 13 +- .../view-models/view-motion-category.ts | 2 +- .../line-numbering.service.ts | 2 +- ...hange-recommendation-controller.service.ts | 18 ++- .../motion-diff.service.ts | 7 +- .../motion-comment-controller.service.ts | 13 +- ...tion-comment-section-controller.service.ts | 13 +- .../motion-editor-controller.service.ts | 15 +-- .../motion-block-controller.service.ts | 13 +- .../view-models/view-motion-block.ts | 4 +- .../motion-poll-detail-content.component.ts | 2 +- .../motion-poll-dialog.component.ts | 2 +- .../motion-poll-vote.component.ts | 2 +- .../motion-poll/motion-poll.component.ts | 4 +- .../modules/motion-poll/motion-poll.module.ts | 2 +- .../motion-poll-pdf.service.ts | 4 +- .../motion-poll.service.ts | 2 +- .../personal-note-controller.service.ts | 12 +- .../motion-state-controller.service.ts | 13 +- .../motion-submitter-controller.service.ts | 15 +-- .../motion-supporter-controller.service.ts | 11 +- .../tag-controller.service.ts | 14 +-- .../meetings/pages/motions/modules/util.ts | 19 ++- .../motion-workflow-controller.service.ts | 17 +-- ...orking-group-speaker-controller.service.ts | 15 +-- .../meetings/pages/motions/motions.config.ts | 52 ++++---- .../pages/motions/motions.subscription.ts | 4 +- .../amendment-list.component.ts | 2 +- .../category-detail-sort.component.ts | 4 +- .../category-detail.component.ts | 4 +- .../category-list-sort.component.ts | 2 +- .../category-list/category-list.component.ts | 4 +- .../comment-section-list.component.ts | 2 +- .../comment-section-sort.component.ts | 2 +- .../motion-block-detail.component.ts | 4 +- .../motion-block-list.component.ts | 6 +- ...motion-block-detail-filter-list.service.ts | 2 +- .../motion-block-sort.service.ts | 2 +- .../motion-call-list.component.ts | 10 +- .../base-motion-detail-child.component.ts | 12 +- ...-change-recommendation-dialog.component.ts | 2 +- .../motion-detail/motion-detail.module.ts | 4 +- .../amendment-create-wizard.component.ts | 2 +- .../motion-form/motion-form.component.ts | 4 +- .../motion-add-poll-button.component.ts | 2 +- .../motion-content.component.ts | 2 +- .../motion-delete-dialog.component.ts | 2 +- .../motion-detail-diff-summary.component.ts | 4 +- ...iginal-change-recommendations.component.ts | 4 +- .../motion-final-version.component.ts | 2 +- .../motion-highlight-form.component.ts | 2 +- ...n-manage-motion-meeting-users.component.ts | 2 +- .../motion-manage-polls.component.ts | 4 +- .../motion-manage-supporters.component.ts | 10 +- .../motion-manage-timestamp.component.ts | 4 +- .../motion-meta-data.component.ts | 6 +- .../motion-view/motion-view.component.ts | 4 +- .../origin-motion-meta-data.component.ts | 6 +- .../paragraph-based-amendment.component.ts | 2 +- .../motion-export/motion-export.component.ts | 11 +- .../motion-list/motion-list.component.ts | 16 +-- .../motion-list-info-dialog.component.ts | 10 +- .../motion-poll-detail.component.ts | 6 +- .../motion-poll-main.component.ts | 2 +- .../pages/motion-polls/motion-polls.module.ts | 2 +- .../components/tag-list/tag-list.component.ts | 4 +- .../workflow-detail-sort.component.ts | 7 +- .../workflow-detail.component.ts | 4 +- .../workflow-import.component.ts | 2 +- .../workflow-list/workflow-list.component.ts | 6 +- .../workflow-export.service.ts | 2 +- .../pages/workflows/workflows.module.ts | 2 +- .../amendment-controller.service.ts | 6 +- .../motion-controller.service.ts | 16 +-- .../motion-format.service.ts | 17 ++- .../motion-line-numbering.service.ts | 11 +- .../motion-permission.service.ts | 2 +- .../amendment-list-pdf.service.ts | 4 +- .../motion-csv-export.service.ts | 8 +- .../motion-export.service.ts | 8 +- .../motion-pdf-catalog.service.ts | 8 +- .../motion-pdf-export.service.ts | 10 +- .../motion-pdf.service/motion-pdf.service.ts | 18 +-- .../motion-xlsx-export.service.ts | 8 +- .../amendment-list-filter.service.ts | 4 +- .../amendment-list-sort.service.ts | 2 +- .../motion-list-base-sort.service.ts | 4 +- .../motion-list-filter.service.ts | 20 ++-- .../motion-list-sort.service.ts | 2 +- .../view-motion-amended-paragraph.ts | 3 +- .../pages/motions/view-models/view-motion.ts | 16 +-- .../participant-pdf-export.service.ts | 2 +- .../speaker-csv-export.service.ts | 2 +- .../group-list/group-list.component.ts | 2 +- .../services/group-controller.service.ts | 11 +- .../mandate-check-list.component.ts | 7 +- .../participant-detail-edit.component.ts | 4 +- .../participant-detail-view.component.ts | 6 +- .../participant-create-wizard.component.ts | 2 +- .../participant-import-list.component.ts | 2 +- .../participant-import.module.ts | 2 +- .../participant-list.component.ts | 11 +- .../participant-list-info-dialog.component.ts | 2 +- .../participant-list.module.ts | 2 +- .../participant-speaker-list.component.ts | 6 +- ...participant-speaker-list-filter.service.ts | 5 +- .../participant-speaker-list-sort.service.ts | 2 +- .../structure-level-controller.service.ts | 9 +- .../pages/participants/participants.config.ts | 4 +- .../participant-controller.service.ts | 9 +- .../poll-list/poll-list.component.ts | 2 +- .../poll-list-filter.service.ts | 2 +- .../meetings/pages/polls/polls.config.ts | 4 +- .../pages/polls/polls.subscription.ts | 2 +- .../pages/polls/view-models/view-option.ts | 4 +- .../fullscreen-projector-main.component.ts | 2 +- .../fullscreen-projector.component.ts | 2 +- .../fullscreen-projector.module.ts | 2 +- .../countdown-controls.component.ts | 2 +- .../message-controls.component.ts | 2 +- .../presentation-controls.component.ts | 2 +- .../projector-detail.component.ts | 19 +-- .../projection-controller.service.ts | 11 +- .../projector-countdown-controller.service.ts | 9 +- .../projector-message-controller.service.ts | 11 +- .../projector-list/projector-list.module.ts | 2 +- .../pages/projectors/projector.config.ts | 5 +- .../projectors/projectors.subscription.ts | 2 +- .../services/projector-controller.service.ts | 17 +-- .../view-models/view-projector-message.ts | 2 +- .../services/active-meeting.service.ts | 2 +- .../meetings/services/active-polls.service.ts | 4 +- .../services/active-polls.subscription.ts | 2 +- .../meetings/services/media-manage.service.ts | 3 +- ...ng-controller-service-collector.service.ts | 36 ------ .../services/meeting-controller.service.ts | 24 +--- .../sequential-number-mapping.service.ts | 53 ++++++--- .../pages/meetings/view-models/projectable.ts | 2 +- .../meetings/view-models/view-meeting-user.ts | 19 +-- .../meetings/view-models/view-meeting.ts | 61 ++++++---- .../pages/meetings/view-models/view-user.ts | 8 +- .../organization/organization.subscription.ts | 2 +- .../account-detail.component.ts | 2 +- .../account-import.service.ts | 2 +- .../account-list/account-list.component.ts | 2 +- .../services/gender-controller.service.ts | 9 +- .../common/account-controller.service.ts | 10 +- .../committees/committees.subscription.ts | 2 +- .../modules/committee-components.module.ts | 2 +- .../committee-meeting-preview.component.ts | 2 +- .../committee-detail-edit.component.ts | 2 +- .../meeting-edit/meeting-edit.component.ts | 2 +- .../committee-import.service.ts | 2 +- .../committee-list.component.ts | 6 +- .../committee-filter.service.ts | 2 +- .../committee-sort.service.ts | 2 +- .../services/committee-controller.service.ts | 13 +- .../dashboard-detail.module.ts | 2 +- .../services/theme-controller.service.ts | 11 +- .../meeting-list-filter.service.ts | 2 +- .../organization-tag-dialog.service.ts | 2 +- .../organization-tag-list.component.ts | 4 +- .../organization-tag-controller.service.ts | 14 +-- .../organization-controller.service.ts | 9 +- .../services/organization.service.ts | 2 +- .../view-models/view-organization.ts | 10 +- .../services/active-filters.service.spec.ts | 2 +- .../site/services/active-filters.service.ts | 2 +- .../app/site/services/auth-check.service.ts | 4 +- client/src/app/site/services/auth.service.ts | 2 +- .../autoupdate-communication.service.ts | 2 +- .../services/autoupdate/autoupdate.service.ts | 6 +- .../controller-service-collector.service.ts | 16 --- .../data-store-update-manager.service.ts | 4 +- .../app/site/services/data-store.service.ts | 2 +- .../model-request-builder.service.ts | 8 +- .../site/services/model-request.service.ts | 4 +- .../src/app/site/services/operator.service.ts | 6 +- .../site/services/relation-manager.service.ts | 5 +- client/src/app/site/services/theme.service.ts | 2 +- .../site/services/user-controller.service.ts | 13 +- .../services/view-model-store.service.spec.ts | 2 +- .../site/services/view-model-store.service.ts | 2 +- .../action-card/action-card.component.ts | 4 +- .../expandable-content-wrapper.component.ts | 2 +- .../modules/file-list/file-list.component.ts | 12 +- .../ui/modules/head-bar/head-bar.module.ts | 2 +- .../backend-import-list.component.ts | 2 +- .../modules/import-list/import-list.module.ts | 2 +- .../modules/list/base/base-list.component.ts | 7 +- .../view-list/view-list.component.ts | 4 +- .../media-upload-content.component.ts | 6 +- .../meeting-time/meeting-time.component.ts | 2 +- .../openslides-overlay/overlay.component.ts | 2 +- .../services/overlay.service.ts | 3 +- .../prompt-checkbox.component.ts | 2 +- .../scrolling-table-cell.directive.ts | 2 +- .../scrolling-table-no-data.directive.ts | 2 +- .../base-search-selector.component.ts | 2 +- .../repo-search-selector.component.ts | 2 +- .../search-selector/search-selector.module.ts | 2 +- ...r-egg-content-platform-dialog.component.ts | 4 +- .../app/ui/modules/sidenav/sidenav.module.ts | 2 +- .../sorting-tree/sorting-tree.component.ts | 3 +- .../app/ui/modules/sorting/sorting.module.ts | 3 +- client/src/e2e-imports.module.ts | 2 +- 391 files changed, 1096 insertions(+), 1690 deletions(-) delete mode 100644 client/src/app/gateways/repositories/motions/index.ts delete mode 100644 client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts delete mode 100644 client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts delete mode 100644 client/src/app/site/pages/meetings/services/meeting-controller-service-collector.service.ts delete mode 100644 client/src/app/site/services/controller-service-collector.service.ts diff --git a/client/src/app/domain/models/assignments/assignment.ts b/client/src/app/domain/models/assignments/assignment.ts index 8831b2cdad..d6a4298f8f 100644 --- a/client/src/app/domain/models/assignments/assignment.ts +++ b/client/src/app/domain/models/assignments/assignment.ts @@ -1,11 +1,11 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasPollIds } from '../../interfaces/has-poll-ids'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { HasTagIds } from '../../interfaces/has-tag-ids'; import { BaseModel } from '../base/base-model'; import { AssignmentPhase } from './assignment-phase'; diff --git a/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts b/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts index e38dd78cec..c3af2f798b 100644 --- a/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts +++ b/client/src/app/domain/models/list-of-speakers/list-of-speakers.ts @@ -1,7 +1,7 @@ import { Fqid, Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts index b3819d3fa3..4a027969b6 100644 --- a/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts +++ b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts @@ -1,6 +1,6 @@ import { Fqid, Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; import { HasProperties } from '../../interfaces/has-properties'; import { BaseModel } from '../base/base-model'; diff --git a/client/src/app/domain/models/motions/motion-block.ts b/client/src/app/domain/models/motions/motion-block.ts index c4224f5620..7da8119dd1 100644 --- a/client/src/app/domain/models/motions/motion-block.ts +++ b/client/src/app/domain/models/motions/motion-block.ts @@ -1,9 +1,9 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/motions/motion-category.ts b/client/src/app/domain/models/motions/motion-category.ts index 42b3d318b3..94dfb06a07 100644 --- a/client/src/app/domain/models/motions/motion-category.ts +++ b/client/src/app/domain/models/motions/motion-category.ts @@ -1,5 +1,6 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId, HasSequentialNumber } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/motions/motion-workflow.ts b/client/src/app/domain/models/motions/motion-workflow.ts index 1dc83b8d21..1f58c528f3 100644 --- a/client/src/app/domain/models/motions/motion-workflow.ts +++ b/client/src/app/domain/models/motions/motion-workflow.ts @@ -1,6 +1,6 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts b/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts index 1d3b1e93b9..184effef39 100644 --- a/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts +++ b/client/src/app/domain/models/point-of-order-category/point-of-order-category.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/domain/models/poll-candidate-lists/poll-candidate-list.ts b/client/src/app/domain/models/poll-candidate-lists/poll-candidate-list.ts index fbfeff3909..e6abf402a3 100644 --- a/client/src/app/domain/models/poll-candidate-lists/poll-candidate-list.ts +++ b/client/src/app/domain/models/poll-candidate-lists/poll-candidate-list.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; export class PollCandidateList extends BaseModel { diff --git a/client/src/app/domain/models/poll-candidate-lists/poll-candidate.ts b/client/src/app/domain/models/poll-candidate-lists/poll-candidate.ts index 5b879d2774..46a2b1b592 100644 --- a/client/src/app/domain/models/poll-candidate-lists/poll-candidate.ts +++ b/client/src/app/domain/models/poll-candidate-lists/poll-candidate.ts @@ -1,5 +1,5 @@ import { Id } from '../../definitions/key-types'; -import { HasMeetingId } from '../../interfaces'; +import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; export class PollCandidate extends BaseModel { diff --git a/client/src/app/domain/models/projector/projector.ts b/client/src/app/domain/models/projector/projector.ts index 5d3776e787..3dd8d0808e 100644 --- a/client/src/app/domain/models/projector/projector.ts +++ b/client/src/app/domain/models/projector/projector.ts @@ -1,7 +1,7 @@ import { Id } from '../../definitions/key-types'; -import { HasSequentialNumber } from '../../interfaces'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasProperties } from '../../interfaces/has-properties'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; import { ProjectiondefaultValue } from './projection-default'; import { ProjectorMeetingUsageIdKey } from './projector.constants'; diff --git a/client/src/app/domain/models/topics/topic.ts b/client/src/app/domain/models/topics/topic.ts index 6688da873a..9d6e98d9f2 100644 --- a/client/src/app/domain/models/topics/topic.ts +++ b/client/src/app/domain/models/topics/topic.ts @@ -1,10 +1,10 @@ import { HasPollIds } from '@app/domain/interfaces/has-poll-ids'; -import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; +import { HasSequentialNumber } from '../../interfaces/has-sequential-number'; import { BaseModel } from '../base/base-model'; /** diff --git a/client/src/app/gateways/error-mapping/error-map-utils.ts b/client/src/app/gateways/error-mapping/error-map-utils.ts index 3a26b4a2a0..b4e37afada 100644 --- a/client/src/app/gateways/error-mapping/error-map-utils.ts +++ b/client/src/app/gateways/error-mapping/error-map-utils.ts @@ -1,8 +1,8 @@ import { _ } from '@ngx-translate/core'; -import { AgendaItemAction } from '../repositories/agenda'; -import { MeetingAction } from '../repositories/meetings'; -import { MotionAction } from '../repositories/motions'; +import { AgendaItemAction } from '../repositories/agenda/agenda-item.action'; +import { MeetingAction } from '../repositories/meetings/meeting-action'; +import { MotionAction } from '../repositories/motions/motion-repository.service/motion.action'; import { UserAction } from '../repositories/users/user-action'; export class MapError { diff --git a/client/src/app/gateways/error-mapping/error-map.service.spec.ts b/client/src/app/gateways/error-mapping/error-map.service.spec.ts index 2758ff8ebd..ac0685b6b5 100644 --- a/client/src/app/gateways/error-mapping/error-map.service.spec.ts +++ b/client/src/app/gateways/error-mapping/error-map.service.spec.ts @@ -2,8 +2,8 @@ import { TestBed } from '@angular/core/testing'; import { MockTranslateService } from '@app/site/pages/meetings/modules/poll/pipes/poll-parse-number/poll-parse-number.pipe.spec'; import { TranslateService } from '@ngx-translate/core'; -import { MeetingAction } from '../repositories/meetings'; -import { MotionAction } from '../repositories/motions'; +import { MeetingAction } from '../repositories/meetings/meeting-action'; +import { MotionAction } from '../repositories/motions/motion-repository.service'; import { ErrorMapService } from './error-map.service'; import { ErrorMap, UrlFragmentToHttpErrorMap } from './error-map-utils'; diff --git a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts index 077460dd58..5d4eee09b5 100644 --- a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts +++ b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { BaseViewModel } from '@app/site/base/base-view-model'; -import { FileExportService } from '../file-export.service'; +import { FileExportService } from '../file-export.service/file-export.service'; import { CsvExportForBackendService } from './csv-export-for-backend.service'; class MockFileExportService { diff --git a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts index c5d9cdcf8c..8f70a9701e 100644 --- a/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts +++ b/client/src/app/gateways/export/csv-export.service/csv-export-for-backend.service.ts @@ -1,7 +1,7 @@ import { inject, Service } from '@angular/core'; import { BaseViewModel } from '@app/site/base/base-view-model'; -import { FileExportService } from '../file-export.service'; +import { FileExportService } from '../file-export.service/file-export.service'; import { BackendCsvColumnsDefinition, DEFAULT_COLUMN_SEPARATOR, diff --git a/client/src/app/gateways/http.service.ts b/client/src/app/gateways/http.service.ts index 6daa5e4c4c..f0444f42ac 100644 --- a/client/src/app/gateways/http.service.ts +++ b/client/src/app/gateways/http.service.ts @@ -11,7 +11,7 @@ import { QueryParams, ResponseType } from '../infrastructure/definitions/http'; -import { ProcessError } from '../infrastructure/errors'; +import { ProcessError } from '../infrastructure/errors/process.error'; import { toBase64 } from '../infrastructure/utils/functions'; import { ActionWorkerWatchService } from './action-worker-watch/action-worker-watch.service'; import { ErrorMapService } from './error-mapping/error-map.service'; diff --git a/client/src/app/gateways/meeting-media-adapter.service.spec.ts b/client/src/app/gateways/meeting-media-adapter.service.spec.ts index 63ffec3e14..8b4111a611 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.spec.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.spec.ts @@ -1,11 +1,11 @@ import { TestBed } from '@angular/core/testing'; import { FONT_PLACES, LOGO_PLACES } from '../domain/models/mediafiles/mediafile.constants'; -import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles'; +import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; import { ActionService } from './actions/action.service'; import { ActionRequest } from './actions/action-utils'; import { MeetingMediaAdapterService } from './meeting-media-adapter.service'; -import { MeetingAction } from './repositories/meetings'; +import { MeetingAction } from './repositories/meetings/meeting-action'; class MockAction { public constructor( diff --git a/client/src/app/gateways/meeting-media-adapter.service.ts b/client/src/app/gateways/meeting-media-adapter.service.ts index bf52ce6dfc..da136c299f 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.ts @@ -1,8 +1,8 @@ import { inject, Service } from '@angular/core'; import { Id } from '../domain/definitions/key-types'; -import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles'; -import { ActionService } from './actions'; +import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; +import { ActionService } from './actions/action.service'; type MediaAdapterActionParameters = ({ action: `set`; mediafile: ViewMediafile } | { action: `unset` }) & { type: `logo` | `font`; diff --git a/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts b/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts index e95e0d37a3..c1377e392e 100644 --- a/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts +++ b/client/src/app/gateways/repositories/action-worker/action-worker-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { ActionWorker } from '@app/domain/models/action-worker/action-worker'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewActionWorker } from './view-action-worker'; @Service() export class ActionWorkerRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, ActionWorker); - } + public baseModelCtor = ActionWorker; public getVerboseName = (plural?: boolean): string => (plural ? `Action workers` : `Action worker`); public getTitle = (viewModel: ViewActionWorker): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts b/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts index b2701f10d7..495ada2cd7 100644 --- a/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts +++ b/client/src/app/gateways/repositories/agenda/agenda-item-repository.service.ts @@ -7,18 +7,18 @@ import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem, ViewAgendaItem } from '@app/site/pages/meetings/pages/agenda'; import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/services'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { AgendaItemAction } from './agenda-item.action'; @Service() export class AgendaItemRepositoryService extends BaseMeetingRelatedRepository { private treeService = inject(TreeService); + public baseModelCtor = AgendaItem; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, AgendaItem); + super(); this.setSortFunction((a, b) => a.tree_weight - b.tree_weight); // leave the sorting as it is } diff --git a/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts b/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts index cf89b24901..3e34fb4089 100644 --- a/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts +++ b/client/src/app/gateways/repositories/assignments/assignment-candidate-repository.service/assignment-candidate-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Action } from '@app/gateways/actions'; @@ -7,7 +7,6 @@ import { ViewAssignmentCandidate } from '@app/site/pages/meetings/pages/assignme import { UnknownUserLabel } from '@app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll.service'; import { AssignmentCandidate } from '../../../../domain/models/assignments/assignment-candidate'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AssignmentCandidateAction } from './assignment-candidate.action'; @Service() @@ -15,10 +14,7 @@ export class AssignmentCandidateRepositoryService extends BaseMeetingRelatedRepo ViewAssignmentCandidate, AssignmentCandidate > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, AssignmentCandidate); - } + public baseModelCtor = AssignmentCandidate; public getTitle = (viewAssignmentCandidate: ViewAssignmentCandidate): string => viewAssignmentCandidate.user?.getTitle() ?? UnknownUserLabel; diff --git a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts index 7b1e373f62..d3add7d1bc 100644 --- a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts +++ b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts @@ -1,15 +1,14 @@ import { inject, Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; -import { AgendaItemRepositoryService } from '@app/gateways/repositories/agenda'; import { ViewAssignment } from '@app/site/pages/meetings/pages/assignments'; +import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { Fieldsets } from '@app/site/services/model-request-builder'; import { Assignment } from '../../../../domain/models/assignments/assignment'; -import { createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; import { CreateResponse } from '../../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AssignmentAction } from './assignment.action'; @Service() @@ -17,11 +16,9 @@ export class AssignmentRepositoryService extends BaseAgendaItemAndListOfSpeakers ViewAssignment, Assignment > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Assignment, agendaItemRepo); - } + private sequentialNumber = inject(SequentialNumberMappingService); + + public baseModelCtor = Assignment; public override getFieldsets(): Fieldsets { const titleFields: (keyof Assignment)[] = [`sequential_number`, `meeting_id`, `title`]; @@ -33,14 +30,24 @@ export class AssignmentRepositoryService extends BaseAgendaItemAndListOfSpeakers }; } - public create(partialAssignment: Partial): Promise { + public async create(partialAssignment: Partial): Promise { partialAssignment.phase = undefined; const payload = { meeting_id: this.activeMeetingId, ...this.getPartialPayload(partialAssignment), ...createAgendaItem(partialAssignment) }; - return this.sendActionToBackend(AssignmentAction.CREATE, payload); + const data: CreateResponse = await this.sendActionToBackend(AssignmentAction.CREATE, payload); + if (data.sequential_number) { + this.sequentialNumber.setSequentialNumber( + ViewAssignment.COLLECTION, + payload.meeting_id, + data.sequential_number, + data.id + ); + } + + return data; } public update(update: Partial, viewModel: ViewAssignment): Promise { diff --git a/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts b/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts index 262a45ecb5..c65f762836 100644 --- a/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-agenda-item-and-list-of-speakers-content-object-repository.ts @@ -1,5 +1,6 @@ +import { inject, Service } from '@angular/core'; import { HasAgendaItemId, HasListOfSpeakersId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem, HasListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; @@ -7,8 +8,8 @@ import { AgendaItemRepositoryService } from './agenda/agenda-item-repository.ser import { AgendaItemContentObjectRepository } from './base-agenda-item-content-object-repository'; import { ListOfSpeakersContentObjectRepository } from './base-list-of-speakers-content-object-repository'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; +@Service() export abstract class BaseAgendaItemAndListOfSpeakersContentObjectRepository< V extends BaseViewModel & HasListOfSpeakers & HasAgendaItem, M extends BaseModel & HasListOfSpeakersId & HasAgendaItemId @@ -16,13 +17,7 @@ export abstract class BaseAgendaItemAndListOfSpeakersContentObjectRepository< extends BaseMeetingRelatedRepository implements ListOfSpeakersContentObjectRepository, AgendaItemContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor, - protected agendaItemRepo: AgendaItemRepositoryService - ) { - super(repositoryServiceCollector, baseModelCtor); - } + protected agendaItemRepo = inject(AgendaItemRepositoryService); public getAgendaListTitle(viewModel: V): AgendaListTitle { // Return the agenda title with the model's verbose name appended diff --git a/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts b/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts index 7286c3615b..edde3c5985 100644 --- a/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-agenda-item-content-object-repository.ts @@ -1,11 +1,11 @@ +import { inject, Service } from '@angular/core'; import { HasAgendaItemId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { AgendaListTitle, HasAgendaItem } from '@app/site/pages/meetings/pages/agenda'; -import { AgendaItemRepositoryService } from './agenda'; +import { AgendaItemRepositoryService } from './agenda/agenda-item-repository.service'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; export function isAgendaItemContentObjectRepository(obj: any): obj is BaseAgendaItemContentObjectRepository { const repo = obj as BaseAgendaItemContentObjectRepository; @@ -26,6 +26,7 @@ export interface AgendaItemContentObjectRepository< /** * The base repository for objects with an agenda item. */ +@Service() export abstract class BaseAgendaItemContentObjectRepository< V extends BaseViewModel & HasAgendaItem, M extends BaseModel & HasAgendaItemId @@ -33,13 +34,7 @@ export abstract class BaseAgendaItemContentObjectRepository< extends BaseMeetingRelatedRepository implements AgendaItemContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor, - protected agendaItemRepo: AgendaItemRepositoryService - ) { - super(repositoryServiceCollector, baseModelCtor); - } + protected agendaItemRepo = inject(AgendaItemRepositoryService); /** * @returns the agenda title for the agenda item list. Should diff --git a/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts b/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts index 4af1bab01b..5d4b718be1 100644 --- a/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts +++ b/client/src/app/gateways/repositories/base-list-of-speakers-content-object-repository.ts @@ -1,10 +1,10 @@ +import { Service } from '@angular/core'; import { HasListOfSpeakersId } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { HasListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from './base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; /** * Describes a base repository which objects have a list of speakers assigned. @@ -20,6 +20,7 @@ export interface ListOfSpeakersContentObjectRepository< /** * The base repository for objects with a list of speakers. */ +@Service() export abstract class BaseListOfSpeakersContentObjectRepository< V extends BaseViewModel & HasListOfSpeakers, M extends BaseModel & HasListOfSpeakersId @@ -27,13 +28,6 @@ export abstract class BaseListOfSpeakersContentObjectRepository< extends BaseMeetingRelatedRepository implements ListOfSpeakersContentObjectRepository { - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - baseModelCtor: ModelConstructor - ) { - super(repositoryServiceCollector, baseModelCtor); - } - public getListOfSpeakersTitle(viewModel: V): string { return this.getTitle(viewModel) + ` (` + this.getVerboseName() + `)`; } diff --git a/client/src/app/gateways/repositories/base-meeting-related-repository.ts b/client/src/app/gateways/repositories/base-meeting-related-repository.ts index 321e200790..645b2dc17f 100644 --- a/client/src/app/gateways/repositories/base-meeting-related-repository.ts +++ b/client/src/app/gateways/repositories/base-meeting-related-repository.ts @@ -1,19 +1,20 @@ +import { inject, Service } from '@angular/core'; import { HasMeetingId } from '@app/domain/interfaces'; import { Id } from '../../domain/definitions/key-types'; -import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; +import { BaseModel } from '../../domain/models/base/base-model'; import { BaseViewModel } from '../../site/base/base-view-model'; import { ActiveMeetingService } from '../../site/pages/meetings/services/active-meeting.service'; import { ActiveMeetingIdService } from '../../site/pages/meetings/services/active-meeting-id.service'; import { MeetingSettingsService } from '../../site/pages/meetings/services/meeting-settings.service'; import { ViewMeeting } from '../../site/pages/meetings/view-models/view-meeting'; import { BaseRepository } from './base-repository'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; /** * Extension of the base repository for all meeting specific models. Provides access * to the active meeting service and automatically inserts the id on viewmodel creates. */ +@Service() export abstract class BaseMeetingRelatedRepository extends BaseRepository< V, M @@ -24,18 +25,10 @@ export abstract class BaseMeetingRelatedRepository - ) { - super(repositoryMeetingServiceCollector, baseModelCtor); - } + protected activeMeetingIdService = inject(ActiveMeetingIdService); + protected activeMeetingService = inject(ActiveMeetingService); + protected meetingSettingsService = inject(MeetingSettingsService); protected override createViewModel(model: M): V { const viewModel = super.createViewModel(model); - viewModel.getActiveMeetingId = (): number => - this.repositoryMeetingServiceCollector.activeMeetingIdService.meetingId; + viewModel.getActiveMeetingId = (): number => this.activeMeetingIdService.meetingId; return viewModel; } diff --git a/client/src/app/gateways/repositories/base-repository.ts b/client/src/app/gateways/repositories/base-repository.ts index cc1a72aa87..77aca52b11 100644 --- a/client/src/app/gateways/repositories/base-repository.ts +++ b/client/src/app/gateways/repositories/base-repository.ts @@ -1,3 +1,4 @@ +import { inject, Injectable } from '@angular/core'; import { HasSequentialNumber, Identifiable } from '@app/domain/interfaces'; import { OnAfterAppsLoaded } from '@app/infrastructure/definitions/hooks/after-apps-loaded'; import { ListUpdateData } from '@app/infrastructure/utils'; @@ -10,14 +11,14 @@ import { auditTime, BehaviorSubject, filter, Observable, Subject, Subscription } import { Id } from '../../domain/definitions/key-types'; import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; -import { Relation } from '../../infrastructure/definitions/relations'; +import { Relation } from '../../infrastructure/definitions/relations/utils'; import { BaseViewModel, ViewModelConstructor } from '../../site/base/base-view-model'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; +import { CollectionMapperService } from '../../site/services/collection-mapper.service/collection-mapper.service'; import { DataStoreService } from '../../site/services/data-store.service'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { Action, ActionService } from '../actions'; +import { Action } from '../actions/action'; +import { ActionService } from '../actions/action.service'; import { ActionRequest } from '../actions/action-utils'; import { RepositoryServiceCollectorService } from './repository-service-collector.service'; @@ -46,9 +47,10 @@ interface UpdatePipelineAction { key?: string; } +@Injectable() export abstract class BaseRepository implements OnAfterAppsLoaded { public get collection(): string { - return this._collection; + return this.baseModelCtor.COLLECTION; } /** @@ -56,7 +58,7 @@ export abstract class BaseRepository string; @@ -110,38 +112,14 @@ export abstract class BaseRepository = {}; /** - * The view model ctor of the encapsulated view model. + * The model ctor of the encapsulated model. */ - protected baseViewModelCtor!: ViewModelConstructor; - - protected get DS(): DataStoreService { - return this.repositoryServiceCollector.DS; - } - - protected get actions(): ActionService { - return this.repositoryServiceCollector.actionService; - } - - protected get collectionMapperService(): CollectionMapperService { - return this.repositoryServiceCollector.collectionMapperService; - } - - protected get viewModelStoreService(): ViewModelStoreService { - return this.repositoryServiceCollector.viewModelStoreService; - } - - protected get translate(): TranslateService { - return this.repositoryServiceCollector.translate; - } - - protected get relationManager(): RelationManagerService { - return this.repositoryServiceCollector.relationManager; - } + protected abstract baseModelCtor: ModelConstructor; /** - * The collection string of the managed model. + * The view model ctor of the encapsulated view model. */ - private _collection: string; + protected baseViewModelCtor!: ViewModelConstructor; private _createViewModelPipes: ((viewModel: V) => void)[] = []; @@ -167,16 +145,15 @@ export abstract class BaseRepository> = {}; private foreignSortBaseKeySubscriptions: Record = {}; - public constructor( - private repositoryServiceCollector: RepositoryServiceCollectorService, - protected baseModelCtor: ModelConstructor - ) { - this._collection = baseModelCtor.COLLECTION; + protected DS = inject(DataStoreService); + protected actions = inject(ActionService); + protected collectionMapperService = inject(CollectionMapperService); + protected translate = inject(TranslateService); + protected relationManager = inject(RelationManagerService); - this.relationManager.getRelationsForCollection(this.collection).forEach(relation => { - this.relationsByKey[relation.ownField as any] = relation; - }); + private repositoryServiceCollector = inject(RepositoryServiceCollectorService); + public constructor() { // All data is piped through an auditTime of 1ms. This is to prevent massive // updates, if e.g. an autoupdate with a lot motions come in. The result is just one // update of the new list instead of many unnecessary updates. @@ -190,6 +167,10 @@ export abstract class BaseRepository { + this.relationsByKey[relation.ownField as any] = relation; + }); + this.baseViewModelCtor = this.collectionMapperService.getViewModelConstructor(this.collection)!; this.DS.clearObservable.subscribe(removedCollections => { if ( diff --git a/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts b/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts index f4c7d7f114..f741051b1e 100644 --- a/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts +++ b/client/src/app/gateways/repositories/chat/chat-group-repository.service/chat-group-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ChatGroup } from '@app/domain/models/chat/chat-group'; import { ViewChatGroup } from '@app/site/pages/meetings/pages/chat'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { ChatGroupAction } from './chat-group.action'; @Service() export class ChatGroupRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ChatGroup); - } + public baseModelCtor = ChatGroup; public getVerboseName = (plural?: boolean): string => (plural ? `Chat groups` : `Chat group`); public getTitle = (viewModel: ViewChatGroup): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts b/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts index 7d13a4e1fb..5e7d9a405e 100644 --- a/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts +++ b/client/src/app/gateways/repositories/chat/chat-message-repository.service/chat-message-repository.service.ts @@ -1,11 +1,10 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ChatMessage } from '@app/domain/models/chat/chat-message'; import { ViewChatMessage } from '@app/site/pages/meetings/pages/chat'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { ChatMessageAction } from './chat-message.action'; /** @@ -15,10 +14,7 @@ export const CHAT_MESSAGE_MAX_LENGTH = 512; @Service() export class ChatMessageRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ChatMessage); - } + public baseModelCtor = ChatMessage; public getVerboseName = (plural?: boolean): string => (plural ? `Chat messages` : `Chat message`); public getTitle = (): string => `No name`; diff --git a/client/src/app/gateways/repositories/committee-repository.service.ts b/client/src/app/gateways/repositories/committee-repository.service.ts index 0b36f02423..26bf04aab5 100644 --- a/client/src/app/gateways/repositories/committee-repository.service.ts +++ b/client/src/app/gateways/repositories/committee-repository.service.ts @@ -5,15 +5,14 @@ import { BackendImportRawPreview } from '@app/ui/modules/import-list/definitions import { Id } from '../../domain/definitions/key-types'; import { CML, OML } from '../../domain/definitions/organization-permission'; -import { Identifiable } from '../../domain/interfaces'; +import { Identifiable } from '../../domain/interfaces/identifiable'; import { Committee } from '../../domain/models/comittees/committee'; -import { ViewCommittee } from '../../site/pages/organization/pages/committees'; -import { Fieldsets, TypedFieldset } from '../../site/services/model-request-builder'; +import { ViewCommittee } from '../../site/pages/organization/pages/committees/view-models/view-committee'; +import { Fieldsets, TypedFieldset } from '../../site/services/model-request-builder/model-request-builder.service'; import { OperatorService } from '../../site/services/operator.service'; -import { Action } from '../actions'; +import { Action } from '../actions/action'; import { BaseRepository } from './base-repository'; import { CommitteeAction } from './committees/committee.action'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; import { UserRepositoryService } from './users/user-repository.service'; @Service() @@ -21,10 +20,7 @@ export class CommitteeRepositoryService extends BaseRepository viewCommittee.name; diff --git a/client/src/app/gateways/repositories/gender/gender-repository.service.ts b/client/src/app/gateways/repositories/gender/gender-repository.service.ts index d2f02b73b0..2f0ce2a579 100644 --- a/client/src/app/gateways/repositories/gender/gender-repository.service.ts +++ b/client/src/app/gateways/repositories/gender/gender-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Gender } from '@app/domain/models/gender/gender'; @@ -6,16 +6,12 @@ import { BaseRepository } from '@app/gateways/repositories/base-repository'; import { ViewGender } from '@app/site/pages/organization/pages/accounts/pages/gender/view-models/view-gender'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { Action } from '../../actions'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; +import { Action } from '../../actions/action'; import { GenderAction } from './gender.action'; @Service() export class GenderRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Gender); - } + public baseModelCtor = Gender; public getVerboseName = (plural?: boolean): string => (plural ? `Genders` : `Gender`); public getTitle = (viewModel: ViewGender): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/groups/group-repository.service.ts b/client/src/app/gateways/repositories/groups/group-repository.service.ts index 4f76f5b307..fe096c8d74 100644 --- a/client/src/app/gateways/repositories/groups/group-repository.service.ts +++ b/client/src/app/gateways/repositories/groups/group-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Group } from '@app/domain/models/users/group'; import { BaseMeetingRelatedRepository } from '@app/gateways/repositories/base-meeting-related-repository'; import { ViewGroup } from '@app/site/pages/meetings/pages/participants'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { GroupAction } from './group.action'; @Service() export class GroupRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Group); - } + public baseModelCtor = Group; public override getFieldsets(): Fieldsets { const titleFields: (keyof Group)[] = [`name`]; diff --git a/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts b/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts index a6ed384857..8e9f6249b8 100644 --- a/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts +++ b/client/src/app/gateways/repositories/history-entry/history-entry-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { HistoryEntry } from '@app/domain/models/history-entry/history-entry'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewHistoryEntry } from './view-history-entry'; @Service() export class HistoryEntryRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, HistoryEntry); - } + public baseModelCtor = HistoryEntry; public getVerboseName = (plural?: boolean): string => (plural ? `History entries` : `History entry`); public getTitle = (viewModel: ViewHistoryEntry): string => `Entry ${viewModel.id}`; diff --git a/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts b/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts index 11ef996791..eb9e72b7f7 100644 --- a/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts +++ b/client/src/app/gateways/repositories/history-position/history-position-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { HistoryPosition } from '@app/domain/models/history-position/history-position'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ViewHistoryPosition } from './view-history-position'; @Service() export class HistoryPositionRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, HistoryPosition); - } + public baseModelCtor = HistoryPosition; public getVerboseName = (plural?: boolean): string => (plural ? `History positions` : `History position`); public getTitle = (viewModel: ViewHistoryPosition): string => `Position ${viewModel.id}`; diff --git a/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts b/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts index accadb47af..c709fa227f 100644 --- a/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts +++ b/client/src/app/gateways/repositories/list-of-speakers/list-of-speakers-repository.service.ts @@ -1,10 +1,9 @@ -import { Injectable } from '@angular/core'; +import { Service } from '@angular/core'; import { ListOfSpeakers } from '@app/domain/models/list-of-speakers/list-of-speakers'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { hasListOfSpeakers, ViewListOfSpeakers } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { SpeakerAction } from '../speakers/speaker.action'; import { ListOfSpeakersAction } from './list-of-speakers.action'; @@ -13,13 +12,9 @@ import { ListOfSpeakersAction } from './list-of-speakers.action'; * * Documentation partially provided in {@link BaseRepository} */ -@Injectable({ - providedIn: `root` -}) +@Service() export class ListOfSpeakersRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, ListOfSpeakers); - } + public baseModelCtor = ListOfSpeakers; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Lists of speakers` : `List of speakers`); diff --git a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts index 0b1b9d9235..708434fc2d 100644 --- a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts +++ b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts @@ -11,7 +11,6 @@ import { Fieldsets } from '@app/site/services/model-request-builder'; import { TypedFieldset } from '../../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from '../base-repository'; import { MeetingMediafileRepositoryService } from '../meeting-mediafile/meeting-mediafile-repository.service'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { MediafileAction } from './mediafile.action'; @Service() @@ -23,9 +22,10 @@ export class MediafileRepositoryService extends BaseRepository this.languageCollator.compare(a.title, b.title); diff --git a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts index 87092e55e6..2a4e5b8e0e 100644 --- a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts @@ -5,7 +5,6 @@ import { ViewMeetingMediafile } from '@app/site/pages/meetings/pages/mediafiles/ import { ActiveMeetingIdService } from '../../../site/pages/meetings/services/active-meeting-id.service'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; @Service() export class MeetingMediafileRepositoryService extends BaseRepository { @@ -13,9 +12,10 @@ export class MeetingMediafileRepositoryService extends BaseRepository this.languageCollator.compare(a.mediafile?.title, b.mediafile?.title); diff --git a/client/src/app/gateways/repositories/meeting-repository.service.ts b/client/src/app/gateways/repositories/meeting-repository.service.ts index 835b028d4f..13e44db825 100644 --- a/client/src/app/gateways/repositories/meeting-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting-repository.service.ts @@ -10,11 +10,10 @@ import { Projection } from '../../domain/models/projector/projection'; import { MeetingSettingsDefinitionService } from '../../site/pages/meetings/services/meeting-settings-definition.service/meeting-settings-definition.service'; import { ViewMeeting } from '../../site/pages/meetings/view-models/view-meeting'; import { ViewUser } from '../../site/pages/meetings/view-models/view-user'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { TypedFieldset } from '../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from './base-repository'; -import { MeetingAction } from './meetings'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; +import { MeetingAction } from './meetings/meeting-action'; import { UserAction } from './users/user-action'; export enum MeetingProjectionType { @@ -41,10 +40,7 @@ export class MeetingRepositoryService extends BaseRepository { // This field is used to determine, if a user can access a meeting: It is restricted for non-authorized users diff --git a/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts b/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts index d9ced6bb97..83eafc282f 100644 --- a/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts +++ b/client/src/app/gateways/repositories/meeting_user/meeting-user-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { MeetingUser } from '@app/domain/models/meeting-users/meeting-user'; import { toDecimal } from '@app/infrastructure/utils'; @@ -6,7 +6,6 @@ import { ViewMeetingUser } from '@app/site/pages/meetings/view-models/view-meeti import { DEFAULT_FIELDSET, Fieldsets, TypedFieldset } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; export type MeetingUserPatchFn = { [key in keyof MeetingUser]?: any } | ((user: ViewMeetingUser) => { [key in keyof MeetingUser]?: any }); @@ -17,10 +16,7 @@ export class MeetingUserRepositoryService extends BaseMeetingRelatedRepository>(); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MeetingUser); - } + public baseModelCtor = MeetingUser; public override getFieldsets(): Fieldsets { const groupFields: TypedFieldset = [`group_ids`, `meeting_id`, `user_id`]; diff --git a/client/src/app/gateways/repositories/motions/index.ts b/client/src/app/gateways/repositories/motions/index.ts deleted file mode 100644 index 7874f521f7..0000000000 --- a/client/src/app/gateways/repositories/motions/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './motion-block-repository.service'; -export * from './motion-category-repository.service'; -export * from './motion-change-recommendation-repository.service'; -export * from './motion-comments'; -export * from './motion-editor-repository'; -export * from './motion-repository.service'; -export * from './motion-state-repository.service'; -export * from './motion-submitter-repository.service'; -export * from './motion-workflow-repository.service'; -export * from './motion-working-group-speaker-repository'; diff --git a/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts index 3a8579e626..2313dd3d50 100644 --- a/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-block-repository.service/motion-block-repository.service.ts @@ -1,12 +1,11 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { ViewMotionBlock } from '@app/site/pages/meetings/pages/motions'; import { map, Observable } from 'rxjs'; import { MotionBlock } from '../../../../domain/models/motions/motion-block'; -import { AgendaItemRepositoryService, createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionBlockAction } from './motion-block.action'; @Service() @@ -14,10 +13,10 @@ export class MotionBlockRepositoryService extends BaseAgendaItemAndListOfSpeaker ViewMotionBlock, MotionBlock > { + public baseModelCtor = MotionBlock; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, MotionBlock, agendaItemRepo); + super(); this.initSorting(); } diff --git a/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts index e8b1cc0f40..93ed8627e8 100644 --- a/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-category-repository.service/motion-category-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCategory } from '@app/domain/models/motions/motion-category'; import { Action } from '@app/gateways/actions'; @@ -8,15 +8,11 @@ import { Fieldsets } from '@app/site/services/model-request-builder'; import { map, Observable } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCategoryAction } from './motion-category.action'; @Service() export class MotionCategoryRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionCategory); - } + public baseModelCtor = MotionCategory; public override getViewModelList(): ViewMotionCategory[] { return this.filterForeignMeetingModelsFromList(super.getViewModelList()); diff --git a/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts index 8f3197bf4d..fabc9c063d 100644 --- a/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-change-recommendation-repository.service/motion-change-recommendation-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionChangeRecommendation } from '@app/domain/models/motions/motion-change-recommendation'; import { ViewMotionChangeRecommendation } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionChangeRecommendationAction } from './motion-change-recommendation.action'; @Service() @@ -12,10 +11,7 @@ export class MotionChangeRecommendationRepositoryService extends BaseMeetingRela ViewMotionChangeRecommendation, MotionChangeRecommendation > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionChangeRecommendation); - } + public baseModelCtor = MotionChangeRecommendation; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts index 31a5469084..85d0604562 100644 --- a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-repository.service.ts @@ -1,18 +1,14 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionComment } from '@app/domain/models/motions/motion-comment'; import { ViewMotionComment } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCommentAction } from './motion-comment.action'; @Service() export class MotionCommentRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionComment); - } + public baseModelCtor = MotionComment; public getTitle = (): string => `Comment`; diff --git a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts index 9d8a1c973c..a787c014d6 100644 --- a/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-comments/motion-comment-section-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCommentSection } from '@app/domain/models/motions/motion-comment-section'; import { ViewMotionCommentSection } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionCommentSectionAction } from './motion-comment-section.action'; @Service() @@ -12,9 +11,10 @@ export class MotionCommentSectionRepositoryService extends BaseMeetingRelatedRep ViewMotionCommentSection, MotionCommentSection > { + public baseModelCtor = MotionCommentSection; + public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionCommentSection); + super(); this.viewModelSortFn = (a: ViewMotionCommentSection, b: ViewMotionCommentSection): number => { if (a.weight === b.weight) { diff --git a/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts index c42c498b62..42f6eae467 100644 --- a/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-editor-repository/motion-editor-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionEditor } from '@app/domain/models/motions/motion-editor'; import { ViewMotionEditor } from '../../../../site/pages/meetings/pages/motions/modules/editors/view-models/view-motion-editor'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionEditorAction } from './motion-editor.action'; @@ -11,12 +10,10 @@ export class MotionEditorRepositoryService extends BaseMotionMeetingUserReposito ViewMotionEditor, MotionEditor > { + protected actionDefs = MotionEditorAction; protected sortPayloadField = `motion_editor_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionEditor, MotionEditorAction); - } + public baseModelCtor = MotionEditor; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Motion editors` : `Motion editor`); diff --git a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts index 5ef50841de..16192b689e 100644 --- a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts @@ -5,17 +5,17 @@ import { Action } from '@app/gateways/actions'; import { TreeIdNode } from '@app/infrastructure/definitions/tree'; import { NullablePartial } from '@app/infrastructure/utils'; import { AgendaListTitle } from '@app/site/pages/meetings/pages/agenda'; -import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; -import { MotionFormatResult } from '@app/site/pages/meetings/pages/motions/services/common/motion-format.service'; +import type { MotionFormatResult } from '@app/site/pages/meetings/pages/motions/services/common/motion-format.service'; +import { ViewMotion } from '@app/site/pages/meetings/pages/motions/view-models/view-motion'; +import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/services'; import { VERSION as CURRENT_DIFF_VERSION } from '@openslides/motion-diff'; import { map, Observable } from 'rxjs'; import { Motion } from '../../../../domain/models/motions/motion'; -import { AgendaItemRepositoryService, createAgendaItem } from '../../agenda'; +import { createAgendaItem } from '../../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../../base-agenda-item-and-list-of-speakers-content-object-repository'; import { CreateResponse } from '../../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { AmendmentAction } from './amendment.action'; import { MotionAction } from './motion.action'; @@ -31,11 +31,12 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont */ protected sortProperty: SortProperty = `number`; private treeService = inject(TreeService); + private sequentialNumber = inject(SequentialNumberMappingService); + + public baseModelCtor = Motion; public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Motion, agendaItemRepo); + super(); this.meetingSettingsService.get(`motions_default_sorting`).subscribe(conf => { this.sortProperty = conf as SortProperty; this.setConfigSortFn(); @@ -50,9 +51,21 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont return super.getViewModelListObservable().pipe(map(motions => this.getCurrentMotions(motions))); } - public create(...motions: NullablePartial[]): Promise { + public async create(...motions: NullablePartial[]): Promise { const payload = motions.map(motion => this.getCreatePayload(motion)); - return this.sendBulkActionToBackend(MotionAction.CREATE, payload); + const data: CreateResponse[] = await this.sendBulkActionToBackend(MotionAction.CREATE, payload); + for (const entry of data) { + if (entry.sequential_number) { + await this.sequentialNumber.setSequentialNumber( + ViewMotion.COLLECTION, + this.activeMeetingId, + entry.sequential_number, + entry.id + ); + } + } + + return data; } public async createForwarded( diff --git a/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts index 58171da20e..ace68340fa 100644 --- a/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-state-repository.service/motion-state-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionState } from '@app/domain/models/motions/motion-state'; import { Action } from '@app/gateways/actions'; @@ -6,15 +6,11 @@ import { ViewMotionState } from '@app/site/pages/meetings/pages/motions'; import { map, Observable } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionStateAction } from './motion-state.action'; @Service() export class MotionStateRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionState); - } + public baseModelCtor = MotionState; public getTitle = (viewMotionState: ViewMotionState): string => viewMotionState.name; diff --git a/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts index b2d9c638c4..6ea30edd33 100644 --- a/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-submitter-repository.service/motion-submitter-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionSubmitter } from '@app/domain/models/motions/motion-submitter'; import { ViewMotionSubmitter } from '../../../../site/pages/meetings/pages/motions/modules/submitters/view-models/view-motion-submitter'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionSubmitterAction } from './motion-submitter.action'; @@ -11,12 +10,10 @@ export class MotionSubmitterRepositoryService extends BaseMotionMeetingUserRepos ViewMotionSubmitter, MotionSubmitter > { + protected actionDefs = MotionSubmitterAction; protected sortPayloadField = `motion_submitter_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionSubmitter, MotionSubmitterAction); - } + public baseModelCtor = MotionSubmitter; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Submitters` : `Submitter`); } diff --git a/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts index 7a3d498d23..362bada5cc 100644 --- a/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-supporter/motion-supporter-repository.service.ts @@ -1,11 +1,10 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionSupporter } from '@app/domain/models/motions/motion-supporter'; import { Action } from '@app/gateways/actions'; import { ViewMotionSupporter } from '../../../../site/pages/meetings/pages/motions/modules/supporters/view-models/view-motion-supporter'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionSupporterAction } from './motion-supporter.action'; @Service() @@ -16,10 +15,7 @@ export class MotionSupporterRepositoryService extends BaseMeetingRelatedReposito public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Motion supporters` : `Motion supporter`); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionSupporter); - } + public baseModelCtor = MotionSupporter; public getTitle = (model: ViewMotionSupporter): string => model?.user?.getTitle() || this.translate.instant(`Deleted user`); diff --git a/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts index c7b662836b..abc4024204 100644 --- a/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-workflow-repository.service/motion-workflow-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionWorkflow } from '@app/domain/models/motions/motion-workflow'; import { Action } from '@app/gateways/actions'; @@ -6,15 +6,11 @@ import { ViewMotionWorkflow } from '@app/site/pages/meetings/pages/motions'; import { Fieldsets, ROUTING_FIELDSET } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { MotionWorkflowAction } from './motion-workflow.action'; @Service() export class MotionWorkflowRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionWorkflow); - } + public baseModelCtor = MotionWorkflow; public override getFieldsets(): Fieldsets { const routingFields: (keyof MotionWorkflow)[] = [`sequential_number`, `meeting_id`, `name`]; diff --git a/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts index 4538317ca6..356e5b05a7 100644 --- a/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-working-group-speaker-repository/motion-working-group-speaker-repository.service.ts @@ -1,8 +1,7 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { MotionWorkingGroupSpeaker } from '@app/domain/models/motions/motion-working-group-speaker'; import { ViewMotionWorkingGroupSpeaker } from '../../../../site/pages/meetings/pages/motions/modules/working-group-speakers/view-models/view-motion-working-group-speaker'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { BaseMotionMeetingUserRepositoryService } from '../util'; import { MotionWorkingGroupSpeakerAction } from './motion-working-group-speaker.action'; @@ -11,12 +10,10 @@ export class MotionWorkingGroupSpeakerRepositoryService extends BaseMotionMeetin ViewMotionWorkingGroupSpeaker, MotionWorkingGroupSpeaker > { + protected actionDefs = MotionWorkingGroupSpeakerAction; protected sortPayloadField = `motion_working_group_speaker_ids`; - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, MotionWorkingGroupSpeaker, MotionWorkingGroupSpeakerAction); - } + public baseModelCtor = MotionWorkingGroupSpeaker; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Spokespersons` : `Spokesperson`); diff --git a/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts b/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts index b7a82bcd56..ebf5a2a927 100644 --- a/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/personal-note-repository.service/personal-note-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Fqid } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { PersonalNote } from '@app/domain/models/motions/personal-note'; @@ -6,15 +6,11 @@ import { Action } from '@app/gateways/actions'; import { BaseMeetingRelatedRepository } from '@app/gateways/repositories/base-meeting-related-repository'; import { ViewPersonalNote } from '@app/site/pages/meetings/pages/motions'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; import { PersonalNoteAction } from './personal-note.action'; @Service() export class PersonalNoteRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, PersonalNote); - } + public baseModelCtor = PersonalNote; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/motions/util.ts b/client/src/app/gateways/repositories/motions/util.ts index 703f3012df..5fe8f89c8c 100644 --- a/client/src/app/gateways/repositories/motions/util.ts +++ b/client/src/app/gateways/repositories/motions/util.ts @@ -1,10 +1,10 @@ +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { Action } from '@app/gateways/actions'; import { BaseHasMeetingUserViewModel } from '@app/site/pages/meetings/base/base-has-meeting-user-view-model'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; interface MotionMeetingUserActions { CREATE: string; @@ -12,20 +12,14 @@ interface MotionMeetingUserActions { SORT: string; } +@Service() export abstract class BaseMotionMeetingUserRepositoryService< V extends BaseHasMeetingUserViewModel, M extends BaseModel > extends BaseMeetingRelatedRepository { + protected abstract actionDefs: MotionMeetingUserActions; protected abstract sortPayloadField: string; - public constructor( - repositoryServiceCollector: RepositoryMeetingServiceCollectorService, - constructor: ModelConstructor, - private actionDefs: MotionMeetingUserActions - ) { - super(repositoryServiceCollector, constructor); - } - public getTitle = (model: V): string => model?.user?.getTitle() || this.translate.instant(`Deleted user`); public create(motion: Identifiable, ...meetingUsers: Identifiable[]): Action { diff --git a/client/src/app/gateways/repositories/organization-repository.service.ts b/client/src/app/gateways/repositories/organization-repository.service.ts index 50cb2db39c..9cadba04b4 100644 --- a/client/src/app/gateways/repositories/organization-repository.service.ts +++ b/client/src/app/gateways/repositories/organization-repository.service.ts @@ -1,18 +1,14 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { ORGANIZATION_ID } from '@app/site/pages/organization/services/organization.service'; import { Organization, OrganizationAction, OrganizationSetting } from '../../domain/models/organizations/organization'; import { ViewOrganization } from '../../site/pages/organization/view-models/view-organization'; -import { Fieldsets } from '../../site/services/model-request-builder'; +import { Fieldsets } from '../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from './base-repository'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; @Service() export class OrganizationRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Organization); - } + public baseModelCtor = Organization; public getTitle = (viewOrganization: ViewOrganization): string => viewOrganization.name; diff --git a/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts b/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts index 4b4e7ee3f9..e056a3ee9a 100644 --- a/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts +++ b/client/src/app/gateways/repositories/organization-tags/organization-tag-repository.service.ts @@ -1,24 +1,18 @@ -import { Injectable } from '@angular/core'; +import { inject, Service } from '@angular/core'; import { ORGANIZATION_ID } from '@app/site/pages/organization/services/organization.service'; -import { Identifiable } from '../../../domain/interfaces'; +import { Identifiable } from '../../../domain/interfaces/identifiable'; import { OrganizationTag } from '../../../domain/models/organization-tags/organization-tag'; -import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags'; +import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags/view-models/view-organization-tag'; import { ThemeService } from '../../../site/services/theme.service'; import { BaseRepository } from '../base-repository'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { OrganizationTagAction } from './organization-tag.action'; -@Injectable({ - providedIn: `root` -}) +@Service() export class OrganizationTagRepositoryService extends BaseRepository { - public constructor( - serviceCollector: RepositoryServiceCollectorService, - private theme: ThemeService - ) { - super(serviceCollector, OrganizationTag); - } + public baseModelCtor = OrganizationTag; + + private theme = inject(ThemeService); public getVerboseName = (plural?: boolean): string => (plural ? `Tags` : `Tag`); public getTitle = (viewModel: ViewOrganizationTag): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts b/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts index 42ac1ff0a5..13af42b5ba 100644 --- a/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts +++ b/client/src/app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service.ts @@ -1,14 +1,13 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { PointOfOrderCategory } from '@app/domain/models/point-of-order-category/point-of-order-category'; import { ListUpdateData } from '@app/infrastructure/utils'; import { ViewPointOfOrderCategory } from '@app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-point-of-order-category'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; import { CanPerformListUpdates } from '../base-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { PointOfOrderCategoryAction } from './point-of-order-category.action'; @Service() @@ -16,10 +15,7 @@ export class PointOfOrderCategoryRepositoryService extends BaseMeetingRelatedRepository implements CanPerformListUpdates { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, PointOfOrderCategory); - } + public baseModelCtor = PointOfOrderCategory; public getVerboseName = (plural?: boolean): string => plural ? `Point of order categories` : `Point of order category`; diff --git a/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate-list/poll-candidate-list-repository.service.ts b/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate-list/poll-candidate-list-repository.service.ts index dd6899c469..d01d4d17ae 100644 --- a/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate-list/poll-candidate-list-repository.service.ts +++ b/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate-list/poll-candidate-list-repository.service.ts @@ -1,11 +1,10 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { PollCandidateList } from '@app/domain/models/poll-candidate-lists/poll-candidate-list'; import { ViewPollCandidateList } from '@app/site/pages/meetings/pages/polls/view-models/view-poll-candidate-list'; import { DEFAULT_FIELDSET, Fieldsets } from '@app/site/services/model-request-builder'; import { _ } from '@ngx-translate/core'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; /** * Repository service for the PollCandidateList. @@ -22,10 +21,7 @@ export class PollCandidateListRepositoryService extends BaseMeetingRelatedReposi ViewPollCandidateList, PollCandidateList > { - public constructor() { - const repoServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repoServiceCollector, PollCandidateList); - } + public baseModelCtor = PollCandidateList; public getVerboseName = (plural?: boolean): string => (plural ? `PollCandidateLists` : `PollCandidateList`); public getTitle = (): string => _(`Confirmation of the nomination list`); diff --git a/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate/poll-candidate-repository.service.ts b/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate/poll-candidate-repository.service.ts index d4aa4baea8..54659345d3 100644 --- a/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate/poll-candidate-repository.service.ts +++ b/client/src/app/gateways/repositories/poll-candidate-lists/poll-candidate/poll-candidate-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { PollCandidate } from '@app/domain/models/poll-candidate-lists/poll-candidate'; import { ViewPollCandidate } from '@app/site/pages/meetings/pages/polls/view-models/view-poll-candidate'; import { DEFAULT_FIELDSET, Fieldsets } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; /** * Repository service for the PollCandidate. @@ -18,10 +17,7 @@ import { RepositoryMeetingServiceCollectorService } from '../../repository-meeti */ @Service() export class PollCandidateRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repoServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repoServiceCollector, PollCandidate); - } + public baseModelCtor = PollCandidate; public getVerboseName = (plural?: boolean): string => (plural ? `PollCandidates` : `PollCandidate`); public getTitle = (viewModel: ViewPollCandidate): string => viewModel.user?.getShortName(); diff --git a/client/src/app/gateways/repositories/polls/option-repository.service/option-repository.service.ts b/client/src/app/gateways/repositories/polls/option-repository.service/option-repository.service.ts index 6774a5a50d..4fc54b4c46 100644 --- a/client/src/app/gateways/repositories/polls/option-repository.service/option-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/option-repository.service/option-repository.service.ts @@ -1,16 +1,12 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Option } from '@app/domain/models/poll/option'; import { ViewOption } from '@app/site/pages/meetings/pages/polls'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; @Service() export class OptionRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Option); - } + public baseModelCtor = Option; public getTitle = (_viewOption: ViewOption): string => `Option`; diff --git a/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts b/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts index 61abebc8e2..4e8cded14a 100644 --- a/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/poll-repository.service/poll-repository.service.ts @@ -9,8 +9,7 @@ import { Fieldsets } from '@app/site/services/model-request-builder'; import { Identifiable } from '../../../../domain/interfaces/identifiable'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; -import { VoteRepositoryService } from '../vote-repository.service'; +import { VoteRepositoryService } from '../vote-repository.service/vote-repository.service'; import { PollAction } from './poll.action'; interface AnalogPollVotesValues { @@ -30,10 +29,7 @@ export class PollRepositoryService extends BaseMeetingRelatedRepository (plural ? `Polls` : `Poll`); public getTitle = (viewModel: ViewPoll): string => viewModel.title; diff --git a/client/src/app/gateways/repositories/polls/vote-repository.service/vote-repository.service.ts b/client/src/app/gateways/repositories/polls/vote-repository.service/vote-repository.service.ts index ea63296549..df1d9c566b 100644 --- a/client/src/app/gateways/repositories/polls/vote-repository.service/vote-repository.service.ts +++ b/client/src/app/gateways/repositories/polls/vote-repository.service/vote-repository.service.ts @@ -7,7 +7,6 @@ import { OperatorService } from '@app/site/services/operator.service'; import { BehaviorSubject } from 'rxjs'; import { BaseMeetingRelatedRepository } from '../../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../../repository-meeting-service-collector.service'; const VOTE_URL = `/system/vote`; const HAS_VOTED_URL = `${VOTE_URL}/voted`; @@ -40,10 +39,7 @@ export class VoteRepositoryService extends BaseMeetingRelatedRepository `Vote`; diff --git a/client/src/app/gateways/repositories/projections/projection-repository.service.ts b/client/src/app/gateways/repositories/projections/projection-repository.service.ts index 7d5aa73c8a..7117ec9c7e 100644 --- a/client/src/app/gateways/repositories/projections/projection-repository.service.ts +++ b/client/src/app/gateways/repositories/projections/projection-repository.service.ts @@ -1,19 +1,15 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Projection } from '@app/domain/models/projector/projection'; import { ViewProjection } from '@app/site/pages/meetings/pages/projectors'; import { Fieldsets } from '@app/site/services/model-request-builder'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectionAction } from './projection.action'; @Service() export class ProjectionRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Projection); - } + public baseModelCtor = Projection; public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Projections` : `Projection`); diff --git a/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts b/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts index 22579ac109..77a6655123 100644 --- a/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts +++ b/client/src/app/gateways/repositories/projector-countdowns/projector-countdown-repository.service.ts @@ -5,7 +5,6 @@ import { ViewProjectorCountdown } from '@app/site/pages/meetings/pages/projector import { ServerTimeService } from '../../server-time.service'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorCountdownAction } from './projector-countdown.action'; @Service() @@ -15,10 +14,7 @@ export class ProjectorCountdownRepositoryService extends BaseMeetingRelatedRepos > { private serverTime = inject(ServerTimeService); - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ProjectorCountdown); - } + public baseModelCtor = ProjectorCountdown; public getTitle = (viewProjectorCountdown: ViewProjectorCountdown): string => viewProjectorCountdown.description diff --git a/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts b/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts index e37e64fd91..ded846da84 100644 --- a/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts +++ b/client/src/app/gateways/repositories/projector-messages/projector-message-repository.service.ts @@ -1,10 +1,9 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { ProjectorMessage } from '@app/domain/models/projector/projector-message'; import { ViewProjectorMessage } from '@app/site/pages/meetings/pages/projectors'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorMessageAction } from './projector-message.action'; @Service() @@ -12,10 +11,7 @@ export class ProjectorMessageRepositoryService extends BaseMeetingRelatedReposit ViewProjectorMessage, ProjectorMessage > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, ProjectorMessage); - } + public baseModelCtor = ProjectorMessage; public getTitle = (): string => this.getVerboseName(); diff --git a/client/src/app/gateways/repositories/projectors/projector-repository.service.ts b/client/src/app/gateways/repositories/projectors/projector-repository.service.ts index fd23058bbe..0e824564ab 100644 --- a/client/src/app/gateways/repositories/projectors/projector-repository.service.ts +++ b/client/src/app/gateways/repositories/projectors/projector-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Projector } from '@app/domain/models/projector/projector'; @@ -6,9 +6,8 @@ import { ViewProjector } from '@app/site/pages/meetings/pages/projectors'; import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models/projection-build-descriptor'; import { map, Observable } from 'rxjs'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { ProjectorAction, ScrollScaleDirection } from './projector.action'; /** @@ -16,10 +15,7 @@ import { ProjectorAction, ScrollScaleDirection } from './projector.action'; */ @Service() export class ProjectorRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Projector); - } + public baseModelCtor = Projector; public getTitle = (viewProjector: ViewProjector): string => viewProjector.name; diff --git a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts b/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts deleted file mode 100644 index 873a138f8f..0000000000 --- a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.spec.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { ActiveMeetingService } from '@app/site/pages/meetings/services/active-meeting.service'; -import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; -import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; -import { CollectionMapperService } from '@app/site/services/collection-mapper.service'; -import { DataStoreService } from '@app/site/services/data-store.service'; -import { RelationManagerService } from '@app/site/services/relation-manager.service'; -import { ViewModelStoreService } from '@app/site/services/view-model-store.service'; -import { TranslateService } from '@ngx-translate/core'; -import { firstValueFrom, skip } from 'rxjs'; - -import { ActionService } from '../actions'; -import { RepositoryMeetingServiceCollectorService } from './repository-meeting-service-collector.service'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; - -abstract class MockService { - public abstract readonly name: keyof RepositoryMeetingServiceCollectorService; -} -class MockDataStore extends MockService { - public readonly name = `DS`; -} -class MockAction extends MockService { - public readonly name = `actionService`; -} -class MockCollectionMapper extends MockService { - public readonly name = `collectionMapperService`; -} -class MockViewModelStore extends MockService { - public readonly name = `viewModelStoreService`; -} -class MockTranslate extends MockService { - public readonly name = `translate`; -} -class MockRelationManager extends MockService { - public readonly name = `relationManager`; -} -class MockActiveMeetingId extends MockService { - public readonly name = `activeMeetingIdService`; -} -class MockActiveMeeting extends MockService { - public readonly name = `activeMeetingService`; -} -class MockMeetingSettings extends MockService { - public readonly name = `meetingSettingsService`; -} - -describe(`RepositoryMeetingServiceCollectorService and MeetingServiceCollectorService`, () => { - let service: RepositoryMeetingServiceCollectorService; - - const serviceGetterTestCases: (keyof RepositoryMeetingServiceCollectorService)[] = [ - `DS`, - `actionService`, - `collectionMapperService`, - `viewModelStoreService`, - `translate`, - `relationManager`, - `activeMeetingIdService`, - `activeMeetingService`, - `meetingSettingsService` - ]; - - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [ - RepositoryMeetingServiceCollectorService, - RepositoryServiceCollectorService, - { provide: ActiveMeetingIdService, useClass: MockActiveMeetingId }, - { provide: ActiveMeetingService, useClass: MockActiveMeeting }, - { provide: MeetingSettingsService, useClass: MockMeetingSettings }, - { provide: DataStoreService, useClass: MockDataStore }, - { provide: ActionService, useClass: MockAction }, - { provide: CollectionMapperService, useClass: MockCollectionMapper }, - { provide: ViewModelStoreService, useClass: MockViewModelStore }, - { provide: TranslateService, useClass: MockTranslate }, - { provide: RelationManagerService, useClass: MockRelationManager } - ] - }); - service = TestBed.inject(RepositoryMeetingServiceCollectorService); - }); - - for (const testCase of serviceGetterTestCases) { - it(`test service getter '${testCase}'`, () => { - expect(service[testCase][`name`]).toBe(testCase); - }); - } - - it(`test collectionToKeyUpdatesObservableMap`, async () => { - service.registerNewKeyUpdates(`A collection`, [`key1`, `key2`, `abc`]); - service.registerNewKeyUpdates(`B collection`, [`1`, `2`, `something`]); - expect( - Object.keys(service.collectionToKeyUpdatesObservableMap).flatMap(key => [ - key, - service.collectionToKeyUpdatesObservableMap[key].value - ]) - ).toEqual([`A collection`, [`key1`, `key2`, `abc`], `B collection`, [`1`, `2`, `something`]]); - const promise = firstValueFrom(service.getNewKeyUpdatesObservable(`A collection`).pipe(skip(1))); - service.registerNewKeyUpdates(`A collection`, [`a`, `b`, `c`]); - await expectAsync(promise).toBeResolvedTo([`a`, `b`, `c`]); - }); - - it(`test collectionToKeyUpdatesObservableMap for yet unknown collection`, async () => { - const promise = firstValueFrom(service.getNewKeyUpdatesObservable(`C collection`).pipe(skip(1))); - expect( - Object.keys(service.collectionToKeyUpdatesObservableMap).flatMap(key => [ - key, - service.collectionToKeyUpdatesObservableMap[key].value - ]) - ).toEqual([`C collection`, []]); - service.registerNewKeyUpdates(`C collection`, [`a`, `b`, `c`]); - await expectAsync(promise).toBeResolvedTo([`a`, `b`, `c`]); - }); -}); diff --git a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts b/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts deleted file mode 100644 index 38dfe3c7f8..0000000000 --- a/client/src/app/gateways/repositories/repository-meeting-service-collector.service.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { inject, Service } from '@angular/core'; -import { TranslateService } from '@ngx-translate/core'; -import { BehaviorSubject, Observable } from 'rxjs'; - -import { ActiveMeetingService } from '../../site/pages/meetings/services/active-meeting.service'; -import { ActiveMeetingIdService } from '../../site/pages/meetings/services/active-meeting-id.service'; -import { MeetingSettingsService } from '../../site/pages/meetings/services/meeting-settings.service'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; -import { DataStoreService } from '../../site/services/data-store.service'; -import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { ActionService } from '../actions'; -import { RepositoryServiceCollectorService } from './repository-service-collector.service'; - -@Service() -export class RepositoryMeetingServiceCollectorService { - public get DS(): DataStoreService { - return this.repositoryServiceCollector.DS; - } - - public get actionService(): ActionService { - return this.repositoryServiceCollector.actionService; - } - - public get collectionMapperService(): CollectionMapperService { - return this.repositoryServiceCollector.collectionMapperService; - } - - public get viewModelStoreService(): ViewModelStoreService { - return this.repositoryServiceCollector.viewModelStoreService; - } - - public get translate(): TranslateService { - return this.repositoryServiceCollector.translate; - } - - public get relationManager(): RelationManagerService { - return this.repositoryServiceCollector.relationManager; - } - - public get collectionToKeyUpdatesObservableMap(): Record> { - return this.repositoryServiceCollector.collectionToKeyUpdatesObservableMap; - } - - private repositoryServiceCollector = inject(RepositoryServiceCollectorService); - public activeMeetingIdService = inject(ActiveMeetingIdService); - public activeMeetingService = inject(ActiveMeetingService); - public meetingSettingsService = inject(MeetingSettingsService); - - /** - * Allows repositories to register if there have been updates on a certain key of their model, - * so other repositories can check them for the sake of their resorting logic - * @param collection the calling repositories own collection - * @param newKeys the keys that were updated in the repository - */ - public registerNewKeyUpdates(collection: string, newKeys: string[]): void { - this.repositoryServiceCollector.registerNewKeyUpdates(collection, newKeys); - } - - /** - * Returns an observable that allows repositories to be notified when there are key updates on other model types - * @param collection the collection of the other model type. - * @returns an observable with the changed keys - */ - public getNewKeyUpdatesObservable(collection: string): Observable { - return this.repositoryServiceCollector.getNewKeyUpdatesObservable(collection); - } -} diff --git a/client/src/app/gateways/repositories/repository-service-collector.service.ts b/client/src/app/gateways/repositories/repository-service-collector.service.ts index 13a5a5cd17..700653d4a0 100644 --- a/client/src/app/gateways/repositories/repository-service-collector.service.ts +++ b/client/src/app/gateways/repositories/repository-service-collector.service.ts @@ -1,25 +1,10 @@ -import { inject, Service } from '@angular/core'; -import { TranslateService } from '@ngx-translate/core'; +import { Service } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { CollectionMapperService } from '../../site/services/collection-mapper.service'; -import { DataStoreService } from '../../site/services/data-store.service'; -import { RelationManagerService } from '../../site/services/relation-manager.service'; -import { ViewModelStoreService } from '../../site/services/view-model-store.service'; -import { ActionService } from '../actions'; - @Service() export class RepositoryServiceCollectorService { public collectionToKeyUpdatesObservableMap: Record> = {}; - public DS = inject(DataStoreService); - public actionService = inject(ActionService); - public collectionMapperService = inject(CollectionMapperService); - public viewModelStoreService = inject(ViewModelStoreService); - public translate = inject(TranslateService); - public relationManager = inject(RelationManagerService); - // public errorService: ErrorService - /** * Allows repositories to register if there have been updates on a certain key of their model, * so other repositories can check them for the sake of their resorting logic diff --git a/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts b/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts index 715903d8d3..3a01fffe3c 100644 --- a/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts +++ b/client/src/app/gateways/repositories/speakers/speaker-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id, UnsafeHtml } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { ListOfSpeakers } from '@app/domain/models/list-of-speakers/list-of-speakers'; @@ -7,7 +7,6 @@ import { SpeechState } from '@app/domain/models/speakers/speech-state'; import { ViewSpeaker } from '@app/site/pages/meetings/pages/agenda'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { SpeakerAction } from './speaker.action'; export interface PointOfOrderInformation { @@ -18,10 +17,7 @@ export interface PointOfOrderInformation { @Service() export class SpeakerRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, Speaker); - } + public baseModelCtor = Speaker; public getVerboseName = (plural = false): any => this.translate.instant(plural ? `Speakers` : `Speaker`); diff --git a/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts b/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts index d7a3490431..d58c07353a 100644 --- a/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts +++ b/client/src/app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers-repository.service.ts @@ -1,21 +1,17 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { StructureLevelListOfSpeakers } from '@app/domain/models/structure-levels/structure-level-list-of-speakers'; import { StructureLevelListOfSpeakersAction } from '@app/gateways/repositories/structure-level-list-of-speakers/structure-level-list-of-speakers.action'; import { ViewStructureLevelListOfSpeakers } from '@app/site/pages/meetings/pages/participants/pages/structure-levels/view-models'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; @Service() export class StructureLevelListOfSpeakersRepositoryService extends BaseMeetingRelatedRepository< ViewStructureLevelListOfSpeakers, StructureLevelListOfSpeakers > { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, StructureLevelListOfSpeakers); - } + public baseModelCtor = StructureLevelListOfSpeakers; public getVerboseName = (): string => `StructureLevelListOfSpeakers`; public getTitle = (): string => ``; diff --git a/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts b/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts index 5d1ed77219..9a3afb1bfa 100644 --- a/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts +++ b/client/src/app/gateways/repositories/structure-levels/structure-level-repository.service.ts @@ -1,21 +1,17 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { _ } from '@ngx-translate/core'; -import { Identifiable } from '../../../domain/interfaces'; +import { Identifiable } from '../../../domain/interfaces/identifiable'; import { StructureLevel } from '../../../domain/models/structure-levels/structure-level'; import { ViewStructureLevel } from '../../../site/pages/meetings/pages/participants/pages/structure-levels/view-models/view-structure-level'; -import { Action } from '../../actions'; +import { Action } from '../../actions/action'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { StructureLevelAction } from './structure-level.action'; @Service() export class StructureLevelRepositoryService extends BaseMeetingRelatedRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - super(repositoryServiceCollector, StructureLevel); - } + public baseModelCtor = StructureLevel; public getVerboseName = (plural?: boolean): string => (plural ? _(`Structure levels`) : _(`Structure level`)); public getTitle = (viewModel: ViewStructureLevel): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/tags/tag-repository.service.ts b/client/src/app/gateways/repositories/tags/tag-repository.service.ts index c8165e1ca7..a338eec078 100644 --- a/client/src/app/gateways/repositories/tags/tag-repository.service.ts +++ b/client/src/app/gateways/repositories/tags/tag-repository.service.ts @@ -1,18 +1,17 @@ -import { Injectable } from '@angular/core'; +import { Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Tag } from '@app/domain/models/tag/tag'; import { ViewTag } from '@app/site/pages/meetings/pages/motions'; import { BaseMeetingRelatedRepository } from '../base-meeting-related-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { TagAction } from './tag.action'; -@Injectable({ - providedIn: `root` -}) +@Service() export class TagRepositoryService extends BaseMeetingRelatedRepository { - public constructor(repositoryServiceCollector: RepositoryMeetingServiceCollectorService) { - super(repositoryServiceCollector, Tag); + public baseModelCtor = Tag; + + public constructor() { + super(); this.initSorting(); } diff --git a/client/src/app/gateways/repositories/themes/theme-repository.service.ts b/client/src/app/gateways/repositories/themes/theme-repository.service.ts index 558f0b13b0..7a2a07a448 100644 --- a/client/src/app/gateways/repositories/themes/theme-repository.service.ts +++ b/client/src/app/gateways/repositories/themes/theme-repository.service.ts @@ -1,4 +1,4 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Theme } from '@app/domain/models/theme/theme'; @@ -6,15 +6,11 @@ import { BaseRepository } from '@app/gateways/repositories/base-repository'; import { ViewTheme } from '@app/site/pages/organization/pages/designs'; import { Fieldsets } from '@app/site/services/model-request-builder'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { ThemeAction } from './theme.action'; @Service() export class ThemeRepositoryService extends BaseRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, Theme); - } + public baseModelCtor = Theme; public getVerboseName = (plural?: boolean): string => (plural ? `Themes` : `Theme`); public getTitle = (viewModel: ViewTheme): string => viewModel.name; diff --git a/client/src/app/gateways/repositories/topics/topic-repository.service.ts b/client/src/app/gateways/repositories/topics/topic-repository.service.ts index c9915f9aca..9809c84873 100644 --- a/client/src/app/gateways/repositories/topics/topic-repository.service.ts +++ b/client/src/app/gateways/repositories/topics/topic-repository.service.ts @@ -1,24 +1,18 @@ -import { inject, Service } from '@angular/core'; +import { Service } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Topic } from '@app/domain/models/topics/topic'; import { ViewAgendaItem, ViewTopic } from '@app/site/pages/meetings/pages/agenda'; import { BackendImportRawPreview } from '@app/ui/modules/import-list/definitions/backend-import-preview'; -import { Action } from '../../actions'; -import { createAgendaItem } from '../agenda'; -import { AgendaItemRepositoryService } from '../agenda/agenda-item-repository.service'; +import { Action } from '../../actions/action'; +import { createAgendaItem } from '../agenda/functions'; import { BaseAgendaItemAndListOfSpeakersContentObjectRepository } from '../base-agenda-item-and-list-of-speakers-content-object-repository'; -import { RepositoryMeetingServiceCollectorService } from '../repository-meeting-service-collector.service'; import { TopicAction } from './topic.action'; @Service() export class TopicRepositoryService extends BaseAgendaItemAndListOfSpeakersContentObjectRepository { - public constructor() { - const repositoryServiceCollector = inject(RepositoryMeetingServiceCollectorService); - const agendaItemRepo = inject(AgendaItemRepositoryService); - super(repositoryServiceCollector, Topic, agendaItemRepo); - } + protected baseModelCtor = Topic; public create(...topics: any[]): Promise { const payload: any[] = topics.map(partialTopic => this.getCreatePayload(partialTopic)); diff --git a/client/src/app/gateways/repositories/users/user-repository.service.ts b/client/src/app/gateways/repositories/users/user-repository.service.ts index d3cf50780f..7e31b291cf 100644 --- a/client/src/app/gateways/repositories/users/user-repository.service.ts +++ b/client/src/app/gateways/repositories/users/user-repository.service.ts @@ -13,13 +13,12 @@ import { Id } from '../../../domain/definitions/key-types'; import { Displayable } from '../../../domain/interfaces/displayable'; import { Identifiable } from '../../../domain/interfaces/identifiable'; import { User, UserSortProperty } from '../../../domain/models/users/user'; -import { PreventedInDemoError } from '../../../infrastructure/errors'; -import { toDecimal } from '../../../infrastructure/utils'; +import { PreventedInDemoError } from '../../../infrastructure/errors/prevented-in-demo.error'; +import { toDecimal } from '../../../infrastructure/utils/functions'; import { ViewUser } from '../../../site/pages/meetings/view-models/view-user'; -import { Fieldsets, TypedFieldset } from '../../../site/services/model-request-builder'; -import { Action } from '../../actions'; -import { MeetingUserRepositoryService } from '../meeting_user'; -import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; +import { Fieldsets, TypedFieldset } from '../../../site/services/model-request-builder/model-request-builder.service'; +import { Action } from '../../actions/action'; +import { MeetingUserRepositoryService } from '../meeting_user/meeting-user-repository.service'; export type RawUser = FullNameInformation & Identifiable & Displayable & { fqid: Fqid; meeting_user_id?: Id }; @@ -84,10 +83,7 @@ export class UserRepositoryService extends BaseRepository { private meetingSettingsService = inject(MeetingSettingsService); private meetingUserRepo = inject(MeetingUserRepositoryService); - public constructor() { - const repositoryServiceCollector = inject(RepositoryServiceCollectorService); - super(repositoryServiceCollector, User); - } + public baseModelCtor = User; /** * The property the incoming data is sorted by diff --git a/client/src/app/infrastructure/definitions/relations/relations.ts b/client/src/app/infrastructure/definitions/relations/relations.ts index b46158ad15..a00232a16f 100644 --- a/client/src/app/infrastructure/definitions/relations/relations.ts +++ b/client/src/app/infrastructure/definitions/relations/relations.ts @@ -25,49 +25,51 @@ import { ViewPollCandidate } from '@app/site/pages/meetings/pages/polls/view-mod import { ViewPollCandidateList } from '@app/site/pages/meetings/pages/polls/view-models/view-poll-candidate-list'; import { ViewMeetingUser } from '@app/site/pages/meetings/view-models/view-meeting-user'; import { ViewGender } from '@app/site/pages/organization/pages/accounts/pages/gender/view-models/view-gender'; -import { ViewResource } from '@app/site/pages/organization/pages/resources'; +import { ViewResource } from '@app/site/pages/organization/pages/resources/view-models'; import { BaseViewModel, ViewModelConstructor } from '../../../site/base/base-view-model'; -import { - HasAgendaItem, - HasListOfSpeakers, - ViewAgendaItem, - ViewListOfSpeakers, - ViewSpeaker, - ViewTopic -} from '../../../site/pages/meetings/pages/agenda'; -import { ViewAssignment, ViewAssignmentCandidate } from '../../../site/pages/meetings/pages/assignments'; -import { ViewChatGroup, ViewChatMessage } from '../../../site/pages/meetings/pages/chat'; -import { HasAttachmentMeetingMediafiles, ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles'; +import { HasListOfSpeakers } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; +import { ViewListOfSpeakers } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers'; +import { ViewSpeaker } from '../../../site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-speaker'; +import { ViewTopic } from '../../../site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic'; +import { HasAgendaItem } from '../../../site/pages/meetings/pages/agenda/view-models/has-agenda-item'; +import { ViewAgendaItem } from '../../../site/pages/meetings/pages/agenda/view-models/view-agenda-item'; +import { ViewAssignment } from '../../../site/pages/meetings/pages/assignments/view-models/view-assignment'; +import { ViewAssignmentCandidate } from '../../../site/pages/meetings/pages/assignments/view-models/view-assignment-candidate'; +import { ViewChatGroup } from '../../../site/pages/meetings/pages/chat/view-models/view-chat-group'; +import { ViewChatMessage } from '../../../site/pages/meetings/pages/chat/view-models/view-chat-message'; +import { HasAttachmentMeetingMediafiles } from '../../../site/pages/meetings/pages/mediafiles/view-models/has-attachment'; +import { ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles/view-models/view-mediafile'; +import { ViewMotionCategory } from '../../../site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category'; +import { ViewMotionChangeRecommendation } from '../../../site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-motion-change-recommendation'; +import { ViewMotionComment } from '../../../site/pages/meetings/pages/motions/modules/comments/view-models/view-motion-comment'; +import { ViewMotionCommentSection } from '../../../site/pages/meetings/pages/motions/modules/comments/view-models/view-motion-comment-section'; +import { ViewMotionBlock } from '../../../site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block'; +import { ViewPersonalNote } from '../../../site/pages/meetings/pages/motions/modules/personal-notes/view-models/view-personal-note'; +import { ViewMotionState } from '../../../site/pages/meetings/pages/motions/modules/states/view-models/view-motion-state'; +import { ViewMotionSubmitter } from '../../../site/pages/meetings/pages/motions/modules/submitters/view-models/view-motion-submitter'; +import { HasTags } from '../../../site/pages/meetings/pages/motions/modules/tags/view-models/has-tags'; +import { ViewTag } from '../../../site/pages/meetings/pages/motions/modules/tags/view-models/view-tag'; +import { ViewMotionWorkflow } from '../../../site/pages/meetings/pages/motions/modules/workflows/view-models/view-motion-workflow'; import { HasReferencedMotionsInExtension, - HasTags, - ViewMotion, - ViewMotionBlock, - ViewMotionCategory, - ViewMotionChangeRecommendation, - ViewMotionComment, - ViewMotionCommentSection, - ViewMotionState, - ViewMotionSubmitter, - ViewMotionWorkflow, - ViewPersonalNote, - ViewTag -} from '../../../site/pages/meetings/pages/motions'; -import { ViewGroup } from '../../../site/pages/meetings/pages/participants'; -import { ViewOption, ViewPoll, ViewVote } from '../../../site/pages/meetings/pages/polls'; -import { - ViewProjection, - ViewProjector, - ViewProjectorCountdown, - ViewProjectorMessage -} from '../../../site/pages/meetings/pages/projectors'; + ViewMotion +} from '../../../site/pages/meetings/pages/motions/view-models/view-motion'; +import { ViewGroup } from '../../../site/pages/meetings/pages/participants/modules/groups/view-models/view-group'; +import { ViewOption } from '../../../site/pages/meetings/pages/polls/view-models/view-option'; +import { ViewPoll } from '../../../site/pages/meetings/pages/polls/view-models/view-poll'; +import { ViewVote } from '../../../site/pages/meetings/pages/polls/view-models/view-vote'; +import { ViewProjection } from '../../../site/pages/meetings/pages/projectors/view-models/view-projection'; +import { ViewProjector } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector'; +import { ViewProjectorCountdown } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector-countdown'; +import { ViewProjectorMessage } from '../../../site/pages/meetings/pages/projectors/view-models/view-projector-message'; import { Projectable } from '../../../site/pages/meetings/view-models/projectable'; import { ViewMeeting } from '../../../site/pages/meetings/view-models/view-meeting'; import { ViewUser } from '../../../site/pages/meetings/view-models/view-user'; -import { ViewCommittee } from '../../../site/pages/organization/pages/committees'; -import { ViewTheme } from '../../../site/pages/organization/pages/designs'; -import { HasOrganizationTags, ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags'; +import { ViewCommittee } from '../../../site/pages/organization/pages/committees/view-models/view-committee'; +import { ViewTheme } from '../../../site/pages/organization/pages/designs/view-models/view-theme'; +import { HasOrganizationTags } from '../../../site/pages/organization/pages/organization-tags/view-models/has-organization-tags'; +import { ViewOrganizationTag } from '../../../site/pages/organization/pages/organization-tags/view-models/view-organization-tag'; import { ViewOrganization } from '../../../site/pages/organization/view-models/view-organization'; import { makeGenericM2M, diff --git a/client/src/app/infrastructure/utils/di/openslides-injector.ts b/client/src/app/infrastructure/utils/di/openslides-injector.ts index cf8f69410d..691a079475 100644 --- a/client/src/app/infrastructure/utils/di/openslides-injector.ts +++ b/client/src/app/infrastructure/utils/di/openslides-injector.ts @@ -1,6 +1,6 @@ import { Injector, ProviderToken } from '@angular/core'; -import { Deferred } from '../promises'; +import { Deferred } from '../promises/deferred'; interface InjectOptions { defaultValue?: any; diff --git a/client/src/app/openslides-main-module/openslides-main.module.ts b/client/src/app/openslides-main-module/openslides-main.module.ts index 28917135e4..f558d9bce4 100644 --- a/client/src/app/openslides-main-module/openslides-main.module.ts +++ b/client/src/app/openslides-main-module/openslides-main.module.ts @@ -11,8 +11,8 @@ import { environment } from '../../environments/environment'; import { CustomTranslationService } from '../site/modules/translations/custom-translation.service'; import { CustomTranslationParser } from '../site/modules/translations/translation-parser'; import { PruningTranslationLoader } from '../site/modules/translations/translation-pruning-loader'; -import { WaitForActionDialogModule } from '../site/modules/wait-for-action-dialog'; -import { WaitForActionDialogService } from '../site/modules/wait-for-action-dialog/services'; +import { WaitForActionDialogService } from '../site/modules/wait-for-action-dialog/services/wait-for-action-dialog.service'; +import { WaitForActionDialogModule } from '../site/modules/wait-for-action-dialog/wait-for-action-dialog.module'; import { OpenSlidesMainComponent } from './components/openslides-main/openslides-main.component'; import { OpenSlidesOverlayContainerComponent } from './components/openslides-overlay-container/openslides-overlay-container.component'; import { httpInterceptorProviders } from './interceptors'; diff --git a/client/src/app/openslides-main-module/services/app-load.service.ts b/client/src/app/openslides-main-module/services/app-load.service.ts index 9f7b0eb59b..5d38033529 100644 --- a/client/src/app/openslides-main-module/services/app-load.service.ts +++ b/client/src/app/openslides-main-module/services/app-load.service.ts @@ -13,7 +13,7 @@ import { HomeAppConfig } from '@app/site/pages/meetings/pages/home/home.config'; import { MediafileAppConfig } from '@app/site/pages/meetings/pages/mediafiles/mediafiles.config'; import { MeetingMediafileAppConfig } from '@app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config'; import { MeetingSettingsAppConfig } from '@app/site/pages/meetings/pages/meeting-settings/meeting-settings.config'; -import { MotionsAppConfig } from '@app/site/pages/meetings/pages/motions'; +import { MotionsAppConfig } from '@app/site/pages/meetings/pages/motions/motions.config'; import { PollsAppConfig } from '@app/site/pages/meetings/pages/polls/polls.config'; import { ProjectorAppConfig } from '@app/site/pages/meetings/pages/projectors/projector.config'; import { MainMenuService } from '@app/site/pages/meetings/services/main-menu.service'; diff --git a/client/src/app/site/base/base-controller.ts b/client/src/app/site/base/base-controller.ts index 8592a64abb..a6b3571e15 100644 --- a/client/src/app/site/base/base-controller.ts +++ b/client/src/app/site/base/base-controller.ts @@ -1,29 +1,22 @@ -import { Directive } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; import { Id } from '../../domain/definitions/key-types'; import { BaseModel, ModelConstructor } from '../../domain/models/base/base-model'; import { BaseRepository } from '../../gateways/repositories/base-repository'; -import { ControllerServiceCollectorService } from '../services/controller-service-collector.service'; import { BaseViewModel } from './base-view-model'; -@Directive() +@Injectable() export abstract class BaseController { - public get translate(): TranslateService { - return this.controllerServiceCollector.translate; - } + protected abstract baseModelCtor: ModelConstructor; + protected abstract repo: BaseRepository; + public translate = inject(TranslateService); public get collection(): string { return this.repo.collection; } - public constructor( - protected controllerServiceCollector: ControllerServiceCollectorService, - protected baseModelCtor: ModelConstructor, - protected repo: BaseRepository - ) {} - public getViewModel(id: Id): V | null { return this.repo.getViewModel(id); } diff --git a/client/src/app/site/base/base-via-backend-import-list.component.ts b/client/src/app/site/base/base-via-backend-import-list.component.ts index 742aad936c..7529c17cdc 100644 --- a/client/src/app/site/base/base-via-backend-import-list.component.ts +++ b/client/src/app/site/base/base-via-backend-import-list.component.ts @@ -5,7 +5,7 @@ import { BackendImportPhase } from '@app/ui/modules/import-list/components/via-backend-import-list/backend-import-list.component'; -import { getLongPreview, getShortPreview } from '../../infrastructure/utils'; +import { getLongPreview, getShortPreview } from '../../infrastructure/utils/functions'; import { BaseBackendImportService } from './base-import.service/base-backend-import.service'; @Directive() diff --git a/client/src/app/site/modules/global-headbar/global-headbar.module.ts b/client/src/app/site/modules/global-headbar/global-headbar.module.ts index 5e16047f7d..4676ae29c6 100644 --- a/client/src/app/site/modules/global-headbar/global-headbar.module.ts +++ b/client/src/app/site/modules/global-headbar/global-headbar.module.ts @@ -21,8 +21,8 @@ import { CommaSeparatedListingComponent } from '@app/ui/modules/comma-separated- import { InputModule } from '@app/ui/modules/input'; import { ChessDialogModule } from '@app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog'; -import { OpenSlidesTranslationModule } from '../translations'; -import { UserComponentsModule } from '../user-components'; +import { OpenSlidesTranslationModule } from '../translations/openslides-translation.module'; +import { UserComponentsModule } from '../user-components/user-components.module'; import { AccountButtonComponent } from './components/account-button/account-button.component'; import { AccountDialogComponent } from './components/account-dialog/account-dialog.component'; import { AccountDialogMainComponent } from './components/account-dialog-main/account-dialog-main.component'; diff --git a/client/src/app/site/modules/global-spinner/global-spinner.module.ts b/client/src/app/site/modules/global-spinner/global-spinner.module.ts index 4af9ad7de8..5931775616 100644 --- a/client/src/app/site/modules/global-spinner/global-spinner.module.ts +++ b/client/src/app/site/modules/global-spinner/global-spinner.module.ts @@ -3,7 +3,7 @@ import { NgModule } from '@angular/core'; import { OverlayComponent } from '@app/ui/modules/openslides-overlay'; import { SpinnerModule } from '@app/ui/modules/spinner'; -import { OpenSlidesTranslationModule } from '../translations'; +import { OpenSlidesTranslationModule } from '../translations/openslides-translation.module'; import { GlobalSpinnerComponent } from './components/global-spinner/global-spinner.component'; @NgModule({ diff --git a/client/src/app/site/modules/user-components/components/password-form/password-form.component.ts b/client/src/app/site/modules/user-components/components/password-form/password-form.component.ts index ed61b3cb6b..6e2d16cf38 100644 --- a/client/src/app/site/modules/user-components/components/password-form/password-form.component.ts +++ b/client/src/app/site/modules/user-components/components/password-form/password-form.component.ts @@ -4,7 +4,7 @@ import { BaseComponent } from '@app/site/base/base.component'; import { _ } from '@ngx-translate/core'; import { PasswordForm } from '../../definitions'; -import { PasswordValidator } from '../../validators'; +import { PasswordValidator } from '../../validators/password.validator'; const UndesiredPasswords = [ `123456`, diff --git a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts index 8a0d8831e7..c531e1fb9e 100644 --- a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts +++ b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts @@ -31,7 +31,7 @@ import { TranslateService } from '@ngx-translate/core'; import { map, OperatorFunction, Subscription } from 'rxjs'; import { ViewUser } from '../../../../../site/pages/meetings/view-models/view-user'; -import { OneOfValidator } from '../../validators'; +import { OneOfValidator } from '../../validators/one-of.validator'; @Component({ selector: `os-user-detail-view`, diff --git a/client/src/app/site/modules/user-components/services/user-delete-dialog.service.ts b/client/src/app/site/modules/user-components/services/user-delete-dialog.service.ts index e179fcf7e3..8bc7eb7e14 100644 --- a/client/src/app/site/modules/user-components/services/user-delete-dialog.service.ts +++ b/client/src/app/site/modules/user-components/services/user-delete-dialog.service.ts @@ -9,7 +9,7 @@ import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; import { BaseDialogService } from '@app/ui/base/base-dialog-service'; import { _ } from '@ngx-translate/core'; -import { UserDeleteDialogComponent } from '../components'; +import { UserDeleteDialogComponent } from '../components/user-delete-dialog/user-delete-dialog.component'; interface UserDeleteDialogOpenConfig { toRemove: ViewUser[]; diff --git a/client/src/app/site/modules/wait-for-action-dialog/components/wait-for-action-banner/wait-for-action-banner.component.ts b/client/src/app/site/modules/wait-for-action-dialog/components/wait-for-action-banner/wait-for-action-banner.component.ts index 408b9b36e3..560634fe5a 100644 --- a/client/src/app/site/modules/wait-for-action-dialog/components/wait-for-action-banner/wait-for-action-banner.component.ts +++ b/client/src/app/site/modules/wait-for-action-dialog/components/wait-for-action-banner/wait-for-action-banner.component.ts @@ -3,7 +3,7 @@ import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { BehaviorSubject } from 'rxjs'; import { titleVerbose, WaitForActionData, WaitForActionReason, waitForActionReason } from '../../definitions'; -import { WaitForActionDialogService } from '../../services'; +import { WaitForActionDialogService } from '../../services/wait-for-action-dialog.service'; @Component({ selector: `os-wait-for-action-banner`, diff --git a/client/src/app/site/modules/wait-for-action-dialog/wait-for-action-dialog.module.ts b/client/src/app/site/modules/wait-for-action-dialog/wait-for-action-dialog.module.ts index da785778bd..805100c4e5 100644 --- a/client/src/app/site/modules/wait-for-action-dialog/wait-for-action-dialog.module.ts +++ b/client/src/app/site/modules/wait-for-action-dialog/wait-for-action-dialog.module.ts @@ -4,7 +4,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; -import { OpenSlidesTranslationModule } from '../translations'; +import { OpenSlidesTranslationModule } from '../translations/openslides-translation.module'; import { StoppedWaitingForActionDialogComponent } from './components/stopped-waiting-for-action-dialog/stopped-waiting-for-action-dialog.component'; import { WaitForActionBannerComponent } from './components/wait-for-action-banner/wait-for-action-banner.component'; diff --git a/client/src/app/site/pages/meetings/base/base-meeting-controller.service.ts b/client/src/app/site/pages/meetings/base/base-meeting-controller.service.ts index 4f34ee118a..c4e2b94179 100644 --- a/client/src/app/site/pages/meetings/base/base-meeting-controller.service.ts +++ b/client/src/app/site/pages/meetings/base/base-meeting-controller.service.ts @@ -1,10 +1,8 @@ -import { Directive } from '@angular/core'; +import { Directive, inject } from '@angular/core'; import { Id } from '@app/domain/definitions/key-types'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; -import { BaseRepository } from '@app/gateways/repositories/base-repository'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { BaseController } from '@app/site/base/base-controller'; import { BaseViewModel } from '@app/site/base/base-view-model'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { ActiveMeetingService } from '../services/active-meeting.service'; @@ -17,40 +15,25 @@ export abstract class BaseMeetingControllerService { - protected get activeMeetingService(): ActiveMeetingService { - return this.controllerServiceCollector.activeMeetingService; - } - protected get activeMeeting(): ViewMeeting | null { return this.activeMeetingService.meeting; } - protected get activeMeetingIdService(): ActiveMeetingIdService { - return this.controllerServiceCollector.activeMeetingIdService; - } - protected get activeMeetingId(): Id | null { return this.activeMeetingIdService.meetingId; } - protected get collectionMapperService(): MeetingCollectionMapperService { - return this.controllerServiceCollector.collectionMapperService; - } - - protected get meetingSettingsService(): MeetingSettingsService { - return this.controllerServiceCollector.meetingSettingsService; - } - private _currentActiveMeetingId: Id | null = null; private _isConstructed = false; - public constructor( - protected override controllerServiceCollector: MeetingControllerServiceCollectorService, - baseModelConstructor: ModelConstructor, - repo: BaseRepository - ) { - super(controllerServiceCollector, baseModelConstructor, repo); - controllerServiceCollector.activeMeetingIdService.meetingIdObservable.subscribe(id => this.onNextMeetingId(id)); + protected activeMeetingService = inject(ActiveMeetingService); + protected activeMeetingIdService = inject(ActiveMeetingIdService); + protected collectionMapperService = inject(MeetingCollectionMapperService); + protected meetingSettingsService = inject(MeetingSettingsService); + + public constructor() { + super(); + this.activeMeetingIdService.meetingIdObservable.subscribe(id => this.onNextMeetingId(id)); this._isConstructed = true; } diff --git a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.spec.ts b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.spec.ts index 38c2d5c76d..a2961f5a32 100644 --- a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.spec.ts +++ b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.spec.ts @@ -2,7 +2,7 @@ // import { BaseViewModel } from '@app/site/base/base-view-model'; // import { E2EImportsModule } from 'src/e2e-imports.module'; -// import { PollModule } from '../../../../modules/poll'; +// import { PollModule } from '../../../../modules/poll/poll.module'; // import { PollCollectionComponent } from './poll-collection.component'; // xdescribe(`SpeakingTimesComponent`, () => { diff --git a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.ts b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.ts index 151dc27538..9effa62372 100644 --- a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.ts +++ b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/components/speaking-times/speaking-times.component.ts @@ -24,9 +24,9 @@ import { filter, merge, mergeMap, Subscription, tap } from 'rxjs'; import { CurrentSpeakingStructureLevelSlideService } from '../../../../pages/agenda/modules/list-of-speakers/services/current-speaking-structure-level-slide.service'; import { CurrentStructureLevelListSlideService } from '../../../../pages/agenda/modules/list-of-speakers/services/current-structure-level-list-slide.service'; -import { ViewStructureLevelListOfSpeakers } from '../../../../pages/participants/pages/structure-levels/view-models'; +import { ViewStructureLevelListOfSpeakers } from '../../../../pages/participants/pages/structure-levels/view-models/view-structure-level-list-of-speakers'; import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; -import { ProjectionBuildDescriptor } from '../../../../view-models'; +import { ProjectionBuildDescriptor } from '../../../../view-models/projection-build-descriptor'; import { CountdownData } from '../../../projector/modules/countdown-time/countdown-time.component'; @Component({ diff --git a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/list-of-speakers-content.module.ts b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/list-of-speakers-content.module.ts index 912760ca0c..06a387540c 100644 --- a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/list-of-speakers-content.module.ts +++ b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/list-of-speakers-content.module.ts @@ -20,10 +20,10 @@ import { SortingListModule } from '@app/ui/modules/sorting/modules/sorting-list/ import { PipesModule } from '@app/ui/pipes'; import { ParticipantCommonServiceModule } from '../../pages/participants/services/common/participant-common-service.module'; -import { MeetingExportModule } from '../../services/export'; +import { MeetingExportModule } from '../../services/export/meeting-export.module'; import { DetailViewModule } from '../meetings-component-collector/detail-view/detail-view.module'; import { ProjectorButtonModule } from '../meetings-component-collector/projector-button/projector-button.module'; -import { ParticipantSearchSelectorModule } from '../participant-search-selector'; +import { ParticipantSearchSelectorModule } from '../participant-search-selector/participant-search-selector.module'; import { CountdownTimeModule } from '../projector/modules/countdown-time/countdown-time.module'; import { ListOfSpeakersContentComponent } from './components/list-of-speakers-content/list-of-speakers-content.component'; import { ListOfSpeakersEntryComponent } from './components/list-of-speakers-entry/list-of-speakers-entry.component'; diff --git a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/modules/speaker-user-select-dialog/speaker-user-select-dialog.module.ts b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/modules/speaker-user-select-dialog/speaker-user-select-dialog.module.ts index aafbabfbb4..116ddbf2ef 100644 --- a/client/src/app/site/pages/meetings/modules/list-of-speakers-content/modules/speaker-user-select-dialog/speaker-user-select-dialog.module.ts +++ b/client/src/app/site/pages/meetings/modules/list-of-speakers-content/modules/speaker-user-select-dialog/speaker-user-select-dialog.module.ts @@ -6,7 +6,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatSelectModule } from '@angular/material/select'; import { OpenSlidesTranslationModule } from '@app/site/modules/translations'; -import { ParticipantSearchSelectorModule } from '../../../participant-search-selector'; +import { ParticipantSearchSelectorModule } from '../../../participant-search-selector/participant-search-selector.module'; import { SpeakerUserSelectDialogComponent } from './components/speaker-user-select-dialog/speaker-user-select-dialog.component'; @NgModule({ diff --git a/client/src/app/site/pages/meetings/modules/meetings-component-collector/agenda-content-object-form/services/agenda-content-object-form.service.ts b/client/src/app/site/pages/meetings/modules/meetings-component-collector/agenda-content-object-form/services/agenda-content-object-form.service.ts index 546a46fc88..e7dda0a146 100644 --- a/client/src/app/site/pages/meetings/modules/meetings-component-collector/agenda-content-object-form/services/agenda-content-object-form.service.ts +++ b/client/src/app/site/pages/meetings/modules/meetings-component-collector/agenda-content-object-form/services/agenda-content-object-form.service.ts @@ -3,7 +3,7 @@ import { AgendaItemRepositoryService } from '@app/gateways/repositories/agenda'; import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; import { Observable } from 'rxjs'; -import { ViewAgendaItem } from '../../../../pages/agenda'; +import { ViewAgendaItem } from '../../../../pages/agenda/view-models/view-agenda-item'; @Service() export class AgendaContentObjectFormService { diff --git a/client/src/app/site/pages/meetings/modules/meetings-navigation/meetings-navigation-wrapper.component.ts b/client/src/app/site/pages/meetings/modules/meetings-navigation/meetings-navigation-wrapper.component.ts index 05aa11fc36..b8e2bdcf90 100644 --- a/client/src/app/site/pages/meetings/modules/meetings-navigation/meetings-navigation-wrapper.component.ts +++ b/client/src/app/site/pages/meetings/modules/meetings-navigation/meetings-navigation-wrapper.component.ts @@ -20,7 +20,8 @@ import { SidenavComponent } from '@app/ui/modules/sidenav/components/sidenav/sid import { TranslatePipe } from '@ngx-translate/core'; import { Observable, Subscription } from 'rxjs'; -import { ChatNotificationService, ChatService } from '../../pages/chat'; +import { ChatService } from '../../pages/chat/services/chat.service'; +import { ChatNotificationService } from '../../pages/chat/services/chat-notification.service'; import { InteractionModule } from '../../pages/interaction/interaction.module'; import { LoadFontService } from '../../services/load-font.service'; diff --git a/client/src/app/site/pages/meetings/modules/participant-search-selector/components/participant-search-selector/participant-search-selector.component.ts b/client/src/app/site/pages/meetings/modules/participant-search-selector/components/participant-search-selector/participant-search-selector.component.ts index 495f874da3..635aa12829 100644 --- a/client/src/app/site/pages/meetings/modules/participant-search-selector/components/participant-search-selector/participant-search-selector.component.ts +++ b/client/src/app/site/pages/meetings/modules/participant-search-selector/components/participant-search-selector/participant-search-selector.component.ts @@ -12,7 +12,7 @@ import { getParticipantMinimalSubscriptionConfig, PARTICIPANT_LIST_SUBSCRIPTION_MINIMAL } from '../../../../pages/participants/participants.subscription'; -import { ParticipantControllerService } from '../../../../pages/participants/services/common/participant-controller.service'; +import { ParticipantControllerService } from '../../../../pages/participants/services/common/participant-controller.service/participant-controller.service'; import { ActiveMeetingService } from '../../../../services/active-meeting.service'; import { ViewUser } from '../../../../view-models/view-user'; import { UserSelectionData } from '../..'; diff --git a/client/src/app/site/pages/meetings/modules/poll/base/base-poll-detail.component.ts b/client/src/app/site/pages/meetings/modules/poll/base/base-poll-detail.component.ts index f59c838067..4feec70822 100644 --- a/client/src/app/site/pages/meetings/modules/poll/base/base-poll-detail.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/base/base-poll-detail.component.ts @@ -18,9 +18,9 @@ import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import { GroupControllerService } from '../../../pages/participants/modules/groups/services/group-controller.service'; -import { EntitledUsersTableEntry } from '../definitions'; +import { EntitledUsersTableEntry } from '../definitions/entitled-users-table-entry'; import { PollService } from '../services/poll.service'; -import { VoteControllerService } from '../services/vote-controller.service'; +import { VoteControllerService } from '../services/vote-controller.service/vote-controller.service'; import { BasePollPdfService } from './base-poll-pdf.service'; export interface BaseVoteData extends Identifiable { diff --git a/client/src/app/site/pages/meetings/modules/poll/base/base-poll-pdf.service.ts b/client/src/app/site/pages/meetings/modules/poll/base/base-poll-pdf.service.ts index 8ad78f4640..7502e21ca4 100644 --- a/client/src/app/site/pages/meetings/modules/poll/base/base-poll-pdf.service.ts +++ b/client/src/app/site/pages/meetings/modules/poll/base/base-poll-pdf.service.ts @@ -12,9 +12,9 @@ import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { TranslateService } from '@ngx-translate/core'; import { Content, ContentText, StyleDictionary, TDocumentDefinitions } from 'pdfmake/interfaces'; -import { ViewAssignment } from '../../../pages/assignments'; +import { ViewAssignment } from '../../../pages/assignments/view-models/view-assignment'; import { ViewUser } from '../../../view-models/view-user'; -import { EntitledUsersTableEntry } from '../definitions'; +import { EntitledUsersTableEntry } from '../definitions/entitled-users-table-entry'; import { PollService } from '../services/poll.service'; import { BaseVoteData } from './base-poll-detail.component'; diff --git a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts index ccc8736dfb..73c5f4eb2c 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts @@ -24,8 +24,9 @@ import { BaseComponent } from '@app/site/base/base.component'; import { ParentErrorStateMatcher } from '@app/ui/modules/search-selector/validators'; import { combineLatest, distinctUntilChanged, map, Observable, startWith } from 'rxjs'; -import { GroupControllerService, ViewGroup } from '../../../../pages/participants'; -import { ViewPoll } from '../../../../pages/polls'; +import { GroupControllerService } from '../../../../pages/participants/modules/groups/services/group-controller.service'; +import { ViewGroup } from '../../../../pages/participants/modules/groups/view-models/view-group'; +import { ViewPoll } from '../../../../pages/polls/view-models/view-poll'; import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; import { VotingPrivacyWarningDialogService } from '../../modules/voting-privacy-dialog/services/voting-privacy-warning-dialog.service'; import { PollService } from '../../services/poll.service'; diff --git a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts index 7f189a5b19..4f449d8694 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts @@ -21,8 +21,8 @@ import { _ } from '@ngx-translate/core'; import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, Observable, Subscription } from 'rxjs'; import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; -import { VoteControllerService } from '../../services/vote-controller.service'; -import { VotingProhibition, VotingService } from '../../services/voting.service'; +import { VoteControllerService } from '../../services/vote-controller.service/vote-controller.service'; +import { VotingProhibition, VotingService } from '../../services/voting.service/voting.service'; export interface VoteOption { vote?: VoteValue; diff --git a/client/src/app/site/pages/meetings/modules/poll/components/entitled-users-table/entitled-users-table.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/entitled-users-table/entitled-users-table.component.ts index f1c3967e4b..26b2f773d2 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/entitled-users-table/entitled-users-table.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/entitled-users-table/entitled-users-table.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@a import { Permission } from '@app/domain/definitions/permission'; import { map, Observable } from 'rxjs'; -import { ParticipantControllerService } from '../../../../pages/participants/services/common/participant-controller.service'; +import { ParticipantControllerService } from '../../../../pages/participants/services/common/participant-controller.service/participant-controller.service'; import { EntitledUsersTableEntry } from '../../definitions/entitled-users-table-entry'; import { EntitledUsersListFilterService } from '../../services/entitled-user-filter.service'; diff --git a/client/src/app/site/pages/meetings/modules/poll/components/poll-cannot-vote-message/poll-cannot-vote-message.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/poll-cannot-vote-message/poll-cannot-vote-message.component.ts index 5f9e0324a7..161a4d3e88 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/poll-cannot-vote-message/poll-cannot-vote-message.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/poll-cannot-vote-message/poll-cannot-vote-message.component.ts @@ -3,9 +3,9 @@ import { OperatorService } from '@app/site/services/operator.service'; import { combineLatest, debounceTime, distinctUntilChanged } from 'rxjs'; import { BaseMeetingComponent } from '../../../../base/base-meeting.component'; -import { ViewPoll } from '../../../../pages/polls'; +import { ViewPoll } from '../../../../pages/polls/view-models/view-poll'; import { ViewUser } from '../../../../view-models/view-user'; -import { VotingService } from '../../services/voting.service'; +import { VotingService } from '../../services/voting.service/voting.service'; @Component({ selector: `os-poll-cannot-vote-message`, diff --git a/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts index 9706f54bb6..8033c38dab 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts @@ -3,7 +3,8 @@ import { PollPercentBase, VoteValue, VoteValueVerbose } from '@app/domain/models import { ThemeService } from '@app/site/services/theme.service'; import { BaseUiComponent } from '@app/ui/base/base-ui-component'; -import { ViewPoll, ViewVote } from '../../../../pages/polls'; +import { ViewPoll } from '../../../../pages/polls/view-models/view-poll'; +import { ViewVote } from '../../../../pages/polls/view-models/view-vote'; import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; import { VotesFilterService } from '../../services/votes-filter.service'; diff --git a/client/src/app/site/pages/meetings/modules/poll/pipes/poll-percent-base/poll-percent-base.pipe.spec.ts b/client/src/app/site/pages/meetings/modules/poll/pipes/poll-percent-base/poll-percent-base.pipe.spec.ts index 2f3ac6eaa9..112aed70c8 100644 --- a/client/src/app/site/pages/meetings/modules/poll/pipes/poll-percent-base/poll-percent-base.pipe.spec.ts +++ b/client/src/app/site/pages/meetings/modules/poll/pipes/poll-percent-base/poll-percent-base.pipe.spec.ts @@ -12,7 +12,7 @@ import { import { Observable } from 'rxjs'; import { PollService } from '../../services/poll.service'; -import { PollServiceMapperService } from '../../services/poll-service-mapper.service'; +import { PollServiceMapperService } from '../../services/poll-service-mapper.service/poll-service-mapper.service'; import { PollPercentBasePipe } from './poll-percent-base.pipe'; class MockPollServiceMapperService { diff --git a/client/src/app/site/pages/meetings/modules/poll/poll.module.ts b/client/src/app/site/pages/meetings/modules/poll/poll.module.ts index 4a9a944461..96837f4f72 100644 --- a/client/src/app/site/pages/meetings/modules/poll/poll.module.ts +++ b/client/src/app/site/pages/meetings/modules/poll/poll.module.ts @@ -25,8 +25,10 @@ import { PollFilteredVotesChartComponent } from './components/poll-filtered-vote import { PollProgressComponent } from './components/poll-progress/poll-progress.component'; import { SingleOptionChartTableComponent } from './components/single-option-chart-table/single-option-chart-table.component'; import { VotesTableComponent } from './components/votes-table/votes-table.component'; -import { VotingPrivacyDialogModule } from './modules/voting-privacy-dialog'; -import { PollKeyVerbosePipe, PollParseNumberPipe, PollPercentBaseAltPipe, PollPercentBasePipe } from './pipes'; +import { VotingPrivacyDialogModule } from './modules/voting-privacy-dialog/voting-privacy-dialog.module'; +import { PollKeyVerbosePipe } from './pipes/poll-key-verbose/poll-key-verbose.pipe'; +import { PollParseNumberPipe } from './pipes/poll-parse-number/poll-parse-number.pipe'; +import { PollPercentBaseAltPipe, PollPercentBasePipe } from './pipes/poll-percent-base/poll-percent-base.pipe'; import { PollServiceModule } from './services/poll-service.module'; const MODULES = [PollServiceModule, VotingPrivacyDialogModule]; diff --git a/client/src/app/site/pages/meetings/modules/poll/services/poll-controller.service/poll-controller.service.ts b/client/src/app/site/pages/meetings/modules/poll/services/poll-controller.service/poll-controller.service.ts index 75dbea038c..f84d7f7d4f 100644 --- a/client/src/app/site/pages/meetings/modules/poll/services/poll-controller.service/poll-controller.service.ts +++ b/client/src/app/site/pages/meetings/modules/poll/services/poll-controller.service/poll-controller.service.ts @@ -7,20 +7,19 @@ import { PollRepositoryService } from '@app/gateways/repositories/polls/poll-rep import { VoteRepositoryService } from '@app/gateways/repositories/polls/vote-repository.service'; import { viewModelListEqual } from '@app/infrastructure/utils'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { distinctUntilChanged, map, Observable } from 'rxjs'; -import { ViewPoll } from '../../../../pages/polls'; +import { ViewPoll } from '../../../../pages/polls/view-models/view-poll'; @Service() export class PollControllerService extends BaseMeetingControllerService { - protected override repo: PollRepositoryService; + protected repo: PollRepositoryService = inject(PollRepositoryService); protected voteRepo = inject(VoteRepositoryService); + public baseModelCtor = Poll; + public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(PollRepositoryService); - super(controllerServiceCollector, Poll, repo); + super(); this.getViewModelListObservableOfStarted() .pipe( diff --git a/client/src/app/site/pages/meetings/modules/poll/services/vote-controller.service/vote-controller.service.ts b/client/src/app/site/pages/meetings/modules/poll/services/vote-controller.service/vote-controller.service.ts index 5235c42df0..d161f52531 100644 --- a/client/src/app/site/pages/meetings/modules/poll/services/vote-controller.service/vote-controller.service.ts +++ b/client/src/app/site/pages/meetings/modules/poll/services/vote-controller.service/vote-controller.service.ts @@ -3,22 +3,18 @@ import { Id } from '@app/domain/definitions/key-types'; import { Vote } from '@app/domain/models/poll/vote'; import { VoteRepositoryService } from '@app/gateways/repositories/polls/vote-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { OperatorService } from '@app/site/services/operator.service'; import { Observable } from 'rxjs'; -import { ViewPoll, ViewVote } from '../../../../pages/polls'; +import { ViewPoll } from '../../../../pages/polls/view-models/view-poll'; +import { ViewVote } from '../../../../pages/polls/view-models/view-vote'; @Service() export class VoteControllerService extends BaseMeetingControllerService { - protected override repo: VoteRepositoryService; + protected repo: VoteRepositoryService = inject(VoteRepositoryService); private operator = inject(OperatorService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(VoteRepositoryService); - super(controllerServiceCollector, Vote, repo); - } + public baseModelCtor = Vote; public subscribeVoted(...viewPolls: ViewPoll[]): Observable> { return new Observable>(subscriber => { diff --git a/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts b/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts index 68d5f99c76..f99f9464ac 100644 --- a/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts +++ b/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts @@ -2,9 +2,9 @@ import { inject, Service } from '@angular/core'; import { BaseFilterListService, OsFilter } from '@app/site/base/base-filter.service'; import { ActiveFiltersService } from '@app/site/services/active-filters.service'; -import { GroupControllerService } from '../../../pages/participants'; +import { GroupControllerService } from '../../../pages/participants/modules/groups/services/group-controller.service'; import { StructureLevelControllerService } from '../../../pages/participants/pages/structure-levels/services/structure-level-controller.service'; -import { ViewVote } from '../../../pages/polls'; +import { ViewVote } from '../../../pages/polls/view-models/view-vote'; @Service() export class VotesFilterService extends BaseFilterListService { diff --git a/client/src/app/site/pages/meetings/modules/projector/components/projector/projector.component.ts b/client/src/app/site/pages/meetings/modules/projector/components/projector/projector.component.ts index f4839a15f1..245f02b79f 100644 --- a/client/src/app/site/pages/meetings/modules/projector/components/projector/projector.component.ts +++ b/client/src/app/site/pages/meetings/modules/projector/components/projector/projector.component.ts @@ -10,7 +10,7 @@ import { PipesModule } from '@app/ui/pipes'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { Dimension } from '../../../../pages/projectors/definitions'; +import { Dimension } from '../../../../pages/projectors/definitions/dimension'; @Component({ standalone: true, diff --git a/client/src/app/site/pages/meetings/modules/projector/projector.module.ts b/client/src/app/site/pages/meetings/modules/projector/projector.module.ts index b8ce2eeec0..3d16297324 100644 --- a/client/src/app/site/pages/meetings/modules/projector/projector.module.ts +++ b/client/src/app/site/pages/meetings/modules/projector/projector.module.ts @@ -6,7 +6,7 @@ import { DirectivesModule } from '@app/ui/directives'; import { TopicPollServiceModule } from '../../pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-service.module'; import { AssignmentPollServiceModule } from '../../pages/assignments/modules/assignment-poll/services/assignment-poll-service.module'; -import { MotionPollServiceModule } from '../../pages/motions/modules/motion-poll'; +import { MotionPollServiceModule } from '../../pages/motions/modules/motion-poll/services/motion-poll-service.module'; import { CountdownTimeModule } from './modules/countdown-time/countdown-time.module'; const EXPORTED_MODULES = [CountdownTimeModule]; diff --git a/client/src/app/site/pages/meetings/pages/agenda/agenda.config.ts b/client/src/app/site/pages/meetings/pages/agenda/agenda.config.ts index 3816d1ceaa..71c2c3a81a 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/agenda.config.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/agenda.config.ts @@ -13,10 +13,12 @@ import { StructureLevelListOfSpeakersRepositoryService } from '@app/gateways/rep import { TopicRepositoryService } from '@app/gateways/repositories/topics/topic-repository.service'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { ViewStructureLevelListOfSpeakers } from '../participants/pages/structure-levels/view-models'; -import { ViewListOfSpeakers, ViewSpeaker, ViewTopic } from './modules'; +import { ViewStructureLevelListOfSpeakers } from '../participants/pages/structure-levels/view-models/view-structure-level-list-of-speakers'; +import { ViewListOfSpeakers } from './modules/list-of-speakers/view-models/view-list-of-speakers'; import { ViewPointOfOrderCategory } from './modules/list-of-speakers/view-models/view-point-of-order-category'; -import { ViewAgendaItem } from './view-models'; +import { ViewSpeaker } from './modules/list-of-speakers/view-models/view-speaker'; +import { ViewTopic } from './modules/topics/view-models/view-topic'; +import { ViewAgendaItem } from './view-models/view-agenda-item'; export const AgendaAppConfig: AppConfig = { name: `agenda`, diff --git a/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts b/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts index 7b84f96e03..2367f42a02 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts @@ -6,8 +6,9 @@ import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { FollowList } from '@app/site/services/model-request-builder'; import { pollModelRequest } from '../polls/polls.subscription'; -import { ViewListOfSpeakers, ViewTopic } from './modules'; -import { ViewAgendaItem } from './view-models'; +import { ViewListOfSpeakers } from './modules/list-of-speakers/view-models/view-list-of-speakers'; +import { ViewTopic } from './modules/topics/view-models/view-topic'; +import { ViewAgendaItem } from './view-models/view-agenda-item'; export const AGENDA_LIST_ITEM_SUBSCRIPTION = `agenda_list`; export const AGENDA_LIST_ITEM_MINIMAL_SUBSCRIPTION = `agenda_list_minimal`; diff --git a/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/components/agenda-forward-dialog/agenda-forward-dialog.component.ts b/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/components/agenda-forward-dialog/agenda-forward-dialog.component.ts index 163541f2a5..59e378cc37 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/components/agenda-forward-dialog/agenda-forward-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/components/agenda-forward-dialog/agenda-forward-dialog.component.ts @@ -14,7 +14,7 @@ import { MeetingTimeComponent } from '@app/ui/modules/meeting-time/meeting-time. import { TranslatePipe } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewAgendaItem } from '../../../../view-models'; +import { ViewAgendaItem } from '../../../../view-models/view-agenda-item'; export interface AgendaForwardDialogReturnData { meetingIds: Ids; diff --git a/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/services/agenda-forward-dialog.service.ts b/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/services/agenda-forward-dialog.service.ts index 1ca9ba2346..28672a4b28 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/services/agenda-forward-dialog.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/components/agenda-forward-dialog/services/agenda-forward-dialog.service.ts @@ -17,8 +17,8 @@ import { TranslateService } from '@ngx-translate/core'; import { endOfDay, fromUnixTime } from 'date-fns'; import { BehaviorSubject, firstValueFrom, Observable, Subscription } from 'rxjs'; -import { AgendaItemControllerService } from '../../../services'; -import { ViewAgendaItem } from '../../../view-models'; +import { AgendaItemControllerService } from '../../../services/agenda-item-controller.service/agenda-item-controller.service'; +import { ViewAgendaItem } from '../../../view-models/view-agenda-item'; import { AgendaForwardDialogComponent, AgendaForwardDialogReturnData diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/components/list-of-speakers/list-of-speakers.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/components/list-of-speakers/list-of-speakers.component.ts index 13fe5891d4..8905761627 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/components/list-of-speakers/list-of-speakers.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/components/list-of-speakers/list-of-speakers.component.ts @@ -13,7 +13,7 @@ import { Subscription } from 'rxjs'; import { CurrentListOfSpeakersSlideService } from '../../services/current-list-of-speakers-slide.service'; import { ListOfSpeakersControllerService } from '../../services/list-of-speakers-controller.service'; -import { ViewListOfSpeakers } from '../../view-models'; +import { ViewListOfSpeakers } from '../../view-models/view-list-of-speakers'; @Component({ selector: `os-list-of-speakers`, diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers-slide.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers-slide.service.ts index f340918be1..4e5c55e635 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers-slide.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers-slide.service.ts @@ -4,8 +4,8 @@ import { MeetingProjectionType } from '@app/gateways/repositories/meeting-reposi import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models'; -import { ViewProjector } from '../../../../projectors'; import { ProjectorControllerService } from '../../../../projectors/services/projector-controller.service'; +import { ViewProjector } from '../../../../projectors/view-models/view-projector'; @Service() export class CurrentListOfSpeakersSlideService { diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers.service.ts index 61396bf7d5..fbda4063f6 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-list-of-speakers.service.ts @@ -1,9 +1,10 @@ import { inject, Service } from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; -import { ViewProjector } from '../../../../projectors'; import { ProjectorControllerService } from '../../../../projectors/services/projector-controller.service'; -import { hasListOfSpeakers, ViewListOfSpeakers } from '../view-models'; +import { ViewProjector } from '../../../../projectors/view-models/view-projector'; +import { hasListOfSpeakers } from '../view-models/has-list-of-speakers'; +import { ViewListOfSpeakers } from '../view-models/view-list-of-speakers'; import { ListOfSpeakersControllerService } from './list-of-speakers-controller.service'; /** diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-speaking-structure-level-slide.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-speaking-structure-level-slide.service.ts index 7dc5116f94..cf4226d6cd 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-speaking-structure-level-slide.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-speaking-structure-level-slide.service.ts @@ -4,8 +4,8 @@ import { MeetingProjectionType } from '@app/gateways/repositories/meeting-reposi import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models'; -import { ViewProjector } from '../../../../projectors'; import { ProjectorControllerService } from '../../../../projectors/services/projector-controller.service'; +import { ViewProjector } from '../../../../projectors/view-models/view-projector'; @Service() export class CurrentSpeakingStructureLevelSlideService { diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-structure-level-list-slide.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-structure-level-list-slide.service.ts index 76abbedf60..d415a4a1f1 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-structure-level-list-slide.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/current-structure-level-list-slide.service.ts @@ -4,8 +4,8 @@ import { MeetingProjectionType } from '@app/gateways/repositories/meeting-reposi import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models'; -import { ViewProjector } from '../../../../projectors'; import { ProjectorControllerService } from '../../../../projectors/services/projector-controller.service'; +import { ViewProjector } from '../../../../projectors/view-models/view-projector'; @Service() export class CurrentStructureLevelListSlideService { diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/list-of-speakers-controller.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/list-of-speakers-controller.service.ts index 0906fac7bb..fe86f1c470 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/list-of-speakers-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/list-of-speakers-controller.service.ts @@ -5,10 +5,10 @@ import { ListOfSpeakersRepositoryService } from '@app/gateways/repositories/list import { BaseController } from '@app/site/base/base-controller'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; -import { ControllerServiceCollectorService } from '@app/site/services/controller-service-collector.service'; -import { ViewStructureLevel } from '../../../../participants/pages/structure-levels/view-models'; -import { ViewListOfSpeakers, ViewSpeaker } from '../view-models'; +import { ViewStructureLevel } from '../../../../participants/pages/structure-levels/view-models/view-structure-level'; +import { ViewListOfSpeakers } from '../view-models/view-list-of-speakers'; +import { ViewSpeaker } from '../view-models/view-speaker'; /** * An object, that contains information about @@ -23,14 +23,10 @@ export interface SpeakingTimeStructureLevelObject { @Service() export class ListOfSpeakersControllerService extends BaseController { - protected override repo: ListOfSpeakersRepositoryService; + protected repo: ListOfSpeakersRepositoryService = inject(ListOfSpeakersRepositoryService); private meetingSettings = inject(MeetingSettingsService); - public constructor() { - const controllerServiceCollector = inject(ControllerServiceCollectorService); - const repo = inject(ListOfSpeakersRepositoryService); - super(controllerServiceCollector, ListOfSpeakers, repo); - } + public baseModelCtor = ListOfSpeakers; public readdLastSpeaker(listOfSpeakers: ViewListOfSpeakers): Promise { return this.repo.readdLastSpeaker(listOfSpeakers); diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/point-of-order-category-controller.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/point-of-order-category-controller.service.ts index 44b803733e..08de152e5d 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/point-of-order-category-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/point-of-order-category-controller.service.ts @@ -2,7 +2,6 @@ import { inject, Service } from '@angular/core'; import { PointOfOrderCategory } from '@app/domain/models/point-of-order-category/point-of-order-category'; import { PointOfOrderCategoryRepositoryService } from '@app/gateways/repositories/point-of-order-category/point-of-order-category-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { ViewPointOfOrderCategory } from '../view-models/view-point-of-order-category'; @@ -11,11 +10,7 @@ export class PointOfOrderCategoryControllerService extends BaseMeetingController ViewPointOfOrderCategory, PointOfOrderCategory > { - protected override repo: PointOfOrderCategoryRepositoryService; + protected repo: PointOfOrderCategoryRepositoryService = inject(PointOfOrderCategoryRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(PointOfOrderCategoryRepositoryService); - super(controllerServiceCollector, PointOfOrderCategory, repo); - } + public baseModelCtor = PointOfOrderCategory; } diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/speaker-controller.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/speaker-controller.service.ts index 9d9592f411..99608ac5c6 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/speaker-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/services/speaker-controller.service.ts @@ -11,19 +11,15 @@ import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base import { UserControllerService } from '@app/site/services/user-controller.service'; import { map, Observable } from 'rxjs'; -import { MeetingControllerServiceCollectorService } from '../../../../../services/meeting-controller-service-collector.service'; -import { ViewListOfSpeakers, ViewSpeaker } from '../view-models'; +import { ViewListOfSpeakers } from '../view-models/view-list-of-speakers'; +import { ViewSpeaker } from '../view-models/view-speaker'; @Service() export class SpeakerControllerService extends BaseMeetingControllerService { protected userRepo = inject(UserControllerService); - protected override repo: SpeakerRepositoryService; + protected repo: SpeakerRepositoryService = inject(SpeakerRepositoryService); - public constructor() { - const repo = inject(SpeakerRepositoryService); - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - super(controllerServiceCollector, Speaker, repo); - } + public baseModelCtor = Speaker; /////////////////////////////////////////////////////////////////////////////////////////////// /// ///////////////////////////////////////// Repo's functions diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers.ts index 477d977b55..f8c400e411 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-list-of-speakers.ts @@ -9,7 +9,7 @@ import { BaseProjectableViewModel } from '@app/site/pages/meetings/view-models/b import { HasMeeting } from '@app/site/pages/meetings/view-models/has-meeting'; import { SpeakerStateOnList } from '../../../definitions/index'; -import { HasAgendaItem } from '../../../view-models'; +import { HasAgendaItem } from '../../../view-models/has-agenda-item'; import { HasListOfSpeakers } from './has-list-of-speakers'; import { ViewSpeaker } from './view-speaker'; diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-dialog/topic-poll-dialog.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-dialog/topic-poll-dialog.component.ts index f00108febd..6b550df418 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-dialog/topic-poll-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-dialog/topic-poll-dialog.component.ts @@ -26,7 +26,7 @@ import { _ } from '@ngx-translate/core'; import { BehaviorSubject } from 'rxjs'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; -import { ViewTopic } from '../../../../view-models'; +import { ViewTopic } from '../../../../view-models/view-topic'; import { TopicPollMethodVerbose } from '../../definitions'; import { TopicPollService } from '../../services/topic-poll.service'; diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-vote/topic-poll-vote.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-vote/topic-poll-vote.component.ts index ff876c8f0a..0273bf5d39 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-vote/topic-poll-vote.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll-vote/topic-poll-vote.component.ts @@ -11,7 +11,7 @@ import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; import { PromptService } from '@app/ui/modules/prompt-dialog'; import { _ } from '@ngx-translate/core'; -import { ViewTopic } from '../../../../view-models'; +import { ViewTopic } from '../../../../view-models/view-topic'; @Component({ selector: `os-topic-poll-vote`, diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll/topic-poll.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll/topic-poll.component.ts index 57dcc30040..4e7c4f6942 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll/topic-poll.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/components/topic-poll/topic-poll.component.ts @@ -7,7 +7,7 @@ import { VotingPrivacyWarningDialogService } from '@app/site/pages/meetings/modu import { VotingService } from '@app/site/pages/meetings/modules/poll/services/voting.service'; import { OperatorService } from '@app/site/services/operator.service'; -import { ViewTopic } from '../../../../view-models'; +import { ViewTopic } from '../../../../view-models/view-topic'; import { TopicPollPdfService } from '../../services/topic-poll-pdf.service/topic-poll-pdf.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-dialog.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-dialog.service.ts index 5aeb33bdb3..d101310e6b 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-dialog.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-dialog.service.ts @@ -1,7 +1,7 @@ import { Service } from '@angular/core'; import { BasePollDialogService } from '@app/site/pages/meetings/modules/poll/base/base-poll-dialog.service'; -import { ViewTopic } from '../../../view-models'; +import { ViewTopic } from '../../../view-models/view-topic'; import { TopicPollDialogComponent } from '../components/topic-poll-dialog/topic-poll-dialog.component'; /** diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-pdf.service/topic-poll-pdf.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-pdf.service/topic-poll-pdf.service.ts index 13f86ae9ef..15137cc2f5 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-pdf.service/topic-poll-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll-pdf.service/topic-poll-pdf.service.ts @@ -3,8 +3,8 @@ import { AbstractPollData, BasePollPdfService } from '@app/site/pages/meetings/m import { ViewPoll } from '@app/site/pages/meetings/pages/polls'; import { TranslateService } from '@ngx-translate/core'; -import { TopicControllerService } from '../../../../services/topic-controller.service'; -import { ViewTopic } from '../../../../view-models'; +import { TopicControllerService } from '../../../../services/topic-controller.service/topic-controller.service'; +import { ViewTopic } from '../../../../view-models/view-topic'; import { TopicPollService } from '../topic-poll.service'; @Service() diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll.service.ts index 0a4af5d6b9..caf13a3f7e 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/modules/topic-poll/services/topic-poll.service.ts @@ -24,7 +24,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { merge, Observable, of } from 'rxjs'; import { map } from 'rxjs/operators'; -import { ViewTopic } from '../../../view-models'; +import { ViewTopic } from '../../../view-models/view-topic'; interface TopicPollTableEntry { label: string; diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts index d0cd21d8dc..8d127df9ea 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts @@ -23,10 +23,10 @@ import { TranslateService } from '@ngx-translate/core'; import { filter, map, Observable } from 'rxjs'; import { AgendaForwardDialogService } from '../../../../../../components/agenda-forward-dialog/services/agenda-forward-dialog.service'; -import { AgendaItemControllerService } from '../../../../../../services'; +import { AgendaItemControllerService } from '../../../../../../services/agenda-item-controller.service/agenda-item-controller.service'; import { TopicPollService } from '../../../../modules/topic-poll/services/topic-poll.service'; import { TopicPollDialogService } from '../../../../modules/topic-poll/services/topic-poll-dialog.service'; -import { TopicControllerService } from '../../../../services/topic-controller.service'; +import { TopicControllerService } from '../../../../services/topic-controller.service/topic-controller.service'; import { TopicPdfService } from '../../../../services/topic-pdf.service/topic-pdf.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/components/topic-import/topic-import.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/components/topic-import/topic-import.component.ts index 7ff8b6fbd2..bbc8054c19 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/components/topic-import/topic-import.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/components/topic-import/topic-import.component.ts @@ -6,8 +6,8 @@ import { DurationService } from '@app/site/services/duration.service'; import { ImportListHeaderDefinition } from '@app/ui/modules/import-list'; import { TranslateService } from '@ngx-translate/core'; -import { topicHeadersAndVerboseNames } from '../../../../definitions'; -import { TopicImportService } from '../../services/topic-import.service'; +import { topicHeadersAndVerboseNames } from '../../../../definitions/topics.constants'; +import { TopicImportService } from '../../services/topic-import.service/topic-import.service'; const TEXT_IMPORT_TAB_INDEX = 0; diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-export.service/topic-export.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-export.service/topic-export.service.ts index caa86ed035..7abb27bd22 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-export.service/topic-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-export.service/topic-export.service.ts @@ -2,7 +2,7 @@ import { inject, Service } from '@angular/core'; import { CsvExportForBackendService } from '@app/gateways/export/csv-export.service/csv-export-for-backend.service'; import { TranslateService } from '@ngx-translate/core'; -import { topicHeadersAndVerboseNames } from '../../../../definitions'; +import { topicHeadersAndVerboseNames } from '../../../../definitions/topics.constants'; interface TopicExport { title?: string; diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-import.service/topic-import.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-import.service/topic-import.service.ts index 99baf4ee05..81ce6c0945 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-import.service/topic-import.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-import/services/topic-import.service/topic-import.service.ts @@ -7,7 +7,7 @@ import { ImportServiceCollectorService } from '@app/site/services/import-service import { BackendImportRawPreview } from '@app/ui/modules/import-list/definitions/backend-import-preview'; import { _ } from '@ngx-translate/core'; -import { TopicExportService } from '../topic-export.service'; +import { TopicExportService } from '../topic-export.service/topic-export.service'; @Service() export class TopicImportService extends BaseBackendImportService { diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-controller.service/topic-controller.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-controller.service/topic-controller.service.ts index 531df69842..3a7841933a 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-controller.service/topic-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-controller.service/topic-controller.service.ts @@ -4,19 +4,14 @@ import { Topic } from '@app/domain/models/topics/topic'; import { TopicRepositoryService } from '@app/gateways/repositories/topics/topic-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { ViewAgendaItem } from '@app/site/pages/meetings/pages/agenda'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewTopic } from '../../view-models'; +import { ViewTopic } from '../../view-models/view-topic'; @Service() export class TopicControllerService extends BaseMeetingControllerService { - protected override repo: TopicRepositoryService; + protected repo: TopicRepositoryService = inject(TopicRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(TopicRepositoryService); - super(controllerServiceCollector, Topic, repo); - } + public baseModelCtor = Topic; public create(...topics: Partial[]): Promise { return this.repo.create(...topics); diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-pdf.service/topic-pdf.service.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-pdf.service/topic-pdf.service.ts index 17dac3bdc4..926b4db04d 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-pdf.service/topic-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/services/topic-pdf.service/topic-pdf.service.ts @@ -5,9 +5,9 @@ import { MeetingPdfExportService } from '@app/site/pages/meetings/services/expor import { TranslateService } from '@ngx-translate/core'; import { Content, ContentText } from 'pdfmake/interfaces'; -import { ViewPoll } from '../../../../../polls'; +import { ViewPoll } from '../../../../../polls/view-models/view-poll'; import { TopicPollService } from '../../modules/topic-poll/services/topic-poll.service'; -import { ViewTopic } from '../../view-models'; +import { ViewTopic } from '../../view-models/view-topic'; /** * Creates a PDF document from a single tpoic diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts index 77f8732e37..b3cd11efd3 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts @@ -7,7 +7,7 @@ import { BaseProjectableViewModel } from '@app/site/pages/meetings/view-models/b import { HasMeeting } from '@app/site/pages/meetings/view-models/has-meeting'; import { HasAttachmentMeetingMediafiles } from '../../../../mediafiles/view-models/has-attachment'; -import { HasPolls, VotingTextContext } from '../../../../polls'; +import { HasPolls, VotingTextContext } from '../../../../polls/view-models/has-polls'; export class ViewTopic extends BaseProjectableViewModel { public static COLLECTION = Topic.COLLECTION; diff --git a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts index 8ecec6f553..1efea4da34 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts @@ -4,10 +4,10 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { ItemTypeChoices } from '@app/domain/models/agenda/agenda-item'; import { DurationService } from '@app/site/services/duration.service'; -import { ViewTag } from '../../../../../motions'; -import { TagControllerService } from '../../../../../motions/modules/tags/services'; +import { TagControllerService } from '../../../../../motions/modules/tags/services/tag-controller.service/tag-controller.service'; +import { ViewTag } from '../../../../../motions/modules/tags/view-models/view-tag'; import { DurationValidator } from '../../../../validators/duration.validator'; -import { ViewAgendaItem } from '../../../../view-models'; +import { ViewAgendaItem } from '../../../../view-models/view-agenda-item'; /** * Dialog component to change agenda item details diff --git a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-list/agenda-item-list.component.ts b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-list/agenda-item-list.component.ts index 76a2beb48c..2a2781cc51 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-list/agenda-item-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-list/agenda-item-list.component.ts @@ -26,12 +26,12 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { map, Observable } from 'rxjs'; -import { ViewTag } from '../../../../../motions'; -import { TagControllerService } from '../../../../../motions/modules/tags/services'; +import { TagControllerService } from '../../../../../motions/modules/tags/services/tag-controller.service/tag-controller.service'; +import { ViewTag } from '../../../../../motions/modules/tags/view-models/view-tag'; import { getTopicDuplicateSubscriptionConfig } from '../../../../agenda.subscription'; import { AgendaForwardDialogService } from '../../../../components/agenda-forward-dialog/services/agenda-forward-dialog.service'; import { TopicControllerService } from '../../../../modules/topics/services/topic-controller.service/topic-controller.service'; -import { AgendaItemControllerService } from '../../../../services'; +import { AgendaItemControllerService } from '../../../../services/agenda-item-controller.service/agenda-item-controller.service'; import { AgendaItemFilterService } from '../../services/agenda-item-filter.service/agenda-item-filter.service'; import { AgendaItemMultiselectService } from '../../services/agenda-item-multiselect.service/agenda-item-multiselect.service'; import { AgendaItemInfoDialogComponent } from '../agenda-item-info-dialog/agenda-item-info-dialog.component'; diff --git a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/services/agenda-item-multiselect.service/agenda-item-multiselect.service.ts b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/services/agenda-item-multiselect.service/agenda-item-multiselect.service.ts index c1ae06cd84..b380927f66 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/services/agenda-item-multiselect.service/agenda-item-multiselect.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/services/agenda-item-multiselect.service/agenda-item-multiselect.service.ts @@ -4,10 +4,10 @@ import { ChoiceService } from '@app/ui/modules/choice-dialog'; import { ChoiceAnswer } from '@app/ui/modules/choice-dialog/definitions'; import { TranslateService } from '@ngx-translate/core'; -import { ViewTag } from '../../../../../motions'; -import { TagControllerService } from '../../../../../motions/modules/tags/services'; -import { AgendaItemControllerService } from '../../../../services'; -import { ViewAgendaItem } from '../../../../view-models'; +import { TagControllerService } from '../../../../../motions/modules/tags/services/tag-controller.service/tag-controller.service'; +import { ViewTag } from '../../../../../motions/modules/tags/view-models/view-tag'; +import { AgendaItemControllerService } from '../../../../services/agenda-item-controller.service/agenda-item-controller.service'; +import { ViewAgendaItem } from '../../../../view-models/view-agenda-item'; @Service() export class AgendaItemMultiselectService { diff --git a/client/src/app/site/pages/meetings/pages/agenda/services/agenda-item-controller.service/agenda-item-controller.service.ts b/client/src/app/site/pages/meetings/pages/agenda/services/agenda-item-controller.service/agenda-item-controller.service.ts index 87219848b8..cefdfb5b17 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/services/agenda-item-controller.service/agenda-item-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/services/agenda-item-controller.service/agenda-item-controller.service.ts @@ -8,19 +8,14 @@ import { TreeIdNode } from '@app/infrastructure/definitions/tree'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { HasAgendaItem } from '@app/site/pages/meetings/pages/agenda'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewAgendaItem } from '../../view-models'; +import { ViewAgendaItem } from '../../view-models/view-agenda-item'; @Service() export class AgendaItemControllerService extends BaseMeetingControllerService { - protected override repo: AgendaItemRepositoryService; + protected repo: AgendaItemRepositoryService = inject(AgendaItemRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(AgendaItemRepositoryService); - super(controllerServiceCollector, AgendaItem, repo); - } + public baseModelCtor = AgendaItem; public update(update: any, item: ViewAgendaItem): Promise { return this.repo.update(update, item); diff --git a/client/src/app/site/pages/meetings/pages/agenda/services/agenda-pdf-catalog-export.service/agenda-pdf-catalog-export.service.ts b/client/src/app/site/pages/meetings/pages/agenda/services/agenda-pdf-catalog-export.service/agenda-pdf-catalog-export.service.ts index 8d21d18658..42a93fa3a2 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/services/agenda-pdf-catalog-export.service/agenda-pdf-catalog-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/services/agenda-pdf-catalog-export.service/agenda-pdf-catalog-export.service.ts @@ -8,13 +8,13 @@ import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/servic import { TranslateService } from '@ngx-translate/core'; import { Content, ContentText, TableCell } from 'pdfmake/interfaces'; -import { MeetingPdfExportService } from '../../../../services/export'; +import { MeetingPdfExportService } from '../../../../services/export/meeting-pdf-export.service'; import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; -import { MotionHtmlToPdfService } from '../../../motions/services/export/motion-html-to-pdf.service'; -import { ViewPoll } from '../../../polls'; +import { MotionHtmlToPdfService } from '../../../motions/services/export/motion-html-to-pdf.service/motion-html-to-pdf.service'; +import { ViewPoll } from '../../../polls/view-models/view-poll'; import { ViewSpeaker } from '../../modules/list-of-speakers/view-models/view-speaker'; -import { ViewTopic } from '../../modules/topics/view-models'; -import { ViewAgendaItem } from '../../view-models'; +import { ViewTopic } from '../../modules/topics/view-models/view-topic'; +import { ViewAgendaItem } from '../../view-models/view-agenda-item'; const PDF_A4_POINTS_WIDTH = 595.296; const PDF_A5_POINTS_WIDTH = 419.544; diff --git a/client/src/app/site/pages/meetings/pages/agenda/view-models/view-agenda-item.ts b/client/src/app/site/pages/meetings/pages/agenda/view-models/view-agenda-item.ts index d3ffa8c0ed..5bbf99233a 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/view-models/view-agenda-item.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/view-models/view-agenda-item.ts @@ -9,7 +9,7 @@ import { BaseProjectableViewModel, isProjectable } from '@app/site/pages/meeting import { ProjectionBuildDescriptor } from '@app/site/pages/meetings/view-models/projection-build-descriptor'; import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; -import { HasTags } from '../../motions'; +import { HasTags } from '../../motions/modules/tags/view-models/has-tags'; export class ViewAgendaItem extends BaseProjectableViewModel { public static COLLECTION = AgendaItem.COLLECTION; diff --git a/client/src/app/site/pages/meetings/pages/assignments/assignments.config.ts b/client/src/app/site/pages/meetings/pages/assignments/assignments.config.ts index ad0f9dc1d5..0c53c222e8 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/assignments.config.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/assignments.config.ts @@ -5,7 +5,8 @@ import { AssignmentCandidateRepositoryService } from '@app/gateways/repositories import { AssignmentRepositoryService } from '@app/gateways/repositories/assignments/assignment-repository.service'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { ViewAssignment, ViewAssignmentCandidate } from './view-models'; +import { ViewAssignment } from './view-models/view-assignment'; +import { ViewAssignmentCandidate } from './view-models/view-assignment-candidate'; export const AssignmentsAppConfig: AppConfig = { name: `assignments`, diff --git a/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts b/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts index f4de9fe86c..c52834dc95 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts @@ -6,7 +6,7 @@ import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { listOfSpeakersSpeakerCountSubscription } from '../agenda/agenda.subscription'; import { pollModelRequest } from '../polls/polls.subscription'; -import { ViewAssignment } from './view-models'; +import { ViewAssignment } from './view-models/view-assignment'; export const ASSIGNMENT_LIST_SUBSCRIPTION = `assignment_list`; export const ASSIGNMENT_LIST_MINIMAL_SUBSCRIPTION = `assignment_list_minimal`; diff --git a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-detail-content/assignment-poll-detail-content.component.ts b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-detail-content/assignment-poll-detail-content.component.ts index f7f7d88d4c..d40058cafc 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-detail-content/assignment-poll-detail-content.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-detail-content/assignment-poll-detail-content.component.ts @@ -26,8 +26,8 @@ import { ThemeService } from '@app/site/services/theme.service'; import { TranslateService } from '@ngx-translate/core'; import { auditTime, combineLatest, filter, iif, map, NEVER, startWith, switchMap } from 'rxjs'; -import { ViewPoll } from '../../../../../polls'; -import { ViewAssignment } from '../../../../view-models'; +import { ViewPoll } from '../../../../../polls/view-models/view-poll'; +import { ViewAssignment } from '../../../../view-models/view-assignment'; import { AssignmentPollService } from '../../services/assignment-poll.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-form/assignment-poll-form.component.ts b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-form/assignment-poll-form.component.ts index b54b2ed16c..204252e372 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-form/assignment-poll-form.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-form/assignment-poll-form.component.ts @@ -6,7 +6,7 @@ import { } from '@app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component'; import { _ } from '@ngx-translate/core'; -import { ViewAssignment } from '../../../../view-models'; +import { ViewAssignment } from '../../../../view-models/view-assignment'; @Component({ selector: `os-assignment-poll-form`, diff --git a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll-pdf.service/assignment-poll-pdf.service.ts b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll-pdf.service/assignment-poll-pdf.service.ts index 50156b6191..91f66096f0 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll-pdf.service/assignment-poll-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/services/assignment-poll-pdf.service/assignment-poll-pdf.service.ts @@ -6,7 +6,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { TranslateService } from '@ngx-translate/core'; import { AssignmentControllerService } from '../../../../services/assignment-controller.service'; -import { ViewAssignment } from '../../../../view-models'; +import { ViewAssignment } from '../../../../view-models/view-assignment'; import { AssignmentPollService } from '../assignment-poll.service'; @Service() diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/assignment-detail.module.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/assignment-detail.module.ts index 2e4ffb03b1..5b1dee14f3 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/assignment-detail.module.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/assignment-detail.module.ts @@ -21,7 +21,7 @@ import { SortingListModule } from '@app/ui/modules/sorting/modules/sorting-list/ import { PipesModule } from '@app/ui/pipes/pipes.module'; import { MeetingsComponentCollectorModule } from '../../../../modules/meetings-component-collector/meetings-component-collector.module'; -import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector'; +import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector/participant-search-selector.module'; import { AgendaItemCommonServiceModule } from '../../../agenda/services/agenda-item-common-service.module'; import { ParticipantCommonServiceModule } from '../../../participants/services/common/participant-common-service.module'; import { AssignmentPollModule } from '../../modules/assignment-poll/assignment-poll.module'; diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts index 5e7d1f14bb..a7b4039fdb 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts @@ -23,7 +23,7 @@ import { PromptService } from '@app/ui/modules/prompt-dialog'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Subscription } from 'rxjs'; -import { AgendaItemControllerService } from '../../../../../agenda/services/agenda-item-controller.service'; +import { AgendaItemControllerService } from '../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; import { AssignmentPhases } from '../../../../definitions'; import { AssignmentPollService } from '../../../../modules/assignment-poll/services/assignment-poll.service'; import { AssignmentPollDialogService } from '../../../../modules/assignment-poll/services/assignment-poll-dialog.service'; diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/services/assignment-candidate-controller.service.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/services/assignment-candidate-controller.service.ts index 256e9ef66c..1a3adbde99 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/services/assignment-candidate-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/services/assignment-candidate-controller.service.ts @@ -6,20 +6,15 @@ import { Action } from '@app/gateways/actions'; import { AssignmentCandidateRepositoryService } from '@app/gateways/repositories/assignments/assignment-candidate-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { ViewAssignmentCandidate } from '@app/site/pages/meetings/pages/assignments'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; @Service() export class AssignmentCandidateControllerService extends BaseMeetingControllerService< ViewAssignmentCandidate, AssignmentCandidate > { - protected override repo: AssignmentCandidateRepositoryService; + protected repo: AssignmentCandidateRepositoryService = inject(AssignmentCandidateRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(AssignmentCandidateRepositoryService); - super(controllerServiceCollector, AssignmentCandidate, repo); - } + public baseModelCtor = AssignmentCandidate; public create(assignment: Identifiable, meetingUserId: Id): Promise { return this.repo.create(assignment, meetingUserId); diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/components/assignment-list/assignment-list.component.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/components/assignment-list/assignment-list.component.ts index c7d97263fd..995e81ac65 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/components/assignment-list/assignment-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/components/assignment-list/assignment-list.component.ts @@ -13,7 +13,7 @@ import { getAssignmentDetailSubscriptionConfig } from '../../../../assignments.s import { AssignmentPhases } from '../../../../definitions/index'; import { AssignmentControllerService } from '../../../../services/assignment-controller.service'; import { AssignmentExportService } from '../../../../services/assignment-export.service'; -import { ViewAssignment } from '../../../../view-models'; +import { ViewAssignment } from '../../../../view-models/view-assignment'; import { AssignmentFilterListService } from '../../services/assignment-filter-list.service'; import { AssignmentSortListService } from '../../services/assignment-sort-list.service'; diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/services/assignment-filter-list.service.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/services/assignment-filter-list.service.ts index debb9b1b0b..39a42cb4fc 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/services/assignment-filter-list.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-list/services/assignment-filter-list.service.ts @@ -3,7 +3,7 @@ import { BaseFilterListService, OsFilter, OsFilterOption } from '@app/site/base/ import { ActiveFiltersService } from '@app/site/services/active-filters.service'; import { AssignmentPhases } from '../../../definitions'; -import { ViewAssignment } from '../../../view-models'; +import { ViewAssignment } from '../../../view-models/view-assignment'; /** * Filter service for the assignment list diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-main/assignment-poll-main.component.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-main/assignment-poll-main.component.ts index f3b77c1feb..0fad741553 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-main/assignment-poll-main.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-main/assignment-poll-main.component.ts @@ -4,8 +4,8 @@ import { BaseModelRequestHandlerComponent } from '@app/site/base/base-model-requ import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { getParticipantMinimalSubscriptionConfig } from '../../../../../participants/participants.subscription'; -import { ViewPoll } from '../../../../../polls'; import { getPollDetailSubscriptionConfig } from '../../../../../polls/polls.subscription'; +import { ViewPoll } from '../../../../../polls/view-models/view-poll'; @Component({ selector: `os-assignment-poll-main`, diff --git a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-controller.service.ts b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-controller.service.ts index e03730f253..7551c717e3 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-controller.service.ts @@ -4,17 +4,12 @@ import { AssignmentRepositoryService } from '@app/gateways/repositories/assignme import { CreateResponse } from '@app/gateways/repositories/base-repository'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { ViewAssignment } from '@app/site/pages/meetings/pages/assignments'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; @Service() export class AssignmentControllerService extends BaseMeetingControllerService { - protected override repo: AssignmentRepositoryService; + protected repo: AssignmentRepositoryService = inject(AssignmentRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(AssignmentRepositoryService); - super(controllerServiceCollector, Assignment, repo); - } + public baseModelCtor = Assignment; public create(assignment: any): Promise { return this.repo.create(assignment); diff --git a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-export.service.ts b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-export.service.ts index ee3216e0cf..31330cfbc7 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-export.service.ts @@ -5,7 +5,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { TranslateService } from '@ngx-translate/core'; import { Content } from 'pdfmake/interfaces'; -import { ViewAssignment } from '../view-models'; +import { ViewAssignment } from '../view-models/view-assignment'; import { AssignmentPdfService } from './assignment-pdf.service'; /** diff --git a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-pdf.service.ts b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-pdf.service.ts index 0a71d38714..a80b28f210 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/services/assignment-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/services/assignment-pdf.service.ts @@ -7,7 +7,7 @@ import { TranslateService } from '@ngx-translate/core'; import { Content, ContentColumns, ContentText } from 'pdfmake/interfaces'; import { AssignmentPollService, UnknownUserLabel } from '../modules/assignment-poll/services/assignment-poll.service'; -import { ViewAssignment } from '../view-models'; +import { ViewAssignment } from '../view-models/view-assignment'; /** * Creates a PDF document from a single assignment diff --git a/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts b/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts index 778b42e6bd..772a8fa7ed 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts @@ -8,7 +8,7 @@ import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; import { _ } from '@ngx-translate/core'; import { HasMeeting } from '../../../view-models/has-meeting'; -import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; +import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; import { HasAgendaItem } from '../../agenda/view-models/has-agenda-item'; import { HasAttachmentMeetingMediafiles } from '../../mediafiles/view-models/has-attachment'; import { HasTags } from '../../motions/modules/tags/view-models/has-tags'; diff --git a/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts b/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts index d66816dbda..d0fd159d36 100644 --- a/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts @@ -5,7 +5,7 @@ import { SubscriptionConfig, SubscriptionConfigGenerator } from '@app/domain/int import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { pollModelRequest } from '../polls/polls.subscription'; -import { ViewProjection } from '../projectors'; +import { ViewProjection } from '../projectors/view-models/view-projection'; export const AUTOPILOT_SUBSCRIPTION = `autopilot`; export const AUTOPILOT_CONTENT_SUBSCRIPTION = `autopilot_content`; diff --git a/client/src/app/site/pages/meetings/pages/autopilot/components/autopilot/autopilot.component.ts b/client/src/app/site/pages/meetings/pages/autopilot/components/autopilot/autopilot.component.ts index 771cf1acd2..10a4095871 100644 --- a/client/src/app/site/pages/meetings/pages/autopilot/components/autopilot/autopilot.component.ts +++ b/client/src/app/site/pages/meetings/pages/autopilot/components/autopilot/autopilot.component.ts @@ -12,12 +12,13 @@ import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, distinctUntilChanged } from 'rxjs'; import { BaseMeetingComponent } from '../../../../base/base-meeting.component'; -import { ViewListOfSpeakers } from '../../../agenda'; import { CurrentListOfSpeakersService } from '../../../agenda/modules/list-of-speakers/services/current-list-of-speakers.service'; import { ListOfSpeakersControllerService } from '../../../agenda/modules/list-of-speakers/services/list-of-speakers-controller.service'; -import { HasPolls } from '../../../polls'; -import { ViewProjection, ViewProjector } from '../../../projectors'; +import { ViewListOfSpeakers } from '../../../agenda/modules/list-of-speakers/view-models/view-list-of-speakers'; +import { HasPolls } from '../../../polls/view-models/has-polls'; import { ProjectorControllerService } from '../../../projectors/services/projector-controller.service'; +import { ViewProjection } from '../../../projectors/view-models/view-projection'; +import { ViewProjector } from '../../../projectors/view-models/view-projector'; import { AutopilotService } from '../../services/autopilot.service'; import { AutopilotSettingsComponent } from '../autopilot-settings/autopilot-settings.component'; diff --git a/client/src/app/site/pages/meetings/pages/autopilot/components/poll-collection/poll-collection.component.spec.ts b/client/src/app/site/pages/meetings/pages/autopilot/components/poll-collection/poll-collection.component.spec.ts index a75ac484ec..2ba52cc41b 100644 --- a/client/src/app/site/pages/meetings/pages/autopilot/components/poll-collection/poll-collection.component.spec.ts +++ b/client/src/app/site/pages/meetings/pages/autopilot/components/poll-collection/poll-collection.component.spec.ts @@ -2,7 +2,7 @@ // import { BaseViewModel } from '@app/site/base/base-view-model'; // import { E2EImportsModule } from 'src/e2e-imports.module'; -// import { PollModule } from '../../../../modules/poll'; +// import { PollModule } from '../../../../modules/poll/poll.module'; // import { PollCollectionComponent } from './poll-collection.component'; // xdescribe(`PollCollectionComponent`, () => { diff --git a/client/src/app/site/pages/meetings/pages/chat/chat.config.ts b/client/src/app/site/pages/meetings/pages/chat/chat.config.ts index a749baa0df..0fb0c4cd41 100644 --- a/client/src/app/site/pages/meetings/pages/chat/chat.config.ts +++ b/client/src/app/site/pages/meetings/pages/chat/chat.config.ts @@ -4,7 +4,8 @@ import { ChatGroupRepositoryService } from '@app/gateways/repositories/chat/chat import { ChatMessageRepositoryService } from '@app/gateways/repositories/chat/chat-message-repository.service'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { ViewChatGroup, ViewChatMessage } from './view-models'; +import { ViewChatGroup } from './view-models/view-chat-group'; +import { ViewChatMessage } from './view-models/view-chat-message'; export const ChatAppConfig: AppConfig = { name: `Chat`, diff --git a/client/src/app/site/pages/meetings/pages/chat/modules/chat-group-dialog/components/chat-group-dialog/chat-group-dialog.component.ts b/client/src/app/site/pages/meetings/pages/chat/modules/chat-group-dialog/components/chat-group-dialog/chat-group-dialog.component.ts index 996d80afa3..a33a5d8666 100644 --- a/client/src/app/site/pages/meetings/pages/chat/modules/chat-group-dialog/components/chat-group-dialog/chat-group-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/chat/modules/chat-group-dialog/components/chat-group-dialog/chat-group-dialog.component.ts @@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/cor import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { ViewGroup } from '../../../../../participants'; import { GroupControllerService } from '../../../../../participants/modules/groups/services/group-controller.service'; +import { ViewGroup } from '../../../../../participants/modules/groups/view-models/view-group'; import { ChatGroupDialogData } from '../../services/chat-group-dialog.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail/chat-group-detail.component.ts b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail/chat-group-detail.component.ts index c4aab2986d..e79a496927 100644 --- a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail/chat-group-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail/chat-group-detail.component.ts @@ -27,8 +27,9 @@ import { ChatGroupDialogData, ChatGroupDialogService } from '../../../../modules/chat-group-dialog/services/chat-group-dialog.service'; -import { ChatGroupControllerService, ChatNotificationService } from '../../../../services'; +import { ChatGroupControllerService } from '../../../../services/chat-group-controller.service'; import { ChatMessageControllerService } from '../../../../services/chat-message-controller.service'; +import { ChatNotificationService } from '../../../../services/chat-notification.service'; @Component({ selector: `os-chat-group-detail`, diff --git a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-list/chat-group-list.component.ts b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-list/chat-group-list.component.ts index b7eb440563..99dc230ee0 100644 --- a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-list/chat-group-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-list/chat-group-list.component.ts @@ -9,7 +9,8 @@ import { TranslateService } from '@ngx-translate/core'; import { firstValueFrom, Observable } from 'rxjs'; import { ChatGroupDialogService } from '../../../../modules/chat-group-dialog/services/chat-group-dialog.service'; -import { ChatGroupControllerService, ChatNotificationService } from '../../../../services'; +import { ChatGroupControllerService } from '../../../../services/chat-group-controller.service'; +import { ChatNotificationService } from '../../../../services/chat-notification.service'; @Component({ selector: `os-chat-group-list`, diff --git a/client/src/app/site/pages/meetings/pages/chat/services/chat-group-controller.service.ts b/client/src/app/site/pages/meetings/pages/chat/services/chat-group-controller.service.ts index 31d6f36e25..4ca801c097 100644 --- a/client/src/app/site/pages/meetings/pages/chat/services/chat-group-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/chat/services/chat-group-controller.service.ts @@ -3,19 +3,14 @@ import { Identifiable } from '@app/domain/interfaces'; import { ChatGroup } from '@app/domain/models/chat/chat-group'; import { ChatGroupRepositoryService } from '@app/gateways/repositories/chat/chat-group-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewChatGroup } from '../view-models'; +import { ViewChatGroup } from '../view-models/view-chat-group'; @Service() export class ChatGroupControllerService extends BaseMeetingControllerService { - protected override repo: ChatGroupRepositoryService; + protected repo: ChatGroupRepositoryService = inject(ChatGroupRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(ChatGroupRepositoryService); - super(controllerServiceCollector, ChatGroup, repo); - } + public baseModelCtor = ChatGroup; public create(chatGroup: Partial): Promise { return this.repo.create(chatGroup); diff --git a/client/src/app/site/pages/meetings/pages/chat/services/chat-message-controller.service.ts b/client/src/app/site/pages/meetings/pages/chat/services/chat-message-controller.service.ts index a44ceac0a6..8b6ef4f185 100644 --- a/client/src/app/site/pages/meetings/pages/chat/services/chat-message-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/chat/services/chat-message-controller.service.ts @@ -3,19 +3,14 @@ import { Identifiable } from '@app/domain/interfaces'; import { ChatMessage } from '@app/domain/models/chat/chat-message'; import { ChatMessageRepositoryService } from '@app/gateways/repositories/chat/chat-message-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewChatMessage } from '../view-models'; +import { ViewChatMessage } from '../view-models/view-chat-message'; @Service() export class ChatMessageControllerService extends BaseMeetingControllerService { - protected override repo: ChatMessageRepositoryService; + protected repo: ChatMessageRepositoryService = inject(ChatMessageRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(ChatMessageRepositoryService); - super(controllerServiceCollector, ChatMessage, repo); - } + public baseModelCtor = ChatMessage; public create(chatMessage: Partial): Promise { return this.repo.create(chatMessage); diff --git a/client/src/app/site/pages/meetings/pages/chat/services/chat-notification.service.ts b/client/src/app/site/pages/meetings/pages/chat/services/chat-notification.service.ts index 305fc2b211..35638c3aef 100644 --- a/client/src/app/site/pages/meetings/pages/chat/services/chat-notification.service.ts +++ b/client/src/app/site/pages/meetings/pages/chat/services/chat-notification.service.ts @@ -3,7 +3,7 @@ import { Id } from '@app/domain/definitions/key-types'; import { StorageService } from '@app/gateways/storage.service'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewChatMessage } from '../view-models'; +import { ViewChatMessage } from '../view-models/view-chat-message'; import { ChatMessageControllerService } from './chat-message-controller.service'; export type NotificationAmountEvent = Record>; diff --git a/client/src/app/site/pages/meetings/pages/history/components/history-list/history-list.component.ts b/client/src/app/site/pages/meetings/pages/history/components/history-list/history-list.component.ts index 9d3f316f28..ab69b2347e 100644 --- a/client/src/app/site/pages/meetings/pages/history/components/history-list/history-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/history/components/history-list/history-list.component.ts @@ -12,7 +12,7 @@ import { AssignmentRepositoryService } from '@app/gateways/repositories/assignme import { BaseRepository } from '@app/gateways/repositories/base-repository'; import { ViewHistoryEntry } from '@app/gateways/repositories/history-entry/view-history-entry'; import { ViewHistoryPosition } from '@app/gateways/repositories/history-position/view-history-position'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { collectionIdFromFqid, fqidFromCollectionAndId, @@ -29,9 +29,10 @@ import { TranslateService } from '@ngx-translate/core'; import { distinctUntilChanged, filter, Observable, Subject, Subscription, switchMap } from 'rxjs'; import { ViewUser } from '../../../../view-models/view-user'; -import { ViewAssignment } from '../../../assignments'; -import { ViewMotion, ViewMotionState } from '../../../motions'; -import { ParticipantControllerService } from '../../../participants/services/common/participant-controller.service'; +import { ViewAssignment } from '../../../assignments/view-models/view-assignment'; +import { ViewMotionState } from '../../../motions/modules/states/view-models/view-motion-state'; +import { ViewMotion } from '../../../motions/view-models/view-motion'; +import { ParticipantControllerService } from '../../../participants/services/common/participant-controller.service/participant-controller.service'; const HISTORY_SUBSCRIPTION_PREFIX = `history`; const HISTORY_DETAIL_SUBSCRIPTION = `history_detail`; diff --git a/client/src/app/site/pages/meetings/pages/interaction/services/call-restriction.service.ts b/client/src/app/site/pages/meetings/pages/interaction/services/call-restriction.service.ts index 970f96c71b..a2bf5efb8e 100644 --- a/client/src/app/site/pages/meetings/pages/interaction/services/call-restriction.service.ts +++ b/client/src/app/site/pages/meetings/pages/interaction/services/call-restriction.service.ts @@ -5,7 +5,7 @@ import { StorageMap } from '@ngx-pwa/local-storage'; import { BehaviorSubject, combineLatest, distinctUntilChanged, map, Observable, Subject } from 'rxjs'; import { MeetingSettingsService } from '../../../services/meeting-settings.service'; -import { SpeakerStateOnList } from '../../agenda'; +import { SpeakerStateOnList } from '../../agenda/definitions'; import { CurrentListOfSpeakersService } from '../../agenda/modules/list-of-speakers/services/current-list-of-speakers.service'; import { RTC_LOGGED_STORAGE_KEY } from './rtc.service'; diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/components/mediafile-delete-dialog/mediafile-delete-dialog.component.ts b/client/src/app/site/pages/meetings/pages/mediafiles/components/mediafile-delete-dialog/mediafile-delete-dialog.component.ts index 6efa827300..a68689a564 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/components/mediafile-delete-dialog/mediafile-delete-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/components/mediafile-delete-dialog/mediafile-delete-dialog.component.ts @@ -3,7 +3,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { TranslatePipe } from '@ngx-translate/core'; -import { ViewMediafile } from '../../view-models'; +import { ViewMediafile } from '../../view-models/view-mediafile'; interface MediafileDeleteDialogData { file: ViewMediafile; diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/mediafiles.config.ts b/client/src/app/site/pages/meetings/pages/mediafiles/mediafiles.config.ts index 6dde86379a..bc31996116 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/mediafiles.config.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/mediafiles.config.ts @@ -3,7 +3,7 @@ import { Mediafile } from '@app/domain/models/mediafiles/mediafile'; import { MediafileRepositoryService } from '@app/gateways/repositories/mediafiles/mediafile-repository.service'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { ViewMediafile } from './view-models'; +import { ViewMediafile } from './view-models/view-mediafile'; export const MediafileAppConfig: AppConfig = { name: `mediafiles`, diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config.ts b/client/src/app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config.ts index fd65f597c8..44486730f0 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config.ts @@ -2,7 +2,7 @@ import { MeetingMediafile } from '@app/domain/models/meeting-mediafile/meeting-m import { MeetingMediafileRepositoryService } from '@app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { ViewMeetingMediafile } from './view-models'; +import { ViewMeetingMediafile } from './view-models/view-meeting-mediafile'; export const MeetingMediafileAppConfig: AppConfig = { name: `meeting_mediafiles`, diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/components/mediafile-list/mediafile-list.component.ts b/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/components/mediafile-list/mediafile-list.component.ts index dea64bb027..ba4de0d5c5 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/components/mediafile-list/mediafile-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/components/mediafile-list/mediafile-list.component.ts @@ -33,7 +33,7 @@ import { ViewGroup } from '../../../../../participants/modules/groups/view-model import { MEDIAFILES_SUBSCRIPTION } from '../../../../mediafiles.subscription'; import { MediafileCommonService } from '../../../../services/mediafile-common.service'; import { MediafileListExportService } from '../../services/mediafile-list-export.service/mediafile-list-export.service'; -import { MediafileListGroupService } from '../../services/mediafile-list-group.service'; +import { MediafileListGroupService } from '../../services/mediafile-list-group.service/mediafile-list-group.service'; @Component({ selector: `os-mediafile-list`, diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/services/mediafile-list-group.service/mediafile-list-group.service.ts b/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/services/mediafile-list-group.service/mediafile-list-group.service.ts index dd51639580..8086a24252 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/services/mediafile-list-group.service/mediafile-list-group.service.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/modules/mediafile-list/services/mediafile-list-group.service/mediafile-list-group.service.ts @@ -2,7 +2,7 @@ import { inject, Service } from '@angular/core'; import { GroupRepositoryService } from '@app/gateways/repositories/groups'; import { Observable } from 'rxjs'; -import { ViewGroup } from '../../../../../participants'; +import { ViewGroup } from '../../../../../participants/modules/groups/view-models/view-group'; @Service() export class MediafileListGroupService { diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-common.service.ts b/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-common.service.ts index 204c8eb71a..1104219aef 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-common.service.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-common.service.ts @@ -9,7 +9,7 @@ import { firstValueFrom } from 'rxjs'; import { ActiveMeetingIdService } from '../../../services/active-meeting-id.service'; import { MediafileDeleteDialogComponent } from '../components/mediafile-delete-dialog/mediafile-delete-dialog.component'; -import { ViewMediafile } from '../view-models'; +import { ViewMediafile } from '../view-models/view-mediafile'; import { MediafileControllerService } from './mediafile-controller.service'; @Service() diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-controller.service.ts b/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-controller.service.ts index 5662e3c814..00d5b0b68a 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/services/mediafile-controller.service.ts @@ -4,29 +4,21 @@ import { Identifiable } from '@app/domain/interfaces'; import { Mediafile } from '@app/domain/models/mediafiles/mediafile'; import { MediafileRepositoryService } from '@app/gateways/repositories/mediafiles/mediafile-repository.service'; import { BaseController } from '@app/site/base/base-controller'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { ORGANIZATION_ID } from '@app/site/pages/organization/services/organization.service'; import { OperatorService } from '@app/site/services/operator.service'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { ActiveMeetingService } from '../../../services/active-meeting.service'; -import { ViewMediafile } from '../view-models'; +import { ViewMediafile } from '../view-models/view-mediafile'; @Service() export class MediafileControllerService extends BaseController { - protected override controllerServiceCollector: MeetingControllerServiceCollectorService; - protected override repo: MediafileRepositoryService; + protected repo: MediafileRepositoryService = inject(MediafileRepositoryService); private operator = inject(OperatorService); private activeMeeting = inject(ActiveMeetingService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MediafileRepositoryService); - super(controllerServiceCollector, Mediafile, repo); - this.controllerServiceCollector = controllerServiceCollector; - this.repo = repo; - } + public baseModelCtor = Mediafile; public move(files: Identifiable[], directoryId: Id | null): Promise { return this.repo.move(files, directoryId); diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-mediafile.ts b/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-mediafile.ts index 604f757c36..2ef747bb23 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-mediafile.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-mediafile.ts @@ -11,7 +11,7 @@ import { BaseViewModel, ViewModelRelations } from '../../../../../base/base-view import { BaseProjectableViewModel } from '../../../view-models/base-projectable-model'; import { HasMeeting } from '../../../view-models/has-meeting'; import { ViewMeeting } from '../../../view-models/view-meeting'; -import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; +import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; import { ViewGroup } from '../../participants/modules/groups/view-models/view-group'; import { FONT_MIMETYPES, IMAGE_MIMETYPES, PDF_MIMETYPES } from '../definitions'; import { VIDEO_MIMETYPES } from '../definitions/index'; diff --git a/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile.ts b/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile.ts index 40b775dc8d..c266b78cc6 100644 --- a/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile.ts +++ b/client/src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile.ts @@ -8,7 +8,7 @@ import { BaseViewModel, ViewModelRelations } from '../../../../../base/base-view import { BaseProjectableViewModel } from '../../../view-models/base-projectable-model'; import { HasMeeting } from '../../../view-models/has-meeting'; import { ViewMeeting } from '../../../view-models/view-meeting'; -import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; +import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; import { ViewGroup } from '../../participants/modules/groups/view-models/view-group'; import { HasAttachmentMeetingMediafiles } from './has-attachment'; import { ViewMediafile } from './view-mediafile'; diff --git a/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/components/motion-forward-dialog/motion-forward-dialog.component.ts b/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/components/motion-forward-dialog/motion-forward-dialog.component.ts index 833d5df494..f30e9cd44f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/components/motion-forward-dialog/motion-forward-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/components/motion-forward-dialog/motion-forward-dialog.component.ts @@ -8,7 +8,7 @@ import { OrganizationSettingsService } from '@app/site/pages/organization/servic import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewMotion } from '../../../../view-models'; +import { ViewMotion } from '../../../../view-models/view-motion'; export interface MotionForwardDialogReturnData { meetingIds: Ids; diff --git a/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/services/motion-forward-dialog.service.ts b/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/services/motion-forward-dialog.service.ts index 9bcec85e28..e143ed46ec 100644 --- a/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/services/motion-forward-dialog.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/components/motion-forward-dialog/services/motion-forward-dialog.service.ts @@ -9,7 +9,7 @@ import { GetForwardingMeetingsPresenterMeeting, GetForwardingMeetingsPresenterService } from '@app/gateways/presenter'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { mediumDialogSettings } from '@app/infrastructure/utils/dialog-settings'; import { ActiveMeetingService } from '@app/site/pages/meetings/services/active-meeting.service'; import { ViewCommittee } from '@app/site/pages/organization/pages/committees'; @@ -20,10 +20,10 @@ import { TranslateService } from '@ngx-translate/core'; import { endOfDay, fromUnixTime } from 'date-fns'; import { BehaviorSubject, filter, firstValueFrom, Observable } from 'rxjs'; -import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services'; +import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; import { getMotionForwardDataSubscriptionConfig } from '../../../motions.subscription'; -import { MotionFormatService } from '../../../services/common/motion-format.service'; -import { ViewMotion } from '../../../view-models'; +import { MotionFormatService } from '../../../services/common/motion-format.service/motion-format.service'; +import { ViewMotion } from '../../../view-models/view-motion'; import { MotionForwardDialogComponent, MotionForwardDialogReturnData diff --git a/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/components/motion-multiselect-actions/motion-multiselect-actions.component.ts b/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/components/motion-multiselect-actions/motion-multiselect-actions.component.ts index 87eaac006e..d39c6dff5f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/components/motion-multiselect-actions/motion-multiselect-actions.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/components/motion-multiselect-actions/motion-multiselect-actions.component.ts @@ -10,10 +10,10 @@ import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { SortListService } from '@app/ui/modules/list'; import { TranslateService } from '@ngx-translate/core'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; -import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; import { TagControllerService } from '../../../../modules/tags/services/tag-controller.service/tag-controller.service'; -import { MotionListSortService } from '../../../../services/list/motion-list-sort.service'; +import { MotionListSortService } from '../../../../services/list/motion-list-sort.service/motion-list-sort.service'; import { MotionMultiselectService } from '../../services/motion-multiselect.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/services/motion-multiselect.service.ts b/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/services/motion-multiselect.service.ts index 299d2e33f2..c1c51148f5 100644 --- a/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/services/motion-multiselect.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/components/motion-multiselect/services/motion-multiselect.service.ts @@ -19,20 +19,20 @@ import { AGENDA_LIST_ITEM_MINIMAL_SUBSCRIPTION, getAgendaListMinimalSubscriptionConfig } from '../../../../agenda/agenda.subscription'; -import { AgendaItemControllerService } from '../../../../agenda/services'; +import { AgendaItemControllerService } from '../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; import { getParticipantMinimalSubscriptionConfig, PARTICIPANT_LIST_SUBSCRIPTION_MINIMAL } from '../../../../participants/participants.subscription'; -import { ParticipantControllerService } from '../../../../participants/services/common/participant-controller.service'; -import { MotionCategoryControllerService } from '../../../modules/categories/services'; -import { MotionBlockControllerService } from '../../../modules/motion-blocks/services'; -import { PersonalNoteControllerService } from '../../../modules/personal-notes/services'; -import { MotionSubmitterControllerService } from '../../../modules/submitters/services'; -import { TagControllerService } from '../../../modules/tags/services'; -import { MotionWorkflowControllerService } from '../../../modules/workflows/services'; -import { MotionControllerService } from '../../../services/common/motion-controller.service'; -import { ViewMotion } from '../../../view-models'; +import { ParticipantControllerService } from '../../../../participants/services/common/participant-controller.service/participant-controller.service'; +import { MotionCategoryControllerService } from '../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionBlockControllerService } from '../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; +import { PersonalNoteControllerService } from '../../../modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service'; +import { MotionSubmitterControllerService } from '../../../modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service'; +import { TagControllerService } from '../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { MotionWorkflowControllerService } from '../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; +import { MotionControllerService } from '../../../services/common/motion-controller.service/motion-controller.service'; +import { ViewMotion } from '../../../view-models/view-motion'; @Service() export class MotionMultiselectService { diff --git a/client/src/app/site/pages/meetings/pages/motions/definitions/recommendation-type-names.ts b/client/src/app/site/pages/meetings/pages/motions/definitions/recommendation-type-names.ts index 3cff3a6948..63ca105881 100644 --- a/client/src/app/site/pages/meetings/pages/motions/definitions/recommendation-type-names.ts +++ b/client/src/app/site/pages/meetings/pages/motions/definitions/recommendation-type-names.ts @@ -1,6 +1,7 @@ import { ModificationType } from '@app/domain/models/motions/motions.constants'; -import { ViewMotionChangeRecommendation, ViewUnifiedChange } from '../modules'; +import { ViewMotionChangeRecommendation } from '../modules/change-recommendations/view-models/view-motion-change-recommendation'; +import { ViewUnifiedChange } from '../modules/change-recommendations/view-models/view-unified-change'; /** * Gets the name of the modification type diff --git a/client/src/app/site/pages/meetings/pages/motions/index.ts b/client/src/app/site/pages/meetings/pages/motions/index.ts index e584f4a97a..f958b46900 100644 --- a/client/src/app/site/pages/meetings/pages/motions/index.ts +++ b/client/src/app/site/pages/meetings/pages/motions/index.ts @@ -1,5 +1,4 @@ export * from './definitions'; export * from './modules'; -export * from './motions.config'; export * from './motions.module'; export * from './view-models'; diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/categories/services/motion-category-controller.service/motion-category-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/categories/services/motion-category-controller.service/motion-category-controller.service.ts index 2bffdc5115..8162fc428d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/categories/services/motion-category-controller.service/motion-category-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/categories/services/motion-category-controller.service/motion-category-controller.service.ts @@ -3,26 +3,25 @@ import { Ids } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCategory } from '@app/domain/models/motions/motion-category'; import { Action } from '@app/gateways/actions'; -import { MotionCategoryRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionCategoryRepositoryService } from '@app/gateways/repositories/motions/motion-category-repository.service'; import { TreeIdNode } from '@app/infrastructure/definitions/tree'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { TreeService } from '@app/ui/modules/sorting/modules/sorting-tree/services'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewMotionCategory } from '../../view-models'; +import { ViewMotionCategory } from '../../view-models/view-motion-category'; @Service() export class MotionCategoryControllerService extends BaseMeetingControllerService { private readonly _currentCategoriesSubject = new BehaviorSubject([]); - protected override repo: MotionCategoryRepositoryService; + protected repo: MotionCategoryRepositoryService = inject(MotionCategoryRepositoryService); private treeService = inject(TreeService); + public baseModelCtor = MotionCategory; + public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionCategoryRepositoryService); - super(controllerServiceCollector, MotionCategory, repo); + super(); this.repo .getViewModelListObservable() .subscribe(categories => this._currentCategoriesSubject.next(this.createCategoriesTree(categories))); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category.ts b/client/src/app/site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category.ts index 1d62964a43..faf7fa8086 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/categories/view-models/view-motion-category.ts @@ -2,7 +2,7 @@ import { MotionCategory } from '@app/domain/models/motions/motion-category'; import { BaseViewModel, ViewModelRelations } from '@app/site/base/base-view-model'; import { HasMeeting } from '@app/site/pages/meetings/view-models/has-meeting'; -import { ViewMotion } from '../../../view-models'; +import { ViewMotion } from '../../../view-models/view-motion'; export class ViewMotionCategory extends BaseViewModel { public static COLLECTION = MotionCategory.COLLECTION; diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/line-numbering.service/line-numbering.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/line-numbering.service/line-numbering.service.ts index 0cfb3003eb..5cae3ad0cd 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/line-numbering.service/line-numbering.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/line-numbering.service/line-numbering.service.ts @@ -2,7 +2,7 @@ import { inject, Service } from '@angular/core'; import { djb2hash } from '@app/infrastructure/utils'; import { DiffCompat, LineNumbering, VERSION } from '@openslides/motion-diff'; -import { DiffCache } from '../../../../definitions'; +import { DiffCache } from '../../../../definitions/cache'; import { DIFF_VERSION } from '../diff-factory.service'; /** diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service.ts index a036d10d0d..89eb213c0b 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service.ts @@ -3,32 +3,28 @@ import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { MotionChangeRecommendation } from '@app/domain/models/motions/motion-change-recommendation'; import { ChangeRecoMode, ModificationType } from '@app/domain/models/motions/motions.constants'; -import { MotionChangeRecommendationRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionChangeRecommendationRepositoryService } from '@app/gateways/repositories/motions/motion-change-recommendation-repository.service'; import { viewModelListEqual } from '@app/infrastructure/utils'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { VERSION as CURRENT_DIFF_VERSION } from '@openslides/motion-diff'; import { distinctUntilChanged, map, Observable } from 'rxjs'; import { LineRange } from '../../../../definitions'; -import { ViewMotion } from '../../../../view-models'; -import { ViewMotionChangeRecommendation, ViewUnifiedChange } from '../../view-models'; +import { ViewMotion } from '../../../../view-models/view-motion'; +import { ViewMotionChangeRecommendation } from '../../view-models/view-motion-change-recommendation'; +import { ViewUnifiedChange } from '../../view-models/view-unified-change'; import { DiffServiceFactory } from '../diff-factory.service'; -import { MotionDiffService } from '../motion-diff.service'; +import { MotionDiffService } from '../motion-diff.service/motion-diff.service'; @Service() export class MotionChangeRecommendationControllerService extends BaseMeetingControllerService< ViewMotionChangeRecommendation, MotionChangeRecommendation > { - protected override repo: MotionChangeRecommendationRepositoryService; + protected repo: MotionChangeRecommendationRepositoryService = inject(MotionChangeRecommendationRepositoryService); private diffServiceFactory = inject(DiffServiceFactory); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionChangeRecommendationRepositoryService); - super(controllerServiceCollector, MotionChangeRecommendation, repo); - } + public baseModelCtor = MotionChangeRecommendation; public create(changeRecommendation: Partial, firstLine = 1): Promise { return this.repo.create(changeRecommendation, firstLine); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-diff.service/motion-diff.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-diff.service/motion-diff.service.ts index bb70ab8bd9..2b67de1928 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-diff.service/motion-diff.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/change-recommendations/services/motion-diff.service/motion-diff.service.ts @@ -4,10 +4,11 @@ import { replaceHtmlEntities } from '@app/infrastructure/utils/dom-helpers'; import { TranslateService } from '@ngx-translate/core'; import { DiffCompat, HtmlDiff, VERSION } from '@openslides/motion-diff'; -import { DiffCache, DiffLinesInParagraph, ExtractedContent, LineRange } from '../../../../definitions'; -import { ViewUnifiedChange } from '../../view-models'; +import { DiffLinesInParagraph, ExtractedContent, LineRange } from '../../../../definitions'; +import { DiffCache } from '../../../../definitions/cache'; +import { ViewUnifiedChange } from '../../view-models/view-unified-change'; import { DIFF_VERSION } from '../diff-factory.service'; -import { LineNumberedString } from '../line-numbering.service'; +import { LineNumberedString } from '../line-numbering.service/line-numbering.service'; /** * Functionality regarding diffing, merging and extracting line ranges. diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-controller.service.ts index b9e21cf557..5661ae8cce 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-controller.service.ts @@ -1,21 +1,16 @@ import { inject, Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionComment } from '@app/domain/models/motions/motion-comment'; -import { MotionCommentRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionCommentRepositoryService } from '@app/gateways/repositories/motions/motion-comments'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewMotionComment } from '../view-models'; +import { ViewMotionComment } from '../view-models/view-motion-comment'; @Service() export class MotionCommentControllerService extends BaseMeetingControllerService { - protected override repo: MotionCommentRepositoryService; + protected repo: MotionCommentRepositoryService = inject(MotionCommentRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionCommentRepositoryService); - super(controllerServiceCollector, MotionComment, repo); - } + public baseModelCtor = MotionComment; public create(comment: Partial): Promise { return this.repo.create(comment); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-section-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-section-controller.service.ts index cd492bf8b3..040057a00c 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-section-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/comments/services/motion-comment-section-controller.service.ts @@ -1,24 +1,19 @@ import { inject, Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionCommentSection } from '@app/domain/models/motions/motion-comment-section'; -import { MotionCommentSectionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionCommentSectionRepositoryService } from '@app/gateways/repositories/motions/motion-comments'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewMotionCommentSection } from '../view-models'; +import { ViewMotionCommentSection } from '../view-models/view-motion-comment-section'; @Service() export class MotionCommentSectionControllerService extends BaseMeetingControllerService< ViewMotionCommentSection, MotionCommentSection > { - protected override repo: MotionCommentSectionRepositoryService; + protected repo: MotionCommentSectionRepositoryService = inject(MotionCommentSectionRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionCommentSectionRepositoryService); - super(controllerServiceCollector, MotionCommentSection, repo); - } + public baseModelCtor = MotionCommentSection; public create(partialModel: Partial): Promise { return this.repo.create(partialModel); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/editors/services/motion-editor-controller/motion-editor-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/editors/services/motion-editor-controller/motion-editor-controller.service.ts index 2669174193..32e4756332 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/editors/services/motion-editor-controller/motion-editor-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/editors/services/motion-editor-controller/motion-editor-controller.service.ts @@ -1,21 +1,16 @@ import { inject, Service } from '@angular/core'; import { MotionEditor } from '@app/domain/models/motions/motion-editor'; -import { MotionEditorRepositoryService } from '@app/gateways/repositories/motions'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { UserControllerService } from '@app/site/services/user-controller.service'; +import { MotionEditorRepositoryService } from '@app/gateways/repositories/motions/motion-editor-repository'; import { BaseMotionMeetingUserControllerService } from '../../../util'; -import { ViewMotionEditor } from '../../view-models'; +import { ViewMotionEditor } from '../../view-models/view-motion-editor'; @Service() export class MotionEditorControllerService extends BaseMotionMeetingUserControllerService< ViewMotionEditor, MotionEditor > { - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionEditorRepositoryService); - const userRepo = inject(UserControllerService); - super(controllerServiceCollector, MotionEditor, repo, userRepo); - } + protected repo = inject(MotionEditorRepositoryService); + + public baseModelCtor = MotionEditor; } diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service.ts index 57ba1c6908..fd78574148 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service.ts @@ -1,23 +1,18 @@ import { inject, Service } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { MotionBlock } from '@app/domain/models/motions/motion-block'; -import { MotionBlockRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionBlockRepositoryService } from '@app/gateways/repositories/motions/motion-block-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; -import { ViewMotionBlock } from '../../view-models'; +import { ViewMotionBlock } from '../../view-models/view-motion-block'; @Service() export class MotionBlockControllerService extends BaseMeetingControllerService { - protected override repo: MotionBlockRepositoryService; + protected repo: MotionBlockRepositoryService = inject(MotionBlockRepositoryService); private motionRepo = inject(MotionControllerService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionBlockRepositoryService); - super(controllerServiceCollector, MotionBlock, repo); - } + public baseModelCtor = MotionBlock; public create(...blocks: Partial[]): Promise { return this.repo.create(...blocks); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block.ts index 0429fbc514..cde4f17438 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-blocks/view-models/view-motion-block.ts @@ -4,8 +4,8 @@ import { ViewModelRelations } from '@app/site/base/base-view-model'; import { MotionBlock } from '../../../../../../../../domain/models/motions/motion-block'; import { BaseProjectableViewModel } from '../../../../../view-models/base-projectable-model'; import { HasMeeting } from '../../../../../view-models/has-meeting'; -import { HasAgendaItem } from '../../../../agenda'; -import { HasListOfSpeakers } from '../../../../agenda/modules/list-of-speakers'; +import { HasListOfSpeakers } from '../../../../agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; +import { HasAgendaItem } from '../../../../agenda/view-models/has-agenda-item'; import { ViewMotion } from '../../../view-models/view-motion'; export class ViewMotionBlock extends BaseProjectableViewModel { diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-detail-content/motion-poll-detail-content.component.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-detail-content/motion-poll-detail-content.component.ts index e3ef2952f9..d5cbce0ad3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-detail-content/motion-poll-detail-content.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-detail-content/motion-poll-detail-content.component.ts @@ -10,7 +10,7 @@ import { ThemeService } from '@app/site/services/theme.service'; import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { combineLatestWith, map } from 'rxjs'; -import { MotionPollService } from '../../services'; +import { MotionPollService } from '../../services/motion-poll.service/motion-poll.service'; const CHART_DATA_SUBSCRIPTION_NAME = `chart_data_subscription`; diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-dialog/motion-poll-dialog.component.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-dialog/motion-poll-dialog.component.ts index c50561dede..b5b754b615 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-dialog/motion-poll-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-dialog/motion-poll-dialog.component.ts @@ -7,7 +7,7 @@ import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { ViewPoll } from '@app/site/pages/meetings/pages/polls'; import { _ } from '@ngx-translate/core'; -import { MotionPollService } from '../../services'; +import { MotionPollService } from '../../services/motion-poll.service/motion-poll.service'; export const MotionPollMethodsVerbose = { YN: _(`Yes/No`), diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-vote/motion-poll-vote.component.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-vote/motion-poll-vote.component.ts index 2f9cbb4c01..80ecf535c7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-vote/motion-poll-vote.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll-vote/motion-poll-vote.component.ts @@ -9,7 +9,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; import { PromptService } from '@app/ui/modules/prompt-dialog'; -import { ViewOption } from '../../../../../polls'; +import { ViewOption } from '../../../../../polls/view-models/view-option'; @Component({ selector: `os-motion-poll-vote`, diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll/motion-poll.component.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll/motion-poll.component.ts index b173f43b9d..03bbb0f1d3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll/motion-poll.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/components/motion-poll/motion-poll.component.ts @@ -7,8 +7,8 @@ import { OperatorService } from '@app/site/services/operator.service'; import { TranslateService } from '@ngx-translate/core'; import { VotingPrivacyWarningDialogService } from '../../../../../../modules/poll/modules/voting-privacy-dialog/services/voting-privacy-warning-dialog.service'; -import { ViewPoll } from '../../../../../polls'; -import { MotionPollService } from '../../services'; +import { ViewPoll } from '../../../../../polls/view-models/view-poll'; +import { MotionPollService } from '../../services/motion-poll.service/motion-poll.service'; import { MotionPollPdfService } from '../../services/motion-poll-pdf.service/motion-poll-pdf.service'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/motion-poll.module.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/motion-poll.module.ts index a7da42b322..ed9abe7d54 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/motion-poll.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/motion-poll.module.ts @@ -32,7 +32,7 @@ import { MotionPollDialogComponent } from './components/motion-poll-dialog/motio import { MotionPollFormComponent } from './components/motion-poll-form/motion-poll-form.component'; import { MotionPollMetaInformationComponent } from './components/motion-poll-meta-information/motion-poll-meta-information.component'; import { MotionPollVoteComponent } from './components/motion-poll-vote/motion-poll-vote.component'; -import { MotionPollService } from './services'; +import { MotionPollService } from './services/motion-poll.service/motion-poll.service'; import { MotionPollServiceModule } from './services/motion-poll-service.module'; const DECLARATIONS = [ diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll-pdf.service/motion-poll-pdf.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll-pdf.service/motion-poll-pdf.service.ts index 024003ce27..e60f98e90c 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll-pdf.service/motion-poll-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll-pdf.service/motion-poll-pdf.service.ts @@ -4,8 +4,8 @@ import { ViewPoll } from '@app/site/pages/meetings/pages/polls'; import { TranslateService } from '@ngx-translate/core'; import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; -import { ViewMotion } from '../../../../view-models'; -import { MotionPollService } from '../motion-poll.service'; +import { ViewMotion } from '../../../../view-models/view-motion'; +import { MotionPollService } from '../motion-poll.service/motion-poll.service'; @Service() export class MotionPollPdfService extends BasePollPdfService { diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll.service/motion-poll.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll.service/motion-poll.service.ts index 47e24a4df9..637e15e0e7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll.service/motion-poll.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/motion-poll/services/motion-poll.service/motion-poll.service.ts @@ -20,7 +20,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { TranslateService } from '@ngx-translate/core'; import { map, merge, Observable, of } from 'rxjs'; -import { MotionPollControllerService } from '../motion-poll-controller.service'; +import { MotionPollControllerService } from '../motion-poll-controller.service/motion-poll-controller.service'; export interface TableDataEntryCreationInput { poll: PollData; diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service.ts index 95c16b67e1..49cc92161d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service.ts @@ -6,20 +6,16 @@ import { Action } from '@app/gateways/actions'; import { PersonalNoteRepositoryService } from '@app/gateways/repositories/motions/personal-note-repository.service'; import { BaseViewModel } from '@app/site/base/base-view-model'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { map, Observable } from 'rxjs'; -import { HasPersonalNote, ViewPersonalNote } from '../../view-models'; +import { HasPersonalNote } from '../../view-models/has-personal-note'; +import { ViewPersonalNote } from '../../view-models/view-personal-note'; @Service() export class PersonalNoteControllerService extends BaseMeetingControllerService { - protected override repo: PersonalNoteRepositoryService; + protected repo: PersonalNoteRepositoryService = inject(PersonalNoteRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(PersonalNoteRepositoryService); - super(controllerServiceCollector, PersonalNote, repo); - } + public baseModelCtor = PersonalNote; public getPersonalNoteFor(contentObjectId: Fqid): Observable { return this.getViewModelListObservable().pipe( diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/states/services/motion-state-controller.service/motion-state-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/states/services/motion-state-controller.service/motion-state-controller.service.ts index 1617fc45d5..93c8b10501 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/states/services/motion-state-controller.service/motion-state-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/states/services/motion-state-controller.service/motion-state-controller.service.ts @@ -3,21 +3,16 @@ import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { MotionState } from '@app/domain/models/motions/motion-state'; import { Action } from '@app/gateways/actions'; -import { MotionStateRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionStateRepositoryService } from '@app/gateways/repositories/motions/motion-state-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewMotionState } from '../../view-models'; +import { ViewMotionState } from '../../view-models/view-motion-state'; @Service() export class MotionStateControllerService extends BaseMeetingControllerService { - protected override repo: MotionStateRepositoryService; + protected repo: MotionStateRepositoryService = inject(MotionStateRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionStateRepositoryService); - super(controllerServiceCollector, MotionState, repo); - } + public baseModelCtor = MotionState; public create(state: Partial): Promise { return this.repo.create(state); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service.ts index 76a55a02b4..2867d03b97 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service.ts @@ -1,21 +1,16 @@ import { inject, Service } from '@angular/core'; import { MotionSubmitter } from '@app/domain/models/motions/motion-submitter'; -import { MotionSubmitterRepositoryService } from '@app/gateways/repositories/motions'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { UserControllerService } from '@app/site/services/user-controller.service'; +import { MotionSubmitterRepositoryService } from '@app/gateways/repositories/motions/motion-submitter-repository.service'; import { BaseMotionMeetingUserControllerService } from '../../../util'; -import { ViewMotionSubmitter } from '../../view-models'; +import { ViewMotionSubmitter } from '../../view-models/view-motion-submitter'; @Service() export class MotionSubmitterControllerService extends BaseMotionMeetingUserControllerService< ViewMotionSubmitter, MotionSubmitter > { - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionSubmitterRepositoryService); - const userRepo = inject(UserControllerService); - super(controllerServiceCollector, MotionSubmitter, repo, userRepo); - } + protected repo = inject(MotionSubmitterRepositoryService); + + public baseModelCtor = MotionSubmitter; } diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/supporters/services/motion-supporter-controller/motion-supporter-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/supporters/services/motion-supporter-controller/motion-supporter-controller.service.ts index 800b943057..2e9a5e0ef7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/supporters/services/motion-supporter-controller/motion-supporter-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/supporters/services/motion-supporter-controller/motion-supporter-controller.service.ts @@ -4,10 +4,9 @@ import { MotionSupporter } from '@app/domain/models/motions/motion-supporter'; import { Action } from '@app/gateways/actions'; import { MotionSupporterRepositoryService } from '@app/gateways/repositories/motions/motion-supporter'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { UserControllerService } from '@app/site/services/user-controller.service'; -import { ViewMotion } from '../../../../view-models'; +import { ViewMotion } from '../../../../view-models/view-motion'; import { ViewMotionSupporter } from '../../view-models/view-motion-supporter'; @Service() @@ -15,14 +14,10 @@ export class MotionSupporterControllerService extends BaseMeetingControllerServi ViewMotionSupporter, MotionSupporter > { - protected override repo: MotionSupporterRepositoryService; + protected repo: MotionSupporterRepositoryService = inject(MotionSupporterRepositoryService); private userRepo = inject(UserControllerService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionSupporterRepositoryService); - super(controllerServiceCollector, MotionSupporter, repo); - } + public baseModelCtor = MotionSupporter; public create(motion: ViewMotion, ...users: Identifiable[]): Action { const meetingUsers = users.map(user => this.userRepo.getViewModel(user.id)?.getMeetingUser(motion.meeting_id)); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/tags/services/tag-controller.service/tag-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/tags/services/tag-controller.service/tag-controller.service.ts index 3a056d7f3d..e8f5bbf14f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/tags/services/tag-controller.service/tag-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/tags/services/tag-controller.service/tag-controller.service.ts @@ -1,22 +1,18 @@ -import { Injectable } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; import { Tag } from '@app/domain/models/tag/tag'; import { TagRepositoryService } from '@app/gateways/repositories/tags/tag-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewTag } from '../../view-models'; +import { ViewTag } from '../../view-models/view-tag'; @Injectable({ providedIn: `root` }) export class TagControllerService extends BaseMeetingControllerService { - public constructor( - controllerServiceCollector: MeetingControllerServiceCollectorService, - protected override repo: TagRepositoryService - ) { - super(controllerServiceCollector, Tag, repo); - } + protected repo: TagRepositoryService = inject(TagRepositoryService); + + public baseModelCtor = Tag; public create(...tags: Partial[]): Promise { return this.repo.create(...tags); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/util.ts b/client/src/app/site/pages/meetings/pages/motions/modules/util.ts index f9519de3c0..ce48bed4fd 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/util.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/util.ts @@ -1,26 +1,21 @@ +import { Directive, inject } from '@angular/core'; import { Identifiable } from '@app/domain/interfaces'; -import { BaseModel, ModelConstructor } from '@app/domain/models/base/base-model'; +import { BaseModel } from '@app/domain/models/base/base-model'; import { Action } from '@app/gateways/actions'; import { BaseMotionMeetingUserRepositoryService } from '@app/gateways/repositories/motions/util'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { UserControllerService } from '@app/site/services/user-controller.service'; import { BaseHasMeetingUserViewModel } from '../../../base/base-has-meeting-user-view-model'; -import { ViewMotion } from '../view-models'; +import { ViewMotion } from '../view-models/view-motion'; -export class BaseMotionMeetingUserControllerService< +@Directive() +export abstract class BaseMotionMeetingUserControllerService< V extends BaseHasMeetingUserViewModel, M extends BaseModel > extends BaseMeetingControllerService { - public constructor( - controllerServiceCollector: MeetingControllerServiceCollectorService, - constructor: ModelConstructor, - protected override repo: BaseMotionMeetingUserRepositoryService, - private userRepo: UserControllerService - ) { - super(controllerServiceCollector, constructor, repo); - } + protected abstract override repo: BaseMotionMeetingUserRepositoryService; + private userRepo: UserControllerService = inject(UserControllerService); public create(motion: ViewMotion, ...users: Identifiable[]): Action { const meetingUsers = users.map(user => this.userRepo.getViewModel(user.id)?.getMeetingUser(motion.meeting_id)); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service.ts index cacd944f61..2a1383f001 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service.ts @@ -3,23 +3,18 @@ import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { MotionWorkflow } from '@app/domain/models/motions/motion-workflow'; import { Action } from '@app/gateways/actions'; -import { MotionWorkflowRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionWorkflowRepositoryService } from '@app/gateways/repositories/motions/motion-workflow-repository.service'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { ViewMotion } from '../../../../view-models'; -import { ViewMotionState } from '../../../states'; -import { ViewMotionWorkflow } from '../../view-models'; +import { ViewMotion } from '../../../../view-models/view-motion'; +import { ViewMotionState } from '../../../states/view-models/view-motion-state'; +import { ViewMotionWorkflow } from '../../view-models/view-motion-workflow'; @Service() export class MotionWorkflowControllerService extends BaseMeetingControllerService { - protected override repo: MotionWorkflowRepositoryService; + protected repo: MotionWorkflowRepositoryService = inject(MotionWorkflowRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionWorkflowRepositoryService); - super(controllerServiceCollector, MotionWorkflow, repo); - } + public baseModelCtor = MotionWorkflow; public create(workflow: Partial): Promise { return this.repo.create(workflow); diff --git a/client/src/app/site/pages/meetings/pages/motions/modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service.ts index fa351430fb..e54b913a5e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service.ts @@ -1,21 +1,16 @@ import { inject, Service } from '@angular/core'; import { MotionWorkingGroupSpeaker } from '@app/domain/models/motions/motion-working-group-speaker'; -import { MotionWorkingGroupSpeakerRepositoryService } from '@app/gateways/repositories/motions'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; -import { UserControllerService } from '@app/site/services/user-controller.service'; +import { MotionWorkingGroupSpeakerRepositoryService } from '@app/gateways/repositories/motions/motion-working-group-speaker-repository'; import { BaseMotionMeetingUserControllerService } from '../../../util'; -import { ViewMotionWorkingGroupSpeaker } from '../../view-models'; +import { ViewMotionWorkingGroupSpeaker } from '../../view-models/view-motion-working-group-speaker'; @Service() export class MotionWorkingGroupSpeakerControllerService extends BaseMotionMeetingUserControllerService< ViewMotionWorkingGroupSpeaker, MotionWorkingGroupSpeaker > { - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionWorkingGroupSpeakerRepositoryService); - const userRepo = inject(UserControllerService); - super(controllerServiceCollector, MotionWorkingGroupSpeaker, repo, userRepo); - } + protected repo = inject(MotionWorkingGroupSpeakerRepositoryService); + + public baseModelCtor = MotionWorkingGroupSpeaker; } diff --git a/client/src/app/site/pages/meetings/pages/motions/motions.config.ts b/client/src/app/site/pages/meetings/pages/motions/motions.config.ts index 8a5bdfc181..145490eedb 100644 --- a/client/src/app/site/pages/meetings/pages/motions/motions.config.ts +++ b/client/src/app/site/pages/meetings/pages/motions/motions.config.ts @@ -13,40 +13,38 @@ import { MotionWorkflow } from '@app/domain/models/motions/motion-workflow'; import { MotionWorkingGroupSpeaker } from '@app/domain/models/motions/motion-working-group-speaker'; import { PersonalNote } from '@app/domain/models/motions/personal-note'; import { Tag } from '@app/domain/models/tag/tag'; +import { MotionBlockRepositoryService } from '@app/gateways/repositories/motions/motion-block-repository.service'; +import { MotionCategoryRepositoryService } from '@app/gateways/repositories/motions/motion-category-repository.service'; +import { MotionChangeRecommendationRepositoryService } from '@app/gateways/repositories/motions/motion-change-recommendation-repository.service'; import { - MotionBlockRepositoryService, - MotionCategoryRepositoryService, - MotionChangeRecommendationRepositoryService, MotionCommentRepositoryService, - MotionCommentSectionRepositoryService, - MotionEditorRepositoryService, - MotionRepositoryService, - MotionStateRepositoryService, - MotionSubmitterRepositoryService, - MotionWorkflowRepositoryService, - MotionWorkingGroupSpeakerRepositoryService -} from '@app/gateways/repositories/motions'; + MotionCommentSectionRepositoryService +} from '@app/gateways/repositories/motions/motion-comments'; +import { MotionEditorRepositoryService } from '@app/gateways/repositories/motions/motion-editor-repository'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; +import { MotionStateRepositoryService } from '@app/gateways/repositories/motions/motion-state-repository.service'; +import { MotionSubmitterRepositoryService } from '@app/gateways/repositories/motions/motion-submitter-repository.service'; import { MotionSupporterRepositoryService } from '@app/gateways/repositories/motions/motion-supporter'; +import { MotionWorkflowRepositoryService } from '@app/gateways/repositories/motions/motion-workflow-repository.service'; +import { MotionWorkingGroupSpeakerRepositoryService } from '@app/gateways/repositories/motions/motion-working-group-speaker-repository'; import { PersonalNoteRepositoryService } from '@app/gateways/repositories/motions/personal-note-repository.service'; import { TagRepositoryService } from '@app/gateways/repositories/tags'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; -import { - ViewMotionBlock, - ViewMotionCategory, - ViewMotionChangeRecommendation, - ViewMotionComment, - ViewMotionCommentSection, - ViewMotionState, - ViewMotionSubmitter, - ViewMotionWorkflow, - ViewPersonalNote, - ViewTag -} from './modules'; -import { ViewMotionEditor } from './modules/editors'; -import { ViewMotionSupporter } from './modules/supporters'; -import { ViewMotionWorkingGroupSpeaker } from './modules/working-group-speakers'; -import { ViewMotion } from './view-models'; +import { ViewMotionCategory } from './modules/categories/view-models/view-motion-category'; +import { ViewMotionChangeRecommendation } from './modules/change-recommendations/view-models/view-motion-change-recommendation'; +import { ViewMotionComment } from './modules/comments/view-models/view-motion-comment'; +import { ViewMotionCommentSection } from './modules/comments/view-models/view-motion-comment-section'; +import { ViewMotionEditor } from './modules/editors/view-models/view-motion-editor'; +import { ViewMotionBlock } from './modules/motion-blocks/view-models/view-motion-block'; +import { ViewPersonalNote } from './modules/personal-notes/view-models/view-personal-note'; +import { ViewMotionState } from './modules/states/view-models/view-motion-state'; +import { ViewMotionSubmitter } from './modules/submitters/view-models/view-motion-submitter'; +import { ViewMotionSupporter } from './modules/supporters/view-models/view-motion-supporter'; +import { ViewTag } from './modules/tags/view-models/view-tag'; +import { ViewMotionWorkflow } from './modules/workflows/view-models/view-motion-workflow'; +import { ViewMotionWorkingGroupSpeaker } from './modules/working-group-speakers/view-models/view-motion-working-group-speaker'; +import { ViewMotion } from './view-models/view-motion'; export const MotionsAppConfig: AppConfig = { name: `motions`, diff --git a/client/src/app/site/pages/meetings/pages/motions/motions.subscription.ts b/client/src/app/site/pages/meetings/pages/motions/motions.subscription.ts index 1e1c6e13e8..7f53fc0670 100644 --- a/client/src/app/site/pages/meetings/pages/motions/motions.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/motions/motions.subscription.ts @@ -6,8 +6,8 @@ import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { listOfSpeakersSpeakerCountSubscription } from '../agenda/agenda.subscription'; import { pollModelRequest } from '../polls/polls.subscription'; -import { ViewMotionWorkflow } from './modules'; -import { ViewMotion } from './view-models'; +import { ViewMotionWorkflow } from './modules/workflows/view-models/view-motion-workflow'; +import { ViewMotion } from './view-models/view-motion'; export const AMENDMENT_LIST_SUBSCRIPTION = `amendment_list`; export const MOTION_ADDITIONAL_DETAIL_SUBSCRIPTION = `motion_additional_detail`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/amendments/components/amendment-list/amendment-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/amendments/components/amendment-list/amendment-list.component.ts index 31d5d7605d..4077cd8780 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/amendments/components/amendment-list/amendment-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/amendments/components/amendment-list/amendment-list.component.ts @@ -16,7 +16,7 @@ import { MotionPdfExportService } from '../../../../services/export/motion-pdf-e import { AmendmentListFilterService } from '../../../../services/list/amendment-list-filter.service/amendment-list-filter.service'; import { AmendmentListSortService } from '../../../../services/list/amendment-list-sort.service/amendment-list-sort.service'; import { MotionListSortService } from '../../../../services/list/motion-list-sort.service/motion-list-sort.service'; -import { ViewMotion } from '../../../../view-models'; +import { ViewMotion } from '../../../../view-models/view-motion'; const AMENDMENT_LIST_STORAGE_INDEX = `amendment_list`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail-sort/category-detail-sort.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail-sort/category-detail-sort.component.ts index 63506f1d70..c93f83093e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail-sort/category-detail-sort.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail-sort/category-detail-sort.component.ts @@ -10,8 +10,8 @@ import { SortingListComponent } from '@app/ui/modules/sorting/modules/sorting-li import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; /** * View for rearranging and renumbering the motions of a category. The {@link onNumberMotions} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail/category-detail.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail/category-detail.component.ts index 1a3f24dea5..ee54b604e0 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail/category-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail/category-detail.component.ts @@ -12,8 +12,8 @@ import { OperatorService } from '@app/site/services/operator.service'; import { PromptService } from '@app/ui/modules/prompt-dialog'; import { TranslateService } from '@ngx-translate/core'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; /** * Detail component to display one motion block diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list-sort/category-list-sort.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list-sort/category-list-sort.component.ts index 0f86c00204..7b1e8ac7cc 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list-sort/category-list-sort.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list-sort/category-list-sort.component.ts @@ -7,7 +7,7 @@ import { SortingTreeComponent } from '@app/ui/modules/sorting/modules/sorting-tr import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; @Component({ selector: `os-category-list-sort`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list/category-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list/category-list.component.ts index 08cd1126f0..9b193ce942 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list/category-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-list/category-list.component.ts @@ -8,8 +8,8 @@ import { OperatorService } from '@app/site/services/operator.service'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { ViewMotionCategory } from '../../../../modules'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { ViewMotionCategory } from '../../../../modules/categories/view-models/view-motion-category'; const CATEGORY_LIST_STORAGE_INDEX = `category_list`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-list/comment-section-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-list/comment-section-list.component.ts index efd67bef39..95fc81a2c3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-list/comment-section-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-list/comment-section-list.component.ts @@ -13,7 +13,7 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { MotionCommentSectionControllerService } from '../../../../modules/comments/services'; +import { MotionCommentSectionControllerService } from '../../../../modules/comments/services/motion-comment-section-controller.service'; @Component({ selector: `os-comment-section-list`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-sort/comment-section-sort.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-sort/comment-section-sort.component.ts index a42e7c7117..c08082ee4f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-sort/comment-section-sort.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/comments/components/comment-section-sort/comment-section-sort.component.ts @@ -3,7 +3,7 @@ import { BaseComponent } from '@app/site/base/base.component'; import { ViewMotionCommentSection } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; -import { MotionCommentSectionControllerService } from '../../../../modules/comments/services'; +import { MotionCommentSectionControllerService } from '../../../../modules/comments/services/motion-comment-section-controller.service'; @Component({ selector: `os-comment-section-sort`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-detail/motion-block-detail.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-detail/motion-block-detail.component.ts index 84dfae5e39..ab7e8b20d8 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-detail/motion-block-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-detail/motion-block-detail.component.ts @@ -14,9 +14,9 @@ import { map, Observable } from 'rxjs'; import { AgendaItemControllerService } from '../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; import { ProjectorControllerService } from '../../../../../projectors/services/projector-controller.service'; -import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services'; +import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; -import { MotionBlockDetailFilterListService } from '../../services/motion-block-detail-filter-list.service'; +import { MotionBlockDetailFilterListService } from '../../services/motion-block-detail-filter-list.service/motion-block-detail-filter-list.service'; import { MotionBlockEditDialogComponent } from '../motion-block-edit-dialog/components/motion-block-edit-dialog/motion-block-edit-dialog.component'; import { MotionBlockEditDialogService } from '../motion-block-edit-dialog/services/motion-block-edit-dialog.service'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.ts index b4943636cf..895e235e62 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/components/motion-block-list/motion-block-list.component.ts @@ -8,9 +8,9 @@ import { TranslateService } from '@ngx-translate/core'; import { Observable, of } from 'rxjs'; import { AgendaItemControllerService } from '../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; -import { ViewMotionBlock } from '../../../../modules'; -import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services'; -import { MotionBlockSortService } from '../../services/motion-block-sort.service'; +import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; +import { ViewMotionBlock } from '../../../../modules/motion-blocks/view-models/view-motion-block'; +import { MotionBlockSortService } from '../../services/motion-block-sort.service/motion-block-sort.service'; import { MotionBlockCreateDialogService } from '../motion-block-create-dialog/services/motion-block-create-dialog.service'; const MOTION_BLOCK_LIST_STORAGE_INDEX = `motion_blocks`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-detail-filter-list.service/motion-block-detail-filter-list.service.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-detail-filter-list.service/motion-block-detail-filter-list.service.ts index e346acc3f6..e73ebb75de 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-detail-filter-list.service/motion-block-detail-filter-list.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-detail-filter-list.service/motion-block-detail-filter-list.service.ts @@ -2,7 +2,7 @@ import { inject, Service } from '@angular/core'; import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; -import { MotionListFilterService } from '../../../../services/list/motion-list-filter.service'; +import { MotionListFilterService } from '../../../../services/list/motion-list-filter.service/motion-list-filter.service'; @Service() export class MotionBlockDetailFilterListService extends MotionListFilterService { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-sort.service/motion-block-sort.service.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-sort.service/motion-block-sort.service.ts index 5d7af9eb73..e367661b08 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-sort.service/motion-block-sort.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-blocks/services/motion-block-sort.service/motion-block-sort.service.ts @@ -1,6 +1,6 @@ import { ProviderToken, Service } from '@angular/core'; import { BaseRepository } from '@app/gateways/repositories/base-repository'; -import { MotionBlockRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionBlockRepositoryService } from '@app/gateways/repositories/motions/motion-block-repository.service'; import { BaseSortListService, OsSortingOption } from '@app/site/base/base-sort.service'; import { ViewMotionBlock } from '@app/site/pages/meetings/pages/motions'; import { _ } from '@ngx-translate/core'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.ts index 1729e3dcb1..bf253de9fa 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-call-list/components/motion-call-list/motion-call-list.component.ts @@ -9,11 +9,11 @@ import { import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; -import { TagControllerService } from '../../../../modules/tags/services'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service'; -import { MotionCsvExportService } from '../../../../services/export/motion-csv-export.service'; -import { MotionPdfExportService } from '../../../../services/export/motion-pdf-export.service'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { TagControllerService } from '../../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionCsvExportService } from '../../../../services/export/motion-csv-export.service/motion-csv-export.service'; +import { MotionPdfExportService } from '../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; @Component({ selector: `os-motion-call-list`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-child.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-child.component.ts index 69d2c20254..94bb17f3c9 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-child.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-child.component.ts @@ -4,17 +4,17 @@ import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; import { filter, Observable, Subscription } from 'rxjs'; -import { MotionCategoryControllerService } from '../../../modules/categories/services'; -import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services'; +import { MotionCategoryControllerService } from '../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; import { DiffServiceFactory } from '../../../modules/change-recommendations/services/diff-factory.service'; +import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; import { ViewUnifiedChange } from '../../../modules/change-recommendations/view-models/view-unified-change'; -import { MotionBlockControllerService } from '../../../modules/motion-blocks/services'; -import { TagControllerService } from '../../../modules/tags/services'; -import { AmendmentControllerService } from '../../../services/common/amendment-controller.service'; +import { MotionBlockControllerService } from '../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; +import { TagControllerService } from '../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { AmendmentControllerService } from '../../../services/common/amendment-controller.service/amendment-controller.service'; import { MotionControllerService } from '../../../services/common/motion-controller.service/motion-controller.service'; import { MotionFormatService } from '../../../services/common/motion-format.service/motion-format.service'; import { MotionLineNumberingService } from '../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; -import { MotionDetailViewService } from '../services/motion-detail-view.service'; +import { MotionDetailViewService } from '../services/motion-detail-view.service/motion-detail-view.service'; @Directive() export abstract class BaseMotionDetailChildComponent extends BaseMeetingComponent { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component.ts index a144254501..fa3860bf62 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component.ts @@ -5,7 +5,7 @@ import { isNumberRange } from '@app/infrastructure/utils/validators'; import { ParentErrorStateMatcher } from '@app/ui/modules/search-selector/validators'; import { _ } from '@ngx-translate/core'; -import { LineRange } from '../../../../../../definitions/index'; +import { LineRange } from '../../../../../../definitions'; import { BaseChangeRecommendationData, BaseChangeRecommendationDialogComponent diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts index 7cb08e3423..2864c850e0 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts @@ -37,11 +37,11 @@ import { SortingModule } from '@app/ui/modules/sorting'; import { PipesModule } from '@app/ui/pipes/pipes.module'; import { AttachmentControlModule } from '../../../../modules/meetings-component-collector/attachment-control/attachment-control.module'; -import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector'; +import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector/participant-search-selector.module'; import { AgendaItemCommonServiceModule } from '../../../agenda/services/agenda-item-common-service.module'; import { ParticipantCommonServiceModule } from '../../../participants/services/common/participant-common-service.module'; import { MotionForwardDialogModule } from '../../components/motion-forward-dialog/motion-forward-dialog.module'; -import { MotionPollModule } from '../../modules/motion-poll'; +import { MotionPollModule } from '../../modules/motion-poll/motion-poll.module'; import { MotionsExportModule } from '../../services/export/motions-export.module'; import { MotionsListServiceModule } from '../../services/list/motions-list-service.module'; import { MotionDetailComponent } from './components/motion-detail/motion-detail.component'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts index 579f0a0a60..56beb3ee5b 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts @@ -12,7 +12,7 @@ import { TranslateService } from '@ngx-translate/core'; import { Subscription } from 'rxjs'; import { AmendmentParagraphs } from '../../../../../../../../../../../domain/models/motions/motion'; -import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service'; +import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service/amendment-controller.service'; import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; import { MotionLineNumberingService, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts index 5cedfda789..5117cb804d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts @@ -39,8 +39,8 @@ import { import { ParticipantListSortService } from '../../../../../../../participants/pages/participant-list/services/participant-list-sort/participant-list-sort.service'; import { getParticipantMinimalSubscriptionConfig } from '../../../../../../../participants/participants.subscription'; -import { MotionCategoryControllerService } from '../../../../../../modules/categories/services'; -import { MotionWorkflowControllerService } from '../../../../../../modules/workflows/services'; +import { MotionCategoryControllerService } from '../../../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionWorkflowControllerService } from '../../../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; import { MOTION_DETAIL_SUBSCRIPTION } from '../../../../../../motions.subscription'; import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service/amendment-controller.service'; import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.ts index 2e5b730bd3..de23097aa5 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.ts @@ -5,7 +5,7 @@ import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { map, Observable } from 'rxjs'; import { MotionPollService } from '../../../../../../modules/motion-poll/services/motion-poll.service/motion-poll.service'; -import { MotionPollDialogService } from '../../../../../../modules/motion-poll/services/motion-poll-dialog.service'; +import { MotionPollDialogService } from '../../../../../../modules/motion-poll/services/motion-poll-dialog.service/motion-poll-dialog.service'; @Component({ selector: `os-motion-add-poll-button`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts index 1e1d6daaf2..e443a5fbf5 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts @@ -7,7 +7,7 @@ import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, combineLatest, map, Observable, startWith } from 'rxjs'; import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; -import { ViewMotion } from '../../../../../../view-models'; +import { ViewMotion } from '../../../../../../view-models/view-motion'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; import { MotionContentChangeRecommendationDialogComponentData } from '../../../../modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component'; import { MotionChangeRecommendationDialogService } from '../../../../modules/motion-change-recommendation-dialog/services/motion-change-recommendation-dialog.service'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-delete-dialog/motion-delete-dialog.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-delete-dialog/motion-delete-dialog.component.ts index 827ef3d698..b99cce54b8 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-delete-dialog/motion-delete-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-delete-dialog/motion-delete-dialog.component.ts @@ -3,7 +3,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { TranslatePipe } from '@ngx-translate/core'; -import { ViewMotion } from '../../../../../../view-models'; +import { ViewMotion } from '../../../../../../view-models/view-motion'; interface MotionDeleteDialogData { motion: ViewMotion; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts index dd562731e9..1e3aa657a1 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts @@ -6,8 +6,8 @@ import { ViewUnifiedChange } from '@app/site/pages/meetings/pages/motions/module import { getRecommendationTypeName } from '../../../../../../definitions/recommendation-type-names'; import { ViewUnifiedChangeType } from '../../../../../../modules/change-recommendations/definitions/index'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; -import { ViewMotion } from '../../../../../../view-models'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { ViewMotion } from '../../../../../../view-models/view-motion'; import { ViewMotionAmendedParagraph } from '../../../../../../view-models/view-motion-amended-paragraph'; /** diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts index 1675416375..e111277829 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component.ts @@ -11,7 +11,7 @@ import { } from '@angular/core'; import { Permission } from '@app/domain/definitions/permission'; import { ModificationType } from '@app/domain/models/motions/motions.constants'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { LineRange } from '@app/site/pages/meetings/pages/motions/definitions'; import { ViewUnifiedChange } from '@app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; import { ActiveMeetingIdService } from '@app/site/pages/meetings/services/active-meeting-id.service'; @@ -20,7 +20,7 @@ import { OperatorService } from '@app/site/services/operator.service'; import { filter, firstValueFrom } from 'rxjs'; import { MOTION_DETAIL_SUBSCRIPTION } from '../../../../../../motions.subscription'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; /** * This component displays either the original motion text or the original amendment diff text diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-final-version/motion-final-version.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-final-version/motion-final-version.component.ts index b9ef0ea31f..88db264b31 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-final-version/motion-final-version.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-final-version/motion-final-version.component.ts @@ -6,7 +6,7 @@ import { TranslateService } from '@ngx-translate/core'; import { Subscription } from 'rxjs'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; -import { ModifiedFinalVersionAction } from '../../../../services/motion-detail-view.service'; +import { ModifiedFinalVersionAction } from '../../../../services/motion-detail-view.service/motion-detail-view.service'; @Component({ selector: `os-motion-final-version`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-highlight-form/motion-highlight-form.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-highlight-form/motion-highlight-form.component.ts index a04c8b6c5b..fa5aa38023 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-highlight-form/motion-highlight-form.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-highlight-form/motion-highlight-form.component.ts @@ -12,7 +12,7 @@ import { filter, firstValueFrom } from 'rxjs'; import { verboseChangeRecoMode } from '../../../../../../../../../../../domain/models/motions/motions.constants'; import { ViewUnifiedChange } from '../../../../../../modules/change-recommendations/view-models/view-unified-change'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; -import { ModifiedFinalVersionAction } from '../../../../services/motion-detail-view.service'; +import { ModifiedFinalVersionAction } from '../../../../services/motion-detail-view.service/motion-detail-view.service'; @Component({ selector: `os-motion-highlight-form`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component.ts index 15bea8cdd0..9072de268f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component.ts @@ -15,7 +15,7 @@ import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { BehaviorSubject, filter, firstValueFrom, map, Observable } from 'rxjs'; import { BaseMotionMeetingUserControllerService } from '../../../../../../modules/util'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; type MotionMeetingUser = Selectable & { fqid?: Fqid; user_id?: Id }; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-polls/motion-manage-polls.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-polls/motion-manage-polls.component.ts index c35354a75d..54de8d90b0 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-polls/motion-manage-polls.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-polls/motion-manage-polls.component.ts @@ -1,8 +1,8 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; -import { ViewPoll } from '../../../../../../../polls'; -import { MotionPollDialogService } from '../../../../../../modules/motion-poll/services/motion-poll-dialog.service'; +import { ViewPoll } from '../../../../../../../polls/view-models/view-poll'; +import { MotionPollDialogService } from '../../../../../../modules/motion-poll/services/motion-poll-dialog.service/motion-poll-dialog.service'; @Component({ selector: `os-motion-manage-polls`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-supporters/motion-manage-supporters.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-supporters/motion-manage-supporters.component.ts index d10e0b8581..e14bf1d2ff 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-supporters/motion-manage-supporters.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-supporters/motion-manage-supporters.component.ts @@ -24,11 +24,11 @@ import { CommaSeparatedListingComponent } from '@app/ui/modules/comma-separated- import { SortingListModule } from '@app/ui/modules/sorting/modules'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewMotionSupporter } from '../../../../../../modules/supporters'; -import { MotionSupporterControllerService } from '../../../../../../modules/supporters/services'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; -import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service'; -import { ViewMotion } from '../../../../../../view-models'; +import { MotionSupporterControllerService } from '../../../../../../modules/supporters/services/motion-supporter-controller/motion-supporter-controller.service'; +import { ViewMotionSupporter } from '../../../../../../modules/supporters/view-models/view-motion-supporter'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; +import { ViewMotion } from '../../../../../../view-models/view-motion'; type IdMap = Record; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts index 06530fe90b..baa77b4855 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts @@ -6,8 +6,8 @@ import { OperatorService } from '@app/site/services/operator.service'; import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { fromUnixTime, isDate } from 'date-fns'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; -import { ViewMotion } from '../../../../../../view-models'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { ViewMotion } from '../../../../../../view-models/view-motion'; @Component({ selector: `os-motion-manage-timestamp`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts index cced50039a..27dc4c7470 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts @@ -15,9 +15,9 @@ import { TranslateService } from '@ngx-translate/core'; import { map, Observable, Subscription } from 'rxjs'; import { MotionForwardDialogService } from '../../../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; -import { MotionEditorControllerService } from '../../../../../../modules/editors/services'; -import { MotionSubmitterControllerService } from '../../../../../../modules/submitters/services'; -import { MotionWorkingGroupSpeakerControllerService } from '../../../../../../modules/working-group-speakers/services'; +import { MotionEditorControllerService } from '../../../../../../modules/editors/services/motion-editor-controller/motion-editor-controller.service'; +import { MotionSubmitterControllerService } from '../../../../../../modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service'; +import { MotionWorkingGroupSpeakerControllerService } from '../../../../../../modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service'; import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; import { SearchListDefinition } from '../motion-extension-field/motion-extension-field.component'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts index acc7aea22b..d1aae8b73a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts @@ -38,8 +38,8 @@ import { import { AgendaItemControllerService } from '../../../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; import { MotionForwardDialogService } from '../../../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; -import { MotionChangeRecommendationControllerService } from '../../../../../../modules/change-recommendations/services'; import { DiffServiceFactory } from '../../../../../../modules/change-recommendations/services/diff-factory.service'; +import { MotionChangeRecommendationControllerService } from '../../../../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; import { getMotionOriginDetailSubscriptionConfig, MOTION_DETAIL_SUBSCRIPTION, @@ -47,7 +47,7 @@ import { } from '../../../../../../motions.subscription'; import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service/amendment-controller.service'; import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; -import { MotionLineNumberingService } from '../../../../../../services/common/motion-line-numbering.service'; +import { MotionLineNumberingService } from '../../../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; import { MotionPdfExportService } from '../../../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; import { AmendmentListFilterService } from '../../../../../../services/list/amendment-list-filter.service/amendment-list-filter.service'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/origin-motion-meta-data/origin-motion-meta-data.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/origin-motion-meta-data/origin-motion-meta-data.component.ts index e92d5a94c8..74166be99a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/origin-motion-meta-data/origin-motion-meta-data.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/origin-motion-meta-data/origin-motion-meta-data.component.ts @@ -12,9 +12,9 @@ import { BehaviorSubject, map, Observable } from 'rxjs'; import { ParticipantListSortService } from '../../../../../../../participants/pages/participant-list/services/participant-list-sort/participant-list-sort.service'; import { MotionForwardDialogService } from '../../../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; -import { MotionEditorControllerService } from '../../../../../../modules/editors/services'; -import { MotionSubmitterControllerService } from '../../../../../../modules/submitters/services'; -import { MotionWorkingGroupSpeakerControllerService } from '../../../../../../modules/working-group-speakers/services'; +import { MotionEditorControllerService } from '../../../../../../modules/editors/services/motion-editor-controller/motion-editor-controller.service'; +import { MotionSubmitterControllerService } from '../../../../../../modules/submitters/services/motion-submitter-controller/motion-submitter-controller.service'; +import { MotionWorkingGroupSpeakerControllerService } from '../../../../../../modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service'; import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; import { SearchListDefinition } from '../motion-extension-field/motion-extension-field.component'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts index a67f023593..b28f03a064 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts @@ -5,7 +5,7 @@ import { LineRange } from '@app/site/pages/meetings/pages/motions/definitions'; import { ViewUnifiedChange } from '@app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; import { TranslateService } from '@ngx-translate/core'; -import { DiffLinesInParagraph } from '../../../../../../definitions/index'; +import { DiffLinesInParagraph } from '../../../../../../definitions'; import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-export/components/motion-export/motion-export.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-export/components/motion-export/motion-export.component.ts index 3b51083f0c..3e5a1eca0a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-export/components/motion-export/motion-export.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-export/components/motion-export/motion-export.component.ts @@ -19,7 +19,7 @@ import { MatTabChangeEvent, MatTabGroup, MatTabsModule } from '@angular/material import { ActivatedRoute } from '@angular/router'; import { Settings } from '@app/domain/models/meetings/meeting'; import { ChangeRecoMode, LineNumberingMode, PERSONAL_NOTE_ID } from '@app/domain/models/motions/motions.constants'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { StorageService } from '@app/gateways/storage.service'; import { BaseComponent } from '@app/site/base/base.component'; import { OpenSlidesTranslationModule } from '@app/site/modules/translations'; @@ -33,15 +33,18 @@ import { Observable, pairwise, Subscription } from 'rxjs'; import { MotionCommentSectionControllerService } from '../../../../modules/comments/services/motion-comment-section-controller.service'; import { getMotionDetailSubscriptionConfig } from '../../../../motions.subscription'; -import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service'; -import { MotionLineNumberingService } from '../../../../services/common/motion-line-numbering.service'; +import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service/amendment-controller.service'; +import { MotionLineNumberingService } from '../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; import { ExportFileFormat, InfoToExport, motionImportExportHeaderOrder, noMetaData } from '../../../../services/export/definitions'; -import { MotionExportInfo, MotionExportService } from '../../../../services/export/motion-export.service'; +import { + MotionExportInfo, + MotionExportService +} from '../../../../services/export/motion-export.service/motion-export.service'; interface SavedSelections { tab_index: number; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.ts index 9624597d94..b371edb06e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/components/motion-list/motion-list.component.ts @@ -9,16 +9,16 @@ import { firstValueFrom, map } from 'rxjs'; import { MotionForwardDialogService } from '../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; import { MotionMultiselectService } from '../../../../components/motion-multiselect/services/motion-multiselect.service'; -import { MotionCategoryControllerService } from '../../../../modules/categories/services'; +import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; -import { TagControllerService } from '../../../../modules/tags/services'; -import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service'; -import { MotionPermissionService } from '../../../../services/common/motion-permission.service'; -import { MotionListFilterService } from '../../../../services/list/motion-list-filter.service'; +import { TagControllerService } from '../../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service/amendment-controller.service'; +import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionPermissionService } from '../../../../services/common/motion-permission.service/motion-permission.service'; +import { MotionListFilterService } from '../../../../services/list/motion-list-filter.service/motion-list-filter.service'; import { MotionListSortService } from '../../../../services/list/motion-list-sort.service/motion-list-sort.service'; -import { ViewMotion } from '../../../../view-models'; -import { MotionListInfoDialogService } from '../../modules/motion-list-info-dialog'; +import { ViewMotion } from '../../../../view-models/view-motion'; +import { MotionListInfoDialogService } from '../../modules/motion-list-info-dialog/services/motion-list-info-dialog.service'; /** * Determine the types of the motionList diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/modules/motion-list-info-dialog/components/motion-list-info-dialog/motion-list-info-dialog.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/modules/motion-list-info-dialog/components/motion-list-info-dialog/motion-list-info-dialog.component.ts index 15009d9851..a3cd5e1ff4 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/modules/motion-list-info-dialog/components/motion-list-info-dialog/motion-list-info-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-list/modules/motion-list-info-dialog/components/motion-list-info-dialog/motion-list-info-dialog.component.ts @@ -5,11 +5,11 @@ import { ViewMotionBlock, ViewMotionCategory, ViewMotionState, ViewTag } from '@ import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { Observable } from 'rxjs'; -import { MotionCategoryControllerService } from '../../../../../../modules/categories/services/motion-category-controller.service'; -import { MotionBlockControllerService } from '../../../../../../modules/motion-blocks/services/motion-block-controller.service'; -import { TagControllerService } from '../../../../../../modules/tags/services/tag-controller.service'; -import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; -import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service'; +import { MotionCategoryControllerService } from '../../../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionBlockControllerService } from '../../../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; +import { TagControllerService } from '../../../../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; import { MotionListInfoDialogConfig } from '../../definitions'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.ts index 0feaab2e8e..119e29c387 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.ts @@ -7,9 +7,9 @@ import { import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; -import { MotionPollService } from '../../../../modules/motion-poll/services'; -import { MotionPollDialogService } from '../../../../modules/motion-poll/services/motion-poll-dialog.service'; -import { MotionPollPdfService } from '../../../../modules/motion-poll/services/motion-poll-pdf.service'; +import { MotionPollService } from '../../../../modules/motion-poll/services/motion-poll.service/motion-poll.service'; +import { MotionPollDialogService } from '../../../../modules/motion-poll/services/motion-poll-dialog.service/motion-poll-dialog.service'; +import { MotionPollPdfService } from '../../../../modules/motion-poll/services/motion-poll-pdf.service/motion-poll-pdf.service'; export interface ExtendedVoteData extends BaseVoteData { vote_verbose_translated?: string | null; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-main/motion-poll-main.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-main/motion-poll-main.component.ts index e6e46c4d5a..9d315f1ddb 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-main/motion-poll-main.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-main/motion-poll-main.component.ts @@ -3,8 +3,8 @@ import { BaseModelRequestHandlerComponent } from '@app/site/base/base-model-requ import { SequentialNumberMappingService } from '@app/site/pages/meetings/services/sequential-number-mapping.service'; import { getParticipantMinimalSubscriptionConfig } from '../../../../../participants/participants.subscription'; -import { ViewPoll } from '../../../../../polls'; import { getPollDetailSubscriptionConfig } from '../../../../../polls/polls.subscription'; +import { ViewPoll } from '../../../../../polls/view-models/view-poll'; @Component({ selector: `os-motion-poll-main`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/motion-polls.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/motion-polls.module.ts index 55829d686c..06fa0fbbd3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/motion-polls.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/motion-polls.module.ts @@ -13,7 +13,7 @@ import { HeadBarModule } from '@app/ui/modules/head-bar'; import { ListModule } from '@app/ui/modules/list'; import { ParticipantCommonServiceModule } from '../../../participants/services/common/participant-common-service.module'; -import { MotionPollModule } from '../../modules/motion-poll'; +import { MotionPollModule } from '../../modules/motion-poll/motion-poll.module'; import { MotionPollDetailComponent } from './components/motion-poll-detail/motion-poll-detail.component'; import { MotionPollMainComponent } from './components/motion-poll-main/motion-poll-main.component'; import { MotionPollsRoutingModule } from './motion-polls-routing.module'; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.ts index da30e3b812..0dd2a7db7d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/tags/components/tag-list/tag-list.component.ts @@ -8,8 +8,8 @@ import { TranslateService } from '@ngx-translate/core'; import { map, Observable } from 'rxjs'; import { InteractionService } from '../../../../../interaction/services/interaction.service'; -import { ViewTag } from '../../../../modules'; -import { TagControllerService } from '../../../../modules/tags/services'; +import { TagControllerService } from '../../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { ViewTag } from '../../../../modules/tags/view-models/view-tag'; @Component({ selector: `os-tag-list`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail-sort/workflow-detail-sort.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail-sort/workflow-detail-sort.component.ts index ea1888a673..c02c456c3d 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail-sort/workflow-detail-sort.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail-sort/workflow-detail-sort.component.ts @@ -8,9 +8,10 @@ import { SortingListComponent } from '@app/ui/modules/sorting/modules/sorting-li import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, map, Observable, Subscription } from 'rxjs'; -import { ViewMotionState, ViewMotionWorkflow } from '../../../../modules'; -import { MotionStateControllerService } from '../../../../modules/states/services'; -import { MotionWorkflowControllerService } from '../../../../modules/workflows/services'; +import { MotionStateControllerService } from '../../../../modules/states/services/motion-state-controller.service/motion-state-controller.service'; +import { ViewMotionState } from '../../../../modules/states/view-models/view-motion-state'; +import { MotionWorkflowControllerService } from '../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; +import { ViewMotionWorkflow } from '../../../../modules/workflows/view-models/view-motion-workflow'; import { getMotionWorkflowDetailSubscriptionConfig } from '../../../../motions.subscription'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail/workflow-detail.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail/workflow-detail.component.ts index 90e7999f82..08713f7af3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail/workflow-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-detail/workflow-detail.component.ts @@ -12,8 +12,8 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { MotionStateControllerService } from '../../../../modules/states/services'; -import { MotionWorkflowControllerService } from '../../../../modules/workflows/services'; +import { MotionStateControllerService } from '../../../../modules/states/services/motion-state-controller.service/motion-state-controller.service'; +import { MotionWorkflowControllerService } from '../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; import { WorkflowExportService } from '../../services/workflow-export.service/workflow-export.service'; /** diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-import/workflow-import.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-import/workflow-import.component.ts index 4e21ec01ff..a86361a652 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-import/workflow-import.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-import/workflow-import.component.ts @@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { UploadFileJsonProcessorService } from '@app/infrastructure/utils/import/json-import-file-utils'; import { FileData } from '@app/ui/modules/file-upload/components/file-upload/file-upload.component'; -import { MotionWorkflowControllerService } from '../../../../modules/workflows/services'; +import { MotionWorkflowControllerService } from '../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; @Component({ selector: `os-workflow-import`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-list/workflow-list.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-list/workflow-list.component.ts index ae50626e09..dcd1ea96ea 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-list/workflow-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/components/workflow-list/workflow-list.component.ts @@ -5,9 +5,9 @@ import { BaseMeetingListViewComponent } from '@app/site/pages/meetings/base/base import { PromptService } from '@app/ui/modules/prompt-dialog'; import { TranslateService } from '@ngx-translate/core'; -import { ViewMotionWorkflow } from '../../../../modules'; -import { MotionWorkflowControllerService } from '../../../../modules/workflows/services'; -import { WorkflowExportService } from '../../services'; +import { MotionWorkflowControllerService } from '../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; +import { ViewMotionWorkflow } from '../../../../modules/workflows/view-models/view-motion-workflow'; +import { WorkflowExportService } from '../../services/workflow-export.service/workflow-export.service'; const WORKFLOW_LIST_STORAGE_INDEX = `workflows`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/services/workflow-export.service/workflow-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/services/workflow-export.service/workflow-export.service.ts index 026302d723..3b48cf3aff 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/services/workflow-export.service/workflow-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/services/workflow-export.service/workflow-export.service.ts @@ -5,7 +5,7 @@ import { ViewMotionWorkflow } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; import { saveAs } from 'file-saver'; -import { MotionStateControllerService } from '../../../../modules/states/services'; +import { MotionStateControllerService } from '../../../../modules/states/services/motion-state-controller.service/motion-state-controller.service'; @Service() export class WorkflowExportService { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/workflows.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/workflows.module.ts index 53401c5611..4476cd6f15 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/workflows/workflows.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/workflows/workflows.module.ts @@ -24,7 +24,7 @@ import { WorkflowDetailComponent } from './components/workflow-detail/workflow-d import { WorkflowDetailSortComponent } from './components/workflow-detail-sort/workflow-detail-sort.component'; import { WorkflowImportComponent } from './components/workflow-import/workflow-import.component'; import { WorkflowListComponent } from './components/workflow-list/workflow-list.component'; -import { MotionWorkflowServiceModule } from './services'; +import { MotionWorkflowServiceModule } from './services/motion-workflow-service.module'; import { WorkflowsRoutingModule } from './workflows-routing.module'; @NgModule({ diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts index 5fe2f83de4..f6f363dd58 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts @@ -3,12 +3,12 @@ import { Id } from '@app/domain/definitions/key-types'; import { Identifiable } from '@app/domain/interfaces'; import { Motion } from '@app/domain/models/motions/motion'; import { CreateResponse } from '@app/gateways/repositories/base-repository'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { viewModelListEqual } from '@app/infrastructure/utils'; import { distinctUntilChanged, map, Observable } from 'rxjs'; -import { ViewMotion } from '../../../view-models'; -import { MotionControllerService } from '../motion-controller.service'; +import { ViewMotion } from '../../../view-models/view-motion'; +import { MotionControllerService } from '../motion-controller.service/motion-controller.service'; @Service() export class AmendmentControllerService { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-controller.service/motion-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-controller.service/motion-controller.service.ts index 8203928d08..968f9c90ee 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-controller.service/motion-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-controller.service/motion-controller.service.ts @@ -5,17 +5,17 @@ import { Motion } from '@app/domain/models/motions/motion'; import { ChangeRecoMode } from '@app/domain/models/motions/motions.constants'; import { Action, createEmptyAction } from '@app/gateways/actions'; import { CreateResponse } from '@app/gateways/repositories/base-repository'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { TreeIdNode } from '@app/infrastructure/definitions/tree'; import { NullablePartial } from '@app/infrastructure/utils'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { map, Observable } from 'rxjs'; import { DiffLinesInParagraph } from '../../../definitions'; -import { LineNumberingService, MotionDiffService } from '../../../modules/change-recommendations/services'; import { DiffServiceFactory } from '../../../modules/change-recommendations/services/diff-factory.service'; +import { LineNumberingService } from '../../../modules/change-recommendations/services/line-numbering.service/line-numbering.service'; +import { MotionDiffService } from '../../../modules/change-recommendations/services/motion-diff.service/motion-diff.service'; import { MotionLineNumberingService } from '../motion-line-numbering.service/motion-line-numbering.service'; export const REFERENCED_MOTION_REGEX = /\[motion[:/](\d+)\]/g; @@ -23,17 +23,17 @@ export const REFERENCED_MOTION_REGEX = /\[motion[:/](\d+)\]/g; @Service() export class MotionControllerService extends BaseMeetingControllerService { private _lineLength = 80; - protected override repo: MotionRepositoryService; + protected repo: MotionRepositoryService = inject(MotionRepositoryService); private motionLineNumbering = inject(MotionLineNumberingService); private diffFactroy = inject(DiffServiceFactory); + public baseModelCtor = Motion; + public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(MotionRepositoryService); - super(controllerServiceCollector, Motion, repo); + super(); this.meetingSettingsService.get(`motions_line_length`).subscribe(lineLength => (this._lineLength = lineLength)); - repo.registerCreateViewModelPipe(viewModel => this.onCreateViewModel(viewModel)); + this.repo.registerCreateViewModelPipe(viewModel => this.onCreateViewModel(viewModel)); } /////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-format.service/motion-format.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-format.service/motion-format.service.ts index a3847a50b5..6589762f44 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-format.service/motion-format.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-format.service/motion-format.service.ts @@ -5,17 +5,16 @@ import { ChangeRecoMode, LineNumberingMode } from '@app/domain/models/motions/mo import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; import { TranslateService } from '@ngx-translate/core'; -import { ViewUnifiedChange, ViewUnifiedChangeType } from '../../../modules'; -import { - LineNumberingService, - MotionChangeRecommendationControllerService, - MotionDiffService -} from '../../../modules/change-recommendations/services'; +import { ViewUnifiedChangeType } from '../../../modules'; import { DiffServiceFactory } from '../../../modules/change-recommendations/services/diff-factory.service'; -import { ViewMotion } from '../../../view-models'; +import { LineNumberingService } from '../../../modules/change-recommendations/services/line-numbering.service/line-numbering.service'; +import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; +import { MotionDiffService } from '../../../modules/change-recommendations/services/motion-diff.service/motion-diff.service'; +import { ViewUnifiedChange } from '../../../modules/change-recommendations/view-models/view-unified-change'; +import { ViewMotion } from '../../../view-models/view-motion'; import { ViewMotionAmendedParagraph } from '../../../view-models/view-motion-amended-paragraph'; -import { AmendmentControllerService } from '../amendment-controller.service'; -import { MotionLineNumberingService } from '../motion-line-numbering.service'; +import { AmendmentControllerService } from '../amendment-controller.service/amendment-controller.service'; +import { MotionLineNumberingService } from '../motion-line-numbering.service/motion-line-numbering.service'; export interface MotionFormatResult { origin_id: Id; diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-line-numbering.service/motion-line-numbering.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-line-numbering.service/motion-line-numbering.service.ts index 5521f48c29..2c18a125cd 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-line-numbering.service/motion-line-numbering.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-line-numbering.service/motion-line-numbering.service.ts @@ -4,13 +4,14 @@ import { TranslateService } from '@ngx-translate/core'; import { Subscription } from 'rxjs'; import { DiffLinesInParagraph } from '../../../definitions'; -import { ViewMotionChangeRecommendation, ViewUnifiedChange } from '../../../modules'; import { LineNumberedString, - LineNumberRange, - MotionChangeRecommendationControllerService -} from '../../../modules/change-recommendations/services'; -import { ViewMotion } from '../../../view-models'; + LineNumberRange +} from '../../../modules/change-recommendations/services/line-numbering.service/line-numbering.service'; +import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; +import { ViewMotionChangeRecommendation } from '../../../modules/change-recommendations/view-models/view-motion-change-recommendation'; +import { ViewUnifiedChange } from '../../../modules/change-recommendations/view-models/view-unified-change'; +import { ViewMotion } from '../../../view-models/view-motion'; import { ViewMotionAmendedParagraph } from '../../../view-models/view-motion-amended-paragraph'; /** diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts index aaa7889144..8c8b034458 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts @@ -3,7 +3,7 @@ import { Permission } from '@app/domain/definitions/permission'; import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; import { OperatorService } from '@app/site/services/operator.service'; -import { ViewMotion } from '../../../view-models'; +import { ViewMotion } from '../../../view-models/view-motion'; @Service() export class MotionPermissionService { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/amendment-list-pdf.service/amendment-list-pdf.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/amendment-list-pdf.service/amendment-list-pdf.service.ts index 9e21db3596..b7df9de836 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/amendment-list-pdf.service/amendment-list-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/amendment-list-pdf.service/amendment-list-pdf.service.ts @@ -3,8 +3,8 @@ import { HtmlToPdfService } from '@app/gateways/export/html-to-pdf.service'; import { TranslateService } from '@ngx-translate/core'; import { Content, ContentTable, TableCell } from 'pdfmake/interfaces'; -import { ViewMotion } from '../../../view-models'; -import { MotionControllerService } from '../../common/motion-controller.service'; +import { ViewMotion } from '../../../view-models/view-motion'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; /** * Creates a PDF list for amendments diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts index 4c42dc0f42..18585e2a55 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts @@ -6,10 +6,10 @@ import { MeetingCsvExportService } from '@app/site/pages/meetings/services/expor import { MeetingSettingsService } from '@app/site/pages/meetings/services/meeting-settings.service'; import { TranslateService } from '@ngx-translate/core'; -import { MotionCommentSectionControllerService } from '../../../modules/comments/services'; -import { ViewMotion } from '../../../view-models'; -import { MotionControllerService } from '../../common/motion-controller.service'; -import { MotionFormatService } from '../../common/motion-format.service'; +import { MotionCommentSectionControllerService } from '../../../modules/comments/services/motion-comment-section-controller.service'; +import { ViewMotion } from '../../../view-models/view-motion'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; +import { MotionFormatService } from '../../common/motion-format.service/motion-format.service'; import { getMotionExportHeadersAndVerboseNames, sortMotionPropertyList } from '../definitions'; interface MotionCsvExport { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-export.service/motion-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-export.service/motion-export.service.ts index e17c41f37f..361b5fb786 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-export.service/motion-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-export.service/motion-export.service.ts @@ -2,11 +2,11 @@ import { inject, Service } from '@angular/core'; import { ChangeRecoMode, LineNumberingMode } from '@app/domain/models/motions/motions.constants'; import { PdfError } from '@app/gateways/export/pdf-document.service'; -import { ViewMotion } from '../../../view-models'; +import { ViewMotion } from '../../../view-models/view-motion'; import { ExportFileFormat, InfoToExport } from '../definitions'; -import { MotionCsvExportService } from '../motion-csv-export.service'; -import { MotionPdfExportService } from '../motion-pdf-export.service'; -import { MotionXlsxExportService } from '../motion-xlsx-export.service'; +import { MotionCsvExportService } from '../motion-csv-export.service/motion-csv-export.service'; +import { MotionPdfExportService } from '../motion-pdf-export.service/motion-pdf-export.service'; +import { MotionXlsxExportService } from '../motion-xlsx-export.service/motion-xlsx-export.service'; /** * Shape the structure of the dialog data diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-catalog.service/motion-pdf-catalog.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-catalog.service/motion-pdf-catalog.service.ts index 6ac429106d..909a1b56d7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-catalog.service/motion-pdf-catalog.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-catalog.service/motion-pdf-catalog.service.ts @@ -7,10 +7,10 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { TranslateService } from '@ngx-translate/core'; import { Content } from 'pdfmake/interfaces'; -import { MotionCategoryControllerService } from '../../../modules/categories/services'; -import { MotionControllerService } from '../../common/motion-controller.service'; -import { MotionExportInfo } from '../motion-export.service'; -import { MotionPdfService } from '../motion-pdf.service'; +import { MotionCategoryControllerService } from '../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; +import { MotionExportInfo } from '../motion-export.service/motion-export.service'; +import { MotionPdfService } from '../motion-pdf.service/motion-pdf.service'; /** * Service to export a list of motions. diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-export.service/motion-pdf-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-export.service/motion-pdf-export.service.ts index 1bd3f24a56..de90a5c4c0 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-export.service/motion-pdf-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf-export.service/motion-pdf-export.service.ts @@ -7,11 +7,11 @@ import { PDFDocument } from '@cantoo/pdf-lib'; import { TranslateService } from '@ngx-translate/core'; import { saveAs } from 'file-saver'; -import { ViewMotion } from '../../../view-models'; -import { AmendmentListPdfService } from '../amendment-list-pdf.service'; -import { MotionExportInfo } from '../motion-export.service'; -import { MotionPdfService } from '../motion-pdf.service'; -import { MotionPdfCatalogService } from '../motion-pdf-catalog.service'; +import { ViewMotion } from '../../../view-models/view-motion'; +import { AmendmentListPdfService } from '../amendment-list-pdf.service/amendment-list-pdf.service'; +import { MotionExportInfo } from '../motion-export.service/motion-export.service'; +import { MotionPdfService } from '../motion-pdf.service/motion-pdf.service'; +import { MotionPdfCatalogService } from '../motion-pdf-catalog.service/motion-pdf-catalog.service'; /** * Export service to handle various kind of exporting necessities. diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts index 2f307fd5f0..8c78b1d494 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts @@ -15,18 +15,18 @@ import { OrganizationSettingsService } from '@app/site/pages/organization/servic import { TranslateService } from '@ngx-translate/core'; import { Content, ContentTable, ContentText, TableCell } from 'pdfmake/interfaces'; -import { getRecommendationTypeName } from '../../../definitions'; +import { getRecommendationTypeName } from '../../../definitions/recommendation-type-names'; import { ViewUnifiedChangeType } from '../../../modules'; -import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services'; -import { MotionCommentSectionControllerService } from '../../../modules/comments/services'; -import { MotionPollService } from '../../../modules/motion-poll/services'; +import { MotionChangeRecommendationControllerService } from '../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; +import { MotionCommentSectionControllerService } from '../../../modules/comments/services/motion-comment-section-controller.service'; +import { MotionPollService } from '../../../modules/motion-poll/services/motion-poll.service/motion-poll.service'; import { ViewMotionAmendedParagraph } from '../../../view-models/view-motion-amended-paragraph'; -import { MotionControllerService } from '../../common/motion-controller.service'; -import { MotionFormatService } from '../../common/motion-format.service'; -import { MotionLineNumberingService } from '../../common/motion-line-numbering.service'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; +import { MotionFormatService } from '../../common/motion-format.service/motion-format.service'; +import { MotionLineNumberingService } from '../../common/motion-line-numbering.service/motion-line-numbering.service'; import { InfoToExport } from '../definitions'; -import { MotionExportInfo } from '../motion-export.service'; -import { MotionHtmlToPdfService } from '../motion-html-to-pdf.service'; +import { MotionExportInfo } from '../motion-export.service/motion-export.service'; +import { MotionHtmlToPdfService } from '../motion-html-to-pdf.service/motion-html-to-pdf.service'; interface CreateTextData { motion: ViewMotion; diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts index 113ca98bf4..56c2896fe5 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts @@ -7,10 +7,10 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { Workbook } from 'exceljs'; -import { MotionCommentSectionControllerService } from '../../../modules/comments/services'; -import { ViewMotionWorkingGroupSpeaker } from '../../../modules/working-group-speakers'; -import { ViewMotion } from '../../../view-models'; -import { MotionControllerService } from '../../common/motion-controller.service'; +import { MotionCommentSectionControllerService } from '../../../modules/comments/services/motion-comment-section-controller.service'; +import { ViewMotionWorkingGroupSpeaker } from '../../../modules/working-group-speakers/view-models/view-motion-working-group-speaker'; +import { ViewMotion } from '../../../view-models/view-motion'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; import { InfoToExport, sortMotionPropertyList } from '../definitions'; interface MotionXlsxExportConfig { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-filter.service/amendment-list-filter.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-filter.service/amendment-list-filter.service.ts index f81d405e53..17280c68b8 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-filter.service/amendment-list-filter.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-filter.service/amendment-list-filter.service.ts @@ -3,8 +3,8 @@ import { OsFilter } from '@app/site/base/base-filter.service'; import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; import { TranslateService } from '@ngx-translate/core'; -import { MotionControllerService } from '../../common/motion-controller.service'; -import { MotionListFilterService } from '../motion-list-filter.service'; +import { MotionControllerService } from '../../common/motion-controller.service/motion-controller.service'; +import { MotionListFilterService } from '../motion-list-filter.service/motion-list-filter.service'; @Service() export class AmendmentListFilterService extends MotionListFilterService { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-sort.service/amendment-list-sort.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-sort.service/amendment-list-sort.service.ts index 730cedab2a..4eb6426d88 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-sort.service/amendment-list-sort.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/list/amendment-list-sort.service/amendment-list-sort.service.ts @@ -2,7 +2,7 @@ import { Service } from '@angular/core'; import { OsSortingOption } from '@app/site/base/base-sort.service'; import { ViewMotion } from '@app/site/pages/meetings/pages/motions'; -import { MotionListBaseSortService } from '../motion-list-base-sort.service'; +import { MotionListBaseSortService } from '../motion-list-base-sort.service/motion-list-base-sort.service'; @Service() export class AmendmentListSortService extends MotionListBaseSortService { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-base-sort.service/motion-list-base-sort.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-base-sort.service/motion-list-base-sort.service.ts index 1d626bd1ff..3d0c8c64da 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-base-sort.service/motion-list-base-sort.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-base-sort.service/motion-list-base-sort.service.ts @@ -1,6 +1,6 @@ import { Directive, inject, ProviderToken } from '@angular/core'; import { BaseRepository } from '@app/gateways/repositories/base-repository'; -import { MotionRepositoryService } from '@app/gateways/repositories/motions'; +import { MotionRepositoryService } from '@app/gateways/repositories/motions/motion-repository.service'; import { BaseSortListService, OsSortingDefinition, @@ -11,7 +11,7 @@ import { MeetingSettingsService } from '@app/site/pages/meetings/services/meetin import { _ } from '@ngx-translate/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { ViewMotion } from '../../../view-models'; +import { ViewMotion } from '../../../view-models/view-motion'; @Directive() export class MotionListBaseSortService extends BaseSortListService { diff --git a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-filter.service/motion-list-filter.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-filter.service/motion-list-filter.service.ts index 5aaa7b5cb4..b350fdb399 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-filter.service/motion-list-filter.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-filter.service/motion-list-filter.service.ts @@ -10,16 +10,16 @@ import { OperatorService } from '@app/site/services/operator.service'; import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; -import { MotionCategoryControllerService } from '../../../modules/categories/services'; -import { MotionCommentSectionControllerService } from '../../../modules/comments/services'; -import { ViewMotionEditor } from '../../../modules/editors'; -import { MotionEditorControllerService } from '../../../modules/editors/services'; -import { MotionBlockControllerService } from '../../../modules/motion-blocks/services'; -import { TagControllerService } from '../../../modules/tags/services'; -import { MotionWorkflowControllerService } from '../../../modules/workflows/services'; -import { ViewMotionWorkingGroupSpeaker } from '../../../modules/working-group-speakers'; -import { MotionWorkingGroupSpeakerControllerService } from '../../../modules/working-group-speakers/services'; -import { ForwardingStatus, ViewMotion } from '../../../view-models'; +import { MotionCategoryControllerService } from '../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; +import { MotionCommentSectionControllerService } from '../../../modules/comments/services/motion-comment-section-controller.service'; +import { MotionEditorControllerService } from '../../../modules/editors/services/motion-editor-controller/motion-editor-controller.service'; +import { ViewMotionEditor } from '../../../modules/editors/view-models/view-motion-editor'; +import { MotionBlockControllerService } from '../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; +import { TagControllerService } from '../../../modules/tags/services/tag-controller.service/tag-controller.service'; +import { MotionWorkflowControllerService } from '../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; +import { MotionWorkingGroupSpeakerControllerService } from '../../../modules/working-group-speakers/services/motion-working-group-speaker-controller/motion-working-group-speaker-controller.service'; +import { ViewMotionWorkingGroupSpeaker } from '../../../modules/working-group-speakers/view-models/view-motion-working-group-speaker'; +import { ForwardingStatus, ViewMotion } from '../../../view-models/view-motion'; /** * Filter description to easier parse dynamically occurring workflows diff --git a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-sort.service/motion-list-sort.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-sort.service/motion-list-sort.service.ts index 0e123f7f3c..a3438a2db7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-sort.service/motion-list-sort.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/list/motion-list-sort.service/motion-list-sort.service.ts @@ -1,6 +1,6 @@ import { Service } from '@angular/core'; -import { MotionListBaseSortService } from '../motion-list-base-sort.service'; +import { MotionListBaseSortService } from '../motion-list-base-sort.service/motion-list-base-sort.service'; @Service() export class MotionListSortService extends MotionListBaseSortService { diff --git a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion-amended-paragraph.ts b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion-amended-paragraph.ts index 4d9ed5bc01..c91f6e1fd7 100644 --- a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion-amended-paragraph.ts +++ b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion-amended-paragraph.ts @@ -2,7 +2,8 @@ import { MergeAmendment } from '@app/domain/models/motions/motion-state'; import { ModificationType } from '@app/domain/models/motions/motions.constants'; import { LineRange } from '../definitions'; -import { ViewUnifiedChange, ViewUnifiedChangeType } from '../modules'; +import { ViewUnifiedChangeType } from '../modules'; +import { ViewUnifiedChange } from '../modules/change-recommendations/view-models/view-unified-change'; import { ViewMotion } from './view-motion'; export type ViewMotionAmendedParagraphs = Record; diff --git a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts index 391de87d1a..49ba90a9fb 100644 --- a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts +++ b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts @@ -17,25 +17,27 @@ import { HasMeeting } from '../../../view-models/has-meeting'; import { SlideOptions } from '../../../view-models/slide-options'; import { ViewMeeting } from '../../../view-models/view-meeting'; import { ViewUser } from '../../../view-models/view-user'; -import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; +import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers/view-models/has-list-of-speakers'; import { HasAgendaItem } from '../../agenda/view-models/has-agenda-item'; import { HasAttachmentMeetingMediafiles } from '../../mediafiles/view-models/has-attachment'; -import { HasPolls, VotingTextContext } from '../../polls'; +import { HasPolls, VotingTextContext } from '../../polls/view-models/has-polls'; import { DiffLinesInParagraph } from '../definitions'; -import { ViewMotionChangeRecommendation, ViewMotionWorkflow } from '../modules'; import { ViewMotionCategory } from '../modules/categories/view-models/view-motion-category'; -import { LineNumberingService, MotionDiffService } from '../modules/change-recommendations/services'; +import { LineNumberingService } from '../modules/change-recommendations/services/line-numbering.service/line-numbering.service'; +import { MotionDiffService } from '../modules/change-recommendations/services/motion-diff.service/motion-diff.service'; +import { ViewMotionChangeRecommendation } from '../modules/change-recommendations/view-models/view-motion-change-recommendation'; import { ViewMotionComment } from '../modules/comments/view-models/view-motion-comment'; import { ViewMotionCommentSection } from '../modules/comments/view-models/view-motion-comment-section'; -import { ViewMotionEditor } from '../modules/editors'; +import { ViewMotionEditor } from '../modules/editors/view-models/view-motion-editor'; import { ViewMotionBlock } from '../modules/motion-blocks/view-models/view-motion-block'; import { HasPersonalNote } from '../modules/personal-notes/view-models/has-personal-note'; import { ViewPersonalNote } from '../modules/personal-notes/view-models/view-personal-note'; import { ViewMotionState } from '../modules/states/view-models/view-motion-state'; -import { ViewMotionSubmitter } from '../modules/submitters'; +import { ViewMotionSubmitter } from '../modules/submitters/view-models/view-motion-submitter'; import { ViewMotionSupporter } from '../modules/supporters/view-models/view-motion-supporter'; import { HasTags } from '../modules/tags/view-models/has-tags'; -import { ViewMotionWorkingGroupSpeaker } from '../modules/working-group-speakers'; +import { ViewMotionWorkflow } from '../modules/workflows/view-models/view-motion-workflow'; +import { ViewMotionWorkingGroupSpeaker } from '../modules/working-group-speakers/view-models/view-motion-working-group-speaker'; export type HasReferencedMotionsInExtension = HasReferencedMotionInExtensionIds & ViewModelRelations<{ diff --git a/client/src/app/site/pages/meetings/pages/participants/export/participant-pdf-export.service/participant-pdf-export.service.ts b/client/src/app/site/pages/meetings/pages/participants/export/participant-pdf-export.service/participant-pdf-export.service.ts index 9a87d75e4a..f82304c825 100644 --- a/client/src/app/site/pages/meetings/pages/participants/export/participant-pdf-export.service/participant-pdf-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/export/participant-pdf-export.service/participant-pdf-export.service.ts @@ -4,7 +4,7 @@ import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; import { TranslateService } from '@ngx-translate/core'; import { Content } from 'pdfmake/interfaces'; -import { ParticipantPdfService } from '../participant-pdf.service'; +import { ParticipantPdfService } from '../participant-pdf.service/participant-pdf.service'; /** * Export service to handle various kind of exporting necessities for participants. diff --git a/client/src/app/site/pages/meetings/pages/participants/export/speaker-csv-export.service/speaker-csv-export.service.ts b/client/src/app/site/pages/meetings/pages/participants/export/speaker-csv-export.service/speaker-csv-export.service.ts index d819cd3fde..eadd7fdba4 100644 --- a/client/src/app/site/pages/meetings/pages/participants/export/speaker-csv-export.service/speaker-csv-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/export/speaker-csv-export.service/speaker-csv-export.service.ts @@ -11,7 +11,7 @@ import { format, fromUnixTime } from 'date-fns'; import { DateFnsConfigurationService } from 'ngx-date-fns'; import { MeetingCsvExportForBackendService } from '../../../../services/export/meeting-csv-export-for-backend.service'; -import { ViewSpeaker } from '../../../agenda'; +import { ViewSpeaker } from '../../../agenda/modules/list-of-speakers/view-models/view-speaker'; export const speakerHeadersAndVerboseNames = { user_title: _(`Title`), diff --git a/client/src/app/site/pages/meetings/pages/participants/modules/groups/components/group-list/group-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/modules/groups/components/group-list/group-list.component.ts index 2308fd2be8..4a5df12ee2 100644 --- a/client/src/app/site/pages/meetings/pages/participants/modules/groups/components/group-list/group-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/modules/groups/components/group-list/group-list.component.ts @@ -14,7 +14,7 @@ import { OperatorService } from '@app/site/services/operator.service'; import { PromptService } from '@app/ui/modules/prompt-dialog'; import { TranslateService } from '@ngx-translate/core'; -import { GroupControllerService } from '../../services'; +import { GroupControllerService } from '../../services/group-controller.service'; @Component({ selector: `os-group-list`, diff --git a/client/src/app/site/pages/meetings/pages/participants/modules/groups/services/group-controller.service.ts b/client/src/app/site/pages/meetings/pages/participants/modules/groups/services/group-controller.service.ts index 46c2d391e2..cfbeab85f3 100644 --- a/client/src/app/site/pages/meetings/pages/participants/modules/groups/services/group-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/modules/groups/services/group-controller.service.ts @@ -4,10 +4,9 @@ import { Identifiable } from '@app/domain/interfaces'; import { Group } from '@app/domain/models/users/group'; import { GroupRepositoryService } from '@app/gateways/repositories/groups'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { map, Observable, OperatorFunction } from 'rxjs'; -import { ViewGroup } from '../view-models'; +import { ViewGroup } from '../view-models/view-group'; export class MeetingGroupsObject { public readonly groups: Record; @@ -29,13 +28,9 @@ export class MeetingGroupsObject { @Service() export class GroupControllerService extends BaseMeetingControllerService { - protected override repo: GroupRepositoryService; + protected repo: GroupRepositoryService = inject(GroupRepositoryService); - public constructor() { - const repositoryServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(GroupRepositoryService); - super(repositoryServiceCollector, ViewGroup, repo); - } + public baseModelCtor = Group; public create(...groups: Partial[]): Promise { return this.repo.create(...groups); diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/mandate-check/components/mandate-check-list/mandate-check-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/mandate-check/components/mandate-check-list/mandate-check-list.component.ts index ae079f2209..f52ec52bf3 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/mandate-check/components/mandate-check-list/mandate-check-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/mandate-check/components/mandate-check-list/mandate-check-list.component.ts @@ -16,9 +16,10 @@ import { HeadBarModule } from '@app/ui/modules/head-bar'; import { TranslateModule } from '@ngx-translate/core'; import { BehaviorSubject } from 'rxjs'; -import { GroupControllerService, ViewGroup } from '../../../../modules'; -import { ParticipantControllerService } from '../../../../services/common/participant-controller.service'; -import { ViewStructureLevel } from '../../../structure-levels/view-models'; +import { GroupControllerService } from '../../../../modules/groups/services/group-controller.service'; +import { ViewGroup } from '../../../../modules/groups/view-models/view-group'; +import { ParticipantControllerService } from '../../../../services/common/participant-controller.service/participant-controller.service'; +import { ViewStructureLevel } from '../../../structure-levels/view-models/view-structure-level'; const FEMALE_ID = 2; const MALE_ID = 1; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-edit/participant-detail-edit.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-edit/participant-detail-edit.component.ts index ca1342aaa9..989762264e 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-edit/participant-detail-edit.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-edit/participant-detail-edit.component.ts @@ -23,7 +23,7 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { combineLatest, Observable } from 'rxjs'; -import { GroupControllerService } from '../../../../modules'; +import { GroupControllerService } from '../../../../modules/groups/services/group-controller.service'; import { getParticipantMinimalSubscriptionConfig, PARTICIPANT_DETAIL_SUBSCRIPTION @@ -31,7 +31,7 @@ import { import { areGroupsDiminished } from '../../../participant-list/components/participant-list/participant-list.component'; import { ParticipantListSortService } from '../../../participant-list/services/participant-list-sort/participant-list-sort.service'; import { StructureLevelControllerService } from '../../../structure-levels/services/structure-level-controller.service'; -import { ViewStructureLevel } from '../../../structure-levels/view-models'; +import { ViewStructureLevel } from '../../../structure-levels/view-models/view-structure-level'; @Component({ selector: `os-participant-detail-edit`, templateUrl: `./participant-detail-edit.component.html`, diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts index 10cdf7090d..f4eb4c1629 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts @@ -17,12 +17,12 @@ import { _ } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core'; import { combineLatest, Observable } from 'rxjs'; -import { ParticipantPdfExportService } from '../../../../export/participant-pdf-export.service'; -import { GroupControllerService } from '../../../../modules'; +import { ParticipantPdfExportService } from '../../../../export/participant-pdf-export.service/participant-pdf-export.service'; +import { GroupControllerService } from '../../../../modules/groups/services/group-controller.service'; import { getParticipantMinimalSubscriptionConfig } from '../../../../participants.subscription'; import { ParticipantListSortService } from '../../../participant-list/services/participant-list-sort/participant-list-sort.service'; import { StructureLevelControllerService } from '../../../structure-levels/services/structure-level-controller.service'; -import { ViewStructureLevel } from '../../../structure-levels/view-models'; +import { ViewStructureLevel } from '../../../structure-levels/view-models/view-structure-level'; @Component({ selector: `os-participant-detail-view`, diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts index 96f7e0d838..9eeae9cf20 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts @@ -25,7 +25,7 @@ import { import { MEETING_RELATED_FORM_CONTROLS } from '../../../../../../services/common/participant-controller.service/participant-controller.service'; import { ParticipantListSortService } from '../../../../../participant-list/services/participant-list-sort/participant-list-sort.service'; import { StructureLevelControllerService } from '../../../../../structure-levels/services/structure-level-controller.service'; -import { ViewStructureLevel } from '../../../../../structure-levels/view-models'; +import { ViewStructureLevel } from '../../../../../structure-levels/view-models/view-structure-level'; @Component({ selector: `os-participant-create-wizard`, diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/components/participant-import-list/participant-import-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/components/participant-import-list/participant-import-list.component.ts index b22eece89d..20ea3f243b 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/components/participant-import-list/participant-import-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/components/participant-import-list/participant-import-list.component.ts @@ -4,7 +4,7 @@ import { ImportListHeaderDefinition } from '@app/ui/modules/import-list'; import { TranslateService } from '@ngx-translate/core'; import { participantColumns, participantHeadersAndVerboseNames } from '../../definitions'; -import { ParticipantImportService } from '../../services'; +import { ParticipantImportService } from '../../services/participant-import.service/participant-import.service'; @Component({ selector: `os-participant-import-list`, diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/participant-import.module.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/participant-import.module.ts index 1828a59160..600cf41cfd 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/participant-import.module.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-import/participant-import.module.ts @@ -9,7 +9,7 @@ import { ImportListModule } from '@app/ui/modules/import-list'; import { ParticipantImportListComponent } from './components/participant-import-list/participant-import-list.component'; import { ParticipantImportRoutingModule } from './participant-import-routing.module'; -import { ParticipantImportServiceModule } from './services'; +import { ParticipantImportServiceModule } from './services/participant-import-service.module'; @NgModule({ declarations: [ParticipantImportListComponent], diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts index b740a4efbe..7c0d543967 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts @@ -23,12 +23,13 @@ import { _ } from '@ngx-translate/core'; import { firstValueFrom, map, Observable } from 'rxjs'; import { InteractionService } from '../../../../../interaction/services/interaction.service'; -import { ParticipantCsvExportService } from '../../../../export/participant-csv-export.service'; -import { ParticipantPdfExportService } from '../../../../export/participant-pdf-export.service'; -import { GroupControllerService, ViewGroup } from '../../../../modules'; +import { ParticipantCsvExportService } from '../../../../export/participant-csv-export.service/participant-csv-export.service'; +import { ParticipantPdfExportService } from '../../../../export/participant-pdf-export.service/participant-pdf-export.service'; +import { GroupControllerService } from '../../../../modules/groups/services/group-controller.service'; +import { ViewGroup } from '../../../../modules/groups/view-models/view-group'; import { StructureLevelControllerService } from '../../../structure-levels/services/structure-level-controller.service'; -import { ViewStructureLevel } from '../../../structure-levels/view-models'; -import { ParticipantListInfoDialogService } from '../../modules/participant-list-info-dialog'; +import { ViewStructureLevel } from '../../../structure-levels/view-models/view-structure-level'; +import { ParticipantListInfoDialogService } from '../../modules/participant-list-info-dialog/services/participant-list-info-dialog.service'; import { ParticipantListFilterService } from '../../services/participant-list-filter/participant-list-filter.service'; import { ParticipantListSortService } from '../../services/participant-list-sort/participant-list-sort.service'; import { ParticipantSwitchDialogComponent } from '../participant-switch-dialog/participant-switch-dialog.component'; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/modules/participant-list-info-dialog/components/participant-list-info-dialog/participant-list-info-dialog.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/modules/participant-list-info-dialog/components/participant-list-info-dialog/participant-list-info-dialog.component.ts index 4b50666ba1..1319f5734e 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/modules/participant-list-info-dialog/components/participant-list-info-dialog/participant-list-info-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/modules/participant-list-info-dialog/components/participant-list-info-dialog/participant-list-info-dialog.component.ts @@ -14,7 +14,7 @@ import { BaseUiComponent } from '@app/ui/base/base-ui-component'; import { BehaviorSubject, Observable } from 'rxjs'; import { StructureLevelControllerService } from '../../../../../structure-levels/services/structure-level-controller.service'; -import { ViewStructureLevel } from '../../../../../structure-levels/view-models'; +import { ViewStructureLevel } from '../../../../../structure-levels/view-models/view-structure-level'; import { ParticipantListSortService } from '../../../../services/participant-list-sort/participant-list-sort.service'; import { InfoDialog } from '../../services/participant-list-info-dialog.service'; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/participant-list.module.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/participant-list.module.ts index 9a8feb7cdb..e35ffe5b65 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/participant-list.module.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/participant-list.module.ts @@ -16,7 +16,7 @@ import { HeadBarModule } from '@app/ui/modules/head-bar'; import { IconContainerComponent } from '@app/ui/modules/icon-container'; import { PipesModule } from '@app/ui/pipes'; -import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector'; +import { ParticipantSearchSelectorModule } from '../../../../modules/participant-search-selector/participant-search-selector.module'; import { ParticipantExportModule } from '../../export/participant-export.module'; import { ParticipantListComponent } from './components/participant-list/participant-list.component'; import { ParticipantSwitchDialogComponent } from './components/participant-switch-dialog/participant-switch-dialog.component'; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/components/participant-speaker-list/participant-speaker-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/components/participant-speaker-list/participant-speaker-list.component.ts index 49dcdbd5f8..1562a59140 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/components/participant-speaker-list/participant-speaker-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/components/participant-speaker-list/participant-speaker-list.component.ts @@ -7,10 +7,10 @@ import { OperatorService } from '@app/site/services/operator.service'; import { TranslateService } from '@ngx-translate/core'; import { map, Observable } from 'rxjs'; -import { ViewSpeaker } from '../../../../../agenda'; -import { SpeakerControllerService } from '../../../../../agenda/modules/list-of-speakers/services'; +import { SpeakerControllerService } from '../../../../../agenda/modules/list-of-speakers/services/speaker-controller.service'; +import { ViewSpeaker } from '../../../../../agenda/modules/list-of-speakers/view-models/view-speaker'; import { InteractionService } from '../../../../../interaction/services/interaction.service'; -import { SpeakerCsvExportService } from '../../../../export/speaker-csv-export.service'; +import { SpeakerCsvExportService } from '../../../../export/speaker-csv-export.service/speaker-csv-export.service'; import { ParticipantSpeakerListFilterService } from '../../services/participant-speaker-list-filter.service/participant-speaker-list-filter.service'; import { ParticipantSpeakerListSortService } from '../../services/participant-speaker-list-sort.service/participant-speaker-list-sort.service'; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-filter.service/participant-speaker-list-filter.service.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-filter.service/participant-speaker-list-filter.service.ts index d3af3bff8f..51a0837c36 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-filter.service/participant-speaker-list-filter.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-filter.service/participant-speaker-list-filter.service.ts @@ -5,7 +5,10 @@ import { BaseFilterListService, OsFilter, OsHideFilterSetting } from '@app/site/ import { ActiveFiltersService } from '@app/site/services/active-filters.service'; import { _ } from '@ngx-translate/core'; -import { SpeechWaitingState, ViewSpeaker } from '../../../../../agenda'; +import { + SpeechWaitingState, + ViewSpeaker +} from '../../../../../agenda/modules/list-of-speakers/view-models/view-speaker'; import { StructureLevelControllerService } from '../../../structure-levels/services/structure-level-controller.service'; @Service() diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-sort.service/participant-speaker-list-sort.service.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-sort.service/participant-speaker-list-sort.service.ts index 3c5d4d3b13..1e1aa0ab76 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-sort.service/participant-speaker-list-sort.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-speaker-list/services/participant-speaker-list-sort.service/participant-speaker-list-sort.service.ts @@ -4,7 +4,7 @@ import { SpeakerRepositoryService } from '@app/gateways/repositories/speakers/sp import { BaseSortListService, OsSortingOption } from '@app/site/base/base-sort.service'; import { _ } from '@ngx-translate/core'; -import { ViewSpeaker } from '../../../../../agenda'; +import { ViewSpeaker } from '../../../../../agenda/modules/list-of-speakers/view-models/view-speaker'; @Service() export class ParticipantSpeakerListSortService extends BaseSortListService { diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/services/structure-level-controller.service.ts b/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/services/structure-level-controller.service.ts index 9d404a5d10..1a8d039dfd 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/services/structure-level-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/structure-levels/services/structure-level-controller.service.ts @@ -4,20 +4,15 @@ import { Identifiable } from '@app/domain/interfaces'; import { StructureLevel } from '@app/domain/models/structure-levels/structure-level'; import { StructureLevelRepositoryService } from '@app/gateways/repositories/structure-levels'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { Observable } from 'rxjs'; import { ViewStructureLevel } from '../view-models/view-structure-level'; @Service() export class StructureLevelControllerService extends BaseMeetingControllerService { - protected override repo: StructureLevelRepositoryService; + protected repo: StructureLevelRepositoryService = inject(StructureLevelRepositoryService); - public constructor() { - const controllerServiceCollector = inject(MeetingControllerServiceCollectorService); - const repo = inject(StructureLevelRepositoryService); - super(controllerServiceCollector, StructureLevel, repo); - } + public baseModelCtor = StructureLevel; public create(...structureLevels: Partial[]): Promise { return this.repo.create(structureLevels).resolve(); diff --git a/client/src/app/site/pages/meetings/pages/participants/participants.config.ts b/client/src/app/site/pages/meetings/pages/participants/participants.config.ts index ca27c2b3b2..603e51c11f 100644 --- a/client/src/app/site/pages/meetings/pages/participants/participants.config.ts +++ b/client/src/app/site/pages/meetings/pages/participants/participants.config.ts @@ -8,8 +8,8 @@ import { UserRepositoryService } from '@app/gateways/repositories/users'; import { AppConfig } from '@app/infrastructure/definitions/app-config'; import { ViewUser } from '../../view-models/view-user'; -import { ViewGroup } from './modules'; -import { ViewStructureLevel } from './pages/structure-levels/view-models'; +import { ViewGroup } from './modules/groups/view-models/view-group'; +import { ViewStructureLevel } from './pages/structure-levels/view-models/view-structure-level'; export const ParticipantsAppConfig: AppConfig = { name: `users`, diff --git a/client/src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service/participant-controller.service.ts b/client/src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service/participant-controller.service.ts index 425aaa2b36..5914b91621 100644 --- a/client/src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service/participant-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service/participant-controller.service.ts @@ -18,7 +18,6 @@ import { toDecimal } from '@app/infrastructure/utils'; import { UserDeleteDialogService } from '@app/site/modules/user-components'; import { BaseMeetingControllerService } from '@app/site/pages/meetings/base/base-meeting-controller.service'; import { MeetingControllerService } from '@app/site/pages/meetings/services/meeting-controller.service'; -import { MeetingControllerServiceCollectorService } from '@app/site/pages/meetings/services/meeting-controller-service-collector.service'; import { ViewMeeting } from '@app/site/pages/meetings/view-models/view-meeting'; import { ViewMeetingUser } from '@app/site/pages/meetings/view-models/view-meeting-user'; import { ViewUser } from '@app/site/pages/meetings/view-models/view-user'; @@ -60,7 +59,7 @@ export class ParticipantControllerService extends BaseMeetingControllerService>({}); - protected override repo: UserRepositoryService; + protected repo: UserRepositoryService = inject(UserRepositoryService); private meetingUserRepo = inject(MeetingUserRepositoryService); public meetingController = inject(MeetingControllerService); private userController = inject(UserControllerService); @@ -70,10 +69,10 @@ export class ParticipantControllerService extends BaseMeetingControllerService { diff --git a/client/src/app/site/pages/meetings/pages/polls/polls.config.ts b/client/src/app/site/pages/meetings/pages/polls/polls.config.ts index d3c9774d67..2a1a4f644d 100644 --- a/client/src/app/site/pages/meetings/pages/polls/polls.config.ts +++ b/client/src/app/site/pages/meetings/pages/polls/polls.config.ts @@ -10,9 +10,11 @@ import { PollRepositoryService } from '@app/gateways/repositories/polls/poll-rep import { VoteRepositoryService } from '@app/gateways/repositories/polls/vote-repository.service'; import { AppConfig } from '../../../../../infrastructure/definitions/app-config'; -import { ViewOption, ViewPoll, ViewVote } from './view-models'; +import { ViewOption } from './view-models/view-option'; +import { ViewPoll } from './view-models/view-poll'; import { ViewPollCandidate } from './view-models/view-poll-candidate'; import { ViewPollCandidateList } from './view-models/view-poll-candidate-list'; +import { ViewVote } from './view-models/view-vote'; export const PollsAppConfig: AppConfig = { name: `poll`, diff --git a/client/src/app/site/pages/meetings/pages/polls/polls.subscription.ts b/client/src/app/site/pages/meetings/pages/polls/polls.subscription.ts index 6e616a9ee9..c920aaa799 100644 --- a/client/src/app/site/pages/meetings/pages/polls/polls.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/polls/polls.subscription.ts @@ -5,7 +5,7 @@ import { SubscriptionConfigGenerator } from '@app/domain/interfaces/subscription import { BaseSimplifiedModelRequest } from '@app/site/services/model-request-builder'; import { ViewMeeting } from '../../view-models/view-meeting'; -import { ViewPoll } from './view-models'; +import { ViewPoll } from './view-models/view-poll'; export const POLL_LIST_SUBSCRIPTION = `poll_list`; export const POLL_DETAIL_SUBSCRIPTION = `poll_detail`; diff --git a/client/src/app/site/pages/meetings/pages/polls/view-models/view-option.ts b/client/src/app/site/pages/meetings/pages/polls/view-models/view-option.ts index 49c1a7c3d8..e2b011273d 100644 --- a/client/src/app/site/pages/meetings/pages/polls/view-models/view-option.ts +++ b/client/src/app/site/pages/meetings/pages/polls/view-models/view-option.ts @@ -5,10 +5,12 @@ import { Option } from '../../../../../../domain/models/poll/option'; import { BaseViewModel, ViewModelRelations } from '../../../../../base/base-view-model'; import { HasMeeting } from '../../../view-models/has-meeting'; import { ViewUser } from '../../../view-models/view-user'; -import { UnknownUserLabel } from '../../assignments/modules/assignment-poll/services/assignment-poll.service'; import { isSortedList, SortedList } from './sorted-list'; import { ViewPoll } from './view-poll'; import { ViewVote } from './view-vote'; + +export const UnknownUserLabel = _(`Deleted user`); + export class ViewOption extends BaseViewModel