@ng-vagabond-lab/ng-dsv 0.0.37 → 0.0.40
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.
- package/auth/service/auth.google.service.d.ts +1 -3
- package/auth/service/auth.service.d.ts +1 -2
- package/base/component/base.route.component.d.ts +0 -1
- package/ds/container/component/container.component.d.ts +1 -1
- package/ds/form/form/base/base.form.component.d.ts +0 -1
- package/ds/form/form/component/form.component.d.ts +0 -1
- package/ds/header/component/header.component.d.ts +0 -3
- package/ds/item/component/item.component.d.ts +0 -2
- package/ds/menu/component/button/menu.button.component.d.ts +0 -2
- package/ds/menu/service/menu.service.d.ts +1 -2
- package/ds/theme/component/switch/dsv.theme.switch.component.d.ts +0 -2
- package/ds/theme/service/dsv.theme.service.d.ts +1 -2
- package/ds/toast/component/toast.component.d.ts +2 -2
- package/ds/toast/service/toast.service.d.ts +2 -3
- package/environment/service/environment.service.d.ts +3 -5
- package/fesm2022/ng-vagabond-lab-ng-dsv-auth.mjs +3 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-auth.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +1 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form.mjs +6 -10
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +7 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +5 -8
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +4 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +3 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +7 -8
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +6 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv.mjs +2 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv.mjs.map +1 -1
- package/package.json +1 -1
- package/src/ui-sdk.service.d.ts +0 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare class AuthGoogleService {
|
|
4
|
-
private readonly environmentService;
|
|
5
3
|
private readonly authService;
|
|
6
|
-
|
|
4
|
+
private readonly environmentService;
|
|
7
5
|
initGoogleAuth(): void;
|
|
8
6
|
handleCredentialResponse(response: {
|
|
9
7
|
credential: string;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { WritableSignal } from '@angular/core';
|
|
2
1
|
import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
|
|
3
2
|
import { IUserConnectedDto } from '../dto/user.dto';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class AuthService {
|
|
6
5
|
private readonly apiService;
|
|
7
|
-
userConnected: WritableSignal<IUserConnectedDto | null>;
|
|
6
|
+
userConnected: import("@angular/core").WritableSignal<IUserConnectedDto | null>;
|
|
8
7
|
constructor(apiService: ApiService);
|
|
9
8
|
googleLogin(credential: string): void;
|
|
10
9
|
loginFromCache(): any;
|
|
@@ -5,7 +5,6 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export declare abstract class BaseRouteComponent implements OnInit, OnDestroy {
|
|
6
6
|
activatedRoute: ActivatedRoute;
|
|
7
7
|
routeObservable: Subscription | null;
|
|
8
|
-
constructor();
|
|
9
8
|
ngOnInit(): void;
|
|
10
9
|
ngOnDestroy(): void;
|
|
11
10
|
protected abstract ngOnInitAfter(params: Params): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class DsvContainerComponent {
|
|
3
|
-
column: import("@angular/core").InputSignal<boolean>;
|
|
4
3
|
private readonly storageService;
|
|
4
|
+
column: import("@angular/core").InputSignal<boolean>;
|
|
5
5
|
constructor();
|
|
6
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvContainerComponent, never>;
|
|
7
7
|
static ɵcmp: i0.ɵɵComponentDeclaration<DsvContainerComponent, "dsv-container", never, { "column": { "alias": "column"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -3,7 +3,6 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare abstract class BaseFormComponent {
|
|
4
4
|
protected readonly formBuilder: FormBuilder;
|
|
5
5
|
protected form: FormGroup;
|
|
6
|
-
constructor(formBuilder: FormBuilder);
|
|
7
6
|
ngOnInit(): void;
|
|
8
7
|
ngOnCheck(): void;
|
|
9
8
|
abstract afterInit(): void;
|
|
@@ -2,7 +2,6 @@ import { FormGroup } from '@angular/forms';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class FormComponent {
|
|
4
4
|
form: import("@angular/core").InputSignal<FormGroup<any>>;
|
|
5
|
-
constructor();
|
|
6
5
|
onSubmit(): void;
|
|
7
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormComponent, never>;
|
|
8
7
|
static ɵcmp: i0.ɵɵComponentDeclaration<FormComponent, "app-form", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { Router } from '@angular/router';
|
|
2
|
-
import { MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';
|
|
3
1
|
import * as i0 from "@angular/core";
|
|
4
2
|
export declare class DsvHeaderComponent {
|
|
5
3
|
private readonly router;
|
|
@@ -7,7 +5,6 @@ export declare class DsvHeaderComponent {
|
|
|
7
5
|
img: import("@angular/core").InputSignal<string | undefined>;
|
|
8
6
|
title: import("@angular/core").InputSignal<string>;
|
|
9
7
|
withMenu: import("@angular/core").InputSignal<boolean>;
|
|
10
|
-
constructor(router: Router, menuService: MenuService);
|
|
11
8
|
doToogleMenu(): void;
|
|
12
9
|
goToHome(): void;
|
|
13
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvHeaderComponent, never>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { OutputEmitterRef } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class DsvItemComponent {
|
|
5
4
|
private readonly router;
|
|
@@ -8,7 +7,6 @@ export declare class DsvItemComponent {
|
|
|
8
7
|
url: import("@angular/core").InputSignal<string | undefined>;
|
|
9
8
|
small: import("@angular/core").InputSignal<boolean>;
|
|
10
9
|
callback: OutputEmitterRef<void>;
|
|
11
|
-
constructor(router: Router);
|
|
12
10
|
isCallback(): boolean;
|
|
13
11
|
doClick(): void;
|
|
14
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvItemComponent, never>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { MenuService } from '../../public-api';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare class DsvMenuButtonComponent {
|
|
4
3
|
private readonly menuService;
|
|
5
|
-
constructor(menuService: MenuService);
|
|
6
4
|
doToogleMenu(): void;
|
|
7
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvMenuButtonComponent, never>;
|
|
8
6
|
static ɵcmp: i0.ɵɵComponentDeclaration<DsvMenuButtonComponent, "dsv-menu-button", never, {}, {}, never, never, true, never>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { WritableSignal } from '@angular/core';
|
|
2
1
|
import { BaseService } from '@ng-vagabond-lab/ng-dsv/base';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class MenuService extends BaseService {
|
|
5
|
-
isMenuOpen: WritableSignal<boolean>;
|
|
4
|
+
isMenuOpen: import("@angular/core").WritableSignal<boolean>;
|
|
6
5
|
toogleMenu(): void;
|
|
7
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
|
|
8
7
|
static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ThemeService } from '../../public-api';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export type Theme = {
|
|
4
3
|
primary: string;
|
|
@@ -6,7 +5,6 @@ export type Theme = {
|
|
|
6
5
|
};
|
|
7
6
|
export declare class DsvThemeSwitchComponent {
|
|
8
7
|
private readonly themeService;
|
|
9
|
-
constructor(themeService: ThemeService);
|
|
10
8
|
switchTheme(): void;
|
|
11
9
|
isLightMode(): boolean;
|
|
12
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvThemeSwitchComponent, never>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { WritableSignal } from '@angular/core';
|
|
2
1
|
import { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export type ThemeMode = 'dark' | 'light';
|
|
5
4
|
export declare class ThemeService {
|
|
6
5
|
storageService: StorageService;
|
|
7
|
-
themeMode: WritableSignal<ThemeMode>;
|
|
6
|
+
themeMode: import("@angular/core").WritableSignal<ThemeMode>;
|
|
8
7
|
constructor();
|
|
9
8
|
switchTheme(): void;
|
|
10
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
|
|
@@ -5,8 +5,8 @@ export type Theme = {
|
|
|
5
5
|
text: string;
|
|
6
6
|
};
|
|
7
7
|
export declare class DsvToastComponent {
|
|
8
|
-
protected toastService: ToastService;
|
|
9
|
-
constructor(
|
|
8
|
+
protected readonly toastService: ToastService;
|
|
9
|
+
constructor();
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<DsvToastComponent, never>;
|
|
11
11
|
static ɵcmp: i0.ɵɵComponentDeclaration<DsvToastComponent, "dsv-toast", never, {}, {}, never, never, true, never>;
|
|
12
12
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { WritableSignal } from '@angular/core';
|
|
2
1
|
import { IToastDto } from '../dto/toast.dto';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare const MAX_TOASTS = 10;
|
|
5
4
|
export declare const DURATION_DEFAULT = 5000;
|
|
6
5
|
export declare const DURATION_TIMEOUT = 10;
|
|
7
6
|
export declare class ToastService {
|
|
8
|
-
toastShows: WritableSignal<IToastDto[]>;
|
|
9
|
-
toasts: WritableSignal<IToastDto[]>;
|
|
7
|
+
toastShows: import("@angular/core").WritableSignal<IToastDto[]>;
|
|
8
|
+
toasts: import("@angular/core").WritableSignal<IToastDto[]>;
|
|
10
9
|
showToast(toast: IToastDto): void;
|
|
11
10
|
consumeToast(toast: IToastDto): void;
|
|
12
11
|
closeToast(uuid: string): void;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { WritableSignal } from '@angular/core';
|
|
3
1
|
import { EnvironmentDto } from '../public-api';
|
|
4
2
|
import * as i0 from "@angular/core";
|
|
5
3
|
export declare class EnvironmentService {
|
|
6
4
|
private readonly httpClient;
|
|
7
|
-
isScrollDown: WritableSignal<boolean>;
|
|
8
|
-
env: WritableSignal<EnvironmentDto | undefined>;
|
|
9
|
-
constructor(
|
|
5
|
+
isScrollDown: import("@angular/core").WritableSignal<boolean>;
|
|
6
|
+
env: import("@angular/core").WritableSignal<EnvironmentDto | undefined>;
|
|
7
|
+
constructor();
|
|
10
8
|
loadEnv(): void;
|
|
11
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<EnvironmentService, never>;
|
|
12
10
|
static ɵprov: i0.ɵɵInjectableDeclaration<EnvironmentService>;
|
|
@@ -2,7 +2,6 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, signal, afterNextRender, effect, Component, Injectable } from '@angular/core';
|
|
4
4
|
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
5
|
-
import * as i1$1 from '@ng-vagabond-lab/ng-dsv/environment';
|
|
6
5
|
import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
|
|
7
6
|
import * as i1 from '@ng-vagabond-lab/ng-dsv/api';
|
|
8
7
|
|
|
@@ -79,11 +78,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
79
78
|
}], ctorParameters: () => [{ type: i1.ApiService }] });
|
|
80
79
|
|
|
81
80
|
class AuthGoogleService {
|
|
82
|
-
environmentService;
|
|
83
81
|
authService = inject(AuthService);
|
|
84
|
-
|
|
85
|
-
this.environmentService = environmentService;
|
|
86
|
-
}
|
|
82
|
+
environmentService = inject(EnvironmentService);
|
|
87
83
|
initGoogleAuth() {
|
|
88
84
|
google.accounts.id.initialize({
|
|
89
85
|
client_id: this.environmentService.env()?.GOOGLE_CLIENT_ID,
|
|
@@ -112,7 +108,7 @@ class AuthGoogleService {
|
|
|
112
108
|
loginWithGoogle() {
|
|
113
109
|
google?.accounts.id.prompt();
|
|
114
110
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, deps: [
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
116
112
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, providedIn: 'root' });
|
|
117
113
|
}
|
|
118
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AuthGoogleService, decorators: [{
|
|
@@ -120,7 +116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
120
116
|
args: [{
|
|
121
117
|
providedIn: 'root',
|
|
122
118
|
}]
|
|
123
|
-
}]
|
|
119
|
+
}] });
|
|
124
120
|
|
|
125
121
|
/**
|
|
126
122
|
* Generated bundle index. Do not edit.
|
|
@@ -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
|
|
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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"}
|
|
@@ -7,7 +7,6 @@ import { filter, map } from 'rxjs';
|
|
|
7
7
|
class BaseRouteComponent {
|
|
8
8
|
activatedRoute = inject(ActivatedRoute);
|
|
9
9
|
routeObservable = null;
|
|
10
|
-
constructor() { }
|
|
11
10
|
ngOnInit() {
|
|
12
11
|
this.routeObservable = this.activatedRoute.params.subscribe((params) => {
|
|
13
12
|
this.ngOnInitAfter(params);
|
|
@@ -24,7 +23,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
24
23
|
args: [{
|
|
25
24
|
template: '',
|
|
26
25
|
}]
|
|
27
|
-
}]
|
|
26
|
+
}] });
|
|
28
27
|
|
|
29
28
|
class ScrollService {
|
|
30
29
|
scrolls = signal(new Map());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.route.component.ts","../../../projects/ng-dsv/base/service/scroll.service.ts","../../../projects/ng-dsv/base/component/base.scroll.component.ts","../../../projects/ng-dsv/base/service/base.service.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Component({\n template: '',\n})\nexport abstract class BaseRouteComponent implements OnInit, OnDestroy {\n activatedRoute: ActivatedRoute = inject(ActivatedRoute);\n\n routeObservable: Subscription | null = null;\n\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.route.component.ts","../../../projects/ng-dsv/base/service/scroll.service.ts","../../../projects/ng-dsv/base/component/base.scroll.component.ts","../../../projects/ng-dsv/base/service/base.service.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Component({\n template: '',\n})\nexport abstract class BaseRouteComponent implements OnInit, OnDestroy {\n activatedRoute: ActivatedRoute = inject(ActivatedRoute);\n\n routeObservable: Subscription | null = null;\n\n ngOnInit() {\n this.routeObservable = this.activatedRoute.params.subscribe((params) => {\n this.ngOnInitAfter(params);\n });\n }\n\n ngOnDestroy() {\n this.routeObservable?.unsubscribe();\n }\n\n protected abstract ngOnInitAfter(params: Params): void;\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService {\n scrolls = signal<Map<string, number>>(new Map());\n\n saveScroll(scrollTop: number) {\n this.scrolls.update((value) => {\n value.set(location.href, scrollTop);\n return value;\n });\n }\n\n getScroll() {\n return this.scrolls().get(location.href);\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { Router, Scroll } from '@angular/router';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { filter, map } from 'rxjs';\nimport { ScrollService } from '../service/scroll.service';\n\n@Component({\n template: '',\n})\nexport abstract class BaseScrollComponent {\n environmentService = inject(EnvironmentService);\n scrollService = inject(ScrollService);\n\n constructor() {\n inject(Router)\n .events.pipe(\n filter((event): event is Scroll => event instanceof Scroll),\n map((event: Scroll) => event.position)\n )\n .subscribe(() => {\n const divScroll = document.getElementById('scroll');\n divScroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);\n setTimeout(() => {\n divScroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);\n }, 500);\n });\n }\n\n onScroll(scrollName: string = 'scroll') {\n const divScroll = document.getElementById(scrollName);\n const distanceToBottom =\n divScroll?.scrollHeight! -\n (divScroll?.scrollTop! + divScroll?.clientHeight!);\n this.environmentService.isScrollDown.set(distanceToBottom < 50);\n this.scrollService.saveScroll(divScroll?.scrollTop!);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class BaseService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { inject, input, effect, Component } from '@angular/core';
|
|
4
4
|
import { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';
|
|
5
5
|
|
|
6
6
|
const COLUMN_CLASS = 'column';
|
|
7
7
|
const DSV_CONTAINER = 'dsv-container';
|
|
8
8
|
class DsvContainerComponent {
|
|
9
|
-
column = input(false);
|
|
10
9
|
storageService = inject(StorageService);
|
|
10
|
+
column = input(false);
|
|
11
11
|
constructor() {
|
|
12
12
|
effect(() => {
|
|
13
13
|
this.storageService.isPlatformBrowser() &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-container.mjs","sources":["../../../projects/ng-dsv/ds/container/component/container.component.ts","../../../projects/ng-dsv/ds/container/component/container.component.html","../../../projects/ng-dsv/ds/container/ng-vagabond-lab-ng-dsv-ds-container.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input } from '@angular/core';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\n\nconst COLUMN_CLASS = 'column';\nconst DSV_CONTAINER = 'dsv-container';\n\n@Component({\n selector: 'dsv-container',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './container.component.html',\n styleUrls: ['./container.component.scss'],\n})\nexport class DsvContainerComponent {\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-container.mjs","sources":["../../../projects/ng-dsv/ds/container/component/container.component.ts","../../../projects/ng-dsv/ds/container/component/container.component.html","../../../projects/ng-dsv/ds/container/ng-vagabond-lab-ng-dsv-ds-container.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input } from '@angular/core';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\n\nconst COLUMN_CLASS = 'column';\nconst DSV_CONTAINER = 'dsv-container';\n\n@Component({\n selector: 'dsv-container',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './container.component.html',\n styleUrls: ['./container.component.scss'],\n})\nexport class DsvContainerComponent {\n private readonly storageService = inject(StorageService);\n\n column = input<boolean>(false);\n\n constructor() {\n effect(() => {\n this.storageService.isPlatformBrowser() &&\n this.column() &&\n document\n .getElementsByTagName(DSV_CONTAINER)[0]\n .classList.add(COLUMN_CLASS);\n });\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAIA,MAAM,YAAY,GAAG,QAAQ;AAC7B,MAAM,aAAa,GAAG,eAAe;MASxB,qBAAqB,CAAA;AACf,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAExD,IAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC;AAE9B,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;gBACrC,IAAI,CAAC,MAAM,EAAE;gBACb;AACG,qBAAA,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;AACrC,qBAAA,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,SAAC,CAAC;;wGAZO,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdlC,6BACA,EAAA,MAAA,EAAA,CAAA,kGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSY,YAAY,EAAA,CAAA,EAAA,CAAA;;4FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACb,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,kGAAA,CAAA,EAAA;;;AEVzB;;AAEG;;;;"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, input, output } from '@angular/core';
|
|
2
|
+
import { inject, Component, input, output } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
|
|
6
6
|
class BaseFormComponent {
|
|
7
|
-
formBuilder;
|
|
7
|
+
formBuilder = inject(FormBuilder);
|
|
8
8
|
form;
|
|
9
|
-
constructor(formBuilder) {
|
|
10
|
-
this.formBuilder = formBuilder;
|
|
11
|
-
}
|
|
12
9
|
ngOnInit() {
|
|
13
10
|
this.afterInit();
|
|
14
11
|
}
|
|
@@ -20,7 +17,7 @@ class BaseFormComponent {
|
|
|
20
17
|
console.log('Formulaire envoyé !', this.form.value);
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseFormComponent, deps: [
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
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 });
|
|
25
22
|
}
|
|
26
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BaseFormComponent, decorators: [{
|
|
@@ -28,11 +25,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
28
25
|
args: [{
|
|
29
26
|
template: '',
|
|
30
27
|
}]
|
|
31
|
-
}]
|
|
28
|
+
}] });
|
|
32
29
|
|
|
33
30
|
class FormComponent {
|
|
34
31
|
form = input.required();
|
|
35
|
-
constructor() { }
|
|
36
32
|
onSubmit() {
|
|
37
33
|
if (this.form().valid) {
|
|
38
34
|
console.log('Formulaire envoyé !', this.form().value);
|
|
@@ -44,7 +40,7 @@ class FormComponent {
|
|
|
44
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FormComponent, decorators: [{
|
|
45
41
|
type: Component,
|
|
46
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"] }]
|
|
47
|
-
}]
|
|
43
|
+
}] });
|
|
48
44
|
|
|
49
45
|
class FormInputComponent {
|
|
50
46
|
form = input.required();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form.mjs","sources":["../../../projects/ng-dsv/ds/form/form/base/base.form.component.ts","../../../projects/ng-dsv/ds/form/form/component/form.component.ts","../../../projects/ng-dsv/ds/form/form/component/form.component.html","../../../projects/ng-dsv/ds/form/input/component/form.input.component.ts","../../../projects/ng-dsv/ds/form/input/component/form.input.component.html","../../../projects/ng-dsv/ds/form/searchbar/component/searchbar.component.ts","../../../projects/ng-dsv/ds/form/searchbar/component/searchbar.component.html","../../../projects/ng-dsv/ds/form/ng-vagabond-lab-ng-dsv-ds-form.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n template: '',\n})\nexport abstract class BaseFormComponent {\n protected
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form.mjs","sources":["../../../projects/ng-dsv/ds/form/form/base/base.form.component.ts","../../../projects/ng-dsv/ds/form/form/component/form.component.ts","../../../projects/ng-dsv/ds/form/form/component/form.component.html","../../../projects/ng-dsv/ds/form/input/component/form.input.component.ts","../../../projects/ng-dsv/ds/form/input/component/form.input.component.html","../../../projects/ng-dsv/ds/form/searchbar/component/searchbar.component.ts","../../../projects/ng-dsv/ds/form/searchbar/component/searchbar.component.html","../../../projects/ng-dsv/ds/form/ng-vagabond-lab-ng-dsv-ds-form.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n template: '',\n})\nexport abstract class BaseFormComponent {\n protected readonly formBuilder = inject(FormBuilder);\n protected form!: FormGroup;\n\n ngOnInit() {\n this.afterInit();\n }\n\n ngOnCheck() {\n this.afterInit();\n }\n\n abstract afterInit(): void;\n\n onSubmit() {\n if (this.form.valid) {\n console.log('Formulaire envoyé !', this.form.value);\n }\n }\n}\n","import { Component, input } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-form',\n imports: [ReactiveFormsModule],\n standalone: true,\n templateUrl: './form.component.html',\n styleUrl: './form.component.scss',\n})\nexport class FormComponent {\n form = input.required<FormGroup>();\n\n onSubmit() {\n if (this.form().valid) {\n console.log('Formulaire envoyé !', this.form().value);\n }\n }\n}\n","<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n</form>\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'form-input',\n imports: [ReactiveFormsModule],\n standalone: true,\n templateUrl: './form.input.component.html',\n styleUrl: './form.input.component.scss',\n})\nexport class FormInputComponent {\n form = input.required<FormGroup>();\n field = input.required<string>();\n withLabel = input<boolean>(true);\n\n onSend = output<string>();\n\n onEnter() {\n this.onSend.emit(this.form().value[this.field()]);\n }\n}\n","<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","import { Component, input, output } from '@angular/core';\nimport {\n BaseFormComponent,\n FormComponent,\n FormInputComponent,\n} from '../../public-api';\n\n@Component({\n selector: 'form-searchbar',\n imports: [FormComponent, FormInputComponent],\n standalone: true,\n templateUrl: './searchbar.component.html',\n})\nexport class SearchbarComponent extends BaseFormComponent {\n search = input<string>('');\n onSearch = output<string>();\n\n afterInit() {\n this.form = this.formBuilder.group({\n search: [this.search()],\n });\n }\n\n onTap(value: string) {\n this.onSearch.emit(value);\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, Component } from '@angular/core';
|
|
4
|
-
import
|
|
5
|
-
import { DsvMenuButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/menu';
|
|
6
|
-
import * as i1 from '@angular/router';
|
|
3
|
+
import { inject, input, Component } from '@angular/core';
|
|
4
|
+
import { Router } from '@angular/router';
|
|
5
|
+
import { MenuService, DsvMenuButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/menu';
|
|
7
6
|
|
|
8
7
|
class DsvHeaderComponent {
|
|
9
|
-
router;
|
|
10
|
-
menuService;
|
|
8
|
+
router = inject(Router);
|
|
9
|
+
menuService = inject(MenuService);
|
|
11
10
|
img = input();
|
|
12
11
|
title = input('');
|
|
13
12
|
withMenu = input(true);
|
|
14
|
-
constructor(router, menuService) {
|
|
15
|
-
this.router = router;
|
|
16
|
-
this.menuService = menuService;
|
|
17
|
-
}
|
|
18
13
|
doToogleMenu() {
|
|
19
14
|
this.menuService.toogleMenu();
|
|
20
15
|
}
|
|
21
16
|
goToHome() {
|
|
22
17
|
this.router.navigate(['/']);
|
|
23
18
|
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvHeaderComponent, deps: [
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
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" }] });
|
|
26
21
|
}
|
|
27
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvHeaderComponent, decorators: [{
|
|
28
23
|
type: Component,
|
|
29
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"] }]
|
|
30
|
-
}]
|
|
25
|
+
}] });
|
|
31
26
|
|
|
32
27
|
/**
|
|
33
28
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-header.mjs","sources":["../../../projects/ng-dsv/ds/header/component/header.component.ts","../../../projects/ng-dsv/ds/header/component/header.component.html","../../../projects/ng-dsv/ds/header/ng-vagabond-lab-ng-dsv-ds-header.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n DsvMenuButtonComponent,\n MenuService,\n} from '@ng-vagabond-lab/ng-dsv/ds/menu';\n\n@Component({\n selector: 'dsv-header',\n standalone: true,\n imports: [CommonModule, DsvMenuButtonComponent],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class DsvHeaderComponent {\n img = input<string>();\n title = input<string>('');\n withMenu = input<boolean>(true);\n\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-header.mjs","sources":["../../../projects/ng-dsv/ds/header/component/header.component.ts","../../../projects/ng-dsv/ds/header/component/header.component.html","../../../projects/ng-dsv/ds/header/ng-vagabond-lab-ng-dsv-ds-header.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n DsvMenuButtonComponent,\n MenuService,\n} from '@ng-vagabond-lab/ng-dsv/ds/menu';\n\n@Component({\n selector: 'dsv-header',\n standalone: true,\n imports: [CommonModule, DsvMenuButtonComponent],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class DsvHeaderComponent {\n private readonly router = inject(Router);\n private readonly menuService = inject(MenuService);\n\n img = input<string>();\n title = input<string>('');\n withMenu = input<boolean>(true);\n\n doToogleMenu() {\n this.menuService.toogleMenu();\n }\n\n goToHome() {\n this.router.navigate(['/']);\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAea,kBAAkB,CAAA;AACZ,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAElD,GAAG,GAAG,KAAK,EAAU;AACrB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,QAAQ,GAAG,KAAK,CAAU,IAAI,CAAC;IAE/B,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;;IAG/B,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;;wGAblB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,ECf/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qSAWA,EDAY,MAAA,EAAA,CAAA,y0BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA;;4FAInC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,y0BAAA,CAAA,EAAA;;;AEXjD;;AAEG;;;;"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, output, Component } from '@angular/core';
|
|
4
|
-
import
|
|
3
|
+
import { inject, input, output, Component } from '@angular/core';
|
|
4
|
+
import { Router } from '@angular/router';
|
|
5
5
|
|
|
6
6
|
class DsvItemComponent {
|
|
7
|
-
router;
|
|
7
|
+
router = inject(Router);
|
|
8
8
|
icon = input('');
|
|
9
9
|
text = input('');
|
|
10
10
|
url = input();
|
|
11
11
|
small = input(false);
|
|
12
12
|
callback = output();
|
|
13
|
-
constructor(router) {
|
|
14
|
-
this.router = router;
|
|
15
|
-
}
|
|
16
13
|
isCallback() {
|
|
17
14
|
const listeners = this.callback['listeners'];
|
|
18
15
|
return listeners?.length > 0;
|
|
@@ -23,13 +20,13 @@ class DsvItemComponent {
|
|
|
23
20
|
this.isCallback() && this.callback.emit();
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvItemComponent, deps: [
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
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 }] });
|
|
28
25
|
}
|
|
29
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvItemComponent, decorators: [{
|
|
30
27
|
type: Component,
|
|
31
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"] }]
|
|
32
|
-
}]
|
|
29
|
+
}] });
|
|
33
30
|
|
|
34
31
|
/**
|
|
35
32
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-item.mjs","sources":["../../../projects/ng-dsv/ds/item/component/item.component.ts","../../../projects/ng-dsv/ds/item/component/item.component.html","../../../projects/ng-dsv/ds/item/ng-vagabond-lab-ng-dsv-ds-item.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-item.mjs","sources":["../../../projects/ng-dsv/ds/item/component/item.component.ts","../../../projects/ng-dsv/ds/item/component/item.component.html","../../../projects/ng-dsv/ds/item/ng-vagabond-lab-ng-dsv-ds-item.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n inject,\n input,\n output,\n OutputEmitterRef,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'dsv-item',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n})\nexport class DsvItemComponent {\n private readonly router = inject(Router);\n\n icon = input<string>('');\n text = input<string>('');\n url = input<string>();\n small = input<boolean>(false);\n\n callback = output<void>();\n\n isCallback() {\n const listeners =\n this.callback['listeners' as keyof OutputEmitterRef<void>];\n return listeners?.length > 0;\n }\n\n doClick() {\n if (this.url()) {\n this.router.navigate([this.url()]);\n this.isCallback() && this.callback.emit();\n }\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAiBa,gBAAgB,CAAA;AACV,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAExC,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,CAAC;AACxB,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,CAAC;IACxB,GAAG,GAAG,KAAK,EAAU;AACrB,IAAA,KAAK,GAAG,KAAK,CAAU,KAAK,CAAC;IAE7B,QAAQ,GAAG,MAAM,EAAQ;IAEzB,UAAU,GAAA;QACR,MAAM,SAAS,GACb,IAAI,CAAC,QAAQ,CAAC,WAA2C,CAAC;AAC5D,QAAA,OAAO,SAAS,EAAE,MAAM,GAAG,CAAC;;IAG9B,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;;wGAnBlC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB7B,wLAOA,EAAA,MAAA,EAAA,CAAA,saAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,CAAA,EAAA,CAAA;;4FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACR,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wLAAA,EAAA,MAAA,EAAA,CAAA,saAAA,CAAA,EAAA;;;AEbzB;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Component, input, effect, HostListener, signal, Injectable } from '@angular/core';
|
|
3
|
+
import { inject, Component, input, effect, HostListener, signal, Injectable } from '@angular/core';
|
|
4
4
|
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
5
5
|
import { BaseService } from '@ng-vagabond-lab/ng-dsv/base';
|
|
6
6
|
import { DsvContainerComponent } from '@ng-vagabond-lab/ng-dsv/ds/container';
|
|
@@ -8,20 +8,17 @@ import { DsvThemeSwitchComponent } from '@ng-vagabond-lab/ng-dsv/ds/theme';
|
|
|
8
8
|
import * as i2 from '@ng-vagabond-lab/ng-dsv/storage';
|
|
9
9
|
|
|
10
10
|
class DsvMenuButtonComponent {
|
|
11
|
-
menuService;
|
|
12
|
-
constructor(menuService) {
|
|
13
|
-
this.menuService = menuService;
|
|
14
|
-
}
|
|
11
|
+
menuService = inject(MenuService);
|
|
15
12
|
doToogleMenu() {
|
|
16
13
|
this.menuService.toogleMenu();
|
|
17
14
|
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuButtonComponent, deps: [
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
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"] }] });
|
|
20
17
|
}
|
|
21
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvMenuButtonComponent, decorators: [{
|
|
22
19
|
type: Component,
|
|
23
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"] }]
|
|
24
|
-
}]
|
|
21
|
+
}] });
|
|
25
22
|
|
|
26
23
|
class DsvMenuComponent {
|
|
27
24
|
menuService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-menu.mjs","sources":["../../../projects/ng-dsv/ds/menu/component/button/menu.button.component.ts","../../../projects/ng-dsv/ds/menu/component/button/menu.button.component.html","../../../projects/ng-dsv/ds/menu/component/menu.component.ts","../../../projects/ng-dsv/ds/menu/component/menu.component.html","../../../projects/ng-dsv/ds/menu/service/menu.service.ts","../../../projects/ng-dsv/ds/menu/ng-vagabond-lab-ng-dsv-ds-menu.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '../../public-api';\n\n@Component({\n selector: 'dsv-menu-button',\n standalone: true,\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: './menu.button.component.html',\n styleUrls: ['./menu.button.component.scss'],\n})\nexport class DsvMenuButtonComponent {\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-menu.mjs","sources":["../../../projects/ng-dsv/ds/menu/component/button/menu.button.component.ts","../../../projects/ng-dsv/ds/menu/component/button/menu.button.component.html","../../../projects/ng-dsv/ds/menu/component/menu.component.ts","../../../projects/ng-dsv/ds/menu/component/menu.component.html","../../../projects/ng-dsv/ds/menu/service/menu.service.ts","../../../projects/ng-dsv/ds/menu/ng-vagabond-lab-ng-dsv-ds-menu.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '../../public-api';\n\n@Component({\n selector: 'dsv-menu-button',\n standalone: true,\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: './menu.button.component.html',\n styleUrls: ['./menu.button.component.scss'],\n})\nexport class DsvMenuButtonComponent {\n private readonly menuService = inject(MenuService);\n\n doToogleMenu() {\n this.menuService.toogleMenu();\n }\n}\n","<dsv-button class=\"dsv-menu-button\" icon=\"ri-menu-line\" color=\"inherit\" (callback)=\"doToogleMenu()\"></dsv-button>","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n HostListener,\n input,\n OnInit,\n} from '@angular/core';\nimport { DsvContainerComponent } from '@ng-vagabond-lab/ng-dsv/ds/container';\nimport { DsvThemeSwitchComponent } from '@ng-vagabond-lab/ng-dsv/ds/theme';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { MenuService } from '../public-api';\n\n@Component({\n selector: 'dsv-menu',\n standalone: true,\n imports: [CommonModule, DsvThemeSwitchComponent, DsvContainerComponent],\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class DsvMenuComponent implements OnInit {\n showFooter = input<boolean>(true);\n\n constructor(\n private readonly menuService: MenuService,\n private readonly elementRef: ElementRef,\n private readonly storageService: StorageService\n ) {\n effect(() => {\n if (this.storageService.isPlatformBrowser()) {\n const menu = document.getElementsByTagName('dsv-menu')[0];\n const collapse = document.getElementById('collapse');\n if (this.menuService.isMenuOpen()) {\n menu?.classList?.add('open');\n collapse?.classList.add('show');\n } else {\n menu?.classList?.remove('open');\n collapse?.classList.remove('show');\n }\n }\n });\n }\n\n ngOnInit() {\n this.storageService.isPlatformBrowser() &&\n this.menuService.isMenuOpen() &&\n document.getElementsByTagName('dsv-container')[0].classList.add('show');\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: Event) {\n if (\n this.storageService.isPlatformBrowser() &&\n this.menuService.isMenuOpen() &&\n !this.elementRef.nativeElement.contains(event.target)\n ) {\n this.menuService.toogleMenu();\n }\n }\n}\n","<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","import { Injectable, signal } from '@angular/core';\nimport { BaseService } from '@ng-vagabond-lab/ng-dsv/base';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService extends BaseService {\n isMenuOpen = signal<boolean>(false);\n\n toogleMenu() {\n this.isMenuOpen.update((toogle) => !toogle);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MenuService"],"mappings":"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"}
|
|
@@ -67,23 +67,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
67
67
|
}] } });
|
|
68
68
|
|
|
69
69
|
class DsvThemeSwitchComponent {
|
|
70
|
-
themeService;
|
|
71
|
-
constructor(themeService) {
|
|
72
|
-
this.themeService = themeService;
|
|
73
|
-
}
|
|
70
|
+
themeService = inject(ThemeService);
|
|
74
71
|
switchTheme() {
|
|
75
72
|
this.themeService.switchTheme();
|
|
76
73
|
}
|
|
77
74
|
isLightMode() {
|
|
78
75
|
return this.themeService.themeMode() === 'light';
|
|
79
76
|
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeSwitchComponent, deps: [
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
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"] }] });
|
|
82
79
|
}
|
|
83
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvThemeSwitchComponent, decorators: [{
|
|
84
81
|
type: Component,
|
|
85
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" }]
|
|
86
|
-
}]
|
|
83
|
+
}] });
|
|
87
84
|
|
|
88
85
|
class ThemeService {
|
|
89
86
|
storageService = inject(StorageService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-theme.mjs","sources":["../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.ts","../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.html","../../../projects/ng-dsv/ds/theme/component/switch/dsv.theme.switch.component.ts","../../../projects/ng-dsv/ds/theme/component/switch/dsv.theme.switch.component.html","../../../projects/ng-dsv/ds/theme/service/dsv.theme.service.ts","../../../projects/ng-dsv/ds/theme/ng-vagabond-lab-ng-dsv-ds-theme.ts"],"sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\n\nexport type ThemeType = {\n background?: string;\n backgroundDark?: string;\n text?: string;\n textDark?: string;\n primary?: string;\n secondary?: string;\n success?: string;\n info?: string;\n warning?: string;\n error?: string;\n};\n\n@Component({\n selector: 'dsv-theme',\n standalone: true,\n imports: [],\n templateUrl: './dsv.theme.component.html',\n styleUrls: ['./dsv.theme.component.scss'],\n})\nexport class DsvThemeComponent {\n theme = input<ThemeType>({});\n\n @HostBinding('style.--background')\n background!: string;\n\n @HostBinding('style.--background-dark')\n backgroundDark!: string;\n\n @HostBinding('style.--text')\n text!: string;\n\n @HostBinding('style.--text-dark')\n textDark!: string;\n\n @HostBinding('style.--primary')\n primary!: string;\n\n @HostBinding('style.--secondary')\n secondary!: string;\n\n @HostBinding('style.--success')\n success!: string;\n\n @HostBinding('style.--info')\n info!: string;\n\n @HostBinding('style.--warning')\n warning!: string;\n\n @HostBinding('style.--error')\n error!: string;\n\n ngOnInit() {\n this.background = this.theme().background ?? '#dcdcdc';\n this.backgroundDark = this.theme().backgroundDark ?? '#1f1f1f';\n this.text = this.theme().text ?? '#000';\n this.textDark = this.theme().textDark ?? '#fff';\n this.primary = this.theme().primary ?? '#AAA';\n this.secondary = this.theme().secondary ?? '#AAA';\n this.success = this.theme().success ?? '#439746';\n this.info = this.theme().info ?? '#1b78c4';\n this.warning = this.theme().warning ?? '#dca603';\n this.error = this.theme().error ?? '#da1709';\n }\n}\n","<ng-content></ng-content>\n<div id=\"collapse\"></div>","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ThemeService } from '../../public-api';\n\nexport type Theme = {\n primary: string;\n text: string;\n};\n\n@Component({\n selector: 'dsv-theme-switch',\n standalone: true,\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: `./dsv.theme.switch.component.html`,\n})\nexport class DsvThemeSwitchComponent {\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-theme.mjs","sources":["../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.ts","../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.html","../../../projects/ng-dsv/ds/theme/component/switch/dsv.theme.switch.component.ts","../../../projects/ng-dsv/ds/theme/component/switch/dsv.theme.switch.component.html","../../../projects/ng-dsv/ds/theme/service/dsv.theme.service.ts","../../../projects/ng-dsv/ds/theme/ng-vagabond-lab-ng-dsv-ds-theme.ts"],"sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\n\nexport type ThemeType = {\n background?: string;\n backgroundDark?: string;\n text?: string;\n textDark?: string;\n primary?: string;\n secondary?: string;\n success?: string;\n info?: string;\n warning?: string;\n error?: string;\n};\n\n@Component({\n selector: 'dsv-theme',\n standalone: true,\n imports: [],\n templateUrl: './dsv.theme.component.html',\n styleUrls: ['./dsv.theme.component.scss'],\n})\nexport class DsvThemeComponent {\n theme = input<ThemeType>({});\n\n @HostBinding('style.--background')\n background!: string;\n\n @HostBinding('style.--background-dark')\n backgroundDark!: string;\n\n @HostBinding('style.--text')\n text!: string;\n\n @HostBinding('style.--text-dark')\n textDark!: string;\n\n @HostBinding('style.--primary')\n primary!: string;\n\n @HostBinding('style.--secondary')\n secondary!: string;\n\n @HostBinding('style.--success')\n success!: string;\n\n @HostBinding('style.--info')\n info!: string;\n\n @HostBinding('style.--warning')\n warning!: string;\n\n @HostBinding('style.--error')\n error!: string;\n\n ngOnInit() {\n this.background = this.theme().background ?? '#dcdcdc';\n this.backgroundDark = this.theme().backgroundDark ?? '#1f1f1f';\n this.text = this.theme().text ?? '#000';\n this.textDark = this.theme().textDark ?? '#fff';\n this.primary = this.theme().primary ?? '#AAA';\n this.secondary = this.theme().secondary ?? '#AAA';\n this.success = this.theme().success ?? '#439746';\n this.info = this.theme().info ?? '#1b78c4';\n this.warning = this.theme().warning ?? '#dca603';\n this.error = this.theme().error ?? '#da1709';\n }\n}\n","<ng-content></ng-content>\n<div id=\"collapse\"></div>","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ThemeService } from '../../public-api';\n\nexport type Theme = {\n primary: string;\n text: string;\n};\n\n@Component({\n selector: 'dsv-theme-switch',\n standalone: true,\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: `./dsv.theme.switch.component.html`,\n})\nexport class DsvThemeSwitchComponent {\n private readonly themeService = inject(ThemeService);\n\n switchTheme() {\n this.themeService.switchTheme();\n }\n\n isLightMode() {\n return this.themeService.themeMode() === 'light';\n }\n}\n","<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","import { inject, Injectable, signal } from '@angular/core';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\n\nexport type ThemeMode = 'dark' | 'light';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n storageService: StorageService = inject(StorageService);\n\n themeMode = signal<ThemeMode>(\n (this.storageService.getItem('theme') as ThemeMode) ?? 'light'\n );\n\n constructor() {\n if (this.storageService.isPlatformBrowser()) {\n let html = document.getElementsByTagName('body')[0];\n html.classList.add(this.themeMode());\n }\n }\n\n switchTheme() {\n if (this.storageService.isPlatformBrowser()) {\n let html = document.getElementsByTagName('body')[0];\n html.classList.remove(this.themeMode());\n\n let newMode: ThemeMode = this.themeMode() === 'dark' ? 'light' : 'dark';\n this.themeMode.set(newMode);\n this.storageService.setItem('theme', newMode);\n html.classList.add(newMode);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { signal, Injectable, effect, Component } from '@angular/core';
|
|
4
|
+
import { signal, Injectable, inject, effect, Component } from '@angular/core';
|
|
5
5
|
|
|
6
6
|
const MAX_TOASTS = 10;
|
|
7
7
|
const DURATION_DEFAULT = 5000;
|
|
@@ -54,9 +54,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
54
54
|
}] });
|
|
55
55
|
|
|
56
56
|
class DsvToastComponent {
|
|
57
|
-
toastService;
|
|
58
|
-
constructor(
|
|
59
|
-
this.toastService = toastService;
|
|
57
|
+
toastService = inject(ToastService);
|
|
58
|
+
constructor() {
|
|
60
59
|
effect(() => {
|
|
61
60
|
for (const toast of this.toastService.toasts()) {
|
|
62
61
|
if (this.toastService.toastShows().length < MAX_TOASTS) {
|
|
@@ -65,13 +64,13 @@ class DsvToastComponent {
|
|
|
65
64
|
}
|
|
66
65
|
});
|
|
67
66
|
}
|
|
68
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvToastComponent, deps: [
|
|
69
|
-
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:
|
|
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"] }] });
|
|
70
69
|
}
|
|
71
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: DsvToastComponent, decorators: [{
|
|
72
71
|
type: Component,
|
|
73
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"] }]
|
|
74
|
-
}], ctorParameters: () => [
|
|
73
|
+
}], ctorParameters: () => [] });
|
|
75
74
|
|
|
76
75
|
/**
|
|
77
76
|
* Generated bundle index. Do not edit.
|
|
@@ -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
|
|
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,13 +1,12 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/common/http';
|
|
3
|
+
import { inject, signal, Injectable } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
class EnvironmentService {
|
|
6
|
-
httpClient;
|
|
6
|
+
httpClient = inject(HttpClient);
|
|
7
7
|
isScrollDown = signal(false);
|
|
8
8
|
env = signal(undefined);
|
|
9
|
-
constructor(
|
|
10
|
-
this.httpClient = httpClient;
|
|
9
|
+
constructor() {
|
|
11
10
|
this.loadEnv();
|
|
12
11
|
}
|
|
13
12
|
loadEnv() {
|
|
@@ -17,13 +16,13 @@ class EnvironmentService {
|
|
|
17
16
|
},
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, deps: [
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
20
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
|
|
22
21
|
}
|
|
23
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
24
23
|
type: Injectable,
|
|
25
24
|
args: [{ providedIn: 'root' }]
|
|
26
|
-
}], ctorParameters: () => [
|
|
25
|
+
}], ctorParameters: () => [] });
|
|
27
26
|
|
|
28
27
|
/**
|
|
29
28
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-environment.mjs","sources":["../../../projects/ng-dsv/environment/service/environment.service.ts","../../../projects/ng-dsv/environment/ng-vagabond-lab-ng-dsv-environment.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, signal
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-environment.mjs","sources":["../../../projects/ng-dsv/environment/service/environment.service.ts","../../../projects/ng-dsv/environment/ng-vagabond-lab-ng-dsv-environment.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { EnvironmentDto } from '../public-api';\n\n@Injectable({ providedIn: 'root' })\nexport class EnvironmentService {\n private readonly httpClient = inject(HttpClient);\n\n public isScrollDown = signal<boolean>(false);\n public env = signal<EnvironmentDto | undefined>(undefined);\n\n constructor() {\n this.loadEnv();\n }\n\n loadEnv() {\n this.httpClient.get<EnvironmentDto>('./env.json').subscribe({\n next: (res) => {\n this.env.set(res);\n },\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAKa,kBAAkB,CAAA;AACZ,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEzC,IAAA,YAAY,GAAG,MAAM,CAAU,KAAK,CAAC;AACrC,IAAA,GAAG,GAAG,MAAM,CAA6B,SAAS,CAAC;AAE1D,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,EAAE;;IAGhB,OAAO,GAAA;QACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,YAAY,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAG,KAAI;AACZ,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;aAClB;AACF,SAAA,CAAC;;wGAfO,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA;;4FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;;AAEG;;;;"}
|
|
@@ -11,16 +11,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
11
11
|
}] });
|
|
12
12
|
|
|
13
13
|
class UiSdkService {
|
|
14
|
-
constructor() { }
|
|
15
14
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
15
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, providedIn: 'root' });
|
|
17
16
|
}
|
|
18
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: UiSdkService, decorators: [{
|
|
19
18
|
type: Injectable,
|
|
20
19
|
args: [{
|
|
21
|
-
providedIn: 'root'
|
|
20
|
+
providedIn: 'root',
|
|
22
21
|
}]
|
|
23
|
-
}]
|
|
22
|
+
}] });
|
|
24
23
|
|
|
25
24
|
/*
|
|
26
25
|
* Public API Surface of ui-sdk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv.mjs","sources":["../../../projects/ng-dsv/src/ui-sdk.component.ts","../../../projects/ng-dsv/src/ui-sdk.service.ts","../../../projects/ng-dsv/public-api.ts","../../../projects/ng-dsv/ng-vagabond-lab-ng-dsv.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ui-sdk',\n standalone: true,\n imports: [],\n template: ` <p>ui-sdk works!</p> `,\n styles: ``,\n})\nexport class UiSdkComponent {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv.mjs","sources":["../../../projects/ng-dsv/src/ui-sdk.component.ts","../../../projects/ng-dsv/src/ui-sdk.service.ts","../../../projects/ng-dsv/public-api.ts","../../../projects/ng-dsv/ng-vagabond-lab-ng-dsv.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ui-sdk',\n standalone: true,\n imports: [],\n template: ` <p>ui-sdk works!</p> `,\n styles: ``,\n})\nexport class UiSdkComponent {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UiSdkService {}\n","/*\n * Public API Surface of ui-sdk\n */\nexport * from './src/ui-sdk.component';\nexport * from './src/ui-sdk.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,sEAHf,CAAwB,sBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAGvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,YACD,CAAwB,sBAAA,CAAA,EAAA;;;MCDvB,YAAY,CAAA;wGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACJD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
CHANGED