From a6c8bc6d868b37df0758845c5140b1510a2b6117 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 14:53:35 +0100 Subject: [PATCH 1/5] chore(dependencies): update --- package.json | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index eaa8f091..16b68f69 100644 --- a/package.json +++ b/package.json @@ -36,16 +36,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.0.4", - "@angular/cdk": "^17.0.1", - "@angular/common": "^17.0.4", - "@angular/compiler": "^17.0.4", - "@angular/core": "^17.0.4", - "@angular/forms": "^17.0.4", - "@angular/localize": "^17.0.4", - "@angular/platform-browser": "^17.0.4", - "@angular/platform-browser-dynamic": "^17.0.4", - "@angular/router": "^17.0.4", + "@angular/animations": "^17.0.6", + "@angular/cdk": "^17.0.2", + "@angular/common": "^17.0.6", + "@angular/compiler": "^17.0.6", + "@angular/core": "^17.0.6", + "@angular/forms": "^17.0.6", + "@angular/localize": "^17.0.6", + "@angular/platform-browser": "^17.0.6", + "@angular/platform-browser-dynamic": "^17.0.6", + "@angular/router": "^17.0.6", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -55,22 +55,22 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.3", - "@angular-eslint/builder": "^17.1.0", - "@angular-eslint/eslint-plugin": "^17.1.0", - "@angular-eslint/eslint-plugin-template": "^17.1.0", - "@angular-eslint/schematics": "^17.1.0", - "@angular-eslint/template-parser": "^17.1.0", - "@angular/cli": "^17.0.3", - "@angular/compiler-cli": "^17.0.4", - "@angular/language-service": "^17.0.4", + "@angular-devkit/build-angular": "^17.0.6", + "@angular-eslint/builder": "^17.1.1", + "@angular-eslint/eslint-plugin": "^17.1.1", + "@angular-eslint/eslint-plugin-template": "^17.1.1", + "@angular-eslint/schematics": "^17.1.1", + "@angular-eslint/template-parser": "^17.1.1", + "@angular/cli": "^17.0.6", + "@angular/compiler-cli": "^17.0.6", + "@angular/language-service": "^17.0.6", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "eslint": "^8.54.0", + "@types/node": "^20.10.4", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", + "eslint": "^8.55.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", From 2cfbfa9fdc42101bfad766f6235e6e8328d5ea18 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 14:57:47 +0100 Subject: [PATCH 2/5] refactor(backdrop, modal, offcanvas): move scrollbar adjustments to offcanvas, cleanups --- .../src/lib/backdrop/backdrop.service.ts | 77 ++++++++----- .../src/lib/modal/modal/modal.component.html | 2 +- .../src/lib/modal/modal/modal.component.ts | 109 +++++++++--------- .../offcanvas/offcanvas.component.ts | 103 ++++++++--------- 4 files changed, 158 insertions(+), 133 deletions(-) diff --git a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts index 778ab6db..002b6dd7 100644 --- a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts +++ b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts @@ -1,4 +1,4 @@ -import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core'; +import { inject, Injectable, RendererFactory2 } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { Subject } from 'rxjs'; @@ -7,53 +7,76 @@ import { Subject } from 'rxjs'; }) export class BackdropService { - private backdropClick = new Subject(); - backdropClick$ = this.backdropClick.asObservable(); + readonly #backdropClick = new Subject(); + readonly backdropClick$ = this.#backdropClick.asObservable(); - private renderer: Renderer2; - private unListen!: () => void; + #document = inject(DOCUMENT); + #rendererFactory = inject(RendererFactory2); + #renderer = this.#rendererFactory.createRenderer(null, null); + #unListen!: () => void; - constructor( - @Inject(DOCUMENT) private document: Document, - private rendererFactory: RendererFactory2 - ) { - this.renderer = rendererFactory.createRenderer(null, null); - } + activeBackdrop: any; - get scrollbarWidth() { + get #scrollbarWidth() { // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes - const documentWidth = this.document.documentElement.clientWidth; + const documentWidth = this.#document.documentElement.clientWidth; const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth); return `${scrollbarWidth}px`; } + scrollbarWidth = this.#scrollbarWidth; + setBackdrop(type: string = 'modal'): any { - const backdropElement = this.renderer.createElement('div'); - this.renderer.addClass(backdropElement, `${type}-backdrop`); - this.renderer.addClass(backdropElement, 'fade'); - this.renderer.appendChild(this.document.body, backdropElement); - this.unListen = this.renderer.listen(backdropElement, 'click', (e): void => { + const backdropElement = this.#renderer.createElement('div'); + this.#renderer.addClass(backdropElement, `${type}-backdrop`); + this.#renderer.addClass(backdropElement, 'fade'); + this.#renderer.appendChild(this.#document.body, backdropElement); + this.#unListen = this.#renderer.listen(backdropElement, 'click', (e): void => { this.onClickHandler(); }); + this.scrollbarWidth = this.#scrollbarWidth; setTimeout(() => { - this.renderer.addClass(backdropElement, 'show'); + this.#renderer.addClass(backdropElement, 'show'); + // this.hideScrollbar(); }); + this.activeBackdrop = backdropElement; return backdropElement; } - clearBackdrop(backdrop: any): any { - if (backdrop) { - this.unListen(); - this.renderer.removeClass(backdrop, 'show'); + clearBackdrop(backdropElement: any): any { + if (backdropElement) { + this.#unListen(); + this.#renderer.removeClass(backdropElement, 'show'); setTimeout(() => { - this.renderer.removeChild(this.document.body, backdrop); - backdrop = undefined; + this.#renderer.removeChild(this.#document.body, backdropElement); + if (this.activeBackdrop === backdropElement) { + this.resetScrollbar(); + } + backdropElement = undefined; }, 300); } - return backdrop; + return undefined; + } + + get #isRTL() { return this.#document.documentElement.dir === 'rtl' || this.#document.body.dir === 'rtl'; } + + #scrollBarVisible = true; + + hideScrollbar(): void { + if (this.#scrollBarVisible) { + this.#renderer.setStyle(this.#document.body, 'overflow', 'hidden'); + this.#renderer.setStyle(this.#document.body, `padding-${this.#isRTL ? 'left' : 'right'}`, this.scrollbarWidth); + this.#scrollBarVisible = false; + } + } + + resetScrollbar(): void { + this.#renderer.removeStyle(this.#document.body, 'overflow'); + this.#renderer.removeStyle(this.#document.body, `padding-${this.#isRTL ? 'left' : 'right'}`); + this.#scrollBarVisible = true; } onClickHandler(): void { - this.backdropClick.next(true); + this.#backdropClick.next(true); } } diff --git a/projects/coreui-angular/src/lib/modal/modal/modal.component.html b/projects/coreui-angular/src/lib/modal/modal/modal.component.html index 5de848d2..a110c003 100644 --- a/projects/coreui-angular/src/lib/modal/modal/modal.component.html +++ b/projects/coreui-angular/src/lib/modal/modal/modal.component.html @@ -4,7 +4,7 @@ [scrollable]="scrollable" [size]="size"> -
+
diff --git a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts index e574a112..7a5f5a6a 100644 --- a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts +++ b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts @@ -1,22 +1,28 @@ +import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'; +import { DOCUMENT } from '@angular/common'; import { + AfterViewInit, + booleanAttribute, Component, + DestroyRef, + effect, ElementRef, EventEmitter, HostBinding, HostListener, + inject, Inject, Input, OnDestroy, OnInit, Output, Renderer2, - ViewChild + signal, + ViewChild, + WritableSignal } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; -import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'; -import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; -import { A11yModule } from '@angular/cdk/a11y'; -import { Subscription } from 'rxjs'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { A11yModule, FocusMonitor } from '@angular/cdk/a11y'; import { ModalService } from '../modal.service'; import { BackdropService } from '../../backdrop/backdrop.service'; @@ -39,7 +45,7 @@ import { ModalDialogComponent } from '../modal-dialog/modal-dialog.component'; // display: 'none' }) ), - transition('visible <=> *', [animate('300ms')]) + transition('visible <=> *', [animate('150ms')]) ]) ], templateUrl: './modal.component.html', @@ -47,10 +53,10 @@ import { ModalDialogComponent } from '../modal-dialog/modal-dialog.component'; standalone: true, imports: [ModalDialogComponent, ModalContentComponent, A11yModule] }) -export class ModalComponent implements OnInit, OnDestroy { +export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { - static ngAcceptInputType_scrollable: BooleanInput; - static ngAcceptInputType_visible: BooleanInput; + #destroyRef = inject(DestroyRef); + #focusMonitor = inject(FocusMonitor); constructor( @Inject(DOCUMENT) private document: Document, @@ -83,7 +89,7 @@ export class ModalComponent implements OnInit, OnDestroy { * @type boolean * @default true */ - @Input() keyboard = true; + @Input({ transform: booleanAttribute }) keyboard = true; @Input() id?: string; /** * Size the component small, large, or extra large. @@ -92,55 +98,55 @@ export class ModalComponent implements OnInit, OnDestroy { /** * Remove animation to create modal that simply appear rather than fade in to view. */ - @Input() transition = true; + @Input({ transform: booleanAttribute }) transition = true; /** * Default role for modal. [docs] * @type string * @default 'dialog' */ @Input() @HostBinding('attr.role') role = 'dialog'; + /** * Set aria-modal html attr for modal. [docs] * @type boolean - * @default true + * @default null */ - @Input() @HostBinding('attr.aria-modal') ariaModal = true; + @Input() @HostBinding('attr.aria-modal') + set ariaModal(value: boolean | null) { + this.#ariaModal = value; + } + + get ariaModal(): boolean | null { + return this.visible || this.#ariaModal ? true : null; + }; + + #ariaModal: boolean | null = null; /** * Create a scrollable modal that allows scrolling the modal body. * @type boolean */ - @Input() - set scrollable(value: boolean) { - this._scrollable = coerceBooleanProperty(value); - } - - get scrollable(): boolean { - return this._scrollable; - } - - private _scrollable = false; + @Input({ transform: booleanAttribute }) scrollable: boolean = false; /** * Toggle the visibility of modal component. * @type boolean */ - @Input() + @Input({ transform: booleanAttribute }) set visible(value: boolean) { - const newValue = coerceBooleanProperty(value); - if (this._visible !== newValue) { - this._visible = newValue; - this.setBackdrop(this.backdrop !== false && newValue); - this.setBodyStyles(newValue); - this.visibleChange.emit(newValue); + if (this.#visible() !== value) { + this.#visible.set(value); + this.setBackdrop(this.backdrop !== false && value); + this.setBodyStyles(value); + this.visibleChange.emit(value); } } get visible(): boolean { - return this._visible; + return this.#visible(); } - private _visible!: boolean; + #visible: WritableSignal = signal(false); /** * Event triggered on modal dismiss. @@ -148,8 +154,9 @@ export class ModalComponent implements OnInit, OnDestroy { @Output() visibleChange = new EventEmitter(); @ViewChild(ModalContentComponent, { read: ElementRef }) modalContent!: ElementRef; - private activeBackdrop!: any; - private stateToggleSubscription!: Subscription; + @ViewChild('modalContentRef', { read: ElementRef }) modalContentRef!: ElementRef; + + #activeBackdrop!: any; // private inBoundingClientRect!: boolean; @@ -189,10 +196,8 @@ export class ModalComponent implements OnInit, OnDestroy { @HostListener('@showHide.start', ['$event']) animateStart(event: AnimationEvent) { - const scrollbarWidth = this.backdropService.scrollbarWidth; if (event.toState === 'visible') { - this.renderer.setStyle(this.document.body, 'overflow', 'hidden'); - this.renderer.setStyle(this.document.body, 'padding-right', scrollbarWidth); + this.backdropService.hideScrollbar(); this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'block'); } else { if (!this.transition) { @@ -206,8 +211,6 @@ export class ModalComponent implements OnInit, OnDestroy { setTimeout(() => { if (event.toState === 'hidden') { this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'none'); - this.renderer.removeStyle(this.document.body, 'overflow'); - this.renderer.removeStyle(this.document.body, 'padding-right'); } }); this.show = this.visible; @@ -255,14 +258,23 @@ export class ModalComponent implements OnInit, OnDestroy { this.stateToggleSubscribe(); } + #afterViewInit = signal(false); + + ngAfterViewInit(): void { + this.#afterViewInit.set(true); + } + ngOnDestroy(): void { this.modalService.toggle({ show: false, modal: this }); - this.stateToggleSubscribe(false); + this.#afterViewInit.set(false); } - private stateToggleSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.stateToggleSubscription = this.modalService.modalState$.subscribe( + private stateToggleSubscribe(): void { + this.modalService.modalState$ + .pipe( + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe( (action) => { if (this === action.modal || this.id === action.id) { if ('show' in action) { @@ -275,17 +287,10 @@ export class ModalComponent implements OnInit, OnDestroy { } } ); - } else { - this.stateToggleSubscription?.unsubscribe(); - } } private setBackdrop(setBackdrop: boolean): void { - if (setBackdrop) { - this.activeBackdrop = this.backdropService.setBackdrop('modal'); - } else { - this.activeBackdrop = this.backdropService.clearBackdrop(this.activeBackdrop); - } + this.#activeBackdrop = setBackdrop ? this.backdropService.setBackdrop('modal') : this.backdropService.clearBackdrop(this.#activeBackdrop); } private setBodyStyles(open: boolean): void { diff --git a/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts b/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts index 523e9428..4e36312d 100644 --- a/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts +++ b/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts @@ -1,9 +1,14 @@ +import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'; +import { DOCUMENT, isPlatformBrowser } from '@angular/common'; import { + booleanAttribute, Component, + DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, + inject, Inject, Input, OnDestroy, @@ -12,16 +17,14 @@ import { PLATFORM_ID, Renderer2 } from '@angular/core'; -import { DOCUMENT, isPlatformBrowser } from '@angular/common'; -import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'; -import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { A11yModule } from '@angular/cdk/a11y'; import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout'; import { Subscription } from 'rxjs'; import { filter } from 'rxjs/operators'; import { BackdropService } from '../../backdrop/backdrop.service'; import { OffcanvasService } from '../offcanvas.service'; -import { A11yModule } from '@angular/cdk/a11y'; let nextId = 0; @@ -52,6 +55,8 @@ let nextId = 0; }) export class OffcanvasComponent implements OnInit, OnDestroy { + #destroyRef = inject(DestroyRef); + constructor( @Inject(DOCUMENT) private document: Document, @Inject(PLATFORM_ID) private platformId: any, @@ -62,7 +67,6 @@ export class OffcanvasComponent implements OnInit, OnDestroy { private breakpointObserver: BreakpointObserver ) {} - static ngAcceptInputType_scroll: BooleanInput; /** * Apply a backdrop on body while offcanvas is open. * @type boolean | 'static' @@ -75,7 +79,7 @@ export class OffcanvasComponent implements OnInit, OnDestroy { * @type boolean * @default true */ - @Input() keyboard = true; + @Input({ transform: booleanAttribute }) keyboard = true; /** * Components placement, there’s no default placement. @@ -103,46 +107,28 @@ export class OffcanvasComponent implements OnInit, OnDestroy { * @type boolean * @default true */ - @Input() @HostBinding('attr.aria-modal') ariaModal = true; - /** - * Event triggered on visible change. - */ - @Output() readonly visibleChange = new EventEmitter(); - #scroll = false; - #visible: boolean = false; + @Input({ transform: booleanAttribute }) @HostBinding('attr.aria-modal') ariaModal = true; + #activeBackdrop!: HTMLDivElement; - #scrollbarWidth!: string; - #stateToggleSubscription!: Subscription; #backdropClickSubscription!: Subscription; #layoutChangeSubscription!: Subscription; #show = false; - get scroll() { - return this.#scroll; - } - /** * Allow body scrolling while offcanvas is visible. * @type boolean * @default false */ - @Input() - set scroll(value: boolean) { - this.#scroll = coerceBooleanProperty(value); - } - - get visible(): boolean { - return this.#visible; - } + @Input({ transform: booleanAttribute }) scroll: boolean = false; /** * Toggle the visibility of offcanvas component. * @type boolean * @default false */ - @Input() + @Input({ transform: booleanAttribute }) set visible(value: boolean) { - this.#visible = coerceBooleanProperty(value); + this.#visible = value; if (this.#visible) { this.setBackdrop(this.backdrop); this.setFocus(); @@ -153,6 +139,18 @@ export class OffcanvasComponent implements OnInit, OnDestroy { this.visibleChange.emit(value); } + get visible(): boolean { + return this.#visible; + } + + #visible: boolean = false; + + /** + * Event triggered on visible change. + * @type EventEmitter + */ + @Output() readonly visibleChange: EventEmitter = new EventEmitter(); + @HostBinding('class') get hostClasses(): any { return { @@ -198,11 +196,9 @@ export class OffcanvasComponent implements OnInit, OnDestroy { @HostListener('@showHide.start', ['$event']) animateStart(event: AnimationEvent) { - const scrollbarWidth = this.#scrollbarWidth; if (event.toState === 'visible') { if (!this.scroll) { - this.renderer.setStyle(this.document.body, 'overflow', 'hidden'); - this.renderer.setStyle(this.document.body, 'padding-right', scrollbarWidth); + this.backdropService.hideScrollbar(); } this.renderer.addClass(this.hostElement.nativeElement, 'showing'); } else { @@ -238,17 +234,15 @@ export class OffcanvasComponent implements OnInit, OnDestroy { } ngOnInit(): void { - this.#scrollbarWidth = this.backdropService.scrollbarWidth; this.stateToggleSubscribe(); setTimeout(() => { // hotfix to avoid offcanvas flicker on the first render this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'flex'); - }) + }); } ngOnDestroy(): void { this.offcanvasService.toggle({ show: false, id: this.id }); - this.stateToggleSubscribe(false); } setFocus(): void { @@ -257,35 +251,37 @@ export class OffcanvasComponent implements OnInit, OnDestroy { } } - private stateToggleSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.#stateToggleSubscription = - this.offcanvasService.offcanvasState$.subscribe((action) => { - if (this === action.offcanvas || this.id === action.id) { - if ('show' in action) { - this.visible = - action?.show === 'toggle' ? !this.visible : action.show; - } + private stateToggleSubscribe(): void { + this.offcanvasService.offcanvasState$ + .pipe( + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe((action) => { + if (this === action.offcanvas || this.id === action.id) { + if ('show' in action) { + this.visible = + action?.show === 'toggle' ? !this.visible : action.show; } - }); - } else { - this.#stateToggleSubscription?.unsubscribe(); - } + } + }); } private backdropClickSubscribe(subscribe: boolean = true): void { if (subscribe) { this.#backdropClickSubscription = - this.backdropService.backdropClick$.subscribe((clicked) => { - this.offcanvasService.toggle({ show: !clicked, id: this.id }); - }); + this.backdropService.backdropClick$ + .pipe( + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe((clicked) => { + this.offcanvasService.toggle({ show: !clicked, id: this.id }); + }); } else { this.#backdropClickSubscription?.unsubscribe(); } } private setBackdrop(setBackdrop: boolean | 'static'): void { - this.#scrollbarWidth = this.backdropService.scrollbarWidth; this.#activeBackdrop = !!setBackdrop ? this.backdropService.setBackdrop('offcanvas') : this.backdropService.clearBackdrop(this.#activeBackdrop); setBackdrop === true ? this.backdropClickSubscribe() @@ -306,7 +302,8 @@ export class OffcanvasComponent implements OnInit, OnDestroy { this.#layoutChangeSubscription = layoutChanges .pipe( - filter(breakpointState => !breakpointState.matches) + filter(breakpointState => !breakpointState.matches), + takeUntilDestroyed(this.#destroyRef) ) .subscribe( (breakpointState: BreakpointState) => { From 5115958fce6ff63ae5e58ddce0c35cff840a4703 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 15:06:55 +0100 Subject: [PATCH 3/5] feat(modal): restore focus on modal hide, set focus to visible modal --- .../src/lib/modal/modal/modal.component.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts index 7a5f5a6a..106bacf8 100644 --- a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts +++ b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts @@ -148,6 +148,26 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { #visible: WritableSignal = signal(false); + #activeElement: HTMLElement | null = null; + + #visibleEffect = effect(() => { + if (this.#visible() && this.#afterViewInit()) { + this.#activeElement = this.document.activeElement as HTMLElement; + // this.#activeElement?.blur(); + setTimeout(() => { + const focusable = this.modalContentRef.nativeElement.querySelectorAll('[tabindex]:not([tabindex="-1"]), button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled])'); + this.#focusMonitor.focusVia(focusable[0], 'keyboard'); + }); + } else { + if (this.document.contains(this.#activeElement)) { + setTimeout(() => { + this.#activeElement?.focus(); + this.#activeElement = null; + }); + } + } + }); + /** * Event triggered on modal dismiss. */ From 8609b0683bf42fb614d9fd69c9eda1feb7da3931 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 15:12:22 +0100 Subject: [PATCH 4/5] fix(backdrop): add missing export --- projects/coreui-angular/src/index.ts | 1 + projects/coreui-angular/src/lib/backdrop/index.ts | 1 + projects/coreui-angular/src/lib/backdrop/public_api.ts | 1 + projects/coreui-angular/src/lib/table/table.type.ts | 9 +++++---- projects/coreui-angular/src/public-api.ts | 1 + 5 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 projects/coreui-angular/src/index.ts create mode 100644 projects/coreui-angular/src/lib/backdrop/index.ts create mode 100644 projects/coreui-angular/src/lib/backdrop/public_api.ts diff --git a/projects/coreui-angular/src/index.ts b/projects/coreui-angular/src/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/projects/coreui-angular/src/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/projects/coreui-angular/src/lib/backdrop/index.ts b/projects/coreui-angular/src/lib/backdrop/index.ts new file mode 100644 index 00000000..4aaf8f92 --- /dev/null +++ b/projects/coreui-angular/src/lib/backdrop/index.ts @@ -0,0 +1 @@ +export * from './public_api'; diff --git a/projects/coreui-angular/src/lib/backdrop/public_api.ts b/projects/coreui-angular/src/lib/backdrop/public_api.ts new file mode 100644 index 00000000..af201b5c --- /dev/null +++ b/projects/coreui-angular/src/lib/backdrop/public_api.ts @@ -0,0 +1 @@ +export { BackdropService } from './backdrop.service'; diff --git a/projects/coreui-angular/src/lib/table/table.type.ts b/projects/coreui-angular/src/lib/table/table.type.ts index 3162b939..e7d014b8 100644 --- a/projects/coreui-angular/src/lib/table/table.type.ts +++ b/projects/coreui-angular/src/lib/table/table.type.ts @@ -52,7 +52,7 @@ export interface ITable { * @type boolean */ striped?: boolean | string; - attributes?: {[key: string]: any}; + attributes?: { [key: string]: any }; } export interface ITableElementProps { @@ -60,12 +60,13 @@ export interface ITableElementProps { * Set the vertical alignment. @type 'bottom' | 'middle' | 'top' */ - align?: ('bottom' | 'middle' | 'top') + align?: ('bottom' | 'middle' | 'top'); /** * Sets the color context of the component to one of CoreUI’s themed colors. * @type Colors */ - color?: Colors + color?: Colors; + _attributes?: { [key: string]: any }; } export interface ITableRowCellProps extends ITableElementProps { @@ -73,5 +74,5 @@ export interface ITableRowCellProps extends ITableElementProps { * Highlight a table row or cell @type boolean */ - active?: boolean + active?: boolean; } diff --git a/projects/coreui-angular/src/public-api.ts b/projects/coreui-angular/src/public-api.ts index 5dfcd2c6..405dd473 100644 --- a/projects/coreui-angular/src/public-api.ts +++ b/projects/coreui-angular/src/public-api.ts @@ -8,6 +8,7 @@ export * from './lib/accordion'; export * from './lib/alert'; export * from './lib/avatar'; export * from './lib/badge'; +export * from './lib/backdrop'; export * from './lib/breadcrumb'; export * from './lib/button'; export * from './lib/button-group'; From 755a51de68137616e70c906bc9629ea8809399cc Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 15:18:20 +0100 Subject: [PATCH 5/5] chore: ship v4.7.3 --- CHANGELOG.md | 9 + package-lock.json | 935 +++++++++---------- package.json | 2 +- projects/coreui-angular-chartjs/package.json | 2 +- projects/coreui-angular/package.json | 2 +- projects/coreui-icons-angular/package.json | 2 +- 6 files changed, 472 insertions(+), 480 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56001c7b..ad9eebe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ --- +#### `4.7.3` + +- refactor(backdrop, modal, offcanvas): move scrollbar adjustments to offcanvas, cleanups + feat(modal): restore focus on modal hide, set focus to visible modal +- fix(backdrop): add missing export +- chore(dependencies): update + +--- + #### `4.7.0` - chore(dependencies): update to `Angular 17` diff --git a/package-lock.json b/package-lock.json index 568a95c2..52e62d2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "coreui-angular-dev", - "version": "4.7.0", + "version": "4.7.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coreui-angular-dev", - "version": "4.7.0", + "version": "4.7.3", "license": "MIT", "dependencies": { - "@angular/animations": "^17.0.4", - "@angular/cdk": "^17.0.1", - "@angular/common": "^17.0.4", - "@angular/compiler": "^17.0.4", - "@angular/core": "^17.0.4", - "@angular/forms": "^17.0.4", - "@angular/localize": "^17.0.4", - "@angular/platform-browser": "^17.0.4", - "@angular/platform-browser-dynamic": "^17.0.4", - "@angular/router": "^17.0.4", + "@angular/animations": "^17.0.6", + "@angular/cdk": "^17.0.2", + "@angular/common": "^17.0.6", + "@angular/compiler": "^17.0.6", + "@angular/core": "^17.0.6", + "@angular/forms": "^17.0.6", + "@angular/localize": "^17.0.6", + "@angular/platform-browser": "^17.0.6", + "@angular/platform-browser-dynamic": "^17.0.6", + "@angular/router": "^17.0.6", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -28,22 +28,22 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.3", - "@angular-eslint/builder": "^17.1.0", - "@angular-eslint/eslint-plugin": "^17.1.0", - "@angular-eslint/eslint-plugin-template": "^17.1.0", - "@angular-eslint/schematics": "^17.1.0", - "@angular-eslint/template-parser": "^17.1.0", - "@angular/cli": "^17.0.3", - "@angular/compiler-cli": "^17.0.4", - "@angular/language-service": "^17.0.4", + "@angular-devkit/build-angular": "^17.0.6", + "@angular-eslint/builder": "^17.1.1", + "@angular-eslint/eslint-plugin": "^17.1.1", + "@angular-eslint/eslint-plugin-template": "^17.1.1", + "@angular-eslint/schematics": "^17.1.1", + "@angular-eslint/template-parser": "^17.1.1", + "@angular/cli": "^17.0.6", + "@angular/compiler-cli": "^17.0.6", + "@angular/language-service": "^17.0.6", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "eslint": "^8.54.0", + "@types/node": "^20.10.4", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", + "eslint": "^8.55.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", @@ -81,12 +81,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1700.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.3.tgz", - "integrity": "sha512-HUjx7vD16paWXHKHYc2LsSn/kaYbFr2YNnlzuSr9C0kauKS1e7sRpRvtGwQzXfohzgyKi81AAU5uA2KLRGq83w==", + "version": "0.1700.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.6.tgz", + "integrity": "sha512-zVpz736cBZHXcv0v2bRLfJLcykanUyEMVQXkGwZp2eygjNK1Ls9s/74o1dXd6nGdvjh6AnkzOU/vouj2dqA41g==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.3", + "@angular-devkit/core": "17.0.6", "rxjs": "7.8.1" }, "engines": { @@ -96,15 +96,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.3.tgz", - "integrity": "sha512-1lx0mERC1eTHX4vf8q7kUHZNHS0jwZxbwYHAISOplwHjkzRociX0W6rx04yMXn2NCSNhK+w3xbWyAIgyYbP9nA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.6.tgz", + "integrity": "sha512-gYxmbvq5/nk7aVJ6JxIIW0//RM7859kMPJGPKekcCGSWkkObjqG6P5cDgJJNAjMl/IfCsG7B+xGYjr4zN8QV9g==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1700.3", - "@angular-devkit/build-webpack": "0.1700.3", - "@angular-devkit/core": "17.0.3", + "@angular-devkit/architect": "0.1700.6", + "@angular-devkit/build-webpack": "0.1700.6", + "@angular-devkit/core": "17.0.6", "@babel/core": "7.23.2", "@babel/generator": "7.23.0", "@babel/helper-annotate-as-pure": "7.22.5", @@ -115,7 +115,7 @@ "@babel/preset-env": "7.23.2", "@babel/runtime": "7.23.2", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.0.3", + "@ngtools/webpack": "17.0.6", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.16", @@ -160,7 +160,7 @@ "tree-kill": "1.2.2", "tslib": "2.6.2", "undici": "5.27.2", - "vite": "4.5.0", + "vite": "4.5.1", "webpack": "5.89.0", "webpack-dev-middleware": "6.1.1", "webpack-dev-server": "4.15.1", @@ -219,12 +219,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1700.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.3.tgz", - "integrity": "sha512-r8nVakAnwV5Yy2AjWDpdcGUjHRQBcPljZDhX5tX2H7M3bxD6zG5owXDy8XmG64A7U1jd6D7dQv7zoW/tZwpYvw==", + "version": "0.1700.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.6.tgz", + "integrity": "sha512-xT5LL92rScVjvGZO7but/YbTQ12PNilosyjDouephl+HIf2V6rwDovTsEfpLYgcrqgodh+R0X0ZCOk95+MmSBA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.3", + "@angular-devkit/architect": "0.1700.6", "rxjs": "7.8.1" }, "engines": { @@ -238,9 +238,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.3.tgz", - "integrity": "sha512-SOngD3rKnwZWhhUV68AYlH8M3LRGvF69jnDrYKwtRy1ESqSH7tt+1vexGC290gKvqH7bNMgYv8f5BS1AASRfzw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.6.tgz", + "integrity": "sha512-+h9VnFHof7rKzBJ5FWrbPXWzbag31QKbUGJ/mV5BYgj39vjzPNUXBW8AaScZAlATi8+tElYXjRMvM49GnuyRLg==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -265,12 +265,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.3.tgz", - "integrity": "sha512-gNocyYuNJRd24+JSM5kpO7g9Vg4THcoH5It8nJmS3muelLHDzegvDzXB7iPBjVR8Lxts6sbifYdIkKencUc4vg==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.6.tgz", + "integrity": "sha512-2g769MpazA1aOzJOm2MNGosra3kxw8CbdIQQOKkvycIzroRNgN06yHcRTDC03GADgP/CkDJ6kxwJQNG+wNFL2A==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.3", + "@angular-devkit/core": "17.0.6", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -283,13 +283,13 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.1.0.tgz", - "integrity": "sha512-rLIInxx9q82DDrfcg5gzjNftxhkqdLILUgjlA9XtA9LayU3rz4CS81we+vAOAPbbnGxoMsEeBg5nVecbKN3dVQ==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.1.1.tgz", + "integrity": "sha512-QGnIaypNP1osDObTIRJ5JF1KdMBn2oghZXMZAFN+qc+4+EX0SLfrSVw0YTZRH1Sg8ns3/Q+E6jYrswrhV1JmKQ==", "dev": true, "dependencies": { - "@nx/devkit": "17.1.2", - "nx": "17.1.2" + "@nx/devkit": "17.1.3", + "nx": "17.1.3" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -297,19 +297,19 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.1.0.tgz", - "integrity": "sha512-Y+CN/8nQZaYjsb2b2sXbkQr0LrgBWhCzyLZ+rLfnLE60B9k4GeDt5b7z/OdSObi1xozXfqiaAZ1eXo0iQMN3JA==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.1.1.tgz", + "integrity": "sha512-xRlSh9qjdUdUKAy/0UQsxX7wf1tHApAsHsfismebPriqfmVAPyEg4HBrM8ImWaZxiqaTGC1AyHsUBQD5FK8o6w==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.1.0.tgz", - "integrity": "sha512-pQac5h+XwsquDzaasK/xs9tjdQ/f9eLq8e5An9eXJGHWy4KcrMmQ1XrpaMMMg503LF3rRG/dHKBskGsYgSN9oQ==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.1.1.tgz", + "integrity": "sha512-fFOBlCOVObVu3gjLj+0BypqO1ZR/0bfJnDElqMdYwJG7zRaFT8NNQbrOo/q/GQoqOFoNna6mw3teTGsd5JnL2A==", "dev": true, "dependencies": { - "@angular-eslint/utils": "17.1.0", - "@typescript-eslint/utils": "6.11.0" + "@angular-eslint/utils": "17.1.1", + "@typescript-eslint/utils": "6.13.1" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -317,15 +317,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.1.0.tgz", - "integrity": "sha512-nL9VhChwFQLIRQM4xbTY8Vo095Q4/D77hPtqt3ShYIrORjYTwaWa8+neexToAqXVMapce7oFmFa/OqtxvEerLg==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.1.1.tgz", + "integrity": "sha512-unZ6QNwtxuB8Eni7UPdw7uK6iZipZUXIsH+ZuLMOxwFgGMqeRnpv8SW0212rto3d/Ec0jESzVHKcwZ9pT+jxgw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", - "@angular-eslint/utils": "17.1.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", + "@angular-eslint/bundled-angular-compiler": "17.1.1", + "@angular-eslint/utils": "17.1.1", + "@typescript-eslint/type-utils": "6.13.1", + "@typescript-eslint/utils": "6.13.1", "aria-query": "5.3.0", "axobject-query": "4.0.0" }, @@ -335,16 +335,16 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.1.0.tgz", - "integrity": "sha512-74gW1E5P4z3PvxNXOTXGaF6li/MLcSeJO8z7XtcP7wcXWu0fihOKlMJGgqB3rIcBa8lRcTDLekQERF+kRZ15aQ==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.1.1.tgz", + "integrity": "sha512-Bkt8iOXWRQGSrcLRGzdyJLvSPcIChW5+dh5lXa5GhdLmVAF7jpjxqGwW0rNb5JhLa/phyH0XQIpLBaOPtacSMA==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "17.1.0", - "@angular-eslint/eslint-plugin-template": "17.1.0", - "@nx/devkit": "17.1.2", - "ignore": "5.2.4", - "nx": "17.1.2", + "@angular-eslint/eslint-plugin": "17.1.1", + "@angular-eslint/eslint-plugin-template": "17.1.1", + "@nx/devkit": "17.1.3", + "ignore": "5.3.0", + "nx": "17.1.3", "strip-json-comments": "3.1.1", "tmp": "0.2.1" }, @@ -353,12 +353,12 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.1.0.tgz", - "integrity": "sha512-CTxzB3stjynngTabdO8xTkiPc6Jvo15C2fxb1pYIlDIH2LgPJJxxCHi+IAt9oJpJOPa8QjLVF9VAXE3fLKAcpg==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.1.1.tgz", + "integrity": "sha512-ofL46rNhRVeSxrSQF0vwhKMco+vJuo+ZGjSOzFmT9N3KAMB0j+WXTbpyGGMy0gQSBc4W6p+j+zxGa2CR2xb6wA==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", + "@angular-eslint/bundled-angular-compiler": "17.1.1", "eslint-scope": "^7.0.0" }, "peerDependencies": { @@ -367,13 +367,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.1.0.tgz", - "integrity": "sha512-AmG0xpRtnBQwrbHObonSilmD3hiFEtZHwFY3LT28VWxznB6WIAHFE7SrKWrRsRsXlib8LaRo4uobR5+MO8aLpw==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.1.1.tgz", + "integrity": "sha512-CTNPOb05S/DII/Fm8JYUvKo+B4u/ctHjGJ0X1YXUR0q31oaGqTE3KePGq76+Y6swRDf9NjUIcfcnZp3u3j4CBQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.1.0", - "@typescript-eslint/utils": "6.11.0" + "@angular-eslint/bundled-angular-compiler": "17.1.1", + "@typescript-eslint/utils": "6.13.1" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -381,9 +381,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.4.tgz", - "integrity": "sha512-XHkTBZAoYf1t4Hb06RkYa6cgtjEA5JGq1ArXu/DckOS6G/ZuY+dwWULEmaf9ejJem8O78ol223ZQ5d7sXqpixQ==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.6.tgz", + "integrity": "sha512-fic61LjLHry79c5H9UGM8Ff311MJnf9an7EukLj2aLJ3J0uadL/H9de7dDp8PaIT10DX9g+aRTIKOmF3PmmXIQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -391,13 +391,13 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.4" + "@angular/core": "17.0.6" } }, "node_modules/@angular/cdk": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.1.tgz", - "integrity": "sha512-0hrXm2D0s0/vUtDoLFRWTs75k5WY/hQmfnsaJXHeqinbE3eKOxmQxL1i7ymnMSQthEWzgRAhzS3Nfs7Alw3dQA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.2.tgz", + "integrity": "sha512-5d2LmlpvsrfLubfzWxzWa+pLW93m/GXVuFITETozPbwEeqOTDNZPbS4v89VF1SWUCxefb1tx5m4zaGpsTep7gQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -411,15 +411,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.3.tgz", - "integrity": "sha512-pRGXms87aEqmB4yPdcPI/VM7JegjDcBIeLadms0wrBkoyQiv+jL5LesxODhid6ujXZOj1xqMCYbCnX7HY+mLcQ==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.6.tgz", + "integrity": "sha512-BLA2wDeqZManC/7MI6WvRRV+VhrwjxxB7FawLyp4xYlo0CTSOFOfeKPVRMLEnA/Ou4R5d47B+BqJTlep62pHwg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.3", - "@angular-devkit/core": "17.0.3", - "@angular-devkit/schematics": "17.0.3", - "@schematics/angular": "17.0.3", + "@angular-devkit/architect": "0.1700.6", + "@angular-devkit/core": "17.0.6", + "@angular-devkit/schematics": "17.0.6", + "@schematics/angular": "17.0.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -445,9 +445,9 @@ } }, "node_modules/@angular/common": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.4.tgz", - "integrity": "sha512-/y38PbuiaWOuOmP5ZELTlJSjZGijc6Nq2XQloT5pKsaH935prxPjyWazwlY6cUnJMQgSRU644/ULosDJec7Zxw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.6.tgz", + "integrity": "sha512-FZtf8ol8W2V21ZDgFtcxmJ6JJKUO97QZ+wr/bosyYEryWMmn6VGrbOARhfW7BlrEgn14NdFkLb72KKtqoqRjrg==", "dependencies": { "tslib": "^2.3.0" }, @@ -455,14 +455,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.4", + "@angular/core": "17.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.4.tgz", - "integrity": "sha512-OweJui9EWCa1ZcZjkJHS5z1gqICqyryR1Gdmyr8vIa6HD8wU/5BaeBJPCDgYgt+qJkvcT/sPxgZQsc2pVeUwbQ==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.6.tgz", + "integrity": "sha512-PaCNnlPcL0rvByKCBUUyLWkKJYXOrcfKlYYvcacjOzEUgZeEpekG81hMRb9u/Pz+A+M4HJSTmdgzwGP35zo8qw==", "dependencies": { "tslib": "^2.3.0" }, @@ -470,7 +470,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.4" + "@angular/core": "17.0.6" }, "peerDependenciesMeta": { "@angular/core": { @@ -479,9 +479,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.4.tgz", - "integrity": "sha512-ywj8XNI+hvHHYGcNWvXaVHSRtcd3S7MqJNgXWfnb0JjAb282oGSvjEc7wnH4ERqkvnSrpk1kQ2Fj3uJ2P5zfmQ==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.6.tgz", + "integrity": "sha512-C1Gfh9kbjYZezEMOwxnvUTHuPXa+6pk7mAfSj8e5oAO6E+wfo2dTxv1J5zxa3KYzxPYMNfF8OFvLuMKsw7lXjA==", "dependencies": { "@babel/core": "7.23.2", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -501,14 +501,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.0.4", + "@angular/compiler": "17.0.6", "typescript": ">=5.2 <5.3" } }, "node_modules/@angular/core": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.4.tgz", - "integrity": "sha512-zk+z5sYPZd87pLxECx27quB5FvSmoi9PjJlcSlaBwwqaGnh/tPJI14u3q1dRY/CoZgP9egEiwc428+DzvOzJew==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.6.tgz", + "integrity": "sha512-QzfKRTDNgGOY9D5VxenUUz20cvPVC+uVw9xiqkDuHgGfLYVFlCAK9ymFYkdUCLTcVzJPxckP+spMpPX8nc4Aqw==", "dependencies": { "tslib": "^2.3.0" }, @@ -521,9 +521,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.4.tgz", - "integrity": "sha512-R5J87dfJNWwi5SESD7tRkZnqG4u8KNAT4vImX4oG70/6vWioKUSWpLoSp1gpzy9UW51E85AKb8DNvIex7LclSg==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.6.tgz", + "integrity": "sha512-n/trsMtQHUBGiWz5lFaggMcMOuw0gH+96TCtHxQiUYJOdrbOemkFdGrNh3B4fGHmogWuOYJVF5FAm97WRES2XA==", "dependencies": { "tslib": "^2.3.0" }, @@ -531,25 +531,25 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.4", - "@angular/core": "17.0.4", - "@angular/platform-browser": "17.0.4", + "@angular/common": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.4.tgz", - "integrity": "sha512-foS5HLIj6rZ/WMg1Zo1BPCaFP93GdJ6vG3f7ieHodiSeOexxzi2WqB7uh0yDYMqoemu/+YNYbOgrxBTkOpsoLg==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.6.tgz", + "integrity": "sha512-HTJmnZeXFZoAJD8wvMN7QHuGd9KHsEQTdA7DeEDxqDneGM63bPVdRN6gSaai6abU1/8gfBNtSTfiwhHnCRTh0Q==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0" } }, "node_modules/@angular/localize": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.4.tgz", - "integrity": "sha512-4kLvkwAI9lVaxKzMVjF/0do/Xfn4r3W1bk9Xzb7fYLS21wz11ouL0aV7umtHT5DOZiwkY/F8rOYaJm5Fkz8ubw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.6.tgz", + "integrity": "sha512-LHLadqRQ4lnM0VxWZld2JLO50t3URi7on0YhZp6p/xhY6cQLcTG3GDNGC/k8dg8JW/7aXJU0hmJEMcop9ELM7g==", "dependencies": { "@babel/core": "7.23.2", "fast-glob": "3.3.1", @@ -564,14 +564,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.0.4", - "@angular/compiler-cli": "17.0.4" + "@angular/compiler": "17.0.6", + "@angular/compiler-cli": "17.0.6" } }, "node_modules/@angular/platform-browser": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.4.tgz", - "integrity": "sha512-lApUzVPfCEz/4aot77qzWUNg7yQgT0JSzy3BrBm95+2TbgH894J9Fswhig0sEN9jxGSkc3A5Yp5fs1HJcPqUiw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.6.tgz", + "integrity": "sha512-nBhWH1MKT2WswgRNIoMnmNAt0n5/fG59BanJtodW71//Aj5aIE+BuVoFgK3wmO8IMoeP4i4GXRInBXs6lUMOJw==", "dependencies": { "tslib": "^2.3.0" }, @@ -579,9 +579,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.0.4", - "@angular/common": "17.0.4", - "@angular/core": "17.0.4" + "@angular/animations": "17.0.6", + "@angular/common": "17.0.6", + "@angular/core": "17.0.6" }, "peerDependenciesMeta": { "@angular/animations": { @@ -590,9 +590,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.4.tgz", - "integrity": "sha512-mZZNH+iFzFug0z7rBQKdFz375sR6Y4iBbHu2aJD2BpgA2/SJaZ0WHGlF4bHbtpCYkZi3f4wKF2+Cwe4G5ebPOQ==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.6.tgz", + "integrity": "sha512-5ZEmBtBkqamTaWjUXCls7G1f3xyK/ykXE7hnUV9CgGqXKrNkxblmbtOhoWdsbuIYjjdxQcAk1qtg/Rg21wcc4w==", "dependencies": { "tslib": "^2.3.0" }, @@ -600,16 +600,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.4", - "@angular/compiler": "17.0.4", - "@angular/core": "17.0.4", - "@angular/platform-browser": "17.0.4" + "@angular/common": "17.0.6", + "@angular/compiler": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6" } }, "node_modules/@angular/router": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.4.tgz", - "integrity": "sha512-hQ+T+h6YE9NqyOmjqAIHe/k8xtW+yh0Mp8FCcl8REBezNyLXmOdsScCIOOc7GeFtbjRnQyJrBo4QxZ81acHP7Q==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.6.tgz", + "integrity": "sha512-xW6yDxREpBOB9MoODSfIw5HwkwLK+OgK34Q6sGYs0ft9UryMoFwft+pHGAaDz2nzhA72n+Ht9B2eai78UE9jGQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -617,9 +617,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.4", - "@angular/core": "17.0.4", - "@angular/platform-browser": "17.0.4", + "@angular/common": "17.0.6", + "@angular/core": "17.0.6", + "@angular/platform-browser": "17.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -630,9 +630,9 @@ "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -642,9 +642,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } @@ -753,17 +753,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -1004,9 +1004,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } @@ -1026,13 +1026,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" }, "engines": { "node": ">=6.9.0" @@ -1052,9 +1052,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1455,9 +1455,9 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -2291,18 +2291,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2311,11 +2311,11 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dependencies": { - "@babel/types": "^7.23.4", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -2325,9 +2325,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -2758,9 +2758,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2848,9 +2848,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3103,9 +3103,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.3.tgz", - "integrity": "sha512-H39WQ/tM6kOErfiyU6QkPasMtuOZHbm6INkirSR3ol4e93o6gLJ0ptwg3IQlyGtZK2QexWagPC6jzsdGIaN3iw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.6.tgz", + "integrity": "sha512-9Us20rqGhi8PmQBwQu6Qtww3WVV/gf2s2DbzcLclsiDtSBobzT64Z6F6E9OpAYD+c5PxlUaOghL6NXdnSNdByA==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -3341,21 +3341,21 @@ } }, "node_modules/@nrwl/devkit": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.1.2.tgz", - "integrity": "sha512-INPZk4qts3xNJt8E9fttuVTufXdigPUOvUiAiPJmR2oUGDF8SeOlIYNForbz+XMRvxyIVtf45O32azUsgeZe3Q==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.1.3.tgz", + "integrity": "sha512-8HfIY7P3yIYfQ/XKuHoq0GGLA9GpwWtBlI9kPQ0ygjuJ9BkpiGMtQvO6003zs7c6vpc2vNeG+Jmi72+EKvoN5A==", "dev": true, "dependencies": { - "@nx/devkit": "17.1.2" + "@nx/devkit": "17.1.3" } }, "node_modules/@nrwl/tao": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.1.2.tgz", - "integrity": "sha512-tL+dlygeor/kLG5fuK5qaiVFJ4hEtvJ/E+xY9epp20UKCNQSEkrSFiesiXtX6E/PPf4YbOQ4B4itWR2EYCm03Q==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.1.3.tgz", + "integrity": "sha512-9YpfEkUpVqOweqgQvMDcWApNx4jhCqBNH5IByZj302Enp3TLnQSvhuX5Dfr8hNQRQokIpEn6tW8SGTctTM5LXw==", "dev": true, "dependencies": { - "nx": "17.1.2", + "nx": "17.1.3", "tslib": "^2.3.0" }, "bin": { @@ -3363,12 +3363,12 @@ } }, "node_modules/@nx/devkit": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.1.2.tgz", - "integrity": "sha512-9Izd9jsa++AaZSSlhi0zkv58k4clzE0kICurx9DjfWN6zXnD08HqJoUYCVVaeYS/SrWlQUbMig8e49BO8ZV5mw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.1.3.tgz", + "integrity": "sha512-1Is7ooovg3kdGJ5VdkePulRUDaMYLLULr+LwXgx7oHSW7AY2iCmhkoOE/vSR7DJ6rkey2gYx7eT1IoRoORiIaQ==", "dev": true, "dependencies": { - "@nrwl/devkit": "17.1.2", + "@nrwl/devkit": "17.1.3", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", @@ -3414,9 +3414,9 @@ "dev": true }, "node_modules/@nx/nx-darwin-arm64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.1.2.tgz", - "integrity": "sha512-U8fwkuw0vmDfeRQX9LSMt1XiAXM57fxOiuHlrIBn8hUBvMAugAgSAYd7K9YQjrFf9UFUtQeSHDU9N/c/n63hdg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.1.3.tgz", + "integrity": "sha512-f4qLa0y3C4uuhYKgq+MU892WaQvtvmHqrEhHINUOxYXNiLy2sgyJPW0mOZvzXtC4dPaUmiVaFP5RMVzc8Lxhtg==", "cpu": [ "arm64" ], @@ -3430,9 +3430,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.1.2.tgz", - "integrity": "sha512-QR9Jrm32UK2nLdDRtjFabfCvF5SOQJ2IuYkw6Sxe16xGZU2DS9nQku0TQO3Uy2HV1xSR7vzj7ys5z4eI2k+/mA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.1.3.tgz", + "integrity": "sha512-kh76ZjqkLeQUIAfTa9G/DFFf+e1sZ5ipDzk7zFGhZ2k68PoQoFdsFOO3C513JmuEdavspts6Hkifsqh61TaE+A==", "cpu": [ "x64" ], @@ -3446,9 +3446,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.1.2.tgz", - "integrity": "sha512-6rDuFHJREVg5XpcM5RlE8pHP4bgcbns8sSemF/g75SV4iEkBqxRvSe88oBtF44b7IpX2zdONRDV4qQcRf3DxRg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.1.3.tgz", + "integrity": "sha512-CRuVL5ZSLb+Gc8vwMUUe9Pl/1Z26YtXMKTahBMQh2dac63vzLgzqIV4c66aduUl1x2M0kGYBSIIRG9z0/BgWeg==", "cpu": [ "x64" ], @@ -3462,9 +3462,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.1.2.tgz", - "integrity": "sha512-4FwqUX7NxVfJ0v7frBKNbjENz6pvp3slDfoG2/WmnAj5a6TCu7magwlg1qLQaHYJ1m/i8u7RrG0Uz4SYHWzkVw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.1.3.tgz", + "integrity": "sha512-KDBmd5tSrg93g/oij/eGW4yeVNVK3DBIM4VYAS2vtkIgVOGoqcQ+SEIeMK3nMUJP9jGyblt3QNj5ZsJBtScwQw==", "cpu": [ "arm" ], @@ -3478,9 +3478,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.1.2.tgz", - "integrity": "sha512-r6UATY0dVdxwpVJPf/f/KfRkFpMP06wC6HcfNMGbTBTKiKtsdYF42bWoSkDgtgP2bOx9FDH+Hwu3U/Rtj44FIA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.1.3.tgz", + "integrity": "sha512-W2tNL/7sIwoQKLmuy68Usd6TZzIZvxZt4UE30kDwGc2RSap6RCHAvDbzSxtW+L4+deC9UxX0Tty0VuW+J8FjSg==", "cpu": [ "arm64" ], @@ -3494,9 +3494,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.1.2.tgz", - "integrity": "sha512-MXGYY/KCzQhbj5UKwnRO2/GhByOkRlI+EeH1Mazam8wZ1BiBfcVWZoOUybIlxxes1o4cAnkZwB527tCmwrHvGw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.1.3.tgz", + "integrity": "sha512-Oto3gkLd7yweuVUCsSHwm4JkAIbcxpPJP0ycRHI/PRHPMIOPiMX8r651QM1amMyKAbJtAe047nyb9Sh1X0FA4A==", "cpu": [ "arm64" ], @@ -3510,9 +3510,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.1.2.tgz", - "integrity": "sha512-3cC131hJ3VhuxjzzBlwIdVp46onykOo78EmnURNdLxcWOpmcKgYXn7OnVwjrglYi+JL7D0vABGKKUpt1cs6/rA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.1.3.tgz", + "integrity": "sha512-pJS994sa5PBPFak93RydTB9KdEmiVb3rgiSB7PDBegphERbzHEB77B7G8M5TZ62dGlMdplIEKmdhY5XNqeAf9A==", "cpu": [ "x64" ], @@ -3526,9 +3526,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.1.2.tgz", - "integrity": "sha512-1UrR87ByhE0zSXt0C+RNT5ZiAsctOSWZwPYQAGolz8K70BxomDeRVtIaRog5KK5SHlEd1ILvgsmrhovjLjrJNw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.1.3.tgz", + "integrity": "sha512-4Hcx5Fg/88jV+bcTr6P0dM4unXNvKgrGJe3oK9/sgEhiW6pD2UAFjv16CCSRcWhDUAzUDqcwnD2fgg+vnAJG6g==", "cpu": [ "x64" ], @@ -3542,9 +3542,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.1.2.tgz", - "integrity": "sha512-2M7FfzfPGAN7tCUWZilPGNk/RbbGcA00MKOA4MDqMwJtLobW8KqfMedilRNTEuyNibejOHwvGzA9T/Ac/ahHgA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.1.3.tgz", + "integrity": "sha512-dUasEuskmDxUL36XA0GZqSb9233suE4wKhxrMobyFBzHUZ2tq/unzOpPjYfqDBie4QIvF8tEpAjQsLds8LWgbw==", "cpu": [ "arm64" ], @@ -3558,9 +3558,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.1.2.tgz", - "integrity": "sha512-oxKCKunuo4wRusMlNu7PlhBijhtNy7eBZPAWyqUsdfnb+CjY2QncjCguW3fnsG9gHQFCa+y0b1WkSkvJ5G1DiQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.1.3.tgz", + "integrity": "sha512-eTuTpBHFvA5NFJh/iosmqCL4JOAjDrwXLSMgfKrZKjiApHMG1T/5Hb+PrsNpt+WnGp94ur7c4Dtx4xD5vlpAEw==", "cpu": [ "x64" ], @@ -3638,9 +3638,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", - "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -3672,9 +3672,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz", - "integrity": "sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz", + "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==", "cpu": [ "arm" ], @@ -3685,9 +3685,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz", - "integrity": "sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", + "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", "cpu": [ "arm64" ], @@ -3698,9 +3698,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz", - "integrity": "sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz", + "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==", "cpu": [ "arm64" ], @@ -3711,9 +3711,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz", - "integrity": "sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz", + "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==", "cpu": [ "x64" ], @@ -3724,9 +3724,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz", - "integrity": "sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz", + "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==", "cpu": [ "arm" ], @@ -3737,9 +3737,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz", - "integrity": "sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz", + "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==", "cpu": [ "arm64" ], @@ -3750,9 +3750,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz", - "integrity": "sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz", + "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==", "cpu": [ "arm64" ], @@ -3763,9 +3763,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz", - "integrity": "sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", + "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", "cpu": [ "x64" ], @@ -3776,9 +3776,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz", - "integrity": "sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz", + "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==", "cpu": [ "x64" ], @@ -3789,9 +3789,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz", - "integrity": "sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz", + "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==", "cpu": [ "arm64" ], @@ -3802,9 +3802,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz", - "integrity": "sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz", + "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==", "cpu": [ "ia32" ], @@ -3815,9 +3815,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz", - "integrity": "sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz", + "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==", "cpu": [ "x64" ], @@ -3828,9 +3828,9 @@ ] }, "node_modules/@rollup/wasm-node": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.5.2.tgz", - "integrity": "sha512-Gn3PyXQJCVzNF3mB4Wks2C+6VTIBTwC0WWAt3X1bJFIWJDagRocG0H1IsFO6H8MMgklRYLm32vt/wKjV128EPw==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.6.1.tgz", + "integrity": "sha512-Mh6TSuMLoK9n3uLKa5r1NdX+BGZJyl5L+dx/MH9K2l9Dzk/R0w1XQMs1aP/quv3KB/kn6UIUbJmXNReIW5032Q==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -3844,13 +3844,13 @@ } }, "node_modules/@schematics/angular": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.3.tgz", - "integrity": "sha512-pFHAqHMNm2WLoquJD4osSA/OAgH+wsFayPuqQnKjDEzeVW/YfJSbUksJ2iFt+uSfrhc/VxPf6pmGBMzi+9d0ng==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.6.tgz", + "integrity": "sha512-AyC7Bk3Omy6PfADThhq5ci+zzdTTi2N1oZI35gw4tMK5ZxVwIACx2Zyhaz399m5c2RCDi9Hz4A2BOFq9f0j/dg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.3", - "@angular-devkit/schematics": "17.0.3", + "@angular-devkit/core": "17.0.6", + "@angular-devkit/schematics": "17.0.6", "jsonc-parser": "3.2.0" }, "engines": { @@ -4019,9 +4019,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", - "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4117,9 +4117,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", - "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4213,16 +4213,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", - "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", + "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/type-utils": "6.12.0", - "@typescript-eslint/utils": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/type-utils": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4248,13 +4248,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", - "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", + "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/utils": "6.13.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4275,17 +4275,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", - "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", "semver": "^7.5.4" }, "engines": { @@ -4300,15 +4300,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", - "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", + "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4" }, "engines": { @@ -4328,13 +4328,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", - "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0" + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4345,13 +4345,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz", + "integrity": "sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/typescript-estree": "6.13.1", + "@typescript-eslint/utils": "6.13.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4372,9 +4372,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.1.tgz", + "integrity": "sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4385,13 +4385,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz", + "integrity": "sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/types": "6.13.1", + "@typescript-eslint/visitor-keys": "6.13.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4412,12 +4412,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz", + "integrity": "sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/types": "6.13.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -4429,9 +4429,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", - "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4442,13 +4442,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", - "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4469,17 +4469,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.1.tgz", + "integrity": "sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/scope-manager": "6.13.1", + "@typescript-eslint/types": "6.13.1", + "@typescript-eslint/typescript-estree": "6.13.1", "semver": "^7.5.4" }, "engines": { @@ -4494,13 +4494,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz", + "integrity": "sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" + "@typescript-eslint/types": "6.13.1", + "@typescript-eslint/visitor-keys": "6.13.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4511,9 +4511,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.1.tgz", + "integrity": "sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4524,13 +4524,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz", + "integrity": "sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/types": "6.13.1", + "@typescript-eslint/visitor-keys": "6.13.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4551,12 +4551,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz", + "integrity": "sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/types": "6.13.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -4568,12 +4568,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", - "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/types": "6.13.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -4801,6 +4801,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, "node_modules/abbrev": { @@ -5592,9 +5593,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "funding": [ { "type": "opencollective", @@ -5610,9 +5611,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -5689,9 +5690,9 @@ } }, "node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -5699,7 +5700,7 @@ "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -5799,9 +5800,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001564", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", - "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", "funding": [ { "type": "opencollective", @@ -6287,12 +6288,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", @@ -6962,9 +6963,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.594", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz", - "integrity": "sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==" + "version": "1.4.607", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.607.tgz", + "integrity": "sha512-YUlnPwE6eYxzwBnFmawA8LiLRfm70R2aJRIUv0n03uHt/cUzzYACOogmvk8M2+hVzt/kB80KJXx7d5f5JofPvQ==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -7223,15 +7224,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8769,18 +8770,18 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", - "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -10636,35 +10637,17 @@ } }, "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "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, "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect/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 - }, "node_modules/minipass-fetch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", @@ -11220,9 +11203,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/nopt": { "version": "7.2.0", @@ -11320,12 +11303,12 @@ } }, "node_modules/npm-packlist": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", - "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz", + "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==", "dev": true, "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -11389,13 +11372,13 @@ } }, "node_modules/nx": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-17.1.2.tgz", - "integrity": "sha512-pf94ri36cAiSzbYcPTJwQzttgAsHSjCLEni0Ilw6aVdjpoV2l6cggYxwddX7pgtCWuokVp/6KhAxVkbzvH65wg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-17.1.3.tgz", + "integrity": "sha512-6LYoTt01nS1d/dvvYtRs+pEAMQmUVsd2fr/a8+X1cDjWrb8wsf1O3DwlBTqKOXOazpS3eOr0Ukc9N1svbu7uXA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "17.1.2", + "@nrwl/tao": "17.1.3", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.6", @@ -11436,16 +11419,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "17.1.2", - "@nx/nx-darwin-x64": "17.1.2", - "@nx/nx-freebsd-x64": "17.1.2", - "@nx/nx-linux-arm-gnueabihf": "17.1.2", - "@nx/nx-linux-arm64-gnu": "17.1.2", - "@nx/nx-linux-arm64-musl": "17.1.2", - "@nx/nx-linux-x64-gnu": "17.1.2", - "@nx/nx-linux-x64-musl": "17.1.2", - "@nx/nx-win32-arm64-msvc": "17.1.2", - "@nx/nx-win32-x64-msvc": "17.1.2" + "@nx/nx-darwin-arm64": "17.1.3", + "@nx/nx-darwin-x64": "17.1.3", + "@nx/nx-freebsd-x64": "17.1.3", + "@nx/nx-linux-arm-gnueabihf": "17.1.3", + "@nx/nx-linux-arm64-gnu": "17.1.3", + "@nx/nx-linux-arm64-musl": "17.1.3", + "@nx/nx-linux-x64-gnu": "17.1.3", + "@nx/nx-linux-x64-musl": "17.1.3", + "@nx/nx-win32-arm64-msvc": "17.1.3", + "@nx/nx-win32-x64-msvc": "17.1.3" }, "peerDependencies": { "@swc-node/register": "^1.6.7", @@ -11542,9 +11525,9 @@ } }, "node_modules/nx/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -12809,9 +12792,9 @@ } }, "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12849,9 +12832,9 @@ } }, "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13159,9 +13142,9 @@ } }, "node_modules/rollup": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.2.tgz", - "integrity": "sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", + "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", "dev": true, "optional": true, "bin": { @@ -13172,18 +13155,18 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.5.2", - "@rollup/rollup-android-arm64": "4.5.2", - "@rollup/rollup-darwin-arm64": "4.5.2", - "@rollup/rollup-darwin-x64": "4.5.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.5.2", - "@rollup/rollup-linux-arm64-gnu": "4.5.2", - "@rollup/rollup-linux-arm64-musl": "4.5.2", - "@rollup/rollup-linux-x64-gnu": "4.5.2", - "@rollup/rollup-linux-x64-musl": "4.5.2", - "@rollup/rollup-win32-arm64-msvc": "4.5.2", - "@rollup/rollup-win32-ia32-msvc": "4.5.2", - "@rollup/rollup-win32-x64-msvc": "4.5.2", + "@rollup/rollup-android-arm-eabi": "4.6.1", + "@rollup/rollup-android-arm64": "4.6.1", + "@rollup/rollup-darwin-arm64": "4.6.1", + "@rollup/rollup-darwin-x64": "4.6.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.6.1", + "@rollup/rollup-linux-arm64-gnu": "4.6.1", + "@rollup/rollup-linux-arm64-musl": "4.6.1", + "@rollup/rollup-linux-x64-gnu": "4.6.1", + "@rollup/rollup-linux-x64-musl": "4.6.1", + "@rollup/rollup-win32-arm64-msvc": "4.6.1", + "@rollup/rollup-win32-ia32-msvc": "4.6.1", + "@rollup/rollup-win32-x64-msvc": "4.6.1", "fsevents": "~2.3.2" } }, @@ -14771,9 +14754,9 @@ } }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/package.json b/package.json index 16b68f69..9c20f1a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "4.7.0", + "version": "4.7.3", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT", diff --git a/projects/coreui-angular-chartjs/package.json b/projects/coreui-angular-chartjs/package.json index e52df9bc..7dc37e3b 100644 --- a/projects/coreui-angular-chartjs/package.json +++ b/projects/coreui-angular-chartjs/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular-chartjs", - "version": "4.7.0", + "version": "4.7.3", "description": "Angular wrapper component for Chart.js", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT", diff --git a/projects/coreui-angular/package.json b/projects/coreui-angular/package.json index 77b981a4..e8f451b3 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "4.7.0", + "version": "4.7.3", "description": "CoreUI for Angular UI components library", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT", diff --git a/projects/coreui-icons-angular/package.json b/projects/coreui-icons-angular/package.json index 1db94283..3e5ee35d 100644 --- a/projects/coreui-icons-angular/package.json +++ b/projects/coreui-icons-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/icons-angular", - "version": "4.7.0", + "version": "4.7.3", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT",