From a6c8bc6d868b37df0758845c5140b1510a2b6117 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 7 Dec 2023 14:53:35 +0100 Subject: [PATCH 01/20] 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 02/20] 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 03/20] 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 04/20] 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 05/20] 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", From f3167497136c6a175584b3deceba0bd631404325 Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 21 Dec 2023 14:16:15 +0100 Subject: [PATCH 06/20] chore(dependencies): update --- package.json | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 9c20f1a1..3bd92182 100644 --- a/package.json +++ b/package.json @@ -36,16 +36,16 @@ }, "private": true, "dependencies": { - "@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", + "@angular/animations": "^17.0.7", + "@angular/cdk": "^17.0.4", + "@angular/common": "^17.0.7", + "@angular/compiler": "^17.0.7", + "@angular/core": "^17.0.7", + "@angular/forms": "^17.0.7", + "@angular/localize": "^17.0.7", + "@angular/platform-browser": "^17.0.7", + "@angular/platform-browser-dynamic": "^17.0.7", + "@angular/router": "^17.0.7", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -55,30 +55,30 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.6", + "@angular-devkit/build-angular": "^17.0.7", "@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", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.7", + "@angular/language-service": "^17.0.7", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.10.4", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "eslint": "^8.55.0", + "@types/node": "^20.10.5", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "eslint": "^8.56.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", "karma-jasmine": "^5.1.0", "karma-jasmine-html-reporter": "^2.1.0", - "ng-packagr": "^17.0.2", - "prettier": "^3.1.0", + "ng-packagr": "^17.0.3", + "prettier": "^3.1.1", "typescript": "~5.2.2" }, "keywords": [ From 1db9f4f3331b7f52d05944a9a8b7fd20e3cc850e Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 21 Dec 2023 14:18:36 +0100 Subject: [PATCH 07/20] chore: ship v4.7.6 --- CHANGELOG.md | 6 + package-lock.json | 642 ++++++++++--------- 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, 333 insertions(+), 323 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad9eebe9..f1f72c36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ --- +#### `4.7.6` + +- chore(dependencies): update + +--- + #### `4.7.3` - refactor(backdrop, modal, offcanvas): move scrollbar adjustments to offcanvas, cleanups diff --git a/package-lock.json b/package-lock.json index 52e62d2e..ba23628d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,16 +9,16 @@ "version": "4.7.3", "license": "MIT", "dependencies": { - "@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", + "@angular/animations": "^17.0.7", + "@angular/cdk": "^17.0.4", + "@angular/common": "^17.0.7", + "@angular/compiler": "^17.0.7", + "@angular/core": "^17.0.7", + "@angular/forms": "^17.0.7", + "@angular/localize": "^17.0.7", + "@angular/platform-browser": "^17.0.7", + "@angular/platform-browser-dynamic": "^17.0.7", + "@angular/router": "^17.0.7", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -28,30 +28,30 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.6", + "@angular-devkit/build-angular": "^17.0.7", "@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", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.7", + "@angular/language-service": "^17.0.7", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.10.4", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "eslint": "^8.55.0", + "@types/node": "^20.10.5", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "eslint": "^8.56.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", "karma-jasmine": "^5.1.0", "karma-jasmine-html-reporter": "^2.1.0", - "ng-packagr": "^17.0.2", - "prettier": "^3.1.0", + "ng-packagr": "^17.0.3", + "prettier": "^3.1.1", "typescript": "~5.2.2" }, "engines": { @@ -81,12 +81,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1700.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.6.tgz", - "integrity": "sha512-zVpz736cBZHXcv0v2bRLfJLcykanUyEMVQXkGwZp2eygjNK1Ls9s/74o1dXd6nGdvjh6AnkzOU/vouj2dqA41g==", + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.7.tgz", + "integrity": "sha512-32uitQKsYLGXAKoXBsmOnPsTt9pS+b9cnFI9ZvBFVhJ31I2EOM7vGcMFalhTxdB/DkVHk4TyO78efV0V26DwCA==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.6", + "@angular-devkit/core": "17.0.7", "rxjs": "7.8.1" }, "engines": { @@ -96,15 +96,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "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==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.7.tgz", + "integrity": "sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1700.6", - "@angular-devkit/build-webpack": "0.1700.6", - "@angular-devkit/core": "17.0.6", + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/build-webpack": "0.1700.7", + "@angular-devkit/core": "17.0.7", "@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.6", + "@ngtools/webpack": "17.0.7", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.16", @@ -219,12 +219,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "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==", + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.7.tgz", + "integrity": "sha512-B9Mg/qYDpE5my8PJ3VPQyRSUV0Oq1bFUzU8s0ZpqEZl1URKc04pm0LtLmebrMIcUZgDiGk0RHaD+O1E9IV/bdQ==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.6", + "@angular-devkit/architect": "0.1700.7", "rxjs": "7.8.1" }, "engines": { @@ -238,9 +238,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.6.tgz", - "integrity": "sha512-+h9VnFHof7rKzBJ5FWrbPXWzbag31QKbUGJ/mV5BYgj39vjzPNUXBW8AaScZAlATi8+tElYXjRMvM49GnuyRLg==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.7.tgz", + "integrity": "sha512-vATobHo5O5tJba424hJfQWLb40GzvZPNsI74dcgSUTgrDph8ksmk5xB9OvEvf0INorQZ2IMphj/VIWj4/+JqSA==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -265,12 +265,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.6.tgz", - "integrity": "sha512-2g769MpazA1aOzJOm2MNGosra3kxw8CbdIQQOKkvycIzroRNgN06yHcRTDC03GADgP/CkDJ6kxwJQNG+wNFL2A==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.7.tgz", + "integrity": "sha512-BY11OkJkM3xyXcvyD7x5kGY/c8Ufd4AfPvI0D9imhVxbns45Q48b1DlvCQvSnCJ/s+OwnkrYb/Efa70ZiaGu8A==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.6", + "@angular-devkit/core": "17.0.7", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -381,9 +381,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.6.tgz", - "integrity": "sha512-fic61LjLHry79c5H9UGM8Ff311MJnf9an7EukLj2aLJ3J0uadL/H9de7dDp8PaIT10DX9g+aRTIKOmF3PmmXIQ==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.7.tgz", + "integrity": "sha512-IjZjPGMxvi2a9o7fzjwNO44FvhTZlVSgcPtqM6Glq0+WVeQcnZxf1Onj68M/FGx2AunS8elRbrgPxTexVeSo7A==", "dependencies": { "tslib": "^2.3.0" }, @@ -391,13 +391,13 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.6" + "@angular/core": "17.0.7" } }, "node_modules/@angular/cdk": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.2.tgz", - "integrity": "sha512-5d2LmlpvsrfLubfzWxzWa+pLW93m/GXVuFITETozPbwEeqOTDNZPbS4v89VF1SWUCxefb1tx5m4zaGpsTep7gQ==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.4.tgz", + "integrity": "sha512-mh/EuIR0NPfpNqAXBSZWuJeBMXUvUDYdKhiFWZet5NLO1bDgFe1MGLBjtW4us95k4BZsMLbCKNxJgc+4JqwUvg==", "dependencies": { "tslib": "^2.3.0" }, @@ -411,15 +411,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.6.tgz", - "integrity": "sha512-BLA2wDeqZManC/7MI6WvRRV+VhrwjxxB7FawLyp4xYlo0CTSOFOfeKPVRMLEnA/Ou4R5d47B+BqJTlep62pHwg==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.7.tgz", + "integrity": "sha512-oSa0GVAQNA7wFbLJYeaO3kV4iUcbKEqXDLxcIE8s1GfHddBOlXH2P1T4fXonCBl5qvV+joP0G0+fs7I0w2utZQ==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.6", - "@angular-devkit/core": "17.0.6", - "@angular-devkit/schematics": "17.0.6", - "@schematics/angular": "17.0.6", + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", + "@schematics/angular": "17.0.7", "@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.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.6.tgz", - "integrity": "sha512-FZtf8ol8W2V21ZDgFtcxmJ6JJKUO97QZ+wr/bosyYEryWMmn6VGrbOARhfW7BlrEgn14NdFkLb72KKtqoqRjrg==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.7.tgz", + "integrity": "sha512-bPPL6x0KOAOTxKSE2j4EWmEUOnqZYzOYiHzroa5b9UEyA9NvGkd9bm3zIxw8xcndRj1Ehcmvpi6KBLcYBBbWfg==", "dependencies": { "tslib": "^2.3.0" }, @@ -455,14 +455,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.6", + "@angular/core": "17.0.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.6.tgz", - "integrity": "sha512-PaCNnlPcL0rvByKCBUUyLWkKJYXOrcfKlYYvcacjOzEUgZeEpekG81hMRb9u/Pz+A+M4HJSTmdgzwGP35zo8qw==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.7.tgz", + "integrity": "sha512-QHPuLti2c2tGZmOGZ0cfCHo4LxiHUkC27I0aZFDyQSSQqEI5obQGVlEREHysw0nsS3sYIcLvqcwcKcRtXlXtxQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -470,7 +470,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.6" + "@angular/core": "17.0.7" }, "peerDependenciesMeta": { "@angular/core": { @@ -479,9 +479,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.6.tgz", - "integrity": "sha512-C1Gfh9kbjYZezEMOwxnvUTHuPXa+6pk7mAfSj8e5oAO6E+wfo2dTxv1J5zxa3KYzxPYMNfF8OFvLuMKsw7lXjA==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.7.tgz", + "integrity": "sha512-YnL38idjIYtl3BXYpv+sVJKWGbUjHT6eyQSQVAfO/1AwWqVa21K9hnE+Q37VmUKEcKFMnQembeuErA+KVsGI6A==", "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.6", + "@angular/compiler": "17.0.7", "typescript": ">=5.2 <5.3" } }, "node_modules/@angular/core": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.6.tgz", - "integrity": "sha512-QzfKRTDNgGOY9D5VxenUUz20cvPVC+uVw9xiqkDuHgGfLYVFlCAK9ymFYkdUCLTcVzJPxckP+spMpPX8nc4Aqw==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.7.tgz", + "integrity": "sha512-mEkelXkzEi6+A9GjdKOSGGzQAfo1iAjVTn6YsplNUeGE5JgDZYZ7sXGQqs0Lin7dzJxnPAgGjCOl7SpWLXIPSQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -521,9 +521,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.6.tgz", - "integrity": "sha512-n/trsMtQHUBGiWz5lFaggMcMOuw0gH+96TCtHxQiUYJOdrbOemkFdGrNh3B4fGHmogWuOYJVF5FAm97WRES2XA==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.7.tgz", + "integrity": "sha512-28BxRxEmgZIofGwVp6s2v3ri/kuWW+/EY/ZXhavlWKJEh4ATJl72k0RkRWNcQi4wnvn0Qb8tFdnVJnvRZvvKEw==", "dependencies": { "tslib": "^2.3.0" }, @@ -531,25 +531,25 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.6", - "@angular/core": "17.0.6", - "@angular/platform-browser": "17.0.6", + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.6.tgz", - "integrity": "sha512-HTJmnZeXFZoAJD8wvMN7QHuGd9KHsEQTdA7DeEDxqDneGM63bPVdRN6gSaai6abU1/8gfBNtSTfiwhHnCRTh0Q==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.7.tgz", + "integrity": "sha512-03EXeBZgyGNnEDLiABwEw0lpAcqLxSgl+bXQahOO4OnBSYQWGEiqfs3ymNbNj0chUfQVadG4FWghwGTGbj77Iw==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0" } }, "node_modules/@angular/localize": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.6.tgz", - "integrity": "sha512-LHLadqRQ4lnM0VxWZld2JLO50t3URi7on0YhZp6p/xhY6cQLcTG3GDNGC/k8dg8JW/7aXJU0hmJEMcop9ELM7g==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.7.tgz", + "integrity": "sha512-avYYQ8zin2thzvsH2YP3WxlwkvOzjNEXxjv4yyZBx6wul68e/753kQK/0RmSUYaBpDTUEZYzrPpDay00TKwBOA==", "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.6", - "@angular/compiler-cli": "17.0.6" + "@angular/compiler": "17.0.7", + "@angular/compiler-cli": "17.0.7" } }, "node_modules/@angular/platform-browser": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.6.tgz", - "integrity": "sha512-nBhWH1MKT2WswgRNIoMnmNAt0n5/fG59BanJtodW71//Aj5aIE+BuVoFgK3wmO8IMoeP4i4GXRInBXs6lUMOJw==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.7.tgz", + "integrity": "sha512-bm9/wt51nc/MPjft/FlRNIgFSeLjDtfJOT7M32Rt6kOHhNKSK7ZTPWdMe9ahuHSbAhLzd0G/4NsT5sKrWSeVZg==", "dependencies": { "tslib": "^2.3.0" }, @@ -579,9 +579,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.0.6", - "@angular/common": "17.0.6", - "@angular/core": "17.0.6" + "@angular/animations": "17.0.7", + "@angular/common": "17.0.7", + "@angular/core": "17.0.7" }, "peerDependenciesMeta": { "@angular/animations": { @@ -590,9 +590,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "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==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.7.tgz", + "integrity": "sha512-OquwUX9fLWA2JUZW5Jm6atk0CPt0sA7Tg24eGLsr6g1XfTS7jRZprlGaa72NgPLnQVV6m84o/ZiNYS6yPmq1Gg==", "dependencies": { "tslib": "^2.3.0" }, @@ -600,16 +600,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.6", - "@angular/compiler": "17.0.6", - "@angular/core": "17.0.6", - "@angular/platform-browser": "17.0.6" + "@angular/common": "17.0.7", + "@angular/compiler": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7" } }, "node_modules/@angular/router": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.6.tgz", - "integrity": "sha512-xW6yDxREpBOB9MoODSfIw5HwkwLK+OgK34Q6sGYs0ft9UryMoFwft+pHGAaDz2nzhA72n+Ht9B2eai78UE9jGQ==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.7.tgz", + "integrity": "sha512-rUFPe1uDlYYw6+3Gq68czW7WxBH7zT/D3UsT1otqwUV4RnQQsVze4fIit9FqJh7tuP4y3WpB4XBNf7p7Oi6TJw==", "dependencies": { "tslib": "^2.3.0" }, @@ -617,9 +617,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.6", - "@angular/core": "17.0.6", - "@angular/platform-browser": "17.0.6", + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -730,13 +730,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -753,9 +753,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "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==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -811,9 +811,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -1026,13 +1026,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" @@ -1052,9 +1052,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1588,12 +1588,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2291,19 +2292,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", "dependencies": { "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2311,11 +2312,11 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.23.5", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -2325,9 +2326,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -2803,9 +2804,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2848,9 +2849,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3103,9 +3104,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.6.tgz", - "integrity": "sha512-9Us20rqGhi8PmQBwQu6Qtww3WVV/gf2s2DbzcLclsiDtSBobzT64Z6F6E9OpAYD+c5PxlUaOghL6NXdnSNdByA==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.7.tgz", + "integrity": "sha512-gwhUhpwXn0trwwKdSu9WlJbEcLt+s/2fPwoD9lZ0y3wXfrOogsfcNBJKeO5BZf1h+A3AWt7ePmgrZXSJM+865Q==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -3593,12 +3594,12 @@ } }, "node_modules/@rollup/plugin-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.1.tgz", - "integrity": "sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1" + "@rollup/pluginutils": "^5.1.0" }, "engines": { "node": ">=14.0.0" @@ -3672,9 +3673,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", + "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", "cpu": [ "arm" ], @@ -3685,9 +3686,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", - "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", + "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", "cpu": [ "arm64" ], @@ -3698,9 +3699,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", + "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", "cpu": [ "arm64" ], @@ -3711,9 +3712,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", + "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", "cpu": [ "x64" ], @@ -3724,9 +3725,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", + "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", "cpu": [ "arm" ], @@ -3737,9 +3738,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", + "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", "cpu": [ "arm64" ], @@ -3750,9 +3751,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", + "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", "cpu": [ "arm64" ], @@ -3762,10 +3763,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", + "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", + "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", "cpu": [ "x64" ], @@ -3776,9 +3790,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", + "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", "cpu": [ "x64" ], @@ -3789,9 +3803,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", + "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", "cpu": [ "arm64" ], @@ -3802,9 +3816,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", + "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", "cpu": [ "ia32" ], @@ -3815,9 +3829,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", + "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", "cpu": [ "x64" ], @@ -3828,9 +3842,9 @@ ] }, "node_modules/@rollup/wasm-node": { - "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==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.9.1.tgz", + "integrity": "sha512-awrdTJgcUC0IA5X7Zi2HJlCcdhxaSDZHaBhoNuKt+TgDPdLatbw8GKKcLpqKVEAIOwfajNCQP+taQ/EgM+090A==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -3844,13 +3858,13 @@ } }, "node_modules/@schematics/angular": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.6.tgz", - "integrity": "sha512-AyC7Bk3Omy6PfADThhq5ci+zzdTTi2N1oZI35gw4tMK5ZxVwIACx2Zyhaz399m5c2RCDi9Hz4A2BOFq9f0j/dg==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.7.tgz", + "integrity": "sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.6", - "@angular-devkit/schematics": "17.0.6", + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", "jsonc-parser": "3.2.0" }, "engines": { @@ -4019,9 +4033,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.8", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", - "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4117,9 +4131,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", - "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4213,16 +4227,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "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==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@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", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4248,13 +4262,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "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==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4275,17 +4289,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", "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.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", "semver": "^7.5.4" }, "engines": { @@ -4300,15 +4314,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", - "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", "dev": true, "dependencies": { - "@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", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4" }, "engines": { @@ -4328,13 +4342,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4429,9 +4443,9 @@ } }, "node_modules/@typescript-eslint/types": { - "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==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4442,13 +4456,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "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==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4568,12 +4582,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "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==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.15.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5174,13 +5188,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -5197,12 +5211,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" }, "peerDependencies": { @@ -5210,12 +5224,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.4.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5800,9 +5814,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001566", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", - "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "funding": [ { "type": "opencollective", @@ -6963,9 +6977,9 @@ } }, "node_modules/electron-to-chromium": { - "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==" + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -7224,15 +7238,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -7418,9 +7432,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -7938,9 +7952,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dependencies": { "reusify": "^1.0.4" } @@ -10892,13 +10906,12 @@ "dev": true }, "node_modules/needle": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, "optional": true, "dependencies": { - "debug": "^3.2.6", "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, @@ -10909,16 +10922,6 @@ "node": ">= 4.4.x" } }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/needle/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -10948,9 +10951,9 @@ "dev": true }, "node_modules/ng-packagr": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.0.2.tgz", - "integrity": "sha512-1bn1Y93d23ZwTjazCdiEEdolYbXPddq4Q1XNhh+CyUgSTMONJhW2Ikpzbt+Z+3uxz0kSAAPBlHTx7uABXbMPPQ==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-17.0.3.tgz", + "integrity": "sha512-e4GWKOblzwtkkDwI0GRd2gUmuJgg6LgECHbnkB/JpyDlvz1Sd+nEzExztt3UbclLs9FkopSVE5TohKh58B8aeg==", "dev": true, "dependencies": { "@rollup/plugin-json": "^6.0.1", @@ -12551,9 +12554,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -12892,9 +12895,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" }, "node_modules/regenerate": { "version": "1.4.2", @@ -12915,9 +12918,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "node_modules/regenerator-transform": { @@ -13142,9 +13145,9 @@ } }, "node_modules/rollup": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", - "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", + "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", "dev": true, "optional": true, "bin": { @@ -13155,18 +13158,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@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", + "@rollup/rollup-android-arm-eabi": "4.9.1", + "@rollup/rollup-android-arm64": "4.9.1", + "@rollup/rollup-darwin-arm64": "4.9.1", + "@rollup/rollup-darwin-x64": "4.9.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", + "@rollup/rollup-linux-arm64-gnu": "4.9.1", + "@rollup/rollup-linux-arm64-musl": "4.9.1", + "@rollup/rollup-linux-riscv64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-musl": "4.9.1", + "@rollup/rollup-win32-arm64-msvc": "4.9.1", + "@rollup/rollup-win32-ia32-msvc": "4.9.1", + "@rollup/rollup-win32-x64-msvc": "4.9.1", "fsevents": "~2.3.2" } }, @@ -15420,9 +15424,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 3bd92182..7576c007 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "4.7.3", + "version": "4.7.6", "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 7dc37e3b..7cf06b1b 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.3", + "version": "4.7.6", "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 e8f451b3..71cedd04 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "4.7.3", + "version": "4.7.6", "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 3e5ee35d..ee21911b 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.3", + "version": "4.7.6", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT", From 90976c9bac2dfe385fdfbc9f50cb7feb68be8489 Mon Sep 17 00:00:00 2001 From: xidedix Date: Wed, 27 Dec 2023 17:33:08 +0100 Subject: [PATCH 08/20] chore(dependencies): update --- package.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 7576c007..bb69f986 100644 --- a/package.json +++ b/package.json @@ -36,16 +36,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.0.7", + "@angular/animations": "^17.0.8", "@angular/cdk": "^17.0.4", - "@angular/common": "^17.0.7", - "@angular/compiler": "^17.0.7", - "@angular/core": "^17.0.7", - "@angular/forms": "^17.0.7", - "@angular/localize": "^17.0.7", - "@angular/platform-browser": "^17.0.7", - "@angular/platform-browser-dynamic": "^17.0.7", - "@angular/router": "^17.0.7", + "@angular/common": "^17.0.8", + "@angular/compiler": "^17.0.8", + "@angular/core": "^17.0.8", + "@angular/forms": "^17.0.8", + "@angular/localize": "^17.0.8", + "@angular/platform-browser": "^17.0.8", + "@angular/platform-browser-dynamic": "^17.0.8", + "@angular/router": "^17.0.8", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -55,21 +55,21 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", + "@angular-devkit/build-angular": "^17.0.8", "@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.7", - "@angular/compiler-cli": "^17.0.7", - "@angular/language-service": "^17.0.7", + "@angular/cli": "^17.0.8", + "@angular/compiler-cli": "^17.0.8", + "@angular/language-service": "^17.0.8", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", "@types/node": "^20.10.5", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", "eslint": "^8.56.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", From 2f8e5b49df26d144739143acf6e7688a5841f24c Mon Sep 17 00:00:00 2001 From: xidedix Date: Wed, 27 Dec 2023 17:33:44 +0100 Subject: [PATCH 09/20] chore: ship v4.7.7 --- CHANGELOG.md | 6 + package-lock.json | 708 +++++++++++-------- 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, 410 insertions(+), 312 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1f72c36..36063726 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ --- +#### `4.7.7` + +- chore(dependencies): update + +--- + #### `4.7.6` - chore(dependencies): update diff --git a/package-lock.json b/package-lock.json index ba23628d..e10c340a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "coreui-angular-dev", - "version": "4.7.3", + "version": "4.7.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coreui-angular-dev", - "version": "4.7.3", + "version": "4.7.7", "license": "MIT", "dependencies": { - "@angular/animations": "^17.0.7", + "@angular/animations": "^17.0.8", "@angular/cdk": "^17.0.4", - "@angular/common": "^17.0.7", - "@angular/compiler": "^17.0.7", - "@angular/core": "^17.0.7", - "@angular/forms": "^17.0.7", - "@angular/localize": "^17.0.7", - "@angular/platform-browser": "^17.0.7", - "@angular/platform-browser-dynamic": "^17.0.7", - "@angular/router": "^17.0.7", + "@angular/common": "^17.0.8", + "@angular/compiler": "^17.0.8", + "@angular/core": "^17.0.8", + "@angular/forms": "^17.0.8", + "@angular/localize": "^17.0.8", + "@angular/platform-browser": "^17.0.8", + "@angular/platform-browser-dynamic": "^17.0.8", + "@angular/router": "^17.0.8", "@coreui/chartjs": "^3.1.2", "@popperjs/core": "~2.11.6", "chart.js": "^3.9.1", @@ -28,21 +28,21 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", + "@angular-devkit/build-angular": "^17.0.8", "@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.7", - "@angular/compiler-cli": "^17.0.7", - "@angular/language-service": "^17.0.7", + "@angular/cli": "^17.0.8", + "@angular/compiler-cli": "^17.0.8", + "@angular/language-service": "^17.0.8", "@coreui/icons": "^3.0.1", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", "@types/node": "^20.10.5", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", "eslint": "^8.56.0", "jasmine-core": "^5.1.1", "karma": "^6.4.2", @@ -81,12 +81,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1700.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.7.tgz", - "integrity": "sha512-32uitQKsYLGXAKoXBsmOnPsTt9pS+b9cnFI9ZvBFVhJ31I2EOM7vGcMFalhTxdB/DkVHk4TyO78efV0V26DwCA==", + "version": "0.1700.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.8.tgz", + "integrity": "sha512-SWVr3CvwO6T0yW2ytszCwBT1g92vyFkwbVUxqE93urYnoD8PvP+81GH5YwVjHQTgvhP4eXQMGZ9hpHx57VOrWQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.7", + "@angular-devkit/core": "17.0.8", "rxjs": "7.8.1" }, "engines": { @@ -96,15 +96,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.7.tgz", - "integrity": "sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.8.tgz", + "integrity": "sha512-u7R5yX92ZxOL/LfxiKGGqlBo86100sJ5Rabavn8DeGtYP8N0qgwCcNwlW2zaMoUlkw2geMnxcxIX5VJI4iFPUA==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1700.7", - "@angular-devkit/build-webpack": "0.1700.7", - "@angular-devkit/core": "17.0.7", + "@angular-devkit/architect": "0.1700.8", + "@angular-devkit/build-webpack": "0.1700.8", + "@angular-devkit/core": "17.0.8", "@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.7", + "@ngtools/webpack": "17.0.8", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.16", @@ -219,12 +219,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1700.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.7.tgz", - "integrity": "sha512-B9Mg/qYDpE5my8PJ3VPQyRSUV0Oq1bFUzU8s0ZpqEZl1URKc04pm0LtLmebrMIcUZgDiGk0RHaD+O1E9IV/bdQ==", + "version": "0.1700.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.8.tgz", + "integrity": "sha512-GA7QlCAlYB3uBkRaUYgIC/Vfajb9jMmouwYiAAEm34ZyP3ThFjdqsYd/A/exnuESt5o6Bh++C/PI34sV3lawRA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/architect": "0.1700.8", "rxjs": "7.8.1" }, "engines": { @@ -238,9 +238,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.7.tgz", - "integrity": "sha512-vATobHo5O5tJba424hJfQWLb40GzvZPNsI74dcgSUTgrDph8ksmk5xB9OvEvf0INorQZ2IMphj/VIWj4/+JqSA==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.8.tgz", + "integrity": "sha512-gI8+SOwGUwr0WOlFrhLjohLolMzcguuoR0LTZEcGjdXvQyPgH4NDSRIIrfWCdu+ZVhfy76o3zQYdYc9QN8NrjQ==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -265,12 +265,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.7.tgz", - "integrity": "sha512-BY11OkJkM3xyXcvyD7x5kGY/c8Ufd4AfPvI0D9imhVxbns45Q48b1DlvCQvSnCJ/s+OwnkrYb/Efa70ZiaGu8A==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.8.tgz", + "integrity": "sha512-syo814SVWfJvne448IijjZvpWbuqJsEutdNqHWLTewTfX2U3KrIAr/XRVcXQMuyMvLCDiuxjMgEJxOIP7mcIPw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.7", + "@angular-devkit/core": "17.0.8", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -381,9 +381,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.7.tgz", - "integrity": "sha512-IjZjPGMxvi2a9o7fzjwNO44FvhTZlVSgcPtqM6Glq0+WVeQcnZxf1Onj68M/FGx2AunS8elRbrgPxTexVeSo7A==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.8.tgz", + "integrity": "sha512-iKJ2s4ZqVoGS9tSRBuuwYEWTV+Rw6b4zDY1rqiXvbZrpNRxfzYr6s+aYsLQQEindZ4hzxgp9j60FJ8aE/g4w6A==", "dependencies": { "tslib": "^2.3.0" }, @@ -391,7 +391,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.7" + "@angular/core": "17.0.8" } }, "node_modules/@angular/cdk": { @@ -411,15 +411,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.7.tgz", - "integrity": "sha512-oSa0GVAQNA7wFbLJYeaO3kV4iUcbKEqXDLxcIE8s1GfHddBOlXH2P1T4fXonCBl5qvV+joP0G0+fs7I0w2utZQ==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.8.tgz", + "integrity": "sha512-yZXYNLAFv9u2qypsVqtS+rRCsnjsIPYXr6TcI/r5buzOtC7UQ2lleYsWJqX47SsyGMk/o3gaYg5Bj2I5mmRDLA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1700.7", - "@angular-devkit/core": "17.0.7", - "@angular-devkit/schematics": "17.0.7", - "@schematics/angular": "17.0.7", + "@angular-devkit/architect": "0.1700.8", + "@angular-devkit/core": "17.0.8", + "@angular-devkit/schematics": "17.0.8", + "@schematics/angular": "17.0.8", "@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.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.7.tgz", - "integrity": "sha512-bPPL6x0KOAOTxKSE2j4EWmEUOnqZYzOYiHzroa5b9UEyA9NvGkd9bm3zIxw8xcndRj1Ehcmvpi6KBLcYBBbWfg==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.8.tgz", + "integrity": "sha512-fFfwtdg7H+OkqnvV/ENu8F8KGfgIiH16DDbQqYY5KQyyQB+SMsoVW29F1fGx6Y30s7ZlsLOy6cHhgrw74itkSw==", "dependencies": { "tslib": "^2.3.0" }, @@ -455,14 +455,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.7", + "@angular/core": "17.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.7.tgz", - "integrity": "sha512-QHPuLti2c2tGZmOGZ0cfCHo4LxiHUkC27I0aZFDyQSSQqEI5obQGVlEREHysw0nsS3sYIcLvqcwcKcRtXlXtxQ==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.8.tgz", + "integrity": "sha512-48jWypuhBGTrUUbkz1vB9gjbKKZ3hpuJ2DUUncd331Yw4tqkqZQbBa/E3ei4IHiCxEvW2uX3lI4AwlhuozmUtA==", "dependencies": { "tslib": "^2.3.0" }, @@ -470,7 +470,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.0.7" + "@angular/core": "17.0.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -479,9 +479,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.7.tgz", - "integrity": "sha512-YnL38idjIYtl3BXYpv+sVJKWGbUjHT6eyQSQVAfO/1AwWqVa21K9hnE+Q37VmUKEcKFMnQembeuErA+KVsGI6A==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.8.tgz", + "integrity": "sha512-ny2SMVgl+icjMuU5ZM57yFGUrhjR0hNxfCn0otAD3jUFliz/Onu9l6EPRKA5Cr8MZx3mg3rTLSBMD17YT8rsOg==", "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.7", + "@angular/compiler": "17.0.8", "typescript": ">=5.2 <5.3" } }, "node_modules/@angular/core": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.7.tgz", - "integrity": "sha512-mEkelXkzEi6+A9GjdKOSGGzQAfo1iAjVTn6YsplNUeGE5JgDZYZ7sXGQqs0Lin7dzJxnPAgGjCOl7SpWLXIPSQ==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.8.tgz", + "integrity": "sha512-tzYsK24LdkNuKNJK6efF4XOqspvF/qOe9j/n1Y61a6mNvFwsJFGbcmdZMby4hI/YRm6oIDoIIFjSep8ycp6Pbw==", "dependencies": { "tslib": "^2.3.0" }, @@ -521,9 +521,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.7.tgz", - "integrity": "sha512-28BxRxEmgZIofGwVp6s2v3ri/kuWW+/EY/ZXhavlWKJEh4ATJl72k0RkRWNcQi4wnvn0Qb8tFdnVJnvRZvvKEw==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.8.tgz", + "integrity": "sha512-WZBHbMQjaSovAzOMhKqZN+m7eUPGfOzh9rKFKvj6UQLIJ9qSpEpqlvL0omU1z/47s3XXeLiBzomMiRfQISJvvw==", "dependencies": { "tslib": "^2.3.0" }, @@ -531,25 +531,25 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.7", - "@angular/core": "17.0.7", - "@angular/platform-browser": "17.0.7", + "@angular/common": "17.0.8", + "@angular/core": "17.0.8", + "@angular/platform-browser": "17.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.7.tgz", - "integrity": "sha512-03EXeBZgyGNnEDLiABwEw0lpAcqLxSgl+bXQahOO4OnBSYQWGEiqfs3ymNbNj0chUfQVadG4FWghwGTGbj77Iw==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-17.0.8.tgz", + "integrity": "sha512-GvwoAuQVWMMTnkl8zuhimIJHs8XLRttjk+epGocvF7T6WbtDIGv74MW5ZfhLx6LXz0fcYKoFW7UB3RqDIXrMyQ==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0" } }, "node_modules/@angular/localize": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.7.tgz", - "integrity": "sha512-avYYQ8zin2thzvsH2YP3WxlwkvOzjNEXxjv4yyZBx6wul68e/753kQK/0RmSUYaBpDTUEZYzrPpDay00TKwBOA==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.0.8.tgz", + "integrity": "sha512-1zW8qWKNMH3r/x4KpwzzUmVY+iN76vYdhjA6gzZDnpJxpon9eyljNEildj9+zSWeNUr2LgJ6HnkIX9q1f3mXfA==", "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.7", - "@angular/compiler-cli": "17.0.7" + "@angular/compiler": "17.0.8", + "@angular/compiler-cli": "17.0.8" } }, "node_modules/@angular/platform-browser": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.7.tgz", - "integrity": "sha512-bm9/wt51nc/MPjft/FlRNIgFSeLjDtfJOT7M32Rt6kOHhNKSK7ZTPWdMe9ahuHSbAhLzd0G/4NsT5sKrWSeVZg==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.8.tgz", + "integrity": "sha512-XaI+p2AxQaIHzR761lhPUf4OcOp46WDW0IfbvOzaezHE+8r81joZyVSDQPgXSa/aRfI58YhcfUavuGqyU3PphA==", "dependencies": { "tslib": "^2.3.0" }, @@ -579,9 +579,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.0.7", - "@angular/common": "17.0.7", - "@angular/core": "17.0.7" + "@angular/animations": "17.0.8", + "@angular/common": "17.0.8", + "@angular/core": "17.0.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -590,9 +590,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.7.tgz", - "integrity": "sha512-OquwUX9fLWA2JUZW5Jm6atk0CPt0sA7Tg24eGLsr6g1XfTS7jRZprlGaa72NgPLnQVV6m84o/ZiNYS6yPmq1Gg==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.8.tgz", + "integrity": "sha512-BIXNKnfBZb8sdluQ7WIhIXFuVnsJJ0SV+aiMKzQ7B6XhWoAXZQnlvON2thydjIIVuCvaF3YmWTbILI2K8YZ2jQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -600,16 +600,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.7", - "@angular/compiler": "17.0.7", - "@angular/core": "17.0.7", - "@angular/platform-browser": "17.0.7" + "@angular/common": "17.0.8", + "@angular/compiler": "17.0.8", + "@angular/core": "17.0.8", + "@angular/platform-browser": "17.0.8" } }, "node_modules/@angular/router": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.7.tgz", - "integrity": "sha512-rUFPe1uDlYYw6+3Gq68czW7WxBH7zT/D3UsT1otqwUV4RnQQsVze4fIit9FqJh7tuP4y3WpB4XBNf7p7Oi6TJw==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.8.tgz", + "integrity": "sha512-ptphcRe1RG/mIS60R7ZPilkkrxautqB0sOhds3h5VP3g628G1a2HWzvnmvjEfpJWDMFivV32VJMMBtTLqGr+0Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -617,9 +617,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.0.7", - "@angular/core": "17.0.7", - "@angular/platform-browser": "17.0.7", + "@angular/common": "17.0.8", + "@angular/core": "17.0.8", + "@angular/platform-browser": "17.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2803,6 +2803,16 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -2836,6 +2846,18 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2880,6 +2902,28 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3104,9 +3148,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.7.tgz", - "integrity": "sha512-gwhUhpwXn0trwwKdSu9WlJbEcLt+s/2fPwoD9lZ0y3wXfrOogsfcNBJKeO5BZf1h+A3AWt7ePmgrZXSJM+865Q==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.8.tgz", + "integrity": "sha512-wx0XBMrbpDeailK2uIhp/ZVMC3GK3BWwJjUu5SbT4BFrcoi2Zd9/9m0RCBAY54UXLBCqKd+ih7pJ6JSvprZmWw==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -3858,13 +3902,13 @@ } }, "node_modules/@schematics/angular": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.7.tgz", - "integrity": "sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.8.tgz", + "integrity": "sha512-1h5mwKFv1B/L5JWZ0mxnC4ms06iwnSi/w+GgRZPeM3P5BpuZuvAkFiClNnM55iLlQJXRQioPNLM3sOsz7spR6w==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.0.7", - "@angular-devkit/schematics": "17.0.7", + "@angular-devkit/core": "17.0.8", + "@angular-devkit/schematics": "17.0.8", "jsonc-parser": "3.2.0" }, "engines": { @@ -3955,30 +3999,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -4149,9 +4169,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "dev": true }, "node_modules/@types/range-parser": { @@ -4227,16 +4247,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", - "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz", + "integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/type-utils": "6.15.0", - "@typescript-eslint/utils": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/type-utils": "6.16.0", + "@typescript-eslint/utils": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4262,13 +4282,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", - "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz", + "integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/utils": "6.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4289,17 +4309,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", - "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz", + "integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==", "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.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", "semver": "^7.5.4" }, "engines": { @@ -4314,15 +4334,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", - "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz", + "integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4" }, "engines": { @@ -4342,13 +4362,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", - "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz", + "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0" + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4443,9 +4463,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", - "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz", + "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4456,16 +4476,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", - "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz", + "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -4582,12 +4603,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", - "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz", + "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/types": "6.16.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5374,13 +5395,12 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -5726,15 +5746,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/cacache/node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -5766,21 +5777,6 @@ "node": "14 || >=16.14" } }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -5814,9 +5810,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "version": "1.0.30001571", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz", + "integrity": "sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==", "funding": [ { "type": "opencollective", @@ -6977,9 +6973,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.615", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", - "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==" + "version": "1.4.616", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -7357,6 +7353,16 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -7488,6 +7494,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -8020,15 +8038,6 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -8388,6 +8397,28 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -8804,30 +8835,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -9368,6 +9375,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -9411,6 +9428,18 @@ "node": ">=8" } }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9734,6 +9763,28 @@ "node": ">=10.0.0" } }, + "node_modules/karma-coverage/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/karma-coverage/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/karma-jasmine": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", @@ -9790,6 +9841,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/karma/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -9861,6 +9922,18 @@ "node": ">= 0.8" } }, + "node_modules/karma/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/karma/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -10621,15 +10694,18 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -11129,15 +11205,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/node-gyp/node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -11169,21 +11236,6 @@ "node": ">=16" } }, - "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/node-gyp/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -11468,9 +11520,9 @@ "dev": true }, "node_modules/nx/node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.3.tgz", + "integrity": "sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -11478,6 +11530,16 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/nx/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/nx/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12431,9 +12493,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -12461,9 +12523,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz", + "integrity": "sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12490,6 +12552,16 @@ "postcss": "^8.0.0" } }, + "node_modules/postcss-url/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/postcss-url/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12803,15 +12875,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/read-package-json/node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -12843,21 +12906,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -13077,6 +13125,16 @@ "node": ">= 0.8.0" } }, + "node_modules/resp-modifier/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/resp-modifier/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -13086,6 +13144,18 @@ "ms": "2.0.0" } }, + "node_modules/resp-modifier/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/resp-modifier/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -14369,6 +14439,28 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -15424,9 +15516,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", - "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index bb69f986..e6f4d00d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "4.7.6", + "version": "4.7.7", "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 7cf06b1b..04d34e23 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.6", + "version": "4.7.7", "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 71cedd04..f48b4c35 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "4.7.6", + "version": "4.7.7", "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 ee21911b..a67027bb 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.6", + "version": "4.7.7", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT", From a689ee19dfd298a91ad0a33aa66747690c1b0419 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:19:45 +0100 Subject: [PATCH 10/20] refactor(chartjs.component): afterNextRender in case of SSR --- .../src/lib/chartjs.component.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts b/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts index a2981c39..be13f736 100644 --- a/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts +++ b/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts @@ -1,4 +1,5 @@ import { + afterNextRender, AfterViewInit, booleanAttribute, ChangeDetectionStrategy, @@ -34,6 +35,8 @@ let nextId = 0; exportAs: 'cChart', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush + // eslint-disable-next-line @angular-eslint/no-host-metadata-property + // host: { ngSkipHydration: 'true' } }) export class ChartjsComponent, TLabel = unknown> implements AfterViewInit, OnDestroy, OnChanges { @@ -65,6 +68,7 @@ export class ChartjsComponent; + ctx!: CanvasRenderingContext2D; @HostBinding('class') get hostClasses() { @@ -78,7 +82,12 @@ export class ChartjsComponent { + this.ctx = this.canvasElement?.nativeElement?.getContext('2d'); + this.chartRender(); + }); + } ngAfterViewInit(): void { this.chartRender(); @@ -115,17 +124,15 @@ export class ChartjsComponent { const config = this.chartConfig(); if (config) { setTimeout(() => { - this.chart = new Chart(ctx, config); + this.chart = new Chart(this.ctx, config); this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block'); this.changeDetectorRef.markForCheck(); this.chartRef.emit(this.chart); From 6a1921749f944080e27e3a1cfc7dc21ca2a45147 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:21:02 +0100 Subject: [PATCH 11/20] refactor(icon): afterNextRender in case of SSR --- .../src/lib/icon/icon.component.ts | 4 +++- .../src/lib/icon/icon.directive.spec.ts | 7 ++++--- .../src/lib/icon/icon.directive.ts | 10 +++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/projects/coreui-icons-angular/src/lib/icon/icon.component.ts b/projects/coreui-icons-angular/src/lib/icon/icon.component.ts index 855e44a9..c558c2ff 100644 --- a/projects/coreui-icons-angular/src/lib/icon/icon.component.ts +++ b/projects/coreui-icons-angular/src/lib/icon/icon.component.ts @@ -12,7 +12,9 @@ import { toCamelCase } from './icon.utils'; templateUrl: './icon.component.svg', styleUrls: ['./icon.component.scss'], standalone: true, - imports: [NgClass, NgIf, HtmlAttributesDirective] + imports: [NgClass, NgIf, HtmlAttributesDirective], + // eslint-disable-next-line @angular-eslint/no-host-metadata-property + host: { ngSkipHydration: 'true' } }) export class IconComponent implements IIcon, AfterViewInit { diff --git a/projects/coreui-icons-angular/src/lib/icon/icon.directive.spec.ts b/projects/coreui-icons-angular/src/lib/icon/icon.directive.spec.ts index 3cf3854f..856c53eb 100644 --- a/projects/coreui-icons-angular/src/lib/icon/icon.directive.spec.ts +++ b/projects/coreui-icons-angular/src/lib/icon/icon.directive.spec.ts @@ -41,10 +41,11 @@ describe('IconDirective', () => { sanitizer = fixture.componentRef.injector.get(DomSanitizer); iconSetService = fixture.componentRef.injector.get(IconSetService); }); - it('should create an instance', () => { - const directive = new IconDirective(renderer, svgEl, sanitizer, iconSetService); - expect(directive).toBeTruthy(); + TestBed.runInInjectionContext(() => { + const directive = new IconDirective(renderer, svgEl, sanitizer, iconSetService); + expect(directive).toBeTruthy(); + }); }); it('icon classes should be applied', () => { expect(svgEl.nativeElement).toBeTruthy(); diff --git a/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts b/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts index 6b0cffb7..b2b53437 100644 --- a/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts +++ b/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts @@ -1,4 +1,4 @@ -import { Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'; +import { afterNextRender, Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { IconSetService } from '../icon-set'; @@ -51,7 +51,7 @@ export class IconDirective implements IIcon { return this.customClasses ?? classes; } - @HostBinding('innerHtml') + // @HostBinding('innerHtml') get innerHtml() { const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? ''; // todo proper sanitize @@ -64,7 +64,11 @@ export class IconDirective implements IIcon { private elementRef: ElementRef, private sanitizer: DomSanitizer, private iconSet: IconSetService - ) { } + ) { + afterNextRender(() => { + this.elementRef.nativeElement.innerHTML = this.innerHtml; + }); + } get titleCode(): string { return this.title ? `${this.title}` : ''; From de08ca812930246533619353455a4f2ab06484a6 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:31:20 +0100 Subject: [PATCH 12/20] refactor(IntersectionService): providedIn root, allow multiple observers, add unobserve() method --- .../lib/services/intersection.service.spec.ts | 7 ++- .../src/lib/services/intersection.service.ts | 47 +++++++++++++------ 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/projects/coreui-angular/src/lib/services/intersection.service.spec.ts b/projects/coreui-angular/src/lib/services/intersection.service.spec.ts index b56af721..f9a6ae71 100644 --- a/projects/coreui-angular/src/lib/services/intersection.service.spec.ts +++ b/projects/coreui-angular/src/lib/services/intersection.service.spec.ts @@ -3,14 +3,13 @@ import { TestBed } from '@angular/core/testing'; import { IntersectionService } from './intersection.service'; describe('IntersectionService', () => { - let service: IntersectionService; + let service: any; beforeEach(() => { TestBed.configureTestingModule({ - imports: [IntersectionService] + providers: [IntersectionService] }); - service = new IntersectionService(); - // service = TestBed.inject(IntersectionService); + service = TestBed.inject(IntersectionService); }); it('should be created', () => { diff --git a/projects/coreui-angular/src/lib/services/intersection.service.ts b/projects/coreui-angular/src/lib/services/intersection.service.ts index 92db7b4a..83318ca3 100644 --- a/projects/coreui-angular/src/lib/services/intersection.service.ts +++ b/projects/coreui-angular/src/lib/services/intersection.service.ts @@ -1,4 +1,5 @@ -import { Injectable, OnDestroy } from '@angular/core'; +import { isPlatformServer } from '@angular/common'; +import { ElementRef, inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; export interface IIntersectionObserverInit { @@ -7,16 +8,18 @@ export interface IIntersectionObserverInit { threshold?: number | number[]; } -@Injectable() +@Injectable( + { providedIn: 'root' } +) export class IntersectionService implements OnDestroy { - constructor() { } + platformId = inject(PLATFORM_ID); - private intersecting = new BehaviorSubject(false); - intersecting$ = this.intersecting.asObservable(); + readonly #intersecting = new BehaviorSubject(false); + readonly intersecting$ = this.#intersecting.asObservable(); private intersectionObserver!: IntersectionObserver; - private hostElement!: { nativeElement: Element; }; + private hostElement!: ElementRef; private defaultObserverOptions: IIntersectionObserverInit = { root: null, @@ -24,23 +27,39 @@ export class IntersectionService implements OnDestroy { threshold: 0.2 }; - createIntersectionObserver(hostElement: { nativeElement: Element; }, observerOptions = this.defaultObserverOptions) { + hostElementRefs: Map = new Map(); - const options = { ...this.defaultObserverOptions, ...observerOptions }; + createIntersectionObserver(hostElement: ElementRef, observerOptions = this.defaultObserverOptions) { + + if (isPlatformServer(this.platformId)) { + this.#intersecting.next(true); + return; + } - this.hostElement = hostElement; + // this.hostElement = hostElement; + const options = { ...this.defaultObserverOptions, ...observerOptions }; - const handleIntersect = (entries: any[], observer: any) => { + const handleIntersect = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => { entries.forEach((entry: any) => { - this.intersecting.next(entry.isIntersecting); + this.#intersecting.next(entry.isIntersecting); }); }; - this.intersectionObserver = new IntersectionObserver(handleIntersect, options); - this.intersectionObserver.observe(hostElement.nativeElement); + const intersectionObserver: IntersectionObserver = new IntersectionObserver(handleIntersect, options); + intersectionObserver.observe(hostElement.nativeElement); + this.hostElementRefs.set(hostElement, intersectionObserver); + + } + + unobserve(elementRef: ElementRef) { + this.hostElementRefs.get(elementRef)?.unobserve(elementRef.nativeElement); + this.hostElementRefs.set(elementRef, null); + this.hostElementRefs.delete(elementRef); } ngOnDestroy(): void { - this.intersectionObserver?.unobserve(this.hostElement?.nativeElement); + this.hostElementRefs.forEach((observer, elementRef) => { + observer?.unobserve(elementRef.nativeElement); + }); } } From 5c205f1d6959c1a5113aff69ddb5e77aa08f4165 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:31:51 +0100 Subject: [PATCH 13/20] refactor(carousel): for use with IntersectionService providedIn root --- .../carousel/carousel/carousel.component.ts | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts b/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts index 9cc847c5..e13f6fe4 100644 --- a/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts +++ b/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts @@ -1,16 +1,19 @@ import { AfterContentInit, Component, + DestroyRef, ElementRef, EventEmitter, HostBinding, + inject, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core'; -import { fromEvent, Subscription, withLatestFrom, zipWith } from 'rxjs'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { finalize, fromEvent, Subscription, withLatestFrom, zipWith } from 'rxjs'; import { IntersectionService } from '../../services/intersection.service'; import { IListenersConfig, ListenersService } from '../../services/listeners.service'; @@ -24,7 +27,7 @@ import { Triggers } from '../../coreui.types'; selector: 'c-carousel', template: '', styleUrls: ['./carousel.component.scss'], - providers: [CarouselService, CarouselState, CarouselConfig, IntersectionService, ListenersService], + providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], standalone: true }) export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { @@ -93,11 +96,10 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { }; } - private carouselIndexSubscription?: Subscription; private timerId!: any; - private intersectingSubscription?: Subscription; private activeItemInterval = 0; private swipeSubscription?: Subscription; + readonly #destroyRef = inject(DestroyRef); constructor( @Inject(CarouselConfig) private config: CarouselConfig, @@ -116,13 +118,10 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { ngOnDestroy(): void { this.clearListeners(); - this.carouselStateSubscribe(false); - this.intersectionServiceSubscribe(false); this.swipeSubscribe(false); } ngAfterContentInit(): void { - this.intersectionService.createIntersectionObserver(this.hostElement); this.intersectionServiceSubscribe(); this.carouselState.state = { activeItemIndex: this.activeIndex, animate: this.animate }; this.setListeners(); @@ -172,9 +171,12 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { clearTimeout(this.timerId); } - private carouselStateSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.carouselIndexSubscription = this.carouselService.carouselIndex$.subscribe((nextItem) => { + private carouselStateSubscribe(): void { + this.carouselService.carouselIndex$ + .pipe( + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe((nextItem) => { if ('active' in nextItem) { this.itemChange.emit(nextItem.active); } @@ -182,20 +184,21 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { const isLastItem = ((nextItem.active === nextItem.lastItemIndex) && this.direction === 'next') || ((nextItem.active === 0) && this.direction === 'prev'); !this.wrap && isLastItem ? this.resetTimer() : this.setTimer(); }); - } else { - this.carouselIndexSubscription?.unsubscribe(); - } } private intersectionServiceSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.intersectingSubscription = this.intersectionService.intersecting$.subscribe(isIntersecting => { + this.intersectionService.createIntersectionObserver(this.hostElement); + this.intersectionService.intersecting$ + .pipe( + finalize(() => { + this.intersectionService.unobserve(this.hostElement); + }), + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe(isIntersecting => { this.visible = isIntersecting; isIntersecting ? this.setTimer() : this.resetTimer(); }); - } else { - this.intersectingSubscription?.unsubscribe(); - } } private swipeSubscribe(subscribe: boolean = true): void { @@ -204,7 +207,10 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { const touchStart$ = fromEvent(carouselElement, 'touchstart'); const touchEnd$ = fromEvent(carouselElement, 'touchend'); const touchMove$ = fromEvent(carouselElement, 'touchmove'); - this.swipeSubscription = touchStart$.pipe(zipWith(touchEnd$.pipe(withLatestFrom(touchMove$)))) + this.swipeSubscription = touchStart$.pipe( + zipWith(touchEnd$.pipe(withLatestFrom(touchMove$))), + takeUntilDestroyed(this.#destroyRef) + ) .subscribe(([touchstart, [touchend, touchmove]]) => { touchstart.stopPropagation(); touchmove.stopPropagation(); From ce32217a21fe6a27a8537197e80c490925b00f1e Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:32:38 +0100 Subject: [PATCH 14/20] refactor(popover): for use with IntersectionService providedIn root --- .../src/lib/popover/popover.directive.spec.ts | 20 ++++++++-- .../src/lib/popover/popover.directive.ts | 39 ++++++++++--------- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/projects/coreui-angular/src/lib/popover/popover.directive.spec.ts b/projects/coreui-angular/src/lib/popover/popover.directive.spec.ts index 2cce0599..f018ba0d 100644 --- a/projects/coreui-angular/src/lib/popover/popover.directive.spec.ts +++ b/projects/coreui-angular/src/lib/popover/popover.directive.spec.ts @@ -1,6 +1,7 @@ import { ChangeDetectorRef, ElementRef, Renderer2, ViewContainerRef } from '@angular/core'; import { IntersectionService, ListenersService } from '../services'; import { PopoverDirective } from './popover.directive'; +import { TestBed } from '@angular/core/testing'; describe('PopoverDirective', () => { let document: Document; @@ -11,8 +12,21 @@ describe('PopoverDirective', () => { it('should create an instance', () => { const listenersService = new ListenersService(renderer); - const intersectionService = new IntersectionService(); - const directive = new PopoverDirective(document, renderer, hostElement, viewContainerRef, listenersService, changeDetectorRef, intersectionService); - expect(directive).toBeTruthy(); + TestBed.configureTestingModule({ + providers: [IntersectionService] + }); + const intersectionService = TestBed.inject(IntersectionService); + TestBed.runInInjectionContext(() => { + const directive = new PopoverDirective( + document, + renderer, + hostElement, + viewContainerRef, + listenersService, + changeDetectorRef, + intersectionService + ); + expect(directive).toBeTruthy(); + }); }); }); diff --git a/projects/coreui-angular/src/lib/popover/popover.directive.ts b/projects/coreui-angular/src/lib/popover/popover.directive.ts index 42e1c102..4f584f37 100644 --- a/projects/coreui-angular/src/lib/popover/popover.directive.ts +++ b/projects/coreui-angular/src/lib/popover/popover.directive.ts @@ -2,9 +2,11 @@ import { AfterViewInit, ChangeDetectorRef, ComponentRef, + DestroyRef, Directive, ElementRef, HostBinding, + inject, Inject, Input, OnChanges, @@ -15,9 +17,9 @@ import { TemplateRef, ViewContainerRef } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DOCUMENT } from '@angular/common'; -import { Subscription } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; +import { debounceTime, finalize } from 'rxjs/operators'; import { createPopper, Instance, Options } from '@popperjs/core'; import { Triggers } from '../coreui.types'; @@ -28,7 +30,7 @@ import { IntersectionService } from '../services'; @Directive({ selector: '[cPopover]', exportAs: 'cPopover', - providers: [ListenersService, IntersectionService], + providers: [ListenersService], standalone: true }) export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterViewInit { @@ -96,7 +98,7 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView ] }; - private intersectingSubscription?: Subscription; + readonly #destroyRef = inject(DestroyRef); constructor( @Inject(DOCUMENT) private document: Document, @@ -109,7 +111,6 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView ) {} ngAfterViewInit(): void { - this.intersectionService.createIntersectionObserver(this.hostElement); this.intersectionServiceSubscribe(); } @@ -122,7 +123,6 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView ngOnDestroy(): void { this.clearListeners(); this.destroyPopoverElement(); - this.intersectionServiceSubscribe(false); } ngOnInit(): void { @@ -154,18 +154,19 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView } private intersectionServiceSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.intersectingSubscription = this.intersectionService.intersecting$ - .pipe( - debounceTime(100) - ) - .subscribe(isIntersecting => { - this.visible = isIntersecting ? this.visible : false; - !this.visible && this.removePopoverElement(); - }); - } else { - this.intersectingSubscription?.unsubscribe(); - } + this.intersectionService.createIntersectionObserver(this.hostElement); + this.intersectionService.intersecting$ + .pipe( + debounceTime(100), + finalize(() => { + this.intersectionService.unobserve(this.hostElement); + }), + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe(isIntersecting => { + this.visible = isIntersecting ? this.visible : false; + !this.visible && this.removePopoverElement(); + }); } private getUID(prefix: string): string { @@ -241,7 +242,7 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView this.popoverRef.instance.id = undefined; this.changeDetectorRef.markForCheck(); setTimeout(() => { - this.viewContainerRef.detach(); + this.viewContainerRef?.detach(); }, 300); } } From 904792a5781d069abe0637abc2e9c5b667cccbfe Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:33:11 +0100 Subject: [PATCH 15/20] refactor(tooltip): for use with IntersectionService providedIn root --- .../src/lib/tooltip/tooltip.directive.spec.ts | 29 +++++++++------ .../src/lib/tooltip/tooltip.directive.ts | 35 ++++++++++--------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.spec.ts b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.spec.ts index 58157ee1..d169b0a8 100644 --- a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.spec.ts +++ b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.spec.ts @@ -1,4 +1,5 @@ import { ChangeDetectorRef, ElementRef, Renderer2, ViewContainerRef } from '@angular/core'; +import { TestBed } from '@angular/core/testing'; import { IntersectionService, ListenersService } from '../services'; import { TooltipDirective } from './tooltip.directive'; @@ -11,16 +12,22 @@ describe('TooltipDirective', () => { it('should create an instance', () => { const listenersService = new ListenersService(renderer); - const intersectionService = new IntersectionService(); - const directive = new TooltipDirective( - document, - renderer, - hostElement, - viewContainerRef, - listenersService, - changeDetectorRef, - intersectionService - ); - expect(directive).toBeTruthy(); + TestBed.configureTestingModule({ + providers: [IntersectionService] + }); + const intersectionService = TestBed.inject(IntersectionService); + TestBed.runInInjectionContext(() => { + const directive = new TooltipDirective( + document, + renderer, + hostElement, + viewContainerRef, + listenersService, + changeDetectorRef, + intersectionService + ); + expect(directive).toBeTruthy(); + }); + }); }); diff --git a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts index 8ba7752a..3515c8e9 100644 --- a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts +++ b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts @@ -2,9 +2,11 @@ import { AfterViewInit, ChangeDetectorRef, ComponentRef, + DestroyRef, Directive, ElementRef, HostBinding, + inject, Inject, Input, OnChanges, @@ -15,9 +17,9 @@ import { TemplateRef, ViewContainerRef } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DOCUMENT } from '@angular/common'; -import { Subscription } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; +import { debounceTime, finalize } from 'rxjs/operators'; import { createPopper, Instance, Options } from '@popperjs/core'; import { Triggers } from '../coreui.types'; @@ -96,7 +98,7 @@ export class TooltipDirective implements OnChanges, OnDestroy, OnInit, AfterView ] }; - private intersectingSubscription?: Subscription; + readonly #destroyRef = inject(DestroyRef); constructor( @Inject(DOCUMENT) private document: Document, @@ -109,7 +111,6 @@ export class TooltipDirective implements OnChanges, OnDestroy, OnInit, AfterView ) {} ngAfterViewInit(): void { - this.intersectionService.createIntersectionObserver(this.hostElement); this.intersectionServiceSubscribe(); } @@ -122,7 +123,6 @@ export class TooltipDirective implements OnChanges, OnDestroy, OnInit, AfterView ngOnDestroy(): void { this.clearListeners(); this.destroyTooltipElement(); - this.intersectionServiceSubscribe(false); } ngOnInit(): void { @@ -154,18 +154,19 @@ export class TooltipDirective implements OnChanges, OnDestroy, OnInit, AfterView } private intersectionServiceSubscribe(subscribe: boolean = true): void { - if (subscribe) { - this.intersectingSubscription = this.intersectionService.intersecting$ - .pipe( - debounceTime(100) - ) - .subscribe(isIntersecting => { - this.visible = isIntersecting ? this.visible : false; - !this.visible && this.removeTooltipElement(); - }); - } else { - this.intersectingSubscription?.unsubscribe(); - } + this.intersectionService.createIntersectionObserver(this.hostElement); + this.intersectionService.intersecting$ + .pipe( + debounceTime(100), + finalize(() => { + this.intersectionService.unobserve(this.hostElement); + }), + takeUntilDestroyed(this.#destroyRef) + ) + .subscribe(isIntersecting => { + this.visible = isIntersecting ? this.visible : false; + !this.visible && this.removeTooltipElement(); + }); } private getUID(prefix: string): string { From 8b5bf0b5d8a19e041009411d170d6b14462e2b6b Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 00:35:11 +0100 Subject: [PATCH 16/20] refactor: allow getComputedStyle() to be undefined for SSR --- .../src/lib/backdrop/backdrop.service.ts | 3 +- .../src/lib/navbar/navbar.component.ts | 2 +- .../offcanvas/offcanvas.component.ts | 6 ++-- .../lib/sidebar/sidebar/sidebar.component.ts | 29 ++++++++----------- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts index 002b6dd7..8720b6b5 100644 --- a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts +++ b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts @@ -20,7 +20,8 @@ export class BackdropService { get #scrollbarWidth() { // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes const documentWidth = this.#document.documentElement.clientWidth; - const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth); + // const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth); + const scrollbarWidth = Math.abs((this.#document.defaultView?.innerWidth ?? documentWidth) - documentWidth); return `${scrollbarWidth}px`; } diff --git a/projects/coreui-angular/src/lib/navbar/navbar.component.ts b/projects/coreui-angular/src/lib/navbar/navbar.component.ts index db050b28..bb5a7a7e 100644 --- a/projects/coreui-angular/src/lib/navbar/navbar.component.ts +++ b/projects/coreui-angular/src/lib/navbar/navbar.component.ts @@ -66,7 +66,7 @@ export class NavbarComponent implements AfterContentInit { get breakpoint(): string | boolean { if (typeof this.expand === 'string') { - return getComputedStyle(this.hostElement.nativeElement).getPropertyValue(`--cui-breakpoint-${this.expand}`); + return getComputedStyle(this.hostElement.nativeElement)?.getPropertyValue(`--cui-breakpoint-${this.expand}`) ?? false; } return false; } 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 4e36312d..3982d30a 100644 --- a/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts +++ b/projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts @@ -51,7 +51,9 @@ let nextId = 0; styleUrls: ['./offcanvas.component.scss'], exportAs: 'cOffcanvas', standalone: true, - imports: [A11yModule] + imports: [A11yModule], + // eslint-disable-next-line @angular-eslint/no-host-metadata-property + host: { ngSkipHydration: 'true' } }) export class OffcanvasComponent implements OnInit, OnDestroy { @@ -190,7 +192,7 @@ export class OffcanvasComponent implements OnInit, OnDestroy { } const element: Element = this.document.documentElement; const responsiveBreakpoint = this.responsive; - const breakpointValue = getComputedStyle(element).getPropertyValue(`--cui-breakpoint-${responsiveBreakpoint.trim()}`) || false; + const breakpointValue = getComputedStyle(element)?.getPropertyValue(`--cui-breakpoint-${responsiveBreakpoint.trim()}`) ?? false; return breakpointValue ? `${parseFloat(breakpointValue.trim()) - 0.02}px` : false; } diff --git a/projects/coreui-angular/src/lib/sidebar/sidebar/sidebar.component.ts b/projects/coreui-angular/src/lib/sidebar/sidebar/sidebar.component.ts index 12546d30..ed3456c0 100644 --- a/projects/coreui-angular/src/lib/sidebar/sidebar/sidebar.component.ts +++ b/projects/coreui-angular/src/lib/sidebar/sidebar/sidebar.component.ts @@ -9,7 +9,7 @@ import { OnInit, Output, Renderer2, - SimpleChanges, + SimpleChanges } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; @@ -40,13 +40,13 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { #stateToggleSubscription!: Subscription; state: ISidebarAction = { - sidebar: this, + sidebar: this }; #stateInitial = { narrow: false, visible: false, - unfoldable: false, + unfoldable: false }; /** @@ -155,11 +155,11 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { } this.state = { ...this.state, - ...newState, + ...newState }; this.state.mobile && this.state.visible - ? this.backdropService.setBackdrop(this) - : this.backdropService.clearBackdrop(); + ? this.backdropService.setBackdrop(this) + : this.backdropService.clearBackdrop(); } get sidebarState(): ISidebarAction { @@ -168,13 +168,8 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { get getMobileBreakpoint(): string { const element: Element = this.document.documentElement; - const mobileBreakpoint = - getComputedStyle(element).getPropertyValue('--cui-mobile-breakpoint') || - 'md'; - const breakpointValue = - getComputedStyle(element).getPropertyValue( - `--cui-breakpoint-${mobileBreakpoint.trim()}` - ) || '768px'; + const mobileBreakpoint = this.document.defaultView?.getComputedStyle(element)?.getPropertyValue('--cui-mobile-breakpoint') ?? 'md'; + const breakpointValue = this.document.defaultView?.getComputedStyle(element)?.getPropertyValue(`--cui-breakpoint-${mobileBreakpoint.trim()}`) ?? '768px'; return `${parseFloat(breakpointValue.trim()) - 0.02}px` || '767.98px'; } @@ -199,7 +194,7 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { 'sidebar-overlaid': this.overlaid, [`sidebar-${this.size}`]: !!this.size, show: visible && this.#onMobile, - hide: !visible, + hide: !visible }; } @@ -242,11 +237,11 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { this.#stateInitial = { narrow: this.narrow, visible: this.visible, - unfoldable: this.unfoldable, + unfoldable: this.unfoldable }; this.sidebarService.toggle({ ...this.#stateInitial, - sidebar: this, + sidebar: this }); } @@ -279,7 +274,7 @@ export class SidebarComponent implements OnChanges, OnDestroy, OnInit { mobile: isOnMobile, unfoldable: isUnfoldable, visible: isOnMobile ? !isOnMobile : this.#stateInitial.visible, - sidebar: this, + sidebar: this }); } } From 1e382462d567ed8d54b0754fa1db2c388c256efb Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 02:37:19 +0100 Subject: [PATCH 17/20] refactor(chartjs): add AfterRenderPhase --- projects/coreui-angular-chartjs/src/lib/chartjs.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts b/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts index be13f736..92554211 100644 --- a/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts +++ b/projects/coreui-angular-chartjs/src/lib/chartjs.component.ts @@ -1,5 +1,6 @@ import { afterNextRender, + AfterRenderPhase, AfterViewInit, booleanAttribute, ChangeDetectionStrategy, @@ -86,7 +87,7 @@ export class ChartjsComponent { this.ctx = this.canvasElement?.nativeElement?.getContext('2d'); this.chartRender(); - }); + }, { phase: AfterRenderPhase.Read }); } ngAfterViewInit(): void { From 6d9de1ba5193b381098c44050e80b6580dcdda2e Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 02:37:45 +0100 Subject: [PATCH 18/20] refactor(icon): add AfterRenderPhase --- projects/coreui-icons-angular/src/lib/icon/icon.directive.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts b/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts index b2b53437..229e1de3 100644 --- a/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts +++ b/projects/coreui-icons-angular/src/lib/icon/icon.directive.ts @@ -1,4 +1,4 @@ -import { afterNextRender, Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'; +import { afterNextRender, AfterRenderPhase, Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { IconSetService } from '../icon-set'; @@ -67,7 +67,7 @@ export class IconDirective implements IIcon { ) { afterNextRender(() => { this.elementRef.nativeElement.innerHTML = this.innerHtml; - }); + }, { phase: AfterRenderPhase.Write }); } get titleCode(): string { From 5fa7df2b5bdd343d15727c4ea0cfb03492203e31 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 02:42:09 +0100 Subject: [PATCH 19/20] refactor(IntersectionService): change next shape to {isIntersecting: boolean, hostElement: ElementRef} --- .../carousel/carousel/carousel.component.ts | 18 ++++++++------ .../src/lib/popover/popover.directive.ts | 9 +++---- .../src/lib/services/intersection.service.ts | 24 +++++++------------ .../src/lib/tooltip/tooltip.directive.ts | 9 +++---- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts b/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts index e13f6fe4..78aa9c59 100644 --- a/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts +++ b/projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts @@ -13,7 +13,8 @@ import { Output } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { finalize, fromEvent, Subscription, withLatestFrom, zipWith } from 'rxjs'; +import { fromEvent, Subscription } from 'rxjs'; +import { filter, finalize, withLatestFrom, zipWith } from 'rxjs/operators'; import { IntersectionService } from '../../services/intersection.service'; import { IListenersConfig, ListenersService } from '../../services/listeners.service'; @@ -96,7 +97,7 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { }; } - private timerId!: any; + private timerId: number | undefined = undefined; private activeItemInterval = 0; private swipeSubscription?: Subscription; readonly #destroyRef = inject(DestroyRef); @@ -117,6 +118,7 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { } ngOnDestroy(): void { + this.resetTimer(); this.clearListeners(); this.swipeSubscribe(false); } @@ -169,6 +171,7 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { resetTimer(): void { clearTimeout(this.timerId); + this.timerId = undefined; } private carouselStateSubscribe(): void { @@ -186,19 +189,20 @@ export class CarouselComponent implements OnInit, OnDestroy, AfterContentInit { }); } - private intersectionServiceSubscribe(subscribe: boolean = true): void { - this.intersectionService.createIntersectionObserver(this.hostElement); + private intersectionServiceSubscribe(): void { this.intersectionService.intersecting$ .pipe( + filter(next => next.hostElement === this.hostElement), finalize(() => { this.intersectionService.unobserve(this.hostElement); }), takeUntilDestroyed(this.#destroyRef) ) - .subscribe(isIntersecting => { - this.visible = isIntersecting; - isIntersecting ? this.setTimer() : this.resetTimer(); + .subscribe(next => { + this.visible = next.isIntersecting; + next.isIntersecting ? this.setTimer() : this.resetTimer(); }); + this.intersectionService.createIntersectionObserver(this.hostElement); } private swipeSubscribe(subscribe: boolean = true): void { diff --git a/projects/coreui-angular/src/lib/popover/popover.directive.ts b/projects/coreui-angular/src/lib/popover/popover.directive.ts index 4f584f37..3e4c407d 100644 --- a/projects/coreui-angular/src/lib/popover/popover.directive.ts +++ b/projects/coreui-angular/src/lib/popover/popover.directive.ts @@ -19,7 +19,7 @@ import { } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DOCUMENT } from '@angular/common'; -import { debounceTime, finalize } from 'rxjs/operators'; +import { debounceTime, filter, finalize } from 'rxjs/operators'; import { createPopper, Instance, Options } from '@popperjs/core'; import { Triggers } from '../coreui.types'; @@ -153,18 +153,19 @@ export class PopoverDirective implements OnChanges, OnDestroy, OnInit, AfterView this.listenersService.clearListeners(); } - private intersectionServiceSubscribe(subscribe: boolean = true): void { + private intersectionServiceSubscribe(): void { this.intersectionService.createIntersectionObserver(this.hostElement); this.intersectionService.intersecting$ .pipe( + filter(next => next.hostElement === this.hostElement), debounceTime(100), finalize(() => { this.intersectionService.unobserve(this.hostElement); }), takeUntilDestroyed(this.#destroyRef) ) - .subscribe(isIntersecting => { - this.visible = isIntersecting ? this.visible : false; + .subscribe(next => { + this.visible = next.isIntersecting ? this.visible : false; !this.visible && this.removePopoverElement(); }); } diff --git a/projects/coreui-angular/src/lib/services/intersection.service.ts b/projects/coreui-angular/src/lib/services/intersection.service.ts index 83318ca3..72d9dfc7 100644 --- a/projects/coreui-angular/src/lib/services/intersection.service.ts +++ b/projects/coreui-angular/src/lib/services/intersection.service.ts @@ -8,19 +8,16 @@ export interface IIntersectionObserverInit { threshold?: number | number[]; } -@Injectable( - { providedIn: 'root' } -) +@Injectable({ + providedIn: 'root' +}) export class IntersectionService implements OnDestroy { platformId = inject(PLATFORM_ID); - readonly #intersecting = new BehaviorSubject(false); + readonly #intersecting: BehaviorSubject = new BehaviorSubject({ isIntersecting: false }); readonly intersecting$ = this.#intersecting.asObservable(); - private intersectionObserver!: IntersectionObserver; - private hostElement!: ElementRef; - private defaultObserverOptions: IIntersectionObserverInit = { root: null, rootMargin: '0px', @@ -32,23 +29,20 @@ export class IntersectionService implements OnDestroy { createIntersectionObserver(hostElement: ElementRef, observerOptions = this.defaultObserverOptions) { if (isPlatformServer(this.platformId)) { - this.#intersecting.next(true); + this.#intersecting.next({ isIntersecting: true, hostElement }); return; } - // this.hostElement = hostElement; - const options = { ...this.defaultObserverOptions, ...observerOptions }; + const options: IIntersectionObserverInit = { ...this.defaultObserverOptions, ...observerOptions }; const handleIntersect = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => { entries.forEach((entry: any) => { - this.#intersecting.next(entry.isIntersecting); + this.#intersecting.next({ isIntersecting: entry.isIntersecting, hostElement }); }); }; - const intersectionObserver: IntersectionObserver = new IntersectionObserver(handleIntersect, options); - intersectionObserver.observe(hostElement.nativeElement); - this.hostElementRefs.set(hostElement, intersectionObserver); - + this.hostElementRefs.set(hostElement, new IntersectionObserver(handleIntersect, options)); + this.hostElementRefs.get(hostElement)?.observe(hostElement.nativeElement); } unobserve(elementRef: ElementRef) { diff --git a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts index 3515c8e9..cb7bce5c 100644 --- a/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts +++ b/projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts @@ -19,7 +19,7 @@ import { } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DOCUMENT } from '@angular/common'; -import { debounceTime, finalize } from 'rxjs/operators'; +import { debounceTime, filter, finalize } from 'rxjs/operators'; import { createPopper, Instance, Options } from '@popperjs/core'; import { Triggers } from '../coreui.types'; @@ -153,18 +153,19 @@ export class TooltipDirective implements OnChanges, OnDestroy, OnInit, AfterView this.listenersService.clearListeners(); } - private intersectionServiceSubscribe(subscribe: boolean = true): void { + private intersectionServiceSubscribe(): void { this.intersectionService.createIntersectionObserver(this.hostElement); this.intersectionService.intersecting$ .pipe( + filter(next => next.hostElement === this.hostElement), debounceTime(100), finalize(() => { this.intersectionService.unobserve(this.hostElement); }), takeUntilDestroyed(this.#destroyRef) ) - .subscribe(isIntersecting => { - this.visible = isIntersecting ? this.visible : false; + .subscribe(next => { + this.visible = next.isIntersecting ? this.visible : false; !this.visible && this.removeTooltipElement(); }); } From 60e7e3b3cfbd7411f201152537139bf3cc344760 Mon Sep 17 00:00:00 2001 From: xidedix Date: Fri, 29 Dec 2023 02:52:15 +0100 Subject: [PATCH 20/20] chore: ship v4.7.8 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- projects/coreui-angular-chartjs/package.json | 2 +- projects/coreui-angular/package.json | 2 +- projects/coreui-icons-angular/package.json | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36063726..f00071f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ --- +#### `4.7.8` + +- refactor: allow getComputedStyle() to be undefined for SSR +- refactor(tooltip): for use with IntersectionService providedIn root +- refactor(popover): for use with IntersectionService providedIn root +- refactor(carousel): for use with IntersectionService providedIn root +- refactor(IntersectionService): providedIn root, allow multiple observers, add unobserve() method +- refactor(icon): afterNextRender in case of SSR +- refactor(chartjs): afterNextRender in case of SSR + +--- + #### `4.7.7` - chore(dependencies): update diff --git a/package.json b/package.json index e6f4d00d..4d50becf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "4.7.7", + "version": "4.7.8", "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 04d34e23..62fa292f 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.7", + "version": "4.7.8", "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 f48b4c35..541e0747 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "4.7.7", + "version": "4.7.8", "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 a67027bb..979d6015 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.7", + "version": "4.7.8", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2023 creativeLabs Łukasz Holeczek", "license": "MIT",