From f63b585b74e36d7499db59ff373fdfb61e79b9c9 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 22 Oct 2024 16:23:49 +0200 Subject: [PATCH] OZG-6423 OZG-6975 Add button toggle component * replace toggles in vorgang-filter --- .../libs/design-component/src/index.ts | 1 + .../button-toggle-group.component.spec.ts | 21 + .../button-toggle-group.component.ts | 39 ++ alfa-client/libs/design-system/src/index.ts | 2 + .../button-toggle.component.spec.ts | 21 + .../button-toggle/button-toggle.component.ts | 28 + .../check-icon/check-icon.component.spec.ts | 21 + .../icons/check-icon/check-icon.component.ts | 25 + .../icons/check-icon/check-icon.stories.ts | 27 + .../vorgang-filter-menu-item.component.html | 4 - .../vorgang-filter-menu-item.component.scss | 0 ...vorgang-filter-menu-item.component.spec.ts | 23 - .../vorgang-filter-menu-item.component.ts | 10 - .../vorgang-filter-menu.component.html | 43 +- .../vorgang-filter-menu.component.ts | 2 +- .../libs/vorgang/src/lib/vorgang.module.ts | 6 +- alfa-client/package-lock.json | 641 ++---------------- 17 files changed, 269 insertions(+), 645 deletions(-) create mode 100644 alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts create mode 100644 alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts create mode 100644 alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts create mode 100644 alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts create mode 100644 alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts create mode 100644 alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts create mode 100644 alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts delete mode 100644 alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html delete mode 100644 alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.scss delete mode 100644 alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts delete mode 100644 alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts diff --git a/alfa-client/libs/design-component/src/index.ts b/alfa-client/libs/design-component/src/index.ts index bca590ff4d..600bb7d1db 100644 --- a/alfa-client/libs/design-component/src/index.ts +++ b/alfa-client/libs/design-component/src/index.ts @@ -1,5 +1,6 @@ export * from './lib/button-with-spinner/button-with-spinner.component'; export * from './lib/download-button/download-button.component'; +export * from './lib/form/button-toggle-group/button-toggle-group.component'; export * from './lib/form/checkbox-editor/checkbox-editor.component'; export * from './lib/form/file-upload-editor/file-upload-editor.component'; export * from './lib/form/formcontrol-editor.abstract.component'; diff --git a/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts new file mode 100644 index 0000000000..b9d4f78a6d --- /dev/null +++ b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ButtonToggleGroupComponent } from './button-toggle-group.component'; + +describe('ButtonToggleGroupComponent', () => { + let component: ButtonToggleGroupComponent; + let fixture: ComponentFixture<ButtonToggleGroupComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ButtonToggleGroupComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(ButtonToggleGroupComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts new file mode 100644 index 0000000000..db80fe5922 --- /dev/null +++ b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts @@ -0,0 +1,39 @@ +import { CommonModule } from '@angular/common'; +import { Component, ContentChildren, QueryList } from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { ButtonToggleComponent } from '@ods/system'; +import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component'; + +@Component({ + selector: 'ods-button-toggle-group', + standalone: true, + imports: [CommonModule], + template: `<div + class="flex divide-x divide-neutral-300 overflow-hidden rounded-full border border-neutral-300 bg-white dark:divide-neutral-600 dark:border-neutral-600 dark:bg-neutral-700" + role="group" + > + <ng-content></ng-content> + </div>`, +}) +export class ButtonToggleGroupComponent extends FormControlEditorAbstractComponent { + @ContentChildren(ButtonToggleComponent) buttonToggles!: QueryList<ButtonToggleComponent>; + + ngAfterContentInit(): void { + this.buttonToggles.forEach((toggleButton) => { + toggleButton.onClick = this.setFormControlValue(toggleButton.value); + toggleButton.isSelected = this.isValueSelected(); + }); + } + + setFormControlValue(value: string) { + const formControl: FormControl = this.fieldControl; + return () => { + if (formControl.value !== value) formControl.setValue(value); + }; + } + + isValueSelected() { + const formControl: FormControl = this.fieldControl; + return (value: string) => formControl.value === value; + } +} diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts index 9a450a885b..35d2f48917 100644 --- a/alfa-client/libs/design-system/src/index.ts +++ b/alfa-client/libs/design-system/src/index.ts @@ -7,6 +7,7 @@ export * from './lib/button-card/button-card.component'; export * from './lib/button/button.component'; export * from './lib/dropdown-menu/dropdown-menu-button/dropdown-menu-button.component'; export * from './lib/dropdown-menu/dropdown-menu/dropdown-menu.component'; +export * from './lib/form/button-toggle/button-toggle.component'; export * from './lib/form/checkbox/checkbox.component'; export * from './lib/form/error-message/error-message.component'; export * from './lib/form/fieldset/fieldset.component'; @@ -18,6 +19,7 @@ export * from './lib/icons/admin-logo-icon/admin-logo-icon.component'; export * from './lib/icons/attachment-icon/attachment-icon.component'; export * from './lib/icons/bescheid-generate-icon/bescheid-generate-icon.component'; export * from './lib/icons/bescheid-upload-icon/bescheid-upload-icon.component'; +export * from './lib/icons/check-icon/check-icon.component'; export * from './lib/icons/close-icon/close-icon.component'; export * from './lib/icons/exclamation-icon/exclamation-icon.component'; export * from './lib/icons/file-icon/file-icon.component'; diff --git a/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts new file mode 100644 index 0000000000..0fe18e0c1e --- /dev/null +++ b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ButtonToggleComponent } from './button-toggle.component'; + +describe('ButtonToggleComponent', () => { + let component: ButtonToggleComponent; + let fixture: ComponentFixture<ButtonToggleComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ButtonToggleComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(ButtonToggleComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts new file mode 100644 index 0000000000..bfca966dc8 --- /dev/null +++ b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts @@ -0,0 +1,28 @@ +import { CommonModule } from '@angular/common'; +import { Component, Input } from '@angular/core'; +import { CheckIconComponent } from '../../icons/check-icon/check-icon.component'; + +@Component({ + selector: 'ods-button-toggle', + standalone: true, + imports: [CommonModule, CheckIconComponent], + template: `<button + class="flex cursor-pointer items-center gap-1 px-3 py-1.5 outline-none hover:bg-neutral-300 focus-visible:bg-neutral-300 dark:hover:bg-neutral-600 dark:focus-visible:bg-neutral-600" + [ngClass]="{ + 'bg-neutral-200 font-bold hover:bg-neutral-200 focus-visible:bg-neutral-200 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:focus-visible:bg-neutral-800': + isSelected(value), + }" + [value]="value" + (click)="onClick()" + > + <ods-check-icon size="small" *ngIf="isSelected(value)" /> + <p class="text-sm">{{ label }}</p> + </button>`, +}) +export class ButtonToggleComponent { + @Input({ required: true }) label!: string; + @Input({ required: true }) value!: string; + @Input() selected: boolean = false; + @Input() onClick: () => void; + @Input() isSelected: (value: string) => boolean = () => false; +} diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts new file mode 100644 index 0000000000..05970168c7 --- /dev/null +++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { CheckIconComponent } from './check-icon.component'; + +describe('CheckIconComponent', () => { + let component: CheckIconComponent; + let fixture: ComponentFixture<CheckIconComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CheckIconComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(CheckIconComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts new file mode 100644 index 0000000000..f2370f2c19 --- /dev/null +++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts @@ -0,0 +1,25 @@ +import { CommonModule } from '@angular/common'; +import { Component, Input } from '@angular/core'; +import { twMerge } from 'tailwind-merge'; +import { iconVariants, IconVariants } from '../iconVariants'; + +@Component({ + selector: 'ods-check-icon', + standalone: true, + imports: [CommonModule], + template: `<svg + viewBox="0 0 24 24" + [ngClass]="[twMerge(iconVariants({ size }), 'fill-text', class)]" + aria-hidden="true" + xmlns="http://www.w3.org/2000/svg" + > + <path d="M9.55 18L3.85 12.3L5.275 10.875L9.55 15.15L18.725 5.975L20.15 7.4L9.55 18Z" /> + </svg>`, +}) +export class CheckIconComponent { + @Input() size: IconVariants['size'] = 'medium'; + @Input() class: string = undefined; + + readonly iconVariants = iconVariants; + readonly twMerge = twMerge; +} diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts new file mode 100644 index 0000000000..ba38546170 --- /dev/null +++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/angular'; + +import { CheckIconComponent } from './check-icon.component'; + +const meta: Meta<CheckIconComponent> = { + title: 'Icons/Check icon', + component: CheckIconComponent, + excludeStories: /.*Data$/, + tags: ['autodocs'], +}; + +export default meta; +type Story = StoryObj<CheckIconComponent>; + +export const Default: Story = { + args: { size: 'medium' }, + argTypes: { + size: { + control: 'select', + options: ['small', 'medium', 'large', 'extra-large', 'full'], + description: 'Size of icon. Property "full" means 100%', + table: { + defaultValue: { summary: 'medium' }, + }, + }, + }, +}; diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html deleted file mode 100644 index 8fd35cdadf..0000000000 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html +++ /dev/null @@ -1,4 +0,0 @@ -<div class="filter-item-content"> - <mat-icon [inline]="true">check</mat-icon> - <span>{{ label }}</span> -</div> diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.scss b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts deleted file mode 100644 index b5d3651aa3..0000000000 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIcon } from '@angular/material/icon'; -import { VorgangFilterMenuItemComponent } from './vorgang-filter-menu-item.component'; - -describe('VorgangFilterMenuItemComponent', () => { - let component: VorgangFilterMenuItemComponent; - let fixture: ComponentFixture<VorgangFilterMenuItemComponent>; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [VorgangFilterMenuItemComponent], - imports: [MatIcon], - }).compileComponents(); - - fixture = TestBed.createComponent(VorgangFilterMenuItemComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts deleted file mode 100644 index cd21bb2c5a..0000000000 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component, Input } from '@angular/core'; - -@Component({ - selector: 'alfa-vorgang-filter-menu-item', - templateUrl: './vorgang-filter-menu-item.component.html', - styleUrls: ['./vorgang-filter-menu-item.component.scss'], -}) -export class VorgangFilterMenuItemComponent { - @Input() label: string; -} diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html index 07b48c607f..c2730e7f0d 100644 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html +++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html @@ -23,41 +23,22 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<form - [formGroup]="formService.form" - *ngIf="multipleFilterAvailable" - data-test-id="vorgang-filter-form" -> - <mat-button-toggle-group [formControlName]="filterName" multiple="false"> - <mat-button-toggle +<form [formGroup]="formService.form" *ngIf="multipleFilterAvailable" data-test-id="vorgang-filter-form"> + <ods-button-toggle-group [formControlName]="filterName"> + <ods-button-toggle *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.MEINE_VORGAENGE" - data-test-id="meine-vorgaenge-filter-toggle-button" [value]="formService.FILTER_MEINE_VALUE" - > - <alfa-vorgang-filter-menu-item - label="Meine Vorgänge" - data-test-id="meine-vorgaenge-filter-item" - ></alfa-vorgang-filter-menu-item> - </mat-button-toggle> - <mat-button-toggle + label="Meine Vorgänge" + ></ods-button-toggle> + <ods-button-toggle *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.ALLE_VORGAENGE" - data-test-id="alle-filter-toggle-button" [value]="formService.FILTER_ALLE_VALUE" - > - <alfa-vorgang-filter-menu-item - label="Alle" - data-test-id="alle-filter-item" - ></alfa-vorgang-filter-menu-item> - </mat-button-toggle> - <mat-button-toggle + label="Alle" + ></ods-button-toggle> + <ods-button-toggle *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.UNASSIGNED" - data-test-id="nicht-zugewiesen-filter-toggle-button" [value]="formService.FILTER_UNASSIGNED_VALUE" - > - <alfa-vorgang-filter-menu-item - label="Nicht zugewiesen" - data-test-id="unassigned-filter-toggle-button" - ></alfa-vorgang-filter-menu-item> - </mat-button-toggle> - </mat-button-toggle-group> + label="Nicht zugewiesen" + ></ods-button-toggle> + </ods-button-toggle-group> </form> diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts index e76fea332e..8de2c4a026 100644 --- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts +++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts @@ -21,9 +21,9 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { Component, Input } from '@angular/core'; import { ApiRootLinkRel, ApiRootResource } from '@alfa-client/api-root-shared'; import { StateResource } from '@alfa-client/tech-shared'; +import { Component, Input } from '@angular/core'; import { hasLink } from '@ngxp/rest'; import { VorgangFilterFormService } from './vorgang-filter-menu.formservice'; diff --git a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts index 0fea0e60e6..1192e892db 100644 --- a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts +++ b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts @@ -33,6 +33,8 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { RouterModule, Routes } from '@angular/router'; +import { ButtonToggleGroupComponent } from '@ods/component'; +import { ButtonToggleComponent } from '@ods/system'; import { vorgangFilterViewGuard } from './vorgang-filter-view.guard'; import { VorgangListContainerComponent } from './vorgang-list-container/vorgang-list-container.component'; import { EmptyListComponent } from './vorgang-list-container/vorgang-list/empty-list/empty-list.component'; @@ -43,7 +45,6 @@ import { VorgangNextFristButtonComponent } from './vorgang-list-container/vorgan import { VorgangListComponent } from './vorgang-list-container/vorgang-list/vorgang-list.component'; import { VorgangListPageContainerComponent } from './vorgang-list-page-container/vorgang-list-page-container.component'; import { VorgangFilterMenuContainerComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu-container.component'; -import { VorgangFilterMenuItemComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component'; import { VorgangFilterMenuComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component'; import { VorgangListPageComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-list-page.component'; import { VorgangViewsMenuContainerComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-views-menu-container/vorgang-views-menu-container.component'; @@ -177,6 +178,8 @@ const routes: Routes = [ UserProfileModule, MatButtonToggleModule, HintModule, + ButtonToggleComponent, + ButtonToggleGroupComponent, ], declarations: [ VorgangListComponent, @@ -192,7 +195,6 @@ const routes: Routes = [ VorgangSearchViewItemComponent, VorgangSearchViewItemContainerComponent, VorgangListSearchContainerComponent, - VorgangFilterMenuItemComponent, VorgangCreatedAtComponent, VorgangViewItemContainerComponent, VorgangViewItemComponent, diff --git a/alfa-client/package-lock.json b/alfa-client/package-lock.json index fb4576d57b..d18af9d2b7 100644 --- a/alfa-client/package-lock.json +++ b/alfa-client/package-lock.json @@ -1217,6 +1217,32 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/core": { "version": "18.2.8", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@angular/core/-/core-18.2.8.tgz", @@ -5765,85 +5791,6 @@ "y18n": "^4.0.0" } }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/braces": { - "version": "3.0.3", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chownr": { "version": "1.1.4", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chownr/-/chownr-1.1.4.tgz", @@ -5924,20 +5871,6 @@ "node": ">=6" } }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/is-extendable": { "version": "0.1.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-extendable/-/is-extendable-0.1.1.tgz", @@ -6134,20 +6067,6 @@ "node": ">=4" } }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/pify": { "version": "4.0.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/pify/-/pify-4.0.1.tgz", @@ -6187,20 +6106,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/rimraf": { "version": "2.7.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/rimraf/-/rimraf-2.7.1.tgz", @@ -15125,31 +15030,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/builder-webpack5/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -15281,19 +15161,6 @@ "node": ">=14.14" } }, - "node_modules/@storybook/builder-webpack5/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/has-flag": { "version": "4.0.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz", @@ -15324,32 +15191,6 @@ "node": "*" } }, - "node_modules/@storybook/builder-webpack5/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/supports-color": { "version": "7.2.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-7.2.0.tgz", @@ -19911,18 +19752,37 @@ } }, "node_modules/chokidar": { - "version": "4.0.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "license": "MIT", + "version": "3.6.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/chownr": { @@ -24552,30 +24412,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -24606,18 +24442,6 @@ "node": ">=12" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz", @@ -24645,30 +24469,6 @@ "node": "*" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/schema-utils/-/schema-utils-3.3.0.tgz", @@ -30932,32 +30732,6 @@ "license": "Python-2.0", "peer": true }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cliui/-/cliui-7.0.4.tgz", @@ -31007,20 +30781,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz", @@ -31060,34 +30820,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/mocha/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -31896,31 +31628,6 @@ } } }, - "node_modules/ng-packagr/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/ng-packagr/node_modules/commander": { "version": "12.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-12.1.0.tgz", @@ -31938,45 +31645,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/ng-packagr/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ng-packagr/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/ng-packagr/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nice-napi/-/nice-napi-1.0.2.tgz", @@ -35937,16 +35605,25 @@ } }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "license": "MIT", + "version": "3.6.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">= 14.16.0" + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/recast": { @@ -36718,66 +36395,6 @@ } } }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sass/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/sax": { "version": "1.4.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/sax/-/sax-1.4.1.tgz", @@ -38694,44 +38311,6 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/tailwindcss/node_modules/lilconfig": { "version": "2.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/lilconfig/-/lilconfig-2.1.0.tgz", @@ -38742,19 +38321,6 @@ "node": ">=10" } }, - "node_modules/tailwindcss/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tailwindcss/node_modules/postcss-import": { "version": "15.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/postcss-import/-/postcss-import-15.1.0.tgz", @@ -38773,19 +38339,6 @@ "postcss": "^8.0.0" } }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tapable/-/tapable-2.2.1.tgz", @@ -41663,30 +41216,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/webpack-dev-server/node_modules/glob": { "version": "10.4.5", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob/-/glob-10.4.5.tgz", @@ -41707,18 +41236,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.7", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", @@ -41767,30 +41284,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "5.0.10", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/rimraf/-/rimraf-5.0.10.tgz", -- GitLab