@coreui/angular-pro 5.0.0-alpha.7 → 5.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,14 +6,14 @@ export class RowDirective {
6
6
  const cols = this.xs;
7
7
  const classes = {
8
8
  row: true,
9
- [`row-cols-${cols}`]: !!cols,
9
+ [`row-cols-${cols}`]: !!cols
10
10
  };
11
11
  Object.keys(BreakpointInfix).forEach(breakpoint => {
12
12
  // @ts-ignore
13
13
  const value = this[breakpoint];
14
14
  if ((typeof value === 'number') || (typeof value === 'string')) {
15
- const infix = breakpoint === 'xs' ? '' : breakpoint;
16
- classes[`row-cols-${infix}-${value}`] = !!value;
15
+ const infix = breakpoint === 'xs' ? '' : `-${breakpoint}`;
16
+ classes[`row-cols${infix}-${value}`] = !!value;
17
17
  }
18
18
  });
19
19
  return classes;
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
43
43
  type: HostBinding,
44
44
  args: ['class']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZC9yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxZQUFZO0lBZ0N2QixJQUNJLFdBQVc7UUFFYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRXJCLE1BQU0sT0FBTyxHQUFRO1lBQ25CLEdBQUcsRUFBRSxJQUFJO1lBQ1QsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUk7U0FDN0IsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hELGFBQWE7WUFDYixNQUFNLEtBQUssR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQzlELE1BQU0sS0FBSyxHQUFXLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUM1RCxPQUFPLENBQUMsWUFBWSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ2pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXBEVSxZQUFZO2tHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFNVSxFQUFFO3NCQUFWLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQUtHLEVBQUU7c0JBQVYsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFHRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyZWFrcG9pbnRJbmZpeCB9IGZyb20gJy4uL2NvcmV1aS50eXBlcyc7XG5pbXBvcnQgeyBJUm93LCBOdW1iZXJPZkNvbHVtbnMgfSBmcm9tICcuL3Jvdy50eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NSb3ddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBSb3dEaXJlY3RpdmUgaW1wbGVtZW50cyBJUm93IHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29sdW1ucy9vZmZzZXQvb3JkZXIgb24gZXh0cmEgc21hbGwgZGV2aWNlcyAoPDU3NnB4KS5cbiAgICogQHR5cGUge3sgY29sczogJ2F1dG8nIHwgbnVtYmVyIH1cbiAgICovXG4gIEBJbnB1dCgpIHhzPzogTnVtYmVyT2ZDb2x1bW5zO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zL29mZnNldC9vcmRlciBvbiBzbWFsbCBkZXZpY2VzICg8NzY4cHgpLlxuICAgKiBAdHlwZSB7eyBjb2xzOiAnYXV0bycgfCBudW1iZXIgfVxuICAgKi9cbiAgQElucHV0KCkgc20/OiBOdW1iZXJPZkNvbHVtbnM7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMvb2Zmc2V0L29yZGVyIG9uIG1lZGl1bSBkZXZpY2VzICg8OTkycHgpLlxuICAgKiBAdHlwZSB7eyBjb2xzOiAnYXV0bycgfCBudW1iZXIgfVxuICAgKi9cbiAgQElucHV0KCkgbWQ/OiBOdW1iZXJPZkNvbHVtbnM7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMvb2Zmc2V0L29yZGVyIG9uIGxhcmdlIGRldmljZXMgKDwxMjAwcHgpLlxuICAgKiBAdHlwZSB7eyBjb2xzOiAnYXV0bycgfCBudW1iZXIgfVxuICAgKi9cbiAgQElucHV0KCkgbGc/OiBOdW1iZXJPZkNvbHVtbnM7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMvb2Zmc2V0L29yZGVyIG9uIFgtTGFyZ2UgZGV2aWNlcyAoPDE0MDBweCkuXG4gICAqIEB0eXBlIHt7IGNvbHM6ICdhdXRvJyB8IG51bWJlciB9XG4gICAqL1xuICBASW5wdXQoKSB4bD86IE51bWJlck9mQ29sdW1ucztcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29sdW1ucy9vZmZzZXQvb3JkZXIgb24gWFgtTGFyZ2UgZGV2aWNlcyAo4omlMTQwMHB4KS5cbiAgICogQHR5cGUge3sgY29sczogJ2F1dG8nIHwgbnVtYmVyIH1cbiAgICovXG4gIEBJbnB1dCgpIHh4bD86IE51bWJlck9mQ29sdW1ucztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG5cbiAgICBjb25zdCBjb2xzID0gdGhpcy54cztcblxuICAgIGNvbnN0IGNsYXNzZXM6IGFueSA9IHtcbiAgICAgIHJvdzogdHJ1ZSxcbiAgICAgIFtgcm93LWNvbHMtJHtjb2xzfWBdOiAhIWNvbHMsXG4gICAgfTtcblxuICAgIE9iamVjdC5rZXlzKEJyZWFrcG9pbnRJbmZpeCkuZm9yRWFjaChicmVha3BvaW50ID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHZhbHVlOiBhbnkgPSB0aGlzW2JyZWFrcG9pbnRdO1xuICAgICAgaWYgKCh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgY29uc3QgaW5maXg6IHN0cmluZyA9IGJyZWFrcG9pbnQgPT09ICd4cycgPyAnJyA6IGJyZWFrcG9pbnQ7XG4gICAgICAgIGNsYXNzZXNbYHJvdy1jb2xzLSR7aW5maXh9LSR7dmFsdWV9YF0gPSAhIXZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cbn1cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZC9yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxZQUFZO0lBZ0N2QixJQUNJLFdBQVc7UUFFYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRXJCLE1BQU0sT0FBTyxHQUFRO1lBQ25CLEdBQUcsRUFBRSxJQUFJO1lBQ1QsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUk7U0FDN0IsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hELGFBQWE7WUFDYixNQUFNLEtBQUssR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQzlELE1BQU0sS0FBSyxHQUFXLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDbEUsT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNoRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FwRFUsWUFBWTtrR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUp4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBTVUsRUFBRTtzQkFBVixLQUFLO2dCQUtHLEVBQUU7c0JBQVYsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQUtHLEVBQUU7c0JBQVYsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0YsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcmVha3BvaW50SW5maXggfSBmcm9tICcuLi9jb3JldWkudHlwZXMnO1xuaW1wb3J0IHsgSVJvdywgTnVtYmVyT2ZDb2x1bW5zIH0gZnJvbSAnLi9yb3cudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjUm93XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUm93RGlyZWN0aXZlIGltcGxlbWVudHMgSVJvdyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMvb2Zmc2V0L29yZGVyIG9uIGV4dHJhIHNtYWxsIGRldmljZXMgKDw1NzZweCkuXG4gICAqIEB0eXBlIHt7IGNvbHM6ICdhdXRvJyB8IG51bWJlciB9XG4gICAqL1xuICBASW5wdXQoKSB4cz86IE51bWJlck9mQ29sdW1ucztcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29sdW1ucy9vZmZzZXQvb3JkZXIgb24gc21hbGwgZGV2aWNlcyAoPDc2OHB4KS5cbiAgICogQHR5cGUge3sgY29sczogJ2F1dG8nIHwgbnVtYmVyIH1cbiAgICovXG4gIEBJbnB1dCgpIHNtPzogTnVtYmVyT2ZDb2x1bW5zO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zL29mZnNldC9vcmRlciBvbiBtZWRpdW0gZGV2aWNlcyAoPDk5MnB4KS5cbiAgICogQHR5cGUge3sgY29sczogJ2F1dG8nIHwgbnVtYmVyIH1cbiAgICovXG4gIEBJbnB1dCgpIG1kPzogTnVtYmVyT2ZDb2x1bW5zO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zL29mZnNldC9vcmRlciBvbiBsYXJnZSBkZXZpY2VzICg8MTIwMHB4KS5cbiAgICogQHR5cGUge3sgY29sczogJ2F1dG8nIHwgbnVtYmVyIH1cbiAgICovXG4gIEBJbnB1dCgpIGxnPzogTnVtYmVyT2ZDb2x1bW5zO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zL29mZnNldC9vcmRlciBvbiBYLUxhcmdlIGRldmljZXMgKDwxNDAwcHgpLlxuICAgKiBAdHlwZSB7eyBjb2xzOiAnYXV0bycgfCBudW1iZXIgfVxuICAgKi9cbiAgQElucHV0KCkgeGw/OiBOdW1iZXJPZkNvbHVtbnM7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMvb2Zmc2V0L29yZGVyIG9uIFhYLUxhcmdlIGRldmljZXMgKOKJpTE0MDBweCkuXG4gICAqIEB0eXBlIHt7IGNvbHM6ICdhdXRvJyB8IG51bWJlciB9XG4gICAqL1xuICBASW5wdXQoKSB4eGw/OiBOdW1iZXJPZkNvbHVtbnM7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuXG4gICAgY29uc3QgY29scyA9IHRoaXMueHM7XG5cbiAgICBjb25zdCBjbGFzc2VzOiBhbnkgPSB7XG4gICAgICByb3c6IHRydWUsXG4gICAgICBbYHJvdy1jb2xzLSR7Y29sc31gXTogISFjb2xzXG4gICAgfTtcblxuICAgIE9iamVjdC5rZXlzKEJyZWFrcG9pbnRJbmZpeCkuZm9yRWFjaChicmVha3BvaW50ID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHZhbHVlOiBhbnkgPSB0aGlzW2JyZWFrcG9pbnRdO1xuICAgICAgaWYgKCh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgY29uc3QgaW5maXg6IHN0cmluZyA9IGJyZWFrcG9pbnQgPT09ICd4cycgPyAnJyA6IGAtJHticmVha3BvaW50fWA7XG4gICAgICAgIGNsYXNzZXNbYHJvdy1jb2xzJHtpbmZpeH0tJHt2YWx1ZX1gXSA9ICEhdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { DestroyRef, effect, inject, Injectable, signal } from '@angular/core';
3
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
+ import { ActivatedRoute } from '@angular/router';
5
+ import { tap } from 'rxjs/operators';
6
+ import { LocalStorageService } from './local-storage.service';
7
+ import * as i0 from "@angular/core";
8
+ export class ColorModeService {
9
+ #destroyRef;
10
+ #document;
11
+ #window;
12
+ #activatedRoute;
13
+ #localStorage;
14
+ constructor() {
15
+ this.#destroyRef = inject(DestroyRef);
16
+ this.#document = inject(DOCUMENT);
17
+ this.#window = this.#document.defaultView;
18
+ this.#activatedRoute = inject(ActivatedRoute);
19
+ this.#localStorage = inject(LocalStorageService);
20
+ this.eventName = signal('ColorSchemeChange');
21
+ this.localStorageItemName = signal('coreui-angular-color-scheme');
22
+ this.localStorageItemName$ = toObservable(this.localStorageItemName);
23
+ this.colorMode = signal('light');
24
+ this.colorModeEffect = effect(() => {
25
+ if (this.colorMode()) {
26
+ this.setStoredTheme(this.localStorageItemName(), this.colorMode());
27
+ this.setTheme(this.colorMode());
28
+ }
29
+ });
30
+ this.#activatedRoute.queryParams
31
+ .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
32
+ const theme = params['theme']?.match(/^[A-Za-z0-9\s]+/)[0];
33
+ if (theme) {
34
+ this.colorMode.set(theme);
35
+ }
36
+ }))
37
+ .subscribe();
38
+ this.localStorageItemName$
39
+ .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
40
+ this.colorMode.set(this.getPreferredColorScheme(params));
41
+ }))
42
+ .subscribe();
43
+ }
44
+ getStoredTheme(localStorageItemName) {
45
+ return this.#localStorage.getItem(localStorageItemName);
46
+ }
47
+ setStoredTheme(localStorageItemName, colorMode) {
48
+ return this.#localStorage.setItem(localStorageItemName, colorMode);
49
+ }
50
+ getPreferredColorScheme(localStorageItemName) {
51
+ if (this.#window === undefined) {
52
+ return 'light';
53
+ }
54
+ const storedTheme = this.getStoredTheme(localStorageItemName);
55
+ if (storedTheme) {
56
+ return storedTheme;
57
+ }
58
+ return this.#window?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
59
+ }
60
+ ;
61
+ setTheme(colorMode) {
62
+ this.#document.documentElement.dataset['coreuiTheme'] =
63
+ colorMode === 'auto' && this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches
64
+ ? 'dark'
65
+ : colorMode;
66
+ const event = new Event(this.eventName());
67
+ this.#document.documentElement.dispatchEvent(event);
68
+ }
69
+ ;
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, providedIn: 'root' }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, decorators: [{
74
+ type: Injectable,
75
+ args: [{
76
+ providedIn: 'root'
77
+ }]
78
+ }], ctorParameters: () => [] });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb2xvci1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUVsQixXQUFXLENBQWtDO0lBQzdDLFNBQVMsQ0FBOEI7SUFDdkMsT0FBTyxDQUE4QjtJQUNyQyxlQUFlLENBQTBDO0lBQ3pELGFBQWEsQ0FBb0Q7SUFlMUU7UUFuQlMsZ0JBQVcsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDckMsb0JBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELGtCQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMs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LGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yTW9kZVNlcnZpY2Uge1xuXG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmOiBEZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI3dpbmRvdyA9IHRoaXMuI2RvY3VtZW50LmRlZmF1bHRWaWV3O1xuICByZWFkb25seSAjYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmVhZG9ubHkgI2xvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcblxuICByZWFkb25seSBldmVudE5hbWUgPSBzaWduYWwoJ0NvbG9yU2NoZW1lQ2hhbmdlJyk7XG4gIHJlYWRvbmx5IGxvY2FsU3RvcmFnZUl0ZW1OYW1lID0gc2lnbmFsKCdjb3JldWktYW5ndWxhci1jb2xvci1zY2hlbWUnKTtcbiAgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSXRlbU5hbWUkID0gdG9PYnNlcnZhYmxlKHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuXG4gIHJlYWRvbmx5IGNvbG9yTW9kZTogV3JpdGFibGVTaWduYWw8J2xpZ2h0JyB8ICdkYXJrJyB8ICdhdXRvJz4gPSBzaWduYWwoJ2xpZ2h0Jyk7XG5cbiAgcmVhZG9ubHkgY29sb3JNb2RlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5jb2xvck1vZGUoKSkge1xuICAgICAgdGhpcy5zZXRTdG9yZWRUaGVtZSh0aGlzLmxvY2FsU3RvcmFnZUl0ZW1OYW1lKCksIHRoaXMuY29sb3JNb2RlKCkpO1xuICAgICAgdGhpcy5zZXRUaGVtZSh0aGlzLmNvbG9yTW9kZSgpKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2FjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuICAgICAgICB0YXAocGFyYW1zID0+IHtcbiAgICAgICAgICBjb25zdCB0aGVtZSA9IHBhcmFtc1sndGhlbWUnXT8ubWF0Y2goL15bQS1aYS16MC05XFxzXSsvKVswXTtcbiAgICAgICAgICBpZiAodGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3JNb2RlLnNldCh0aGVtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VJdGVtTmFtZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG4gICAgICAgIHRhcChwYXJhbXMgPT4ge1xuICAgICAgICAgIHRoaXMuY29sb3JNb2RlLnNldCh0aGlzLmdldFByZWZlcnJlZENvbG9yU2NoZW1lKHBhcmFtcykpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gIH1cblxuICBnZXRTdG9yZWRUaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcbiAgfVxuXG4gIHNldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcsIGNvbG9yTW9kZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lLCBjb2xvck1vZGUpO1xuICB9XG5cbiAgZ2V0UHJlZmVycmVkQ29sb3JTY2hlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLiN3aW5kb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICdsaWdodCc7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkVGhlbWUgPSB0aGlzLmdldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcblxuICAgIGlmIChzdG9yZWRUaGVtZSkge1xuICAgICAgcmV0dXJuIHN0b3JlZFRoZW1lO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiN3aW5kb3c/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgfTtcblxuICBzZXRUaGVtZShjb2xvck1vZGU6IHN0cmluZykge1xuICAgIHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kYXRhc2V0Wydjb3JldWlUaGVtZSddID1cbiAgICAgIGNvbG9yTW9kZSA9PT0gJ2F1dG8nICYmIHRoaXMuI2RvY3VtZW50LmRlZmF1bHRWaWV3Py5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlc1xuICAgICAgPyAnZGFyaydcbiAgICAgIDogY29sb3JNb2RlO1xuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQodGhpcy5ldmVudE5hbWUoKSk7XG4gICAgdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9O1xuXG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class InMemoryStorageService {
4
+ #storage = new Map();
5
+ constructor() { }
6
+ setItem(key, data) {
7
+ this.#storage.set(key, JSON.stringify(data));
8
+ }
9
+ getItem(key) {
10
+ return this.#storage.has(key) ? JSON.parse(this.#storage.get(key) ?? 'null') : undefined;
11
+ }
12
+ removeItem(key) {
13
+ this.#storage.delete(key);
14
+ }
15
+ clear() {
16
+ this.#storage.clear();
17
+ }
18
+ get length() {
19
+ return this.#storage.size;
20
+ }
21
+ key(index) {
22
+ return Array.from(this.#storage.keys())[index];
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }], ctorParameters: () => [] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUVyQyxnQkFBZ0IsQ0FBQztJQUVWLE9BQU8sQ0FBQyxHQUFXLEVBQUUsSUFBUztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU0sR0FBRyxDQUFDLEtBQWE7UUFDdEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQTVCVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbk1lbW9yeVN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgU3RvcmFnZSB7XG5cbiAgI3N0b3JhZ2UgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2Uuc2V0KGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNzdG9yYWdlLmhhcyhrZXkpID8gSlNPTi5wYXJzZSh0aGlzLiNzdG9yYWdlLmdldChrZXkpID8/ICdudWxsJykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2UuZGVsZXRlKGtleSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy4jc3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2Uuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBrZXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuI3N0b3JhZ2Uua2V5cygpKVtpbmRleF07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { InMemoryStorageService } from './in-memory-storage.service';
5
+ import * as i0 from "@angular/core";
6
+ export class LocalStorageService {
7
+ constructor(platformId, document) {
8
+ this.platformId = platformId;
9
+ this.document = document;
10
+ this.#data$ = new BehaviorSubject(null);
11
+ this.data$ = this.#data$.asObservable();
12
+ this.localStorage = isPlatformBrowser(this.platformId) && this.document.defaultView ? this.document.defaultView?.localStorage : new InMemoryStorageService();
13
+ }
14
+ #data$;
15
+ setItem(key, data) {
16
+ this.localStorage.setItem(key, JSON.stringify(data));
17
+ this.#data$.next({ key, data });
18
+ }
19
+ getItem(key) {
20
+ const data = JSON.parse(this.localStorage.getItem(key) ?? 'null');
21
+ this.#data$.next({ key, data });
22
+ return data;
23
+ }
24
+ removeItem(key) {
25
+ this.localStorage.removeItem(key);
26
+ this.#data$.next({ key, data: null });
27
+ }
28
+ clear() {
29
+ this.localStorage.clear();
30
+ this.#data$.next(null);
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root'
39
+ }]
40
+ }], ctorParameters: () => [{ type: Object, decorators: [{
41
+ type: Inject,
42
+ args: [PLATFORM_ID]
43
+ }] }, { type: Document, decorators: [{
44
+ type: Inject,
45
+ args: [DOCUMENT]
46
+ }] }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtyRSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQytCLFVBQWtCLEVBQ3JCLFFBQWtCO1FBRGYsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSzlDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBb0MsSUFBSSxDQUFDLENBQUM7UUFDL0QsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFKeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0lBQy9KLENBQUM7SUFFRCxNQUFNLENBQWdFO0lBRy9ELE9BQU8sQ0FBQyxHQUFXLEVBQUUsSUFBUztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FqQ1UsbUJBQW1CLGtCQUtwQixXQUFXLGFBQ1gsUUFBUTtrSEFOUCxtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5NZW1vcnlTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuXG4gIGxvY2FsU3RvcmFnZTogU3RvcmFnZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyA/IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LmxvY2FsU3RvcmFnZSA6IG5ldyBJbk1lbW9yeVN0b3JhZ2VTZXJ2aWNlKCk7XG4gIH1cblxuICAjZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsga2V5OiBzdHJpbmcsIGRhdGE6IGFueSB9IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBkYXRhJCA9IHRoaXMuI2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHB1YmxpYyBzZXRJdGVtKGtleTogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpID8/ICdudWxsJyk7XG4gICAgdGhpcy4jZGF0YSQubmV4dCh7IGtleSwgZGF0YSB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGE6IG51bGwgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB0aGlzLiNkYXRhJC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,7 @@
1
1
  export { IntersectionService } from './intersection.service';
2
2
  export { ListenersService } from './listeners.service';
3
3
  export { ClassToggleService } from './class-toggle.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW50ZXJzZWN0aW9uU2VydmljZSwgSUludGVyc2VjdGlvbk9ic2VydmVySW5pdCB9IGZyb20gJy4vaW50ZXJzZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgTGlzdGVuZXJzU2VydmljZSwgSUxpc3RlbmVyc0NvbmZpZyB9IGZyb20gJy4vbGlzdGVuZXJzLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xhc3NUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGFzcy10b2dnbGUuc2VydmljZSc7XG4iXX0=
4
+ export { LocalStorageService } from './local-storage.service';
5
+ export { InMemoryStorageService } from './in-memory-storage.service';
6
+ export { ColorModeService } from './color-mode.service';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW50ZXJzZWN0aW9uU2VydmljZSwgSUludGVyc2VjdGlvbk9ic2VydmVySW5pdCB9IGZyb20gJy4vaW50ZXJzZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgTGlzdGVuZXJzU2VydmljZSwgSUxpc3RlbmVyc0NvbmZpZyB9IGZyb20gJy4vbGlzdGVuZXJzLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xhc3NUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGFzcy10b2dnbGUuc2VydmljZSc7XG5leHBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5NZW1vcnlTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBDb2xvck1vZGVTZXJ2aWNlIH0gZnJvbSAnLi9jb2xvci1tb2RlLnNlcnZpY2UnO1xuIl19
@@ -7,7 +7,7 @@ export class ShadowOnScrollDirective {
7
7
  #destroyRef = inject(DestroyRef);
8
8
  #document = inject(DOCUMENT);
9
9
  #elementRef = inject(ElementRef);
10
- #scrolled = signal(this.#document.documentElement.scrollTop > 0);
10
+ #scrolled = signal(false);
11
11
  #scrollEffect = effect(() => {
12
12
  this.#elementRef.nativeElement.classList.toggle(this.#shadowClass, this.#scrolled());
13
13
  });
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
45
45
  }], ctorParameters: () => [], propDecorators: { cShadowOnScroll: [{
46
46
  type: Input
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LW9uLXNjcm9sbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3V0aWxpdGllcy9zaGFkb3ctb24tc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBTS9DLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsV0FBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxTQUFTLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLFdBQVcsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUE0QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTFGLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBZ0I7SUFDM0IsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUUzQjtRQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksZUFBZSxDQUFDLEtBQXFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7aUJBQ25ELElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2lCQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBQUEsQ0FBQzs4R0FuQ1MsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQXNCSyxlQUFlO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjU2hhZG93T25TY3JvbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTaGFkb3dPblNjcm9sbERpcmVjdGl2ZSB7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjZWxlbWVudFJlZjogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgI3Njcm9sbGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbCh0aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID4gMCk7XG5cbiAgcmVhZG9ubHkgI3Njcm9sbEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUodGhpcy4jc2hhZG93Q2xhc3MsIHRoaXMuI3Njcm9sbGVkKCkpO1xuICB9KTtcblxuICAjb2JzZXJ2YWJsZSE6IFN1YnNjcmlwdGlvbjtcbiAgI3NoYWRvd0NsYXNzID0gJ3NoYWRvdy1zbSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy4jc2Nyb2xsRWZmZWN0Py5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY1NoYWRvd09uU2Nyb2xsKHZhbHVlOiAnc20nIHwgJ2xnJyB8ICdub25lJyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNzY3JvbGxlZC5zZXQoZmFsc2UpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jc2hhZG93Q2xhc3MgPSB2YWx1ZSA9PT0gdHJ1ZSA/ICdzaGFkb3cnIDogYHNoYWRvdy0ke3ZhbHVlfWA7XG4gICAgICB0aGlzLiNvYnNlcnZhYmxlID0gZnJvbUV2ZW50KHRoaXMuI2RvY3VtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShzY3JvbGxlZCA9PiB7XG4gICAgICAgICAgdGhpcy4jc2Nyb2xsZWQuc2V0KHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPiAwKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI29ic2VydmFibGU/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9O1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LW9uLXNjcm9sbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3V0aWxpdGllcy9zaGFkb3ctb24tc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBTS9DLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsV0FBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxTQUFTLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLFdBQVcsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUE0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbkQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUMsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFnQjtJQUMzQixZQUFZLEdBQUcsV0FBVyxDQUFDO0lBRTNCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxlQUFlLENBQUMsS0FBcUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztpQkFDbkQsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDckM7aUJBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFBQSxDQUFDOzhHQW5DUyx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7d0RBc0JLLGVBQWU7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NTaGFkb3dPblNjcm9sbF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNoYWRvd09uU2Nyb2xsRGlyZWN0aXZlIHtcblxuICByZWFkb25seSAjZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmOiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjc2Nyb2xsZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSAjc2Nyb2xsRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLiNzaGFkb3dDbGFzcywgdGhpcy4jc2Nyb2xsZWQoKSk7XG4gIH0pO1xuXG4gICNvYnNlcnZhYmxlITogU3Vic2NyaXB0aW9uO1xuICAjc2hhZG93Q2xhc3MgPSAnc2hhZG93LXNtJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLiNzY3JvbGxFZmZlY3Q/LmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjU2hhZG93T25TY3JvbGwodmFsdWU6ICdzbScgfCAnbGcnIHwgJ25vbmUnIHwgYm9vbGVhbikge1xuICAgIHRoaXMuI3Njcm9sbGVkLnNldChmYWxzZSk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNzaGFkb3dDbGFzcyA9IHZhbHVlID09PSB0cnVlID8gJ3NoYWRvdycgOiBgc2hhZG93LSR7dmFsdWV9YDtcbiAgICAgIHRoaXMuI29ic2VydmFibGUgPSBmcm9tRXZlbnQodGhpcy4jZG9jdW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHNjcm9sbGVkID0+IHtcbiAgICAgICAgICB0aGlzLiNzY3JvbGxlZC5zZXQodGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDApO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jb2JzZXJ2YWJsZT8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
2
2
  import { Directive, Input, ElementRef, inject, Renderer2, booleanAttribute, NgModule, HostBinding, Injectable, Component, EventEmitter, Output, ContentChildren, HostListener, DestroyRef, signal, effect, RendererFactory2, Pipe, computed, numberAttribute, ViewChildren, PLATFORM_ID, Inject, ViewChild, forwardRef, Optional, ContentChild, ChangeDetectionStrategy, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
3
3
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
4
4
  import * as i3 from '@angular/common';
5
- import { NgTemplateOutlet, NgIf, DOCUMENT, NgClass, NgForOf, AsyncPipe, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, isPlatformServer, CommonModule, formatDate, I18nPluralPipe, isPlatformBrowser, JsonPipe } from '@angular/common';
5
+ import { NgTemplateOutlet, NgIf, DOCUMENT, NgClass, NgForOf, AsyncPipe, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, isPlatformServer, isPlatformBrowser, CommonModule, formatDate, I18nPluralPipe, JsonPipe } from '@angular/common';
6
6
  import * as i1 from '@angular/animations';
7
7
  import { animate, animation, style, useAnimation, state, transition, trigger, query, group } from '@angular/animations';
8
- import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
8
+ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
9
9
  import { fromEvent, Subject, BehaviorSubject, Observable, skip, distinctUntilChanged as distinctUntilChanged$1, map as map$1, debounceTime as debounceTime$1 } from 'rxjs';
10
10
  import * as i1$1 from '@angular/router';
11
- import { RouterModule, NavigationEnd, RouterLink } from '@angular/router';
11
+ import { RouterModule, NavigationEnd, ActivatedRoute, RouterLink } from '@angular/router';
12
12
  import { filter, tap, distinctUntilChanged, take, finalize, withLatestFrom, zipWith, debounceTime, map, delay, combineLatestWith } from 'rxjs/operators';
13
13
  import * as i1$2 from '@angular/cdk/a11y';
14
14
  import { FocusMonitor, A11yModule, FocusKeyManager } from '@angular/cdk/a11y';
@@ -1167,7 +1167,7 @@ class ShadowOnScrollDirective {
1167
1167
  #destroyRef = inject(DestroyRef);
1168
1168
  #document = inject(DOCUMENT);
1169
1169
  #elementRef = inject(ElementRef);
1170
- #scrolled = signal(this.#document.documentElement.scrollTop > 0);
1170
+ #scrolled = signal(false);
1171
1171
  #scrollEffect = effect(() => {
1172
1172
  this.#elementRef.nativeElement.classList.toggle(this.#shadowClass, this.#scrolled());
1173
1173
  });
@@ -4090,6 +4090,151 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
4090
4090
  args: [DOCUMENT]
4091
4091
  }] }, { type: i0.RendererFactory2 }] });
4092
4092
 
4093
+ class InMemoryStorageService {
4094
+ #storage = new Map();
4095
+ constructor() { }
4096
+ setItem(key, data) {
4097
+ this.#storage.set(key, JSON.stringify(data));
4098
+ }
4099
+ getItem(key) {
4100
+ return this.#storage.has(key) ? JSON.parse(this.#storage.get(key) ?? 'null') : undefined;
4101
+ }
4102
+ removeItem(key) {
4103
+ this.#storage.delete(key);
4104
+ }
4105
+ clear() {
4106
+ this.#storage.clear();
4107
+ }
4108
+ get length() {
4109
+ return this.#storage.size;
4110
+ }
4111
+ key(index) {
4112
+ return Array.from(this.#storage.keys())[index];
4113
+ }
4114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4115
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, providedIn: 'root' }); }
4116
+ }
4117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InMemoryStorageService, decorators: [{
4118
+ type: Injectable,
4119
+ args: [{
4120
+ providedIn: 'root'
4121
+ }]
4122
+ }], ctorParameters: () => [] });
4123
+
4124
+ class LocalStorageService {
4125
+ constructor(platformId, document) {
4126
+ this.platformId = platformId;
4127
+ this.document = document;
4128
+ this.#data$ = new BehaviorSubject(null);
4129
+ this.data$ = this.#data$.asObservable();
4130
+ this.localStorage = isPlatformBrowser(this.platformId) && this.document.defaultView ? this.document.defaultView?.localStorage : new InMemoryStorageService();
4131
+ }
4132
+ #data$;
4133
+ setItem(key, data) {
4134
+ this.localStorage.setItem(key, JSON.stringify(data));
4135
+ this.#data$.next({ key, data });
4136
+ }
4137
+ getItem(key) {
4138
+ const data = JSON.parse(this.localStorage.getItem(key) ?? 'null');
4139
+ this.#data$.next({ key, data });
4140
+ return data;
4141
+ }
4142
+ removeItem(key) {
4143
+ this.localStorage.removeItem(key);
4144
+ this.#data$.next({ key, data: null });
4145
+ }
4146
+ clear() {
4147
+ this.localStorage.clear();
4148
+ this.#data$.next(null);
4149
+ }
4150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
4151
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
4152
+ }
4153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LocalStorageService, decorators: [{
4154
+ type: Injectable,
4155
+ args: [{
4156
+ providedIn: 'root'
4157
+ }]
4158
+ }], ctorParameters: () => [{ type: Object, decorators: [{
4159
+ type: Inject,
4160
+ args: [PLATFORM_ID]
4161
+ }] }, { type: Document, decorators: [{
4162
+ type: Inject,
4163
+ args: [DOCUMENT]
4164
+ }] }] });
4165
+
4166
+ class ColorModeService {
4167
+ #destroyRef;
4168
+ #document;
4169
+ #window;
4170
+ #activatedRoute;
4171
+ #localStorage;
4172
+ constructor() {
4173
+ this.#destroyRef = inject(DestroyRef);
4174
+ this.#document = inject(DOCUMENT);
4175
+ this.#window = this.#document.defaultView;
4176
+ this.#activatedRoute = inject(ActivatedRoute);
4177
+ this.#localStorage = inject(LocalStorageService);
4178
+ this.eventName = signal('ColorSchemeChange');
4179
+ this.localStorageItemName = signal('coreui-angular-color-scheme');
4180
+ this.localStorageItemName$ = toObservable(this.localStorageItemName);
4181
+ this.colorMode = signal('light');
4182
+ this.colorModeEffect = effect(() => {
4183
+ if (this.colorMode()) {
4184
+ this.setStoredTheme(this.localStorageItemName(), this.colorMode());
4185
+ this.setTheme(this.colorMode());
4186
+ }
4187
+ });
4188
+ this.#activatedRoute.queryParams
4189
+ .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
4190
+ const theme = params['theme']?.match(/^[A-Za-z0-9\s]+/)[0];
4191
+ if (theme) {
4192
+ this.colorMode.set(theme);
4193
+ }
4194
+ }))
4195
+ .subscribe();
4196
+ this.localStorageItemName$
4197
+ .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
4198
+ this.colorMode.set(this.getPreferredColorScheme(params));
4199
+ }))
4200
+ .subscribe();
4201
+ }
4202
+ getStoredTheme(localStorageItemName) {
4203
+ return this.#localStorage.getItem(localStorageItemName);
4204
+ }
4205
+ setStoredTheme(localStorageItemName, colorMode) {
4206
+ return this.#localStorage.setItem(localStorageItemName, colorMode);
4207
+ }
4208
+ getPreferredColorScheme(localStorageItemName) {
4209
+ if (this.#window === undefined) {
4210
+ return 'light';
4211
+ }
4212
+ const storedTheme = this.getStoredTheme(localStorageItemName);
4213
+ if (storedTheme) {
4214
+ return storedTheme;
4215
+ }
4216
+ return this.#window?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
4217
+ }
4218
+ ;
4219
+ setTheme(colorMode) {
4220
+ this.#document.documentElement.dataset['coreuiTheme'] =
4221
+ colorMode === 'auto' && this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches
4222
+ ? 'dark'
4223
+ : colorMode;
4224
+ const event = new Event(this.eventName());
4225
+ this.#document.documentElement.dispatchEvent(event);
4226
+ }
4227
+ ;
4228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4229
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, providedIn: 'root' }); }
4230
+ }
4231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ColorModeService, decorators: [{
4232
+ type: Injectable,
4233
+ args: [{
4234
+ providedIn: 'root'
4235
+ }]
4236
+ }], ctorParameters: () => [] });
4237
+
4093
4238
  class CarouselService {
4094
4239
  constructor() {
4095
4240
  this.carouselIndex = new BehaviorSubject({});
@@ -8614,14 +8759,14 @@ class RowDirective {
8614
8759
  const cols = this.xs;
8615
8760
  const classes = {
8616
8761
  row: true,
8617
- [`row-cols-${cols}`]: !!cols,
8762
+ [`row-cols-${cols}`]: !!cols
8618
8763
  };
8619
8764
  Object.keys(BreakpointInfix).forEach(breakpoint => {
8620
8765
  // @ts-ignore
8621
8766
  const value = this[breakpoint];
8622
8767
  if ((typeof value === 'number') || (typeof value === 'string')) {
8623
- const infix = breakpoint === 'xs' ? '' : breakpoint;
8624
- classes[`row-cols-${infix}-${value}`] = !!value;
8768
+ const infix = breakpoint === 'xs' ? '' : `-${breakpoint}`;
8769
+ classes[`row-cols${infix}-${value}`] = !!value;
8625
8770
  }
8626
8771
  });
8627
8772
  return classes;
@@ -17244,5 +17389,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
17244
17389
  * Generated bundle index. Do not edit.
17245
17390
  */
17246
17391
 
17247
- export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalendarComponent, CalendarModule, CalendarMonthComponent, CalendarNavigationComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ContainerComponent, DatePickerComponent, DatePickerModule, DateRangePickerComponent, DateRangePickerModule, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementCoverComponent, ElementCoverModule, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LoadingButtonComponent, LoadingButtonModule, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, MultiSelectComponent, MultiSelectModule, MultiSelectOptgroupComponent, MultiSelectOptgroupLabelComponent, MultiSelectOptionComponent, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressComponent, ProgressModule, RoundedDirective, RowComponent, RowDirective, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SmartPaginationComponent, SmartPaginationModule, SmartTableComponent, SmartTableFilterComponent, SmartTableModule, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabPaneComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, TabsModule, TemplateIdDirective, TextColorDirective, ThemeDirective, TimePickerComponent, TimePickerModule, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
17392
+ export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalendarComponent, CalendarModule, CalendarMonthComponent, CalendarNavigationComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ColorModeService, ContainerComponent, DatePickerComponent, DatePickerModule, DateRangePickerComponent, DateRangePickerModule, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementCoverComponent, ElementCoverModule, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InMemoryStorageService, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LoadingButtonComponent, LoadingButtonModule, LocalStorageService, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, MultiSelectComponent, MultiSelectModule, MultiSelectOptgroupComponent, MultiSelectOptgroupLabelComponent, MultiSelectOptionComponent, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressComponent, ProgressModule, RoundedDirective, RowComponent, RowDirective, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SmartPaginationComponent, SmartPaginationModule, SmartTableComponent, SmartTableFilterComponent, SmartTableModule, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabPaneComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, TabsModule, TemplateIdDirective, TextColorDirective, ThemeDirective, TimePickerComponent, TimePickerModule, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
17248
17393
  //# sourceMappingURL=coreui-angular-pro.mjs.map