@ng-vagabond-lab/ng-dsv 0.0.40 → 0.0.42

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.
@@ -2,10 +2,10 @@ export type ID = string | number | undefined | null;
2
2
  export type Primitif = string | number | boolean | undefined | null;
3
3
  export type JSONValue = Primitif | {
4
4
  [x: string]: JSONValue;
5
- } | Array<JSONValue> | IApiDto;
5
+ } | Array<JSONValue> | ApiDto;
6
6
  export type JSONObject = {
7
7
  [x: string]: JSONValue;
8
- } | Array<JSONObject> | IApiDto;
8
+ } | Array<JSONObject> | ApiDto;
9
9
  export type JSON = {
10
10
  [x: string]: JSON | Primitif;
11
11
  };
@@ -14,7 +14,7 @@ export type Target = {
14
14
  value: JSONObject;
15
15
  };
16
16
  };
17
- export interface IApiDto {
17
+ export interface ApiDto {
18
18
  id?: ID;
19
19
  creationDate?: string;
20
20
  updatedDate?: string;
@@ -1,4 +1,4 @@
1
- export interface IPageableDto<T> {
1
+ export interface PageableDto<T> {
2
2
  totalPages?: number;
3
3
  totalElements?: number;
4
4
  size?: number;
@@ -1,5 +1,5 @@
1
- import { IApiDto } from '@ng-vagabond-lab/ng-dsv/api';
2
- export interface IUserDto extends IApiDto {
1
+ import { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';
2
+ export interface UserDto extends ApiDto {
3
3
  avatar?: string;
4
4
  creationDate?: string;
5
5
  facebookId?: string;
@@ -7,12 +7,12 @@ export interface IUserDto extends IApiDto {
7
7
  username?: string;
8
8
  profiles?: [];
9
9
  }
10
- export interface IUserConnectedDto {
10
+ export interface UserConnectedDto {
11
11
  googleToken?: string;
12
12
  jwt?: string;
13
13
  jwtRefresh?: string;
14
- user?: IUserDto;
14
+ user?: UserDto;
15
15
  }
16
- export interface IGoogleRequest {
16
+ export interface GoogleRequest {
17
17
  googleToken: string;
18
18
  }
@@ -1,9 +1,9 @@
1
1
  import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
2
- import { IUserConnectedDto } from '../dto/user.dto';
2
+ import { UserConnectedDto } from '../dto/user.dto';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AuthService {
5
5
  private readonly apiService;
6
- userConnected: import("@angular/core").WritableSignal<IUserConnectedDto | null>;
6
+ userConnected: import("@angular/core").WritableSignal<UserConnectedDto | null>;
7
7
  constructor(apiService: ApiService);
8
8
  googleLogin(credential: string): void;
9
9
  loginFromCache(): any;
@@ -1,5 +1,5 @@
1
1
  export type ToastType = 'success' | 'error' | 'warning' | 'info';
2
- export interface IToastDto {
2
+ export interface ToastDto {
3
3
  uuid?: string;
4
4
  text: string;
5
5
  isClose?: boolean;
@@ -1,13 +1,13 @@
1
- import { IToastDto } from '../dto/toast.dto';
1
+ import { ToastDto } from '../dto/toast.dto';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare const MAX_TOASTS = 10;
4
4
  export declare const DURATION_DEFAULT = 5000;
5
5
  export declare const DURATION_TIMEOUT = 10;
6
6
  export declare class ToastService {
7
- toastShows: import("@angular/core").WritableSignal<IToastDto[]>;
8
- toasts: import("@angular/core").WritableSignal<IToastDto[]>;
9
- showToast(toast: IToastDto): void;
10
- consumeToast(toast: IToastDto): void;
7
+ toastShows: import("@angular/core").WritableSignal<ToastDto[]>;
8
+ toasts: import("@angular/core").WritableSignal<ToastDto[]>;
9
+ showToast(toast: ToastDto): void;
10
+ consumeToast(toast: ToastDto): void;
11
11
  closeToast(uuid: string): void;
12
12
  removeToastFromQueue(uuid: string): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
@@ -74,10 +74,10 @@ class ApiService {
74
74
  error(url, error) {
75
75
  console.error(url, error);
76
76
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ApiService, providedIn: 'root' });
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApiService, providedIn: 'root' });
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ApiService, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ApiService, decorators: [{
81
81
  type: Injectable,
82
82
  args: [{
83
83
  providedIn: 'root',
@@ -34,10 +34,10 @@ class AuthComponent {
34
34
  logout() {
35
35
  this.authService.logout();
36
36
  }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AuthComponent, isStandalone: true, selector: "app-auth", ngImport: i0, template: "<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [style]=\"authService.userConnected() === null ? '' : 'display: none;'\"\n ></button>\n</div>\n\n@if(authService.userConnected()) {\n<div class=\"profile\">\n <img [src]=\"authService.userConnected()?.user?.avatar\" alt=\"profile\" />\n <dsv-button\n (callback)=\"logout()\"\n icon=\"ri-logout-box-line\"\n color=\"inherit\"\n ></dsv-button>\n</div>\n}\n", styles: [".auth-button button{margin:0;padding:0;background:transparent;border:0px}.profile{display:flex;gap:.5rem;flex-flow:nowrap;align-items:center}.profile img{width:30px;height:30px;border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: AuthComponent, isStandalone: true, selector: "app-auth", ngImport: i0, template: "<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [style]=\"authService.userConnected() === null ? '' : 'display: none;'\"\n ></button>\n</div>\n\n@if(authService.userConnected()) {\n<div class=\"profile\">\n <img [src]=\"authService.userConnected()?.user?.avatar\" alt=\"profile\" />\n <dsv-button\n (callback)=\"logout()\"\n icon=\"ri-logout-box-line\"\n color=\"inherit\"\n ></dsv-button>\n</div>\n}\n", styles: [".auth-button button{margin:0;padding:0;background:transparent;border:0px}.profile{display:flex;gap:.5rem;flex-flow:nowrap;align-items:center}.profile img{width:30px;height:30px;border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'app-auth', imports: [CommonModule, DsvButtonComponent], standalone: true, template: "<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [style]=\"authService.userConnected() === null ? '' : 'display: none;'\"\n ></button>\n</div>\n\n@if(authService.userConnected()) {\n<div class=\"profile\">\n <img [src]=\"authService.userConnected()?.user?.avatar\" alt=\"profile\" />\n <dsv-button\n (callback)=\"logout()\"\n icon=\"ri-logout-box-line\"\n color=\"inherit\"\n ></dsv-button>\n</div>\n}\n", styles: [".auth-button button{margin:0;padding:0;background:transparent;border:0px}.profile{display:flex;gap:.5rem;flex-flow:nowrap;align-items:center}.profile img{width:30px;height:30px;border-radius:50%}\n"] }]
43
43
  }], ctorParameters: () => [] });
@@ -67,10 +67,10 @@ class AuthService {
67
67
  localStorage?.removeItem('user-connected');
68
68
  this.userConnected.set(null);
69
69
  }
70
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
71
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthService, providedIn: 'root' });
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
71
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthService, providedIn: 'root' });
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthService, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthService, decorators: [{
74
74
  type: Injectable,
75
75
  args: [{
76
76
  providedIn: 'root',
@@ -108,10 +108,10 @@ class AuthGoogleService {
108
108
  loginWithGoogle() {
109
109
  google?.accounts.id.prompt();
110
110
  }
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, providedIn: 'root' });
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthGoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthGoogleService, providedIn: 'root' });
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AuthGoogleService, decorators: [{
115
115
  type: Injectable,
116
116
  args: [{
117
117
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-auth.mjs","sources":["../../../projects/ng-dsv/auth/component/auth.component.ts","../../../projects/ng-dsv/auth/component/auth.component.html","../../../projects/ng-dsv/auth/service/auth.service.ts","../../../projects/ng-dsv/auth/service/auth.google.service.ts","../../../projects/ng-dsv/auth/ng-vagabond-lab-ng-dsv-auth.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n afterNextRender,\n Component,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthGoogleService, AuthService } from '../public-api';\n\n@Component({\n selector: 'app-auth',\n imports: [CommonModule, DsvButtonComponent],\n standalone: true,\n templateUrl: './auth.component.html',\n styleUrls: ['./auth.component.scss'],\n})\nexport class AuthComponent {\n private readonly authGoogleService = inject(AuthGoogleService);\n protected authService = inject(AuthService);\n private readonly environmentService = inject(EnvironmentService);\n\n private readonly ssrRendered = signal(false);\n\n constructor() {\n afterNextRender(() => {\n this.ssrRendered.set(true);\n });\n effect(() => {\n if (this.authService.userConnected() === null) {\n this.ssrRendered() && this.authGoogleService.loginWithGoogle();\n } else {\n //this.memberService.initMember(\n // this.authService.userConnected()?.user?.id\n //);\n }\n });\n effect(() => {\n if (this.environmentService.env() && this.ssrRendered()) {\n this.authService.loginFromCache();\n this.authGoogleService.initGoogleAuth();\n }\n });\n }\n\n logout() {\n this.authService.logout();\n }\n}\n","<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [style]=\"authService.userConnected() === null ? '' : 'display: none;'\"\n ></button>\n</div>\n\n@if(authService.userConnected()) {\n<div class=\"profile\">\n <img [src]=\"authService.userConnected()?.user?.avatar\" alt=\"profile\" />\n <dsv-button\n (callback)=\"logout()\"\n icon=\"ri-logout-box-line\"\n color=\"inherit\"\n ></dsv-button>\n</div>\n}\n","import { Injectable, signal } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { IUserConnectedDto } from '../dto/user.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n userConnected = signal<IUserConnectedDto | null>(null);\n\n constructor(private readonly apiService: ApiService) {}\n\n googleLogin(credential: string) {\n this.apiService.post<IUserConnectedDto>(\n 'auth/google-identity-connect',\n {\n googleToken: credential,\n },\n (data) => {\n localStorage?.setItem('user-connected', JSON.stringify(data));\n this.userConnected.set(data);\n }\n );\n }\n\n loginFromCache() {\n const userConnected =\n typeof window !== 'undefined' &&\n JSON.parse(localStorage?.getItem('user-connected')!);\n this.userConnected.set(userConnected);\n console.info('userConnected', userConnected);\n return userConnected;\n }\n\n logout() {\n localStorage?.removeItem('user-connected');\n this.userConnected.set(null);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthService } from './auth.service';\n\ndeclare const google: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGoogleService {\n private readonly authService = inject(AuthService);\n private readonly environmentService = inject(EnvironmentService);\n\n initGoogleAuth() {\n google.accounts.id.initialize({\n client_id: this.environmentService.env()?.GOOGLE_CLIENT_ID,\n callback: this.handleCredentialResponse.bind(this),\n });\n google.accounts.id.renderButton(\n document.getElementById('google-signin-button')!,\n {\n theme: 'outline',\n size: 'medium',\n type: 'icon',\n }\n );\n }\n\n handleCredentialResponse(response: { credential: string }) {\n this.authService.googleLogin(response.credential);\n }\n\n decodeJwtToken(token: string) {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n return JSON.parse(jsonPayload);\n }\n\n loginWithGoogle() {\n google?.accounts.id.prompt();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-auth.mjs","sources":["../../../projects/ng-dsv/auth/component/auth.component.ts","../../../projects/ng-dsv/auth/component/auth.component.html","../../../projects/ng-dsv/auth/service/auth.service.ts","../../../projects/ng-dsv/auth/service/auth.google.service.ts","../../../projects/ng-dsv/auth/ng-vagabond-lab-ng-dsv-auth.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n afterNextRender,\n Component,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthGoogleService, AuthService } from '../public-api';\n\n@Component({\n selector: 'app-auth',\n imports: [CommonModule, DsvButtonComponent],\n standalone: true,\n templateUrl: './auth.component.html',\n styleUrls: ['./auth.component.scss'],\n})\nexport class AuthComponent {\n private readonly authGoogleService = inject(AuthGoogleService);\n protected authService = inject(AuthService);\n private readonly environmentService = inject(EnvironmentService);\n\n private readonly ssrRendered = signal(false);\n\n constructor() {\n afterNextRender(() => {\n this.ssrRendered.set(true);\n });\n effect(() => {\n if (this.authService.userConnected() === null) {\n this.ssrRendered() && this.authGoogleService.loginWithGoogle();\n } else {\n //this.memberService.initMember(\n // this.authService.userConnected()?.user?.id\n //);\n }\n });\n effect(() => {\n if (this.environmentService.env() && this.ssrRendered()) {\n this.authService.loginFromCache();\n this.authGoogleService.initGoogleAuth();\n }\n });\n }\n\n logout() {\n this.authService.logout();\n }\n}\n","<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [style]=\"authService.userConnected() === null ? '' : 'display: none;'\"\n ></button>\n</div>\n\n@if(authService.userConnected()) {\n<div class=\"profile\">\n <img [src]=\"authService.userConnected()?.user?.avatar\" alt=\"profile\" />\n <dsv-button\n (callback)=\"logout()\"\n icon=\"ri-logout-box-line\"\n color=\"inherit\"\n ></dsv-button>\n</div>\n}\n","import { Injectable, signal } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { UserConnectedDto } from '../dto/user.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n userConnected = signal<UserConnectedDto | null>(null);\n\n constructor(private readonly apiService: ApiService) {}\n\n googleLogin(credential: string) {\n this.apiService.post<UserConnectedDto>(\n 'auth/google-identity-connect',\n {\n googleToken: credential,\n },\n (data) => {\n localStorage?.setItem('user-connected', JSON.stringify(data));\n this.userConnected.set(data);\n }\n );\n }\n\n loginFromCache() {\n const userConnected =\n typeof window !== 'undefined' &&\n JSON.parse(localStorage?.getItem('user-connected')!);\n this.userConnected.set(userConnected);\n console.info('userConnected', userConnected);\n return userConnected;\n }\n\n logout() {\n localStorage?.removeItem('user-connected');\n this.userConnected.set(null);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthService } from './auth.service';\n\ndeclare const google: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGoogleService {\n private readonly authService = inject(AuthService);\n private readonly environmentService = inject(EnvironmentService);\n\n initGoogleAuth() {\n google.accounts.id.initialize({\n client_id: this.environmentService.env()?.GOOGLE_CLIENT_ID,\n callback: this.handleCredentialResponse.bind(this),\n });\n google.accounts.id.renderButton(\n document.getElementById('google-signin-button')!,\n {\n theme: 'outline',\n size: 'medium',\n type: 'icon',\n }\n );\n }\n\n handleCredentialResponse(response: { credential: string }) {\n this.authService.googleLogin(response.credential);\n }\n\n decodeJwtToken(token: string) {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n return JSON.parse(jsonPayload);\n }\n\n loginWithGoogle() {\n google?.accounts.id.prompt();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAmBa,aAAa,CAAA;AACP,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACpD,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1B,IAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE/C,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAE5C,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,SAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;gBAC7C,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;;iBACzD;;;;;AAKT,SAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACvD,gBAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACjC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;;AAE3C,SAAC,CAAC;;IAGJ,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;;wGA7BhB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,ECnB1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8bAiBA,EDHY,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAK/B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,CAAC,YAAY,EAAE,kBAAkB,CAAC,cAC/B,IAAI,EAAA,QAAA,EAAA,8bAAA,EAAA,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA;;;MERL,WAAW,CAAA;AAGO,IAAA,UAAA;AAF7B,IAAA,aAAa,GAAG,MAAM,CAA0B,IAAI,CAAC;AAErD,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAEvC,IAAA,WAAW,CAAC,UAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,8BAA8B,EAC9B;AACE,YAAA,WAAW,EAAE,UAAU;SACxB,EACD,CAAC,IAAI,KAAI;AACP,YAAA,YAAY,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,SAAC,CACF;;IAGH,cAAc,GAAA;AACZ,QAAA,MAAM,aAAa,GACjB,OAAO,MAAM,KAAK,WAAW;YAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAE,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;AACrC,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;AAC5C,QAAA,OAAO,aAAa;;IAGtB,MAAM,GAAA;AACJ,QAAA,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;;wGA7BnB,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCGY,iBAAiB,CAAA;AACX,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAEhE,cAAc,GAAA;AACZ,QAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,gBAAgB;YAC1D,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAC7B,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAE,EAChD;AACE,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,MAAM;AACb,SAAA,CACF;;AAGH,IAAA,wBAAwB,CAAC,QAAgC,EAAA;QACvD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;;AAGnD,IAAA,cAAc,CAAC,KAAa,EAAA;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9D,QAAA,MAAM,WAAW,GAAG,kBAAkB,CACpC,IAAI,CAAC,MAAM;aACR,KAAK,CAAC,EAAE;aACR,GAAG,CAAC,UAAU,CAAC,EAAA;YACd,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,SAAC;AACA,aAAA,IAAI,CAAC,EAAE,CAAC,CACZ;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;;IAGhC,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;;wGAtCnB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -15,10 +15,10 @@ class BaseRouteComponent {
15
15
  ngOnDestroy() {
16
16
  this.routeObservable?.unsubscribe();
17
17
  }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: BaseRouteComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: BaseRouteComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseRouteComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseRouteComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{
24
24
  template: '',
@@ -36,10 +36,10 @@ class ScrollService {
36
36
  getScroll() {
37
37
  return this.scrolls().get(location.href);
38
38
  }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
40
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ScrollService, providedIn: 'root' });
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
40
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollService, providedIn: 'root' });
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ScrollService, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{ providedIn: 'root' }]
45
45
  }] });
@@ -65,10 +65,10 @@ class BaseScrollComponent {
65
65
  this.environmentService.isScrollDown.set(distanceToBottom < 50);
66
66
  this.scrollService.saveScroll(divScroll?.scrollTop);
67
67
  }
68
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: BaseScrollComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: BaseScrollComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseScrollComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseScrollComponent, decorators: [{
72
72
  type: Component,
73
73
  args: [{
74
74
  template: '',
@@ -76,10 +76,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
76
76
  }], ctorParameters: () => [] });
77
77
 
78
78
  class BaseService {
79
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseService, providedIn: 'root' });
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseService, providedIn: 'root' });
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseService, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseService, decorators: [{
83
83
  type: Injectable,
84
84
  args: [{
85
85
  providedIn: 'root',
@@ -15,10 +15,10 @@ class DsvAccordionComponent {
15
15
  doToogle() {
16
16
  this.isOpen.update((tootle) => !tootle);
17
17
  }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<a class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title() }}\n @if(isOpen() === true) {\n <i class=\"ri-arrow-up-s-line\"></i>\n } @else {\n <i class=\"ri-arrow-down-s-line\"></i>\n }\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;gap:7px;width:calc(100% - 20px);padding:10px!important;background-color:#fff;position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:5px 10px}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-text{display:flex;width:100%;overflow:hidden;padding:0 10px;opacity:0;height:0;transition:transform .3s ease-out,opacity .2s ease-out,height .2s ease-out}:host .dsv-accordion-text.open{padding:10px;opacity:1;height:auto}::ng-deep .dark dsv-accordion{background-color:#2c2c2c}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<a class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title() }}\n @if(isOpen() === true) {\n <i class=\"ri-arrow-up-s-line\"></i>\n } @else {\n <i class=\"ri-arrow-down-s-line\"></i>\n }\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;gap:7px;width:calc(100% - 20px);padding:10px!important;background-color:#fff;position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:5px 10px}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-text{display:flex;width:100%;overflow:hidden;padding:0 10px;opacity:0;height:0;transition:transform .3s ease-out,opacity .2s ease-out,height .2s ease-out}:host .dsv-accordion-text.open{padding:10px;opacity:1;height:auto}::ng-deep .dark dsv-accordion{background-color:#2c2c2c}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvAccordionComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvAccordionComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'dsv-accordion', standalone: true, imports: [CommonModule], template: "<a class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title() }}\n @if(isOpen() === true) {\n <i class=\"ri-arrow-up-s-line\"></i>\n } @else {\n <i class=\"ri-arrow-down-s-line\"></i>\n }\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;gap:7px;width:calc(100% - 20px);padding:10px!important;background-color:#fff;position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:5px 10px}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-text{display:flex;width:100%;overflow:hidden;padding:0 10px;opacity:0;height:0;transition:transform .3s ease-out,opacity .2s ease-out,height .2s ease-out}:host .dsv-accordion-text.open{padding:10px;opacity:1;height:auto}::ng-deep .dark dsv-accordion{background-color:#2c2c2c}\n"] }]
24
24
  }], ctorParameters: () => [] });
@@ -20,10 +20,10 @@ class DsvAvatarComponent {
20
20
  triggerEvent() {
21
21
  this.callback?.emit();
22
22
  }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvAvatarComponent, isStandalone: true, selector: "dsv-avatar", inputs: { avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<a\n class=\"dsv-avatar\"\n [ngClass]=\"color() + ' ' + (isCallback() ? 'callback' : '')\"\n (click)=\"triggerEvent()\"\n>\n @if (isImage()) {\n <img src=\"{{ avatar() }}\" alt=\"avatar\" />\n } @else {\n <span>{{ showAvatar() }}</span>\n }\n</a>\n", styles: [".dsv-avatar{position:relative;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-shrink:0;width:40px;height:40px;font-size:1.25rem;line-height:1;border-radius:50%;overflow:hidden;-webkit-user-select:none;user-select:none;color:#fff;background-color:inherit;border:4px solid var(--background)}::ng-deep .dark .dsv-avatar{border-color:var(--background-dark)}.dsv-avatar img{width:40px;height:40px}.dsv-avatar.callback:hover{border:4px solid #e0e0e0}::ng-deep .dark .dsv-avatar.callback:hover{border-color:#2b2b2b}.dsv-avatar.callback:active{opacity:.8}.dsv-avatar.primary{background-color:var(--primary)}.dsv-avatar.success{background-color:var(--success)}.dsv-avatar.info{background-color:var(--info)}.dsv-avatar.warning{background-color:var(--warning)}.dsv-avatar.error{background-color:var(--error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvAvatarComponent, isStandalone: true, selector: "dsv-avatar", inputs: { avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<a\n class=\"dsv-avatar\"\n [ngClass]=\"color() + ' ' + (isCallback() ? 'callback' : '')\"\n (click)=\"triggerEvent()\"\n>\n @if (isImage()) {\n <img src=\"{{ avatar() }}\" alt=\"avatar\" />\n } @else {\n <span>{{ showAvatar() }}</span>\n }\n</a>\n", styles: [".dsv-avatar{position:relative;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-shrink:0;width:40px;height:40px;font-size:1.25rem;line-height:1;border-radius:50%;overflow:hidden;-webkit-user-select:none;user-select:none;color:#fff;background-color:inherit;border:4px solid var(--background)}::ng-deep .dark .dsv-avatar{border-color:var(--background-dark)}.dsv-avatar img{width:40px;height:40px}.dsv-avatar.callback:hover{border:4px solid #e0e0e0}::ng-deep .dark .dsv-avatar.callback:hover{border-color:#2b2b2b}.dsv-avatar.callback:active{opacity:.8}.dsv-avatar.primary{background-color:var(--primary)}.dsv-avatar.success{background-color:var(--success)}.dsv-avatar.info{background-color:var(--info)}.dsv-avatar.warning{background-color:var(--warning)}.dsv-avatar.error{background-color:var(--error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvAvatarComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvAvatarComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'dsv-avatar', standalone: true, imports: [CommonModule], template: "<a\n class=\"dsv-avatar\"\n [ngClass]=\"color() + ' ' + (isCallback() ? 'callback' : '')\"\n (click)=\"triggerEvent()\"\n>\n @if (isImage()) {\n <img src=\"{{ avatar() }}\" alt=\"avatar\" />\n } @else {\n <span>{{ showAvatar() }}</span>\n }\n</a>\n", styles: [".dsv-avatar{position:relative;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-shrink:0;width:40px;height:40px;font-size:1.25rem;line-height:1;border-radius:50%;overflow:hidden;-webkit-user-select:none;user-select:none;color:#fff;background-color:inherit;border:4px solid var(--background)}::ng-deep .dark .dsv-avatar{border-color:var(--background-dark)}.dsv-avatar img{width:40px;height:40px}.dsv-avatar.callback:hover{border:4px solid #e0e0e0}::ng-deep .dark .dsv-avatar.callback:hover{border-color:#2b2b2b}.dsv-avatar.callback:active{opacity:.8}.dsv-avatar.primary{background-color:var(--primary)}.dsv-avatar.success{background-color:var(--success)}.dsv-avatar.info{background-color:var(--info)}.dsv-avatar.warning{background-color:var(--warning)}.dsv-avatar.error{background-color:var(--error)}\n"] }]
29
29
  }] });
@@ -19,10 +19,10 @@ class DsvButtonComponent {
19
19
  event.preventDefault();
20
20
  !this.disabled() && this.callback.emit();
21
21
  }
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvButtonComponent, isStandalone: true, selector: "dsv-button", inputs: { libelle: { classPropertyName: "libelle", publicName: "libelle", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, fullwidth: { classPropertyName: "fullwidth", publicName: "fullwidth", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "@if (show()) {\n<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon() ? 'icon' : '') +\n ' ' +\n color() +\n ' ' +\n width() +\n ' ' +\n variant() +\n ' ' +\n (fullwidth() ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled()\"\n>\n @if(icon()) {\n <i [class]=\"icon()\"></i>\n } @if(libelle()) {\n <span>\n {{ libelle() }}\n </span>\n }\n <ng-content></ng-content>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n</button>\n}\n", styles: ["button.dsv-button{display:inline-flex;flex-direction:row;gap:5px;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;font-weight:500;letter-spacing:.02857em;text-transform:uppercase;color:var(--white);outline:0px;margin:0;text-decoration:none;border-width:0px;border-radius:4px;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1);padding:6px;font-size:1rem;min-width:10px;line-height:1}button.dsv-button.small,button.dsv-button.small>i{font-size:.8rem!important}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem!important}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem!important}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.primary,button.dsv-button.outlined.primary{color:var(--primary)}button.dsv-button.text.success,button.dsv-button.outlined.success{color:var(--success)}button.dsv-button.text.info,button.dsv-button.outlined.info{color:var(--info)}button.dsv-button.text.warning,button.dsv-button.outlined.warning{color:var(--warning)}button.dsv-button.text.error,button.dsv-button.outlined.error{color:var(--error)}button.dsv-button.text.outlined.primary,button.dsv-button.outlined.outlined.primary{border:1px solid var(--primary)}button.dsv-button.text.outlined.success,button.dsv-button.outlined.outlined.success{border:1px solid var(--success)}button.dsv-button.text.outlined.info,button.dsv-button.outlined.outlined.info{border:1px solid var(--info)}button.dsv-button.text.outlined.warning,button.dsv-button.outlined.outlined.warning{border:1px solid var(--warning)}button.dsv-button.text.outlined.error,button.dsv-button.outlined.outlined.error{border:1px solid var(--error)}button.dsv-button.contained.inherit{background-color:inherit;color:var(--text)!important}button.dsv-button.contained.primary{background-color:var(--primary)}button.dsv-button.contained.secondary{background-color:var(--secondary)}button.dsv-button.contained.success{background-color:var(--success)}button.dsv-button.contained.info{background-color:var(--info)}button.dsv-button.contained.warning{background-color:var(--warning)}button.dsv-button.contained.error{background-color:var(--error)}button.dsv-button:not(:disabled):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}button.dsv-button:disabled{background:#5b5b5b!important}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white)!important;filter:hue-rotate(5deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvButtonComponent, isStandalone: true, selector: "dsv-button", inputs: { libelle: { classPropertyName: "libelle", publicName: "libelle", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, fullwidth: { classPropertyName: "fullwidth", publicName: "fullwidth", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "@if (show()) {\n<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon() ? 'icon' : '') +\n ' ' +\n color() +\n ' ' +\n width() +\n ' ' +\n variant() +\n ' ' +\n (fullwidth() ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled()\"\n>\n @if(icon()) {\n <i [class]=\"icon()\"></i>\n } @if(libelle()) {\n <span>\n {{ libelle() }}\n </span>\n }\n <ng-content></ng-content>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n</button>\n}\n", styles: ["button.dsv-button{display:inline-flex;flex-direction:row;gap:5px;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;font-weight:500;letter-spacing:.02857em;text-transform:uppercase;color:var(--white);outline:0px;margin:0;text-decoration:none;border-width:0px;border-radius:4px;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1);padding:6px;font-size:1rem;min-width:10px;line-height:1}button.dsv-button.small,button.dsv-button.small>i{font-size:.8rem!important}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem!important}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem!important}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.primary,button.dsv-button.outlined.primary{color:var(--primary)}button.dsv-button.text.success,button.dsv-button.outlined.success{color:var(--success)}button.dsv-button.text.info,button.dsv-button.outlined.info{color:var(--info)}button.dsv-button.text.warning,button.dsv-button.outlined.warning{color:var(--warning)}button.dsv-button.text.error,button.dsv-button.outlined.error{color:var(--error)}button.dsv-button.text.outlined.primary,button.dsv-button.outlined.outlined.primary{border:1px solid var(--primary)}button.dsv-button.text.outlined.success,button.dsv-button.outlined.outlined.success{border:1px solid var(--success)}button.dsv-button.text.outlined.info,button.dsv-button.outlined.outlined.info{border:1px solid var(--info)}button.dsv-button.text.outlined.warning,button.dsv-button.outlined.outlined.warning{border:1px solid var(--warning)}button.dsv-button.text.outlined.error,button.dsv-button.outlined.outlined.error{border:1px solid var(--error)}button.dsv-button.contained.inherit{background-color:inherit;color:var(--text)!important}button.dsv-button.contained.primary{background-color:var(--primary)}button.dsv-button.contained.secondary{background-color:var(--secondary)}button.dsv-button.contained.success{background-color:var(--success)}button.dsv-button.contained.info{background-color:var(--info)}button.dsv-button.contained.warning{background-color:var(--warning)}button.dsv-button.contained.error{background-color:var(--error)}button.dsv-button:not(:disabled):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}button.dsv-button:disabled{background:#5b5b5b!important}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white)!important;filter:hue-rotate(5deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvButtonComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvButtonComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: 'dsv-button', standalone: true, imports: [CommonModule], template: "@if (show()) {\n<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon() ? 'icon' : '') +\n ' ' +\n color() +\n ' ' +\n width() +\n ' ' +\n variant() +\n ' ' +\n (fullwidth() ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled()\"\n>\n @if(icon()) {\n <i [class]=\"icon()\"></i>\n } @if(libelle()) {\n <span>\n {{ libelle() }}\n </span>\n }\n <ng-content></ng-content>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n</button>\n}\n", styles: ["button.dsv-button{display:inline-flex;flex-direction:row;gap:5px;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;font-weight:500;letter-spacing:.02857em;text-transform:uppercase;color:var(--white);outline:0px;margin:0;text-decoration:none;border-width:0px;border-radius:4px;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1);padding:6px;font-size:1rem;min-width:10px;line-height:1}button.dsv-button.small,button.dsv-button.small>i{font-size:.8rem!important}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem!important}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem!important}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.primary,button.dsv-button.outlined.primary{color:var(--primary)}button.dsv-button.text.success,button.dsv-button.outlined.success{color:var(--success)}button.dsv-button.text.info,button.dsv-button.outlined.info{color:var(--info)}button.dsv-button.text.warning,button.dsv-button.outlined.warning{color:var(--warning)}button.dsv-button.text.error,button.dsv-button.outlined.error{color:var(--error)}button.dsv-button.text.outlined.primary,button.dsv-button.outlined.outlined.primary{border:1px solid var(--primary)}button.dsv-button.text.outlined.success,button.dsv-button.outlined.outlined.success{border:1px solid var(--success)}button.dsv-button.text.outlined.info,button.dsv-button.outlined.outlined.info{border:1px solid var(--info)}button.dsv-button.text.outlined.warning,button.dsv-button.outlined.outlined.warning{border:1px solid var(--warning)}button.dsv-button.text.outlined.error,button.dsv-button.outlined.outlined.error{border:1px solid var(--error)}button.dsv-button.contained.inherit{background-color:inherit;color:var(--text)!important}button.dsv-button.contained.primary{background-color:var(--primary)}button.dsv-button.contained.secondary{background-color:var(--secondary)}button.dsv-button.contained.success{background-color:var(--success)}button.dsv-button.contained.info{background-color:var(--info)}button.dsv-button.contained.warning{background-color:var(--warning)}button.dsv-button.contained.error{background-color:var(--error)}button.dsv-button:not(:disabled):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}button.dsv-button:disabled{background:#5b5b5b!important}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white)!important;filter:hue-rotate(5deg)}\n"] }]
28
28
  }] });
@@ -9,10 +9,10 @@ class DsvCardComponent {
9
9
  subtitle = input('');
10
10
  image = input();
11
11
  alt = input();
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvCardComponent, isStandalone: true, selector: "dsv-card", inputs: { avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dsv-card\">\n @if (image()) {\n <img src=\"{{ image() }}\" [alt]=\"alt()\" />\n }\n <div class=\"dsv-card-header\">\n @if(avatar()){\n <dsv-avatar [avatar]=\"avatar()!\"></dsv-avatar>\n }\n <div>\n <h2>{{ title() }}</h2>\n <div class=\"dsv-card-subtitle\">{{ subtitle() }}</div>\n </div>\n <div class=\"dsv-actions\"></div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".dsv-card{width:auto;border:1px solid rgb(211,211,211);border-radius:4px;font-size:1rem;margin:5px;color:var(--text);background-color:var(--white)}.dsv-card img{width:100%;max-height:300px;border-top-left-radius:2px;border-top-right-radius:2px}::ng-deep .dark .dsv-card{color:var(--text-dark);background-color:var(--background-dark)}.dsv-card .dsv-card-header{display:flex;flex-direction:row;gap:10px;align-items:center;padding:10px}::ng-deep .dark .dsv-card .dsv-card-header .dsv-card-subtitle{color:#ffffffb3}.dsv-card .dsv-card-content{padding:10px}h2{margin:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvAvatarComponent, selector: "dsv-avatar", inputs: ["avatar", "color"], outputs: ["callback"] }] });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvCardComponent, isStandalone: true, selector: "dsv-card", inputs: { avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dsv-card\">\n @if (image()) {\n <img src=\"{{ image() }}\" [alt]=\"alt()\" />\n }\n <div class=\"dsv-card-header\">\n @if(avatar()){\n <dsv-avatar [avatar]=\"avatar()!\"></dsv-avatar>\n }\n <div>\n <h2>{{ title() }}</h2>\n <div class=\"dsv-card-subtitle\">{{ subtitle() }}</div>\n </div>\n <div class=\"dsv-actions\"></div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".dsv-card{width:auto;border:1px solid rgb(211,211,211);border-radius:4px;font-size:1rem;margin:5px;color:var(--text);background-color:var(--white)}.dsv-card img{width:100%;max-height:300px;border-top-left-radius:2px;border-top-right-radius:2px}::ng-deep .dark .dsv-card{color:var(--text-dark);background-color:var(--background-dark)}.dsv-card .dsv-card-header{display:flex;flex-direction:row;gap:10px;align-items:center;padding:10px}::ng-deep .dark .dsv-card .dsv-card-header .dsv-card-subtitle{color:#ffffffb3}.dsv-card .dsv-card-content{padding:10px}h2{margin:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvAvatarComponent, selector: "dsv-avatar", inputs: ["avatar", "color"], outputs: ["callback"] }] });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvCardComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvCardComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'dsv-card', standalone: true, imports: [CommonModule, DsvAvatarComponent], template: "<div class=\"dsv-card\">\n @if (image()) {\n <img src=\"{{ image() }}\" [alt]=\"alt()\" />\n }\n <div class=\"dsv-card-header\">\n @if(avatar()){\n <dsv-avatar [avatar]=\"avatar()!\"></dsv-avatar>\n }\n <div>\n <h2>{{ title() }}</h2>\n <div class=\"dsv-card-subtitle\">{{ subtitle() }}</div>\n </div>\n <div class=\"dsv-actions\"></div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".dsv-card{width:auto;border:1px solid rgb(211,211,211);border-radius:4px;font-size:1rem;margin:5px;color:var(--text);background-color:var(--white)}.dsv-card img{width:100%;max-height:300px;border-top-left-radius:2px;border-top-right-radius:2px}::ng-deep .dark .dsv-card{color:var(--text-dark);background-color:var(--background-dark)}.dsv-card .dsv-card-header{display:flex;flex-direction:row;gap:10px;align-items:center;padding:10px}::ng-deep .dark .dsv-card .dsv-card-header .dsv-card-subtitle{color:#ffffffb3}.dsv-card .dsv-card-content{padding:10px}h2{margin:0;padding:0}\n"] }]
18
18
  }] });
@@ -17,10 +17,10 @@ class DsvContainerComponent {
17
17
  .classList.add(COLUMN_CLASS);
18
18
  });
19
19
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: DsvContainerComponent, isStandalone: true, selector: "dsv-container", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;flex:1;overflow:auto}:host.column{flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.14", type: DsvContainerComponent, isStandalone: true, selector: "dsv-container", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;flex:1;overflow:auto}:host.column{flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvContainerComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvContainerComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'dsv-container', standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;flex:1;overflow:auto}:host.column{flex-direction:row}\n"] }]
26
26
  }], ctorParameters: () => [] });
@@ -17,10 +17,10 @@ class BaseFormComponent {
17
17
  console.log('Formulaire envoyé !', this.form.value);
18
18
  }
19
19
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: BaseFormComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: BaseFormComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseFormComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: BaseFormComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{
26
26
  template: '',
@@ -34,10 +34,10 @@ class FormComponent {
34
34
  console.log('Formulaire envoyé !', this.form().value);
35
35
  }
36
36
  }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: FormComponent, isStandalone: true, selector: "app-form", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n</form>\n", styles: [":host{width:100%;height:100%}:host form{flex-direction:column;display:block;margin-top:0;unicode-bidi:isolate}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.14", type: FormComponent, isStandalone: true, selector: "app-form", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n</form>\n", styles: [":host{width:100%;height:100%}:host form{flex-direction:column;display:block;margin-top:0;unicode-bidi:isolate}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FormComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'app-form', imports: [ReactiveFormsModule], standalone: true, template: "<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n</form>\n", styles: [":host{width:100%;height:100%}:host form{flex-direction:column;display:block;margin-top:0;unicode-bidi:isolate}\n"] }]
43
43
  }] });
@@ -50,10 +50,10 @@ class FormInputComponent {
50
50
  onEnter() {
51
51
  this.onSend.emit(this.form().value[this.field()]);
52
52
  }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: FormInputComponent, isStandalone: true, selector: "form-input", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSend: "onSend" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if(withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <input\n type=\"text\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n <i class=\"icon ri-search-line\"></i>\n</div>\n", styles: [":host>div{display:flex;flex-direction:column;position:relative}:host>div label{display:inline-block;margin-bottom:.5rem}:host>div .form-control{display:block;width:calc(100% - 1.5rem);height:calc(1rem + 2px);padding:.5rem;padding-left:25px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host>div i{position:absolute;z-index:1000;color:#000;top:10px;left:5px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: FormInputComponent, isStandalone: true, selector: "form-input", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSend: "onSend" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if(withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <input\n type=\"text\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n <i class=\"icon ri-search-line\"></i>\n</div>\n", styles: [":host>div{display:flex;flex-direction:column;position:relative}:host>div label{display:inline-block;margin-bottom:.5rem}:host>div .form-control{display:block;width:calc(100% - 1.5rem);height:calc(1rem + 2px);padding:.5rem;padding-left:25px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host>div i{position:absolute;z-index:1000;color:#000;top:10px;left:5px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FormInputComponent, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormInputComponent, decorators: [{
57
57
  type: Component,
58
58
  args: [{ selector: 'form-input', imports: [ReactiveFormsModule], standalone: true, template: "<div [formGroup]=\"form()\">\n @if(withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <input\n type=\"text\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n <i class=\"icon ri-search-line\"></i>\n</div>\n", styles: [":host>div{display:flex;flex-direction:column;position:relative}:host>div label{display:inline-block;margin-bottom:.5rem}:host>div .form-control{display:block;width:calc(100% - 1.5rem);height:calc(1rem + 2px);padding:.5rem;padding-left:25px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host>div i{position:absolute;z-index:1000;color:#000;top:10px;left:5px}\n"] }]
59
59
  }] });
@@ -69,10 +69,10 @@ class SearchbarComponent extends BaseFormComponent {
69
69
  onTap(value) {
70
70
  this.onSearch.emit(value);
71
71
  }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SearchbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: SearchbarComponent, isStandalone: true, selector: "form-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch" }, usesInheritance: true, ngImport: i0, template: "<app-form [form]=\"form\">\n <form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onTap($event)\"\n ></form-input>\n</app-form>\n", dependencies: [{ kind: "component", type: FormComponent, selector: "app-form", inputs: ["form"] }, { kind: "component", type: FormInputComponent, selector: "form-input", inputs: ["form", "field", "withLabel"], outputs: ["onSend"] }] });
72
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SearchbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.14", type: SearchbarComponent, isStandalone: true, selector: "form-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch" }, usesInheritance: true, ngImport: i0, template: "<app-form [form]=\"form\">\n <form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onTap($event)\"\n ></form-input>\n</app-form>\n", dependencies: [{ kind: "component", type: FormComponent, selector: "app-form", inputs: ["form"] }, { kind: "component", type: FormInputComponent, selector: "form-input", inputs: ["form", "field", "withLabel"], outputs: ["onSend"] }] });
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SearchbarComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SearchbarComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'form-searchbar', imports: [FormComponent, FormInputComponent], standalone: true, template: "<app-form [form]=\"form\">\n <form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onTap($event)\"\n ></form-input>\n</app-form>\n" }]
78
78
  }] });
@@ -16,10 +16,10 @@ class DsvHeaderComponent {
16
16
  goToHome() {
17
17
  this.router.navigate(['/']);
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvHeaderComponent, isStandalone: true, selector: "dsv-header", inputs: { img: { classPropertyName: "img", publicName: "img", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, withMenu: { classPropertyName: "withMenu", publicName: "withMenu", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dsv-header-content\">\n <a class=\"dsv-header-logo\" (click)=\"goToHome()\">\n @if (withMenu()) {\n <dsv-menu-button />\n } @if(img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <span>{{ title() }}</span>\n </a>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%;box-sizing:border-box;flex-shrink:0;top:0;left:auto;right:0;background-color:var(--white);color:var(--text);z-index:1201;transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}:host .dsv-header-content{position:relative;display:flex;-webkit-box-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;-webkit-user-select:none;user-select:none}:host .dsv-header-content .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;flex:1;gap:10px}:host .dsv-header-content .dsv-header-logo img{width:40px;height:40px;cursor:pointer}:host .dsv-header-content .dsv-header-logo span{font-weight:700;cursor:pointer}::ng-deep .dark dsv-header{background-color:var(--background-dark)}::ng-deep .dark dsv-header *{color:var(--text-dark)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvMenuButtonComponent, selector: "dsv-menu-button" }] });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvHeaderComponent, isStandalone: true, selector: "dsv-header", inputs: { img: { classPropertyName: "img", publicName: "img", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, withMenu: { classPropertyName: "withMenu", publicName: "withMenu", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dsv-header-content\">\n <a class=\"dsv-header-logo\" (click)=\"goToHome()\">\n @if (withMenu()) {\n <dsv-menu-button />\n } @if(img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <span>{{ title() }}</span>\n </a>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%;box-sizing:border-box;flex-shrink:0;top:0;left:auto;right:0;background-color:var(--white);color:var(--text);z-index:1201;transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}:host .dsv-header-content{position:relative;display:flex;-webkit-box-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;-webkit-user-select:none;user-select:none}:host .dsv-header-content .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;flex:1;gap:10px}:host .dsv-header-content .dsv-header-logo img{width:40px;height:40px;cursor:pointer}:host .dsv-header-content .dsv-header-logo span{font-weight:700;cursor:pointer}::ng-deep .dark dsv-header{background-color:var(--background-dark)}::ng-deep .dark dsv-header *{color:var(--text-dark)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvMenuButtonComponent, selector: "dsv-menu-button" }] });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvHeaderComponent, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvHeaderComponent, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'dsv-header', standalone: true, imports: [CommonModule, DsvMenuButtonComponent], template: "<div class=\"dsv-header-content\">\n <a class=\"dsv-header-logo\" (click)=\"goToHome()\">\n @if (withMenu()) {\n <dsv-menu-button />\n } @if(img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <span>{{ title() }}</span>\n </a>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%;box-sizing:border-box;flex-shrink:0;top:0;left:auto;right:0;background-color:var(--white);color:var(--text);z-index:1201;transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}:host .dsv-header-content{position:relative;display:flex;-webkit-box-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;-webkit-user-select:none;user-select:none}:host .dsv-header-content .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;flex:1;gap:10px}:host .dsv-header-content .dsv-header-logo img{width:40px;height:40px;cursor:pointer}:host .dsv-header-content .dsv-header-logo span{font-weight:700;cursor:pointer}::ng-deep .dark dsv-header{background-color:var(--background-dark)}::ng-deep .dark dsv-header *{color:var(--text-dark)}\n"] }]
25
25
  }] });
@@ -20,10 +20,10 @@ class DsvItemComponent {
20
20
  this.isCallback() && this.callback.emit();
21
21
  }
22
22
  }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvItemComponent, isStandalone: true, selector: "dsv-item", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<a class=\"text\" (click)=\"doClick()\" [class.small]=\"small()\">\n @if (icon()) {\n <i class=\"ri-{{ icon() }}-line\"></i>\n }\n {{ text() }}\n</a>\n<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}:host a{margin:5px 10px;padding:10px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host a:hover{background-color:#d9d9d9;cursor:pointer}:host i{margin-right:10px}:host .text{font-size:1.2rem;font-weight:700}:host .text.small{font-size:1rem}::ng-deep .dark dsv-item a:hover{background-color:#313131!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvItemComponent, isStandalone: true, selector: "dsv-item", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<a class=\"text\" (click)=\"doClick()\" [class.small]=\"small()\">\n @if (icon()) {\n <i class=\"ri-{{ icon() }}-line\"></i>\n }\n {{ text() }}\n</a>\n<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}:host a{margin:5px 10px;padding:10px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host a:hover{background-color:#d9d9d9;cursor:pointer}:host i{margin-right:10px}:host .text{font-size:1.2rem;font-weight:700}:host .text.small{font-size:1rem}::ng-deep .dark dsv-item a:hover{background-color:#313131!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvItemComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvItemComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'dsv-item', standalone: true, imports: [CommonModule], template: "<a class=\"text\" (click)=\"doClick()\" [class.small]=\"small()\">\n @if (icon()) {\n <i class=\"ri-{{ icon() }}-line\"></i>\n }\n {{ text() }}\n</a>\n<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}:host a{margin:5px 10px;padding:10px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host a:hover{background-color:#d9d9d9;cursor:pointer}:host i{margin-right:10px}:host .text{font-size:1.2rem;font-weight:700}:host .text.small{font-size:1rem}::ng-deep .dark dsv-item a:hover{background-color:#313131!important}\n"] }]
29
29
  }] });
@@ -12,10 +12,10 @@ class DsvMenuButtonComponent {
12
12
  doToogleMenu() {
13
13
  this.menuService.toogleMenu();
14
14
  }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: DsvMenuButtonComponent, isStandalone: true, selector: "dsv-menu-button", ngImport: i0, template: "<dsv-button class=\"dsv-menu-button\" icon=\"ri-menu-line\" color=\"inherit\" (callback)=\"doToogleMenu()\"></dsv-button>", styles: [":host{display:flex}@media only screen and (min-width: 1001px){:host{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DsvMenuButtonComponent, isStandalone: true, selector: "dsv-menu-button", ngImport: i0, template: "<dsv-button class=\"dsv-menu-button\" icon=\"ri-menu-line\" color=\"inherit\" (callback)=\"doToogleMenu()\"></dsv-button>", styles: [":host{display:flex}@media only screen and (min-width: 1001px){:host{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuButtonComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvMenuButtonComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'dsv-menu-button', standalone: true, imports: [CommonModule, DsvButtonComponent], template: "<dsv-button class=\"dsv-menu-button\" icon=\"ri-menu-line\" color=\"inherit\" (callback)=\"doToogleMenu()\"></dsv-button>", styles: [":host{display:flex}@media only screen and (min-width: 1001px){:host{display:none!important}}\n"] }]
21
21
  }] });
@@ -56,10 +56,10 @@ class DsvMenuComponent {
56
56
  this.menuService.toogleMenu();
57
57
  }
58
58
  }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuComponent, deps: [{ token: MenuService }, { token: i0.ElementRef }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Component });
60
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvMenuComponent, isStandalone: true, selector: "dsv-menu", inputs: { showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n@if (showFooter()) {\n<div class=\"footer\">\n <dsv-theme-switch></dsv-theme-switch>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:auto;background-color:var(--white);color:var(--text);width:240px;transform:translate(0)!important}:host.open{transform:translate(0)!important}:host .footer{display:flex;align-items:center;justify-content:center;padding:10px}::ng-deep .dark dsv-menu{background-color:var(--background-dark);color:var(--text-dark)}@media only screen and (max-width: 1000px){:host{position:fixed;height:-webkit-fill-available;z-index:1201;transform:translate(-100%)!important;transition:transform .3s ease-in-out}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvThemeSwitchComponent, selector: "dsv-theme-switch" }, { kind: "component", type: DsvContainerComponent, selector: "dsv-container", inputs: ["column"] }] });
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvMenuComponent, deps: [{ token: MenuService }, { token: i0.ElementRef }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvMenuComponent, isStandalone: true, selector: "dsv-menu", inputs: { showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n@if (showFooter()) {\n<div class=\"footer\">\n <dsv-theme-switch></dsv-theme-switch>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:auto;background-color:var(--white);color:var(--text);width:240px;transform:translate(0)!important}:host.open{transform:translate(0)!important}:host .footer{display:flex;align-items:center;justify-content:center;padding:10px}::ng-deep .dark dsv-menu{background-color:var(--background-dark);color:var(--text-dark)}@media only screen and (max-width: 1000px){:host{position:fixed;height:-webkit-fill-available;z-index:1201;transform:translate(-100%)!important;transition:transform .3s ease-in-out}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvThemeSwitchComponent, selector: "dsv-theme-switch" }, { kind: "component", type: DsvContainerComponent, selector: "dsv-container", inputs: ["column"] }] });
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuComponent, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvMenuComponent, decorators: [{
63
63
  type: Component,
64
64
  args: [{ selector: 'dsv-menu', standalone: true, imports: [CommonModule, DsvThemeSwitchComponent, DsvContainerComponent], template: "<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n@if (showFooter()) {\n<div class=\"footer\">\n <dsv-theme-switch></dsv-theme-switch>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:auto;background-color:var(--white);color:var(--text);width:240px;transform:translate(0)!important}:host.open{transform:translate(0)!important}:host .footer{display:flex;align-items:center;justify-content:center;padding:10px}::ng-deep .dark dsv-menu{background-color:var(--background-dark);color:var(--text-dark)}@media only screen and (max-width: 1000px){:host{position:fixed;height:-webkit-fill-available;z-index:1201;transform:translate(-100%)!important;transition:transform .3s ease-in-out}}\n"] }]
65
65
  }], ctorParameters: () => [{ type: MenuService }, { type: i0.ElementRef }, { type: i2.StorageService }], propDecorators: { onClickOutside: [{
@@ -72,10 +72,10 @@ class MenuService extends BaseService {
72
72
  toogleMenu() {
73
73
  this.isMenuOpen.update((toogle) => !toogle);
74
74
  }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
76
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuService, providedIn: 'root' });
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
76
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuService, providedIn: 'root' });
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuService, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MenuService, decorators: [{
79
79
  type: Injectable,
80
80
  args: [{
81
81
  providedIn: 'root',
@@ -28,10 +28,10 @@ class DsvThemeComponent {
28
28
  this.warning = this.theme().warning ?? '#dca603';
29
29
  this.error = this.theme().error ?? '#da1709';
30
30
  }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: DsvThemeComponent, isStandalone: true, selector: "dsv-theme", inputs: { theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--background": "this.background", "style.--background-dark": "this.backgroundDark", "style.--text": "this.text", "style.--text-dark": "this.textDark", "style.--primary": "this.primary", "style.--secondary": "this.secondary", "style.--success": "this.success", "style.--info": "this.info", "style.--warning": "this.warning", "style.--error": "this.error" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div id=\"collapse\"></div>", styles: [":host{--white: #fff;--black: #000;--background: var(--background);--background-dark: var(--background-dark);--text: var(--text);--text-dark: var(--text-dark);--primary: var(--primary);--secondary: var(--secondary);--success: var(--success);--info: var(--info);--warning: var(--warning);--error: var(--error);display:flex;flex:1;font-size:1rem!important;flex-direction:column;overflow:hidden;background-color:var(--background);color:var(--text)}:host #collapse{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200;background-color:#0009}:host #collapse.show{display:inline}::ng-deep .dark dsv-theme{background-color:var(--black);color:var(--text-dark)}\n"] });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvThemeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.14", type: DsvThemeComponent, isStandalone: true, selector: "dsv-theme", inputs: { theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--background": "this.background", "style.--background-dark": "this.backgroundDark", "style.--text": "this.text", "style.--text-dark": "this.textDark", "style.--primary": "this.primary", "style.--secondary": "this.secondary", "style.--success": "this.success", "style.--info": "this.info", "style.--warning": "this.warning", "style.--error": "this.error" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div id=\"collapse\"></div>", styles: [":host{--white: #fff;--black: #000;--background: var(--background);--background-dark: var(--background-dark);--text: var(--text);--text-dark: var(--text-dark);--primary: var(--primary);--secondary: var(--secondary);--success: var(--success);--info: var(--info);--warning: var(--warning);--error: var(--error);display:flex;flex:1;font-size:1rem!important;flex-direction:column;overflow:hidden;background-color:var(--background);color:var(--text)}:host #collapse{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200;background-color:#0009}:host #collapse.show{display:inline}::ng-deep .dark dsv-theme{background-color:var(--black);color:var(--text-dark)}\n"] });
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvThemeComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: 'dsv-theme', standalone: true, imports: [], template: "<ng-content></ng-content>\n<div id=\"collapse\"></div>", styles: [":host{--white: #fff;--black: #000;--background: var(--background);--background-dark: var(--background-dark);--text: var(--text);--text-dark: var(--text-dark);--primary: var(--primary);--secondary: var(--secondary);--success: var(--success);--info: var(--info);--warning: var(--warning);--error: var(--error);display:flex;flex:1;font-size:1rem!important;flex-direction:column;overflow:hidden;background-color:var(--background);color:var(--text)}:host #collapse{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1200;background-color:#0009}:host #collapse.show{display:inline}::ng-deep .dark dsv-theme{background-color:var(--black);color:var(--text-dark)}\n"] }]
37
37
  }], propDecorators: { background: [{
@@ -74,10 +74,10 @@ class DsvThemeSwitchComponent {
74
74
  isLightMode() {
75
75
  return this.themeService.themeMode() === 'light';
76
76
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
78
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: DsvThemeSwitchComponent, isStandalone: true, selector: "dsv-theme-switch", ngImport: i0, template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"medium\"\n (callback)=\"switchTheme()\"\n [icon]=\"isLightMode() ? 'ri-contrast-2-line' : 'ri-contrast-2-fill'\"\n>\n</dsv-button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvThemeSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
78
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DsvThemeSwitchComponent, isStandalone: true, selector: "dsv-theme-switch", ngImport: i0, template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"medium\"\n (callback)=\"switchTheme()\"\n [icon]=\"isLightMode() ? 'ri-contrast-2-line' : 'ri-contrast-2-fill'\"\n>\n</dsv-button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled"], outputs: ["callback"] }] });
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeSwitchComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvThemeSwitchComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'dsv-theme-switch', standalone: true, imports: [CommonModule, DsvButtonComponent], template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"medium\"\n (callback)=\"switchTheme()\"\n [icon]=\"isLightMode() ? 'ri-contrast-2-line' : 'ri-contrast-2-fill'\"\n>\n</dsv-button>\n" }]
83
83
  }] });
@@ -101,10 +101,10 @@ class ThemeService {
101
101
  html.classList.add(newMode);
102
102
  }
103
103
  }
104
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
105
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ThemeService, providedIn: 'root' });
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
105
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ThemeService, providedIn: 'root' });
106
106
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ThemeService, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ThemeService, decorators: [{
108
108
  type: Injectable,
109
109
  args: [{
110
110
  providedIn: 'root',
@@ -43,10 +43,10 @@ class ToastService {
43
43
  removeToastFromQueue(uuid) {
44
44
  this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));
45
45
  }
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ToastService, providedIn: 'root' });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ToastService, providedIn: 'root' });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: ToastService, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ToastService, decorators: [{
50
50
  type: Injectable,
51
51
  args: [{
52
52
  providedIn: 'root',
@@ -64,10 +64,10 @@ class DsvToastComponent {
64
64
  }
65
65
  });
66
66
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: DsvToastComponent, isStandalone: true, selector: "dsv-toast", ngImport: i0, template: "<div class=\"dsv-toast-container\">\n @for(toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button\n class=\"close-button\"\n type=\"button\"\n (click)=\"toastService.closeToast(toast.uuid!)\"\n >\n X\n </button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n", styles: [".dsv-toast-container{position:fixed;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1.2rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:300px;padding:10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;opacity:0;transform:translate(100%);animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:6px;right:10px;font-size:.75rem;border:0;background-color:inherit;cursor:pointer}.dsv-toast-container .dsv-toast .close-button:hover{background-color:#f9f9f9;border-radius:5px}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button{color:#fff}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button:hover{background-color:#212121!important}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid #b8b8b8}::ng-deep .light .dsv-toast-container .dsv-toast{background-color:#fff;color:#000}::ng-deep .dark .dsv-toast-container .dsv-toast{background-color:#000;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: DsvToastComponent, isStandalone: true, selector: "dsv-toast", ngImport: i0, template: "<div class=\"dsv-toast-container\">\n @for(toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button\n class=\"close-button\"\n type=\"button\"\n (click)=\"toastService.closeToast(toast.uuid!)\"\n >\n X\n </button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n", styles: [".dsv-toast-container{position:fixed;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1.2rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:300px;padding:10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;opacity:0;transform:translate(100%);animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:6px;right:10px;font-size:.75rem;border:0;background-color:inherit;cursor:pointer}.dsv-toast-container .dsv-toast .close-button:hover{background-color:#f9f9f9;border-radius:5px}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button{color:#fff}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button:hover{background-color:#212121!important}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid #b8b8b8}::ng-deep .light .dsv-toast-container .dsv-toast{background-color:#fff;color:#000}::ng-deep .dark .dsv-toast-container .dsv-toast{background-color:#000;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvToastComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DsvToastComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'dsv-toast', standalone: true, imports: [CommonModule], template: "<div class=\"dsv-toast-container\">\n @for(toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button\n class=\"close-button\"\n type=\"button\"\n (click)=\"toastService.closeToast(toast.uuid!)\"\n >\n X\n </button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n", styles: [".dsv-toast-container{position:fixed;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1.2rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:300px;padding:10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;opacity:0;transform:translate(100%);animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:6px;right:10px;font-size:.75rem;border:0;background-color:inherit;cursor:pointer}.dsv-toast-container .dsv-toast .close-button:hover{background-color:#f9f9f9;border-radius:5px}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button{color:#fff}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button:hover{background-color:#212121!important}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid #b8b8b8}::ng-deep .light .dsv-toast-container .dsv-toast{background-color:#fff;color:#000}::ng-deep .dark .dsv-toast-container .dsv-toast{background-color:#000;color:#fff}\n"] }]
73
73
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-toast.mjs","sources":["../../../projects/ng-dsv/ds/toast/service/toast.service.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.html","../../../projects/ng-dsv/ds/toast/ng-vagabond-lab-ng-dsv-ds-toast.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { IToastDto } from '../dto/toast.dto';\n\nexport const MAX_TOASTS = 10;\nexport const DURATION_DEFAULT = 5000;\nexport const DURATION_TIMEOUT = 10;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n toastShows = signal<IToastDto[]>([]);\n toasts = signal<IToastDto[]>([]);\n\n showToast(toast: IToastDto) {\n toast.uuid = crypto.randomUUID();\n toast.type = toast.type ?? 'success';\n toast.duration = toast.duration ?? DURATION_DEFAULT;\n toast.durationLeft = toast.duration;\n toast.filled = toast.filled ?? false;\n this.toasts.update((toasts) => [...toasts, toast]);\n }\n\n consumeToast(toast: IToastDto) {\n this.toastShows.update((toasts) => [...toasts, toast]);\n let duration = 0;\n const interval = setInterval(() => {\n duration += DURATION_TIMEOUT;\n if (duration > toast.duration!) {\n clearInterval(interval);\n this.closeToast(toast.uuid!);\n } else {\n this.toastShows.update((toasts) =>\n toasts.map((oneToast) => {\n if (oneToast.uuid === toast.uuid) {\n oneToast.durationLeft = toast.duration! - duration;\n }\n return oneToast;\n })\n );\n }\n }, DURATION_TIMEOUT);\n this.removeToastFromQueue(toast.uuid!);\n }\n\n closeToast(uuid: string) {\n this.toastShows.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n\n removeToastFromQueue(uuid: string) {\n this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject } from '@angular/core';\nimport { MAX_TOASTS, ToastService } from '../service/toast.service';\n\nexport type Theme = {\n primary: string;\n text: string;\n};\n\n@Component({\n selector: 'dsv-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class DsvToastComponent {\n protected readonly toastService = inject(ToastService);\n\n constructor() {\n effect(() => {\n for (const toast of this.toastService.toasts()) {\n if (this.toastService.toastShows().length < MAX_TOASTS) {\n this.toastService.consumeToast(toast);\n }\n }\n });\n }\n}\n","<div class=\"dsv-toast-container\">\n @for(toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button\n class=\"close-button\"\n type=\"button\"\n (click)=\"toastService.closeToast(toast.uuid!)\"\n >\n X\n </button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-toast.mjs","sources":["../../../projects/ng-dsv/ds/toast/service/toast.service.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.html","../../../projects/ng-dsv/ds/toast/ng-vagabond-lab-ng-dsv-ds-toast.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { ToastDto } from '../dto/toast.dto';\n\nexport const MAX_TOASTS = 10;\nexport const DURATION_DEFAULT = 5000;\nexport const DURATION_TIMEOUT = 10;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n toastShows = signal<ToastDto[]>([]);\n toasts = signal<ToastDto[]>([]);\n\n showToast(toast: ToastDto) {\n toast.uuid = crypto.randomUUID();\n toast.type = toast.type ?? 'success';\n toast.duration = toast.duration ?? DURATION_DEFAULT;\n toast.durationLeft = toast.duration;\n toast.filled = toast.filled ?? false;\n this.toasts.update((toasts) => [...toasts, toast]);\n }\n\n consumeToast(toast: ToastDto) {\n this.toastShows.update((toasts) => [...toasts, toast]);\n let duration = 0;\n const interval = setInterval(() => {\n duration += DURATION_TIMEOUT;\n if (duration > toast.duration!) {\n clearInterval(interval);\n this.closeToast(toast.uuid!);\n } else {\n this.toastShows.update((toasts) =>\n toasts.map((oneToast) => {\n if (oneToast.uuid === toast.uuid) {\n oneToast.durationLeft = toast.duration! - duration;\n }\n return oneToast;\n })\n );\n }\n }, DURATION_TIMEOUT);\n this.removeToastFromQueue(toast.uuid!);\n }\n\n closeToast(uuid: string) {\n this.toastShows.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n\n removeToastFromQueue(uuid: string) {\n this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject } from '@angular/core';\nimport { MAX_TOASTS, ToastService } from '../service/toast.service';\n\nexport type Theme = {\n primary: string;\n text: string;\n};\n\n@Component({\n selector: 'dsv-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class DsvToastComponent {\n protected readonly toastService = inject(ToastService);\n\n constructor() {\n effect(() => {\n for (const toast of this.toastService.toasts()) {\n if (this.toastService.toastShows().length < MAX_TOASTS) {\n this.toastService.consumeToast(toast);\n }\n }\n });\n }\n}\n","<div class=\"dsv-toast-container\">\n @for(toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button\n class=\"close-button\"\n type=\"button\"\n (click)=\"toastService.closeToast(toast.uuid!)\"\n >\n X\n </button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -16,10 +16,10 @@ class EnvironmentService {
16
16
  },
17
17
  });
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EnvironmentService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{ providedIn: 'root' }]
25
25
  }], ctorParameters: () => [] });
@@ -6,10 +6,10 @@ class TranslatePipe {
6
6
  // Here you would translate the key
7
7
  return `${value} (translated)`;
8
8
  }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "translate" });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "translate" });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TranslatePipe, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TranslatePipe, decorators: [{
13
13
  type: Pipe,
14
14
  args: [{
15
15
  name: 'translate',
@@ -37,10 +37,10 @@ class StorageService {
37
37
  localStorage.clear();
38
38
  }
39
39
  }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: StorageService, providedIn: 'root' });
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StorageService, providedIn: 'root' });
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: StorageService, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: StorageService, decorators: [{
44
44
  type: Injectable,
45
45
  args: [{
46
46
  providedIn: 'root',
@@ -2,19 +2,19 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Injectable } from '@angular/core';
3
3
 
4
4
  class UiSdkComponent {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: UiSdkComponent, isStandalone: true, selector: "lib-ui-sdk", ngImport: i0, template: ` <p>ui-sdk works!</p> `, isInline: true, styles: [""] });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UiSdkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UiSdkComponent, isStandalone: true, selector: "lib-ui-sdk", ngImport: i0, template: ` <p>ui-sdk works!</p> `, isInline: true, styles: [""] });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UiSdkComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'lib-ui-sdk', standalone: true, imports: [], template: ` <p>ui-sdk works!</p> ` }]
11
11
  }] });
12
12
 
13
13
  class UiSdkService {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, providedIn: 'root' });
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UiSdkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UiSdkService, providedIn: 'root' });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UiSdkService, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-vagabond-lab/ng-dsv",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.1.7",
6
6
  "@angular/core": "^19.1.7"