@ng-vagabond-lab/ng-dsv 0.0.73 → 0.0.75
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/api/index.d.ts +3 -0
- package/ds/button/index.d.ts +3 -1
- package/ds/form/index.d.ts +34 -5
- package/ds/paginate/index.d.ts +13 -0
- package/ds/tab/index.d.ts +24 -0
- package/ds/table/index.d.ts +26 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +8 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +10 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form.mjs +60 -15
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +28 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +36 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +81 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
- package/package.json +17 -5
package/api/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpInterceptorFn, HttpClient } from '@angular/common/http';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
3
4
|
|
|
4
5
|
type ID = string | number | undefined | null;
|
|
5
6
|
type Primitif = string | number | boolean | undefined | null;
|
|
@@ -69,6 +70,8 @@ declare class ApiService {
|
|
|
69
70
|
setBaseUrl(url: string): void;
|
|
70
71
|
get<T>(url: string, callback: (data: T) => void): void;
|
|
71
72
|
post<T>(url: string, data: T, callback: (data: T) => void): void;
|
|
73
|
+
put<T>(url: string, data: T, callback: (data: T) => void): void;
|
|
74
|
+
doSubscribe<T>(url: string, observable: Observable<T>, callback: (data: T) => void): void;
|
|
72
75
|
info(url: string, data: JSONObject): void;
|
|
73
76
|
error(url: string, error: JSONObject): void;
|
|
74
77
|
static ɵfac: i0.ɵɵFactoryDeclaration<ApiService, never>;
|
package/ds/button/index.d.ts
CHANGED
|
@@ -14,10 +14,12 @@ declare class DsvButtonComponent {
|
|
|
14
14
|
show: _angular_core.InputSignal<boolean>;
|
|
15
15
|
disabled: _angular_core.InputSignal<boolean>;
|
|
16
16
|
noHover: _angular_core.InputSignal<boolean>;
|
|
17
|
+
type: _angular_core.InputSignal<string>;
|
|
18
|
+
prevent: _angular_core.InputSignal<boolean>;
|
|
17
19
|
callback: _angular_core.OutputEmitterRef<void>;
|
|
18
20
|
doClick(event: Event): void;
|
|
19
21
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsvButtonComponent, never>;
|
|
20
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsvButtonComponent, "dsv-button", never, { "libelle": { "alias": "libelle"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconEnd": { "alias": "iconEnd"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "fullwidth": { "alias": "fullwidth"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "noHover": { "alias": "noHover"; "required": false; "isSignal": true; }; }, { "callback": "callback"; }, never, ["*"], true, never>;
|
|
22
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsvButtonComponent, "dsv-button", never, { "libelle": { "alias": "libelle"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconEnd": { "alias": "iconEnd"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "fullwidth": { "alias": "fullwidth"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "noHover": { "alias": "noHover"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "prevent": { "alias": "prevent"; "required": false; "isSignal": true; }; }, { "callback": "callback"; }, never, ["*"], true, never>;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
declare class ButtonScrollTopComponent {
|
package/ds/form/index.d.ts
CHANGED
|
@@ -1,19 +1,35 @@
|
|
|
1
|
-
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
2
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { FormGroup, FormBuilder } from '@angular/forms';
|
|
3
|
+
import { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';
|
|
4
|
+
|
|
5
|
+
declare class FormCheckboxComponent {
|
|
6
|
+
form: _angular_core.InputSignal<FormGroup<any>>;
|
|
7
|
+
field: _angular_core.InputSignal<string>;
|
|
8
|
+
withLabel: _angular_core.InputSignal<boolean>;
|
|
9
|
+
list: _angular_core.InputSignal<(ApiDto & {
|
|
10
|
+
name: string;
|
|
11
|
+
})[]>;
|
|
12
|
+
change: _angular_core.OutputEmitterRef<string>;
|
|
13
|
+
doChange(): void;
|
|
14
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormCheckboxComponent, never>;
|
|
15
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormCheckboxComponent, "dsv-form-checkbox", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "withLabel": { "alias": "withLabel"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
3
17
|
|
|
4
18
|
declare abstract class BaseFormComponent {
|
|
5
19
|
protected readonly formBuilder: FormBuilder;
|
|
6
20
|
protected form: FormGroup;
|
|
7
|
-
onSubmit(): void;
|
|
8
21
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFormComponent, never>;
|
|
9
22
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseFormComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
10
23
|
}
|
|
11
24
|
|
|
12
25
|
declare class FormComponent {
|
|
13
26
|
form: _angular_core.InputSignal<FormGroup<any>>;
|
|
27
|
+
urlBack: _angular_core.InputSignal<string | undefined>;
|
|
28
|
+
textValid: _angular_core.InputSignal<string>;
|
|
29
|
+
callback: _angular_core.OutputEmitterRef<ApiDto>;
|
|
14
30
|
onSubmit(): void;
|
|
15
31
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormComponent, never>;
|
|
16
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormComponent, "app-form", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
32
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormComponent, "app-form", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "urlBack": { "alias": "urlBack"; "required": false; "isSignal": true; }; "textValid": { "alias": "textValid"; "required": false; "isSignal": true; }; }, { "callback": "callback"; }, never, ["*"], true, never>;
|
|
17
33
|
}
|
|
18
34
|
|
|
19
35
|
declare class FormInputComponent {
|
|
@@ -25,7 +41,7 @@ declare class FormInputComponent {
|
|
|
25
41
|
onSend: _angular_core.OutputEmitterRef<string>;
|
|
26
42
|
onEnter(): void;
|
|
27
43
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormInputComponent, never>;
|
|
28
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "withLabel": { "alias": "withLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "onSend": "onSend"; }, never, never, true, never>;
|
|
44
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormInputComponent, "dsv-form-input", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "withLabel": { "alias": "withLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "onSend": "onSend"; }, never, never, true, never>;
|
|
29
45
|
}
|
|
30
46
|
|
|
31
47
|
declare class SearchbarComponent extends BaseFormComponent {
|
|
@@ -37,4 +53,17 @@ declare class SearchbarComponent extends BaseFormComponent {
|
|
|
37
53
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchbarComponent, "form-searchbar", never, { "search": { "alias": "search"; "required": false; "isSignal": true; }; }, { "onSearch": "onSearch"; }, never, never, true, never>;
|
|
38
54
|
}
|
|
39
55
|
|
|
40
|
-
|
|
56
|
+
declare class SelectComponent {
|
|
57
|
+
form: _angular_core.InputSignal<FormGroup<any>>;
|
|
58
|
+
field: _angular_core.InputSignal<string>;
|
|
59
|
+
withLabel: _angular_core.InputSignal<boolean>;
|
|
60
|
+
list: _angular_core.InputSignal<(ApiDto & {
|
|
61
|
+
name: string;
|
|
62
|
+
})[]>;
|
|
63
|
+
change: _angular_core.OutputEmitterRef<string>;
|
|
64
|
+
doChange(): void;
|
|
65
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
66
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "dsv-form-select", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "withLabel": { "alias": "withLabel"; "required": false; "isSignal": true; }; "list": { "alias": "list"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { BaseFormComponent, FormCheckboxComponent, FormComponent, FormInputComponent, SearchbarComponent, SelectComponent };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
declare class PaginateComponent {
|
|
4
|
+
page: _angular_core.InputSignal<number>;
|
|
5
|
+
max: _angular_core.InputSignal<number>;
|
|
6
|
+
nb: _angular_core.InputSignal<number>;
|
|
7
|
+
callback: _angular_core.OutputEmitterRef<number>;
|
|
8
|
+
gotoPage(page: number): void;
|
|
9
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginateComponent, never>;
|
|
10
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginateComponent, "app-paginate-component", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; "max": { "alias": "max"; "required": true; "isSignal": true; }; "nb": { "alias": "nb"; "required": true; "isSignal": true; }; }, { "callback": "callback"; }, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { PaginateComponent };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface TabDto {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare class TabComponent {
|
|
10
|
+
tab: _angular_core.InputSignal<TabDto>;
|
|
11
|
+
isSelected: _angular_core.InputSignal<boolean>;
|
|
12
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
|
|
13
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "app-tab-component", never, { "tab": { "alias": "tab"; "required": true; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare class TabsComponent {
|
|
17
|
+
tabs: _angular_core.InputSignal<TabDto[]>;
|
|
18
|
+
active: _angular_core.InputSignal<string>;
|
|
19
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
20
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "dsv-tabs-component", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { TabComponent, TabsComponent };
|
|
24
|
+
export type { TabDto };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { JSONObject } from '@ng-vagabond-lab/ng-dsv/api';
|
|
3
|
+
|
|
4
|
+
interface TableDto {
|
|
5
|
+
name: string;
|
|
6
|
+
label: string;
|
|
7
|
+
date?: boolean;
|
|
8
|
+
order?: boolean;
|
|
9
|
+
width?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare class TableComponent {
|
|
13
|
+
url: _angular_core.InputSignal<string>;
|
|
14
|
+
cells: _angular_core.InputSignal<TableDto[]>;
|
|
15
|
+
datas: _angular_core.InputSignal<JSONObject[]>;
|
|
16
|
+
max: _angular_core.InputSignal<number>;
|
|
17
|
+
showDatas: _angular_core.WritableSignal<string[][]>;
|
|
18
|
+
constructor();
|
|
19
|
+
getValue(obj: JSONObject, key: string, isDate: boolean): any;
|
|
20
|
+
formatDate(dateString: string): string;
|
|
21
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
|
|
22
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent, "dsv-table", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "cells": { "alias": "cells"; "required": true; "isSignal": true; }; "datas": { "alias": "datas"; "required": true; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { TableComponent };
|
|
26
|
+
export type { TableDto };
|
|
@@ -82,7 +82,14 @@ class ApiService {
|
|
|
82
82
|
}
|
|
83
83
|
post(url, data, callback) {
|
|
84
84
|
this.apiLoadService.load.set(true);
|
|
85
|
-
this.httpClient.post(this.baseUrl + url, data)
|
|
85
|
+
this.doSubscribe(url, this.httpClient.post(this.baseUrl + url, data), callback);
|
|
86
|
+
}
|
|
87
|
+
put(url, data, callback) {
|
|
88
|
+
this.apiLoadService.load.set(true);
|
|
89
|
+
this.doSubscribe(url, this.httpClient.put(this.baseUrl + url, data), callback);
|
|
90
|
+
}
|
|
91
|
+
doSubscribe(url, observable, callback) {
|
|
92
|
+
observable.subscribe({
|
|
86
93
|
next: (res) => {
|
|
87
94
|
this.apiLoadService.load.set(false);
|
|
88
95
|
this.info(url, res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/interceptor/api.interceptor.ts","../../../projects/ng-dsv/api/service/api.load.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import {\n HttpClient,\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { ApiService } from '../public-api';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const httpClient = inject(HttpClient);\n const apiService = inject(ApiService);\n const storageService = inject(StorageService);\n const toastService = inject(ToastService);\n\n return next(getToken(req, apiService, storageService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(apiService.baseUrl) &&\n error.status === 401\n ) {\n return handle401Error(\n httpClient,\n apiService,\n storageService,\n req,\n next\n );\n }\n\n console.log(error);\n\n toastService.showToast({\n type: 'error',\n text: error.error.debugMessage ?? error.error.message ?? error.message,\n })\n\n return throwError(() => error);\n })\n );\n};\n\nconst getToken = <T>(\n req: HttpRequest<T>,\n apiService: ApiService,\n storageService: StorageService\n) => {\n const jwt =\n storageService.getItem('user-connected')?.['jwt' as keyof {}] ?? '';\n if (!req.url.includes('/auth/') && req.url.includes(apiService.baseUrl)) {\n const headers = req.headers.set('Authorization', `Bearer ${jwt}`);\n\n return req.clone({\n headers,\n });\n }\n return req;\n};\n\nconst handle401Error = <T>(\n httpClient: HttpClient,\n apiService: ApiService,\n storageService: StorageService,\n request: HttpRequest<T>,\n next: HttpHandlerFn\n) => {\n const jwtRefresh =\n storageService.getItem('user-connected')?.['jwtRefresh' as keyof {}] ?? '';\n return httpClient\n .post(apiService.baseUrl + '/auth/refresh-token', {\n refreshToken: jwtRefresh,\n })\n .pipe(\n switchMap((response) => {\n storageService.setItem('user-connected', JSON.stringify(response));\n return next(getToken(request, apiService, storageService));\n })\n );\n};\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiLoadService {\n load = signal<boolean>(false);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { JSONObject } from '../dto/api.dto';\nimport { ApiLoadService } from './api.load.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n baseUrl: string = '';\n httpClient = inject(HttpClient);\n apiLoadService = inject(ApiLoadService);\n\n setBaseUrl(url: string) {\n this.baseUrl = url;\n }\n\n get<T>(url: string, callback: (data: T) => void) {\n this.apiLoadService.load.set(true);\n this.httpClient.get<T>(this.baseUrl + url).subscribe({\n next: (res) => {\n this.apiLoadService.load.set(false);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.apiLoadService.load.set(false);\n this.error(url, error);\n },\n });\n }\n\n post<T>(url: string, data: T, callback: (data: T) => void) {\n this.apiLoadService.load.set(true);\n this.httpClient.post<T>(this.baseUrl + url, data).subscribe({\n next: (res) => {\n this.apiLoadService.load.set(false);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.apiLoadService.load.set(false);\n this.error(url, error);\n },\n });\n }\n\n info(url: string, data: JSONObject) {\n console.log(url, data);\n }\n\n error(url: string, error: JSONObject) {\n console.error(url, error);\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-api.mjs","sources":["../../../projects/ng-dsv/api/interceptor/api.interceptor.ts","../../../projects/ng-dsv/api/service/api.load.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import {\n HttpClient,\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { ApiService } from '../public-api';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const httpClient = inject(HttpClient);\n const apiService = inject(ApiService);\n const storageService = inject(StorageService);\n const toastService = inject(ToastService);\n\n return next(getToken(req, apiService, storageService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(apiService.baseUrl) &&\n error.status === 401\n ) {\n return handle401Error(\n httpClient,\n apiService,\n storageService,\n req,\n next\n );\n }\n\n console.log(error);\n\n toastService.showToast({\n type: 'error',\n text: error.error.debugMessage ?? error.error.message ?? error.message,\n })\n\n return throwError(() => error);\n })\n );\n};\n\nconst getToken = <T>(\n req: HttpRequest<T>,\n apiService: ApiService,\n storageService: StorageService\n) => {\n const jwt =\n storageService.getItem('user-connected')?.['jwt' as keyof {}] ?? '';\n if (!req.url.includes('/auth/') && req.url.includes(apiService.baseUrl)) {\n const headers = req.headers.set('Authorization', `Bearer ${jwt}`);\n\n return req.clone({\n headers,\n });\n }\n return req;\n};\n\nconst handle401Error = <T>(\n httpClient: HttpClient,\n apiService: ApiService,\n storageService: StorageService,\n request: HttpRequest<T>,\n next: HttpHandlerFn\n) => {\n const jwtRefresh =\n storageService.getItem('user-connected')?.['jwtRefresh' as keyof {}] ?? '';\n return httpClient\n .post(apiService.baseUrl + '/auth/refresh-token', {\n refreshToken: jwtRefresh,\n })\n .pipe(\n switchMap((response) => {\n storageService.setItem('user-connected', JSON.stringify(response));\n return next(getToken(request, apiService, storageService));\n })\n );\n};\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiLoadService {\n load = signal<boolean>(false);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { JSONObject } from '../dto/api.dto';\nimport { ApiLoadService } from './api.load.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n baseUrl: string = '';\n httpClient = inject(HttpClient);\n apiLoadService = inject(ApiLoadService);\n\n setBaseUrl(url: string) {\n this.baseUrl = url;\n }\n\n get<T>(url: string, callback: (data: T) => void) {\n this.apiLoadService.load.set(true);\n this.httpClient.get<T>(this.baseUrl + url).subscribe({\n next: (res) => {\n this.apiLoadService.load.set(false);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.apiLoadService.load.set(false);\n this.error(url, error);\n },\n });\n }\n\n post<T>(url: string, data: T, callback: (data: T) => void) {\n this.apiLoadService.load.set(true);\n this.doSubscribe(url, this.httpClient.post<T>(this.baseUrl + url, data), callback);\n }\n\n put<T>(url: string, data: T, callback: (data: T) => void) {\n this.apiLoadService.load.set(true);\n this.doSubscribe(url, this.httpClient.put<T>(this.baseUrl + url, data), callback);\n }\n\n doSubscribe<T>(url: string, observable: Observable<T>, callback: (data: T) => void) {\n observable.subscribe({\n next: (res) => {\n this.apiLoadService.load.set(false);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.apiLoadService.load.set(false);\n this.error(url, error);\n },\n });\n }\n\n info(url: string, data: JSONObject) {\n console.log(url, data);\n }\n\n error(url: string, error: JSONObject) {\n console.error(url, error);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,18 +14,22 @@ class DsvButtonComponent {
|
|
|
14
14
|
show = input(true);
|
|
15
15
|
disabled = input(false);
|
|
16
16
|
noHover = input(false);
|
|
17
|
+
type = input('');
|
|
18
|
+
prevent = input(true);
|
|
17
19
|
callback = output();
|
|
18
20
|
doClick(event) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
if (this.prevent() && this.type() !== 'submit') {
|
|
22
|
+
event.stopPropagation();
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
}
|
|
21
25
|
!this.disabled() && this.callback.emit();
|
|
22
26
|
}
|
|
23
27
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", 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 }, noHover: { classPropertyName: "noHover", publicName: "noHover", 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 [class.no-hover]=\"noHover()\"\n [disabled]=\"disabled()\"\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.default,button.dsv-button.outlined.default{color:var(--text)}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.default,button.dsv-button.outlined.outlined.default{border:1px solid var(--text)}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)}button.dsv-button.contained.default{background-color:var(--text)}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):not(.no-hover):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):not(.no-hover):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}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white);filter:hue-rotate(5deg)}::ng-deep .dark button.dsv-button.text.default,::ng-deep .dark button.dsv-button.outlined.default{color:var(--text-dark)}::ng-deep .dark button.dsv-button.outlined.default{border:1px solid var(--text-dark)}::ng-deep .dark button.dsv-button.contained.default{background-color:var(--text-dark);color:var(--text)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", 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 }, noHover: { classPropertyName: "noHover", publicName: "noHover", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prevent: { classPropertyName: "prevent", publicName: "prevent", 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 [type]=\"type()\"\n [class.no-hover]=\"noHover()\"\n [disabled]=\"disabled()\"\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.default,button.dsv-button.outlined.default{color:var(--text)}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.default,button.dsv-button.outlined.outlined.default{border:1px solid var(--text)}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)}button.dsv-button.contained.default{background-color:var(--text)}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):not(.no-hover):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):not(.no-hover):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}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white);filter:hue-rotate(5deg)}::ng-deep .dark button.dsv-button.text.default,::ng-deep .dark button.dsv-button.outlined.default{color:var(--text-dark)}::ng-deep .dark button.dsv-button.outlined.default{border:1px solid var(--text-dark)}::ng-deep .dark button.dsv-button.contained.default{background-color:var(--text-dark);color:var(--text)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
25
29
|
}
|
|
26
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvButtonComponent, decorators: [{
|
|
27
31
|
type: Component,
|
|
28
|
-
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 [class.no-hover]=\"noHover()\"\n [disabled]=\"disabled()\"\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.default,button.dsv-button.outlined.default{color:var(--text)}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.default,button.dsv-button.outlined.outlined.default{border:1px solid var(--text)}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)}button.dsv-button.contained.default{background-color:var(--text)}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):not(.no-hover):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):not(.no-hover):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}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white);filter:hue-rotate(5deg)}::ng-deep .dark button.dsv-button.text.default,::ng-deep .dark button.dsv-button.outlined.default{color:var(--text-dark)}::ng-deep .dark button.dsv-button.outlined.default{border:1px solid var(--text-dark)}::ng-deep .dark button.dsv-button.contained.default{background-color:var(--text-dark);color:var(--text)}\n"] }]
|
|
32
|
+
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 [type]=\"type()\"\n [class.no-hover]=\"noHover()\"\n [disabled]=\"disabled()\"\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.default,button.dsv-button.outlined.default{color:var(--text)}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.default,button.dsv-button.outlined.outlined.default{border:1px solid var(--text)}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)}button.dsv-button.contained.default{background-color:var(--text)}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):not(.no-hover):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):not(.no-hover):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}::ng-deep .dark button.dsv-button.contained.inherit{color:var(--white);filter:hue-rotate(5deg)}::ng-deep .dark button.dsv-button.text.default,::ng-deep .dark button.dsv-button.outlined.default{color:var(--text-dark)}::ng-deep .dark button.dsv-button.outlined.default{border:1px solid var(--text-dark)}::ng-deep .dark button.dsv-button.contained.default{background-color:var(--text-dark);color:var(--text)}\n"] }]
|
|
29
33
|
}] });
|
|
30
34
|
|
|
31
35
|
class ButtonScrollTopComponent {
|
|
@@ -40,13 +44,13 @@ class ButtonScrollTopComponent {
|
|
|
40
44
|
document.getElementById('scroll')?.scrollTo(0, 0);
|
|
41
45
|
}
|
|
42
46
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ButtonScrollTopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ButtonScrollTopComponent, isStandalone: true, selector: "app-scroll-top-button", inputs: { scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"scrollToTop()\"\n ></dsv-button>\n}\n", styles: [":host{position:absolute;bottom:5px;right:20px}::ng-deep .dsv-button{border-radius:50px!important}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover"], outputs: ["callback"] }] });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ButtonScrollTopComponent, isStandalone: true, selector: "app-scroll-top-button", inputs: { scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"scrollToTop()\"\n ></dsv-button>\n}\n", styles: [":host{position:absolute;bottom:5px;right:20px}::ng-deep app-scroll-top-button .dsv-button{border-radius:50px!important}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
44
48
|
}
|
|
45
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ButtonScrollTopComponent, decorators: [{
|
|
46
50
|
type: Component,
|
|
47
51
|
args: [{ selector: 'app-scroll-top-button', imports: [
|
|
48
52
|
DsvButtonComponent
|
|
49
|
-
], standalone: true, template: "@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"scrollToTop()\"\n ></dsv-button>\n}\n", styles: [":host{position:absolute;bottom:5px;right:20px}::ng-deep .dsv-button{border-radius:50px!important}\n"] }]
|
|
53
|
+
], standalone: true, template: "@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"scrollToTop()\"\n ></dsv-button>\n}\n", styles: [":host{position:absolute;bottom:5px;right:20px}::ng-deep app-scroll-top-button .dsv-button{border-radius:50px!important}\n"] }]
|
|
50
54
|
}], ctorParameters: () => [] });
|
|
51
55
|
|
|
52
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.mjs","sources":["../../../projects/ng-dsv/ds/button/component/button.component.ts","../../../projects/ng-dsv/ds/button/component/button.component.html","../../../projects/ng-dsv/ds/button/component/scroll-top/button.scroll-top.component.ts","../../../projects/ng-dsv/ds/button/component/scroll-top/button.scroll-top.component.html","../../../projects/ng-dsv/ds/button/ng-vagabond-lab-ng-dsv-ds-button.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\nimport { ColorType } from '@ng-vagabond-lab/ng-dsv/type';\n\nexport type ButtonWidthType = 'small' | 'medium' | 'large';\nexport type ButtonVariantType = 'text' | 'outlined' | 'contained';\n\n@Component({\n selector: 'dsv-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DsvButtonComponent {\n libelle = input<string>('');\n color = input<ColorType>('primary');\n icon = input<string>('');\n iconEnd = input<string>('');\n width = input<ButtonWidthType>('medium');\n variant = input<ButtonVariantType>('contained');\n fullwidth = input<boolean>(false);\n show = input<boolean>(true);\n disabled = input<boolean>(false);\n noHover = input<boolean>(false);\n\n callback = output<void>();\n\n doClick(event: Event) {\n event.stopPropagation();\n
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.mjs","sources":["../../../projects/ng-dsv/ds/button/component/button.component.ts","../../../projects/ng-dsv/ds/button/component/button.component.html","../../../projects/ng-dsv/ds/button/component/scroll-top/button.scroll-top.component.ts","../../../projects/ng-dsv/ds/button/component/scroll-top/button.scroll-top.component.html","../../../projects/ng-dsv/ds/button/ng-vagabond-lab-ng-dsv-ds-button.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\nimport { ColorType } from '@ng-vagabond-lab/ng-dsv/type';\n\nexport type ButtonWidthType = 'small' | 'medium' | 'large';\nexport type ButtonVariantType = 'text' | 'outlined' | 'contained';\n\n@Component({\n selector: 'dsv-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DsvButtonComponent {\n libelle = input<string>('');\n color = input<ColorType>('primary');\n icon = input<string>('');\n iconEnd = input<string>('');\n width = input<ButtonWidthType>('medium');\n variant = input<ButtonVariantType>('contained');\n fullwidth = input<boolean>(false);\n show = input<boolean>(true);\n disabled = input<boolean>(false);\n noHover = input<boolean>(false);\n type = input<string>('');\n\n prevent = input<boolean>(true);\n\n callback = output<void>();\n\n doClick(event: Event) {\n if (this.prevent() && this.type() !== 'submit') {\n event.stopPropagation();\n event.preventDefault();\n\n }\n !this.disabled() && this.callback.emit();\n }\n}\n","@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 [type]=\"type()\"\n [class.no-hover]=\"noHover()\"\n [disabled]=\"disabled()\"\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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","import { Component, effect, input, signal } from '@angular/core';\nimport { DsvButtonComponent } from '../button.component';\n\n@Component({\n selector: 'app-scroll-top-button',\n imports: [\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './button.scroll-top.component.html',\n styleUrls: ['./button.scroll-top.component.scss'],\n})\nexport class ButtonScrollTopComponent {\n scroll = input<number>(0);\n\n show = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.show.set(this.scroll() > 400);\n })\n }\n\n scrollToTop() {\n document.getElementById('scroll')?.scrollTo(0, 0);\n }\n}\n","@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"scrollToTop()\"\n ></dsv-button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAca,kBAAkB,CAAA;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC;AAC3B,IAAA,KAAK,GAAG,KAAK,CAAY,SAAS,CAAC;AACnC,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,CAAC;AACxB,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC;AAC3B,IAAA,KAAK,GAAG,KAAK,CAAkB,QAAQ,CAAC;AACxC,IAAA,OAAO,GAAG,KAAK,CAAoB,WAAW,CAAC;AAC/C,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACjC,IAAA,IAAI,GAAG,KAAK,CAAU,IAAI,CAAC;AAC3B,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,CAAC;AAExB,IAAA,OAAO,GAAG,KAAK,CAAU,IAAI,CAAC;IAE9B,QAAQ,GAAG,MAAM,EAAQ;AAEzB,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE;YAC9C,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;;QAGxB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;uGAvB/B,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,ECd/B,qoBAiCA,EAAA,MAAA,EAAA,CAAA,g0GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qoBAAA,EAAA,MAAA,EAAA,CAAA,g0GAAA,CAAA,EAAA;;;MEEZ,wBAAwB,CAAA;AACjC,IAAA,MAAM,GAAG,KAAK,CAAS,CAAC,CAAC;AAEzB,IAAA,IAAI,GAAG,MAAM,CAAU,KAAK,CAAC;AAE7B,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AACtC,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;uGAZ5C,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,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,ECZrC,8IAOA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDQ,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,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAMb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACxB,OAAA,EAAA;wBACL;AACH,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,8IAAA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA;;;AERpB;;AAEG;;;;"}
|
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { input, output, Component, inject, effect } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
-
import {
|
|
4
|
+
import { ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
|
5
|
+
import { RouterLink } from '@angular/router';
|
|
6
|
+
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
7
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
8
|
+
|
|
9
|
+
class FormCheckboxComponent {
|
|
10
|
+
form = input.required();
|
|
11
|
+
field = input.required();
|
|
12
|
+
withLabel = input(true);
|
|
13
|
+
list = input([]);
|
|
14
|
+
change = output();
|
|
15
|
+
doChange() {
|
|
16
|
+
this.change.emit(this.form().value[this.field()]);
|
|
17
|
+
}
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: FormCheckboxComponent, isStandalone: true, selector: "dsv-form-checkbox", 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 }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <input\n type=\"checkbox\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n />\n </div>\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n", ":host{display:flex;flex:1;width:100%}:host>div{align-items:center;flex-direction:row;flex:1}:host>div label{flex:1}:host>div input{width:20px!important;height:20px!important}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }] });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormCheckboxComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'dsv-form-checkbox', standalone: true, imports: [ReactiveFormsModule], template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <input\n type=\"checkbox\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n />\n </div>\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n", ":host{display:flex;flex:1;width:100%}:host>div{align-items:center;flex-direction:row;flex:1}:host>div label{flex:1}:host>div input{width:20px!important;height:20px!important}\n"] }]
|
|
24
|
+
}] });
|
|
5
25
|
|
|
6
26
|
class BaseFormComponent {
|
|
7
27
|
formBuilder = inject(FormBuilder);
|
|
8
28
|
form;
|
|
9
|
-
onSubmit() {
|
|
10
|
-
if (this.form.valid) {
|
|
11
|
-
console.log('Formulaire envoyé !', this.form.value);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: BaseFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
30
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: BaseFormComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
16
31
|
}
|
|
@@ -23,17 +38,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
23
38
|
|
|
24
39
|
class FormComponent {
|
|
25
40
|
form = input.required();
|
|
41
|
+
urlBack = input();
|
|
42
|
+
textValid = input('ENREGISTRER');
|
|
43
|
+
callback = output();
|
|
26
44
|
onSubmit() {
|
|
27
45
|
if (this.form().valid) {
|
|
28
|
-
|
|
46
|
+
this.callback.emit(this.form().value);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log('Erreur dans le formulaire !');
|
|
29
50
|
}
|
|
30
51
|
}
|
|
31
52
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: FormComponent, isStandalone: true, selector: "app-form", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, urlBack: { classPropertyName: "urlBack", publicName: "urlBack", isSignal: true, isRequired: false, transformFunction: null }, textValid: { classPropertyName: "textValid", publicName: "textValid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n <div class=\"form-buttons\">\n @if (urlBack()) {\n <dsv-button\n color=\"default\"\n variant=\"outlined\"\n [routerLink]=\"urlBack()\"\n [prevent]=\"false\"\n >{{ \"RETOUR\" | translate }}</dsv-button\n >\n }\n @if (textValid()) {\n <dsv-button type=\"submit\" color=\"success\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n", styles: [":host{width:100%;height:100%}:host form{flex-direction:column;display:block;margin-top:0;unicode-bidi:isolate}:host .form-buttons{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}\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"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
33
54
|
}
|
|
34
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormComponent, decorators: [{
|
|
35
56
|
type: Component,
|
|
36
|
-
args: [{ selector: 'app-form', imports: [
|
|
57
|
+
args: [{ selector: 'app-form', imports: [
|
|
58
|
+
ReactiveFormsModule,
|
|
59
|
+
DsvButtonComponent,
|
|
60
|
+
RouterLink,
|
|
61
|
+
TranslatePipe
|
|
62
|
+
], standalone: true, template: "<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n <div class=\"form-buttons\">\n @if (urlBack()) {\n <dsv-button\n color=\"default\"\n variant=\"outlined\"\n [routerLink]=\"urlBack()\"\n [prevent]=\"false\"\n >{{ \"RETOUR\" | translate }}</dsv-button\n >\n }\n @if (textValid()) {\n <dsv-button type=\"submit\" color=\"success\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n", styles: [":host{width:100%;height:100%}:host form{flex-direction:column;display:block;margin-top:0;unicode-bidi:isolate}:host .form-buttons{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}\n"] }]
|
|
37
63
|
}] });
|
|
38
64
|
|
|
39
65
|
class FormInputComponent {
|
|
@@ -47,11 +73,11 @@ class FormInputComponent {
|
|
|
47
73
|
this.onSend.emit(this.form().value[this.field()]);
|
|
48
74
|
}
|
|
49
75
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", 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 }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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% - 2rem);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"] }] });
|
|
76
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: FormInputComponent, isStandalone: true, selector: "dsv-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 }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\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"] }] });
|
|
51
77
|
}
|
|
52
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
53
79
|
type: Component,
|
|
54
|
-
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]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\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% - 2rem);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"] }]
|
|
80
|
+
args: [{ selector: 'dsv-form-input', imports: [ReactiveFormsModule], standalone: true, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <input\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n"] }]
|
|
55
81
|
}] });
|
|
56
82
|
|
|
57
83
|
class SearchbarComponent extends BaseFormComponent {
|
|
@@ -69,16 +95,35 @@ class SearchbarComponent extends BaseFormComponent {
|
|
|
69
95
|
this.onSearch.emit(value);
|
|
70
96
|
}
|
|
71
97
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", 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)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\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", "type", "withLabel", "icon"], outputs: ["onSend"] }] });
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", 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 <dsv-form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-input>\n</app-form>\n", dependencies: [{ kind: "component", type: FormComponent, selector: "app-form", inputs: ["form", "urlBack", "textValid"], outputs: ["callback"] }, { kind: "component", type: FormInputComponent, selector: "dsv-form-input", inputs: ["form", "field", "type", "withLabel", "icon"], outputs: ["onSend"] }] });
|
|
73
99
|
}
|
|
74
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: SearchbarComponent, decorators: [{
|
|
75
101
|
type: Component,
|
|
76
|
-
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)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></form-input>\n</app-form>\n" }]
|
|
102
|
+
args: [{ selector: 'form-searchbar', imports: [FormComponent, FormInputComponent], standalone: true, template: "<app-form [form]=\"form\">\n <dsv-form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-input>\n</app-form>\n" }]
|
|
77
103
|
}], ctorParameters: () => [] });
|
|
78
104
|
|
|
105
|
+
class SelectComponent {
|
|
106
|
+
form = input.required();
|
|
107
|
+
field = input.required();
|
|
108
|
+
withLabel = input(true);
|
|
109
|
+
list = input([]);
|
|
110
|
+
change = output();
|
|
111
|
+
doChange() {
|
|
112
|
+
this.change.emit(this.form().value[this.field()]);
|
|
113
|
+
}
|
|
114
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: SelectComponent, isStandalone: true, selector: "dsv-form-select", 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 }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <select\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n >\n @for (list of list(); track list.id) {\n <option [value]=\"list.id\">\n {{ list.name }}\n </option>\n }\n </select>\n </div>\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n", ":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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"] }] });
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{ selector: 'dsv-form-select', imports: [
|
|
120
|
+
ReactiveFormsModule
|
|
121
|
+
], standalone: true, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <select\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n >\n @for (list of list(); track list.id) {\n <option [value]=\"list.id\">\n {{ list.name }}\n </option>\n }\n </select>\n </div>\n</div>\n", styles: [":host{width:100%}: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% - 2rem);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}::ng-deep .dark .form-control{background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n", ":host{width:100%}\n"] }]
|
|
122
|
+
}] });
|
|
123
|
+
|
|
79
124
|
/**
|
|
80
125
|
* Generated bundle index. Do not edit.
|
|
81
126
|
*/
|
|
82
127
|
|
|
83
|
-
export { BaseFormComponent, FormComponent, FormInputComponent, SearchbarComponent };
|
|
128
|
+
export { BaseFormComponent, FormCheckboxComponent, FormComponent, FormInputComponent, SearchbarComponent, SelectComponent };
|
|
84
129
|
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-form.mjs.map
|
|
@@ -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, 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 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 type = input<string>('text');\n withLabel = input<boolean>(true);\n icon = input<string>();\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]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n</div>\n","import { Component, effect, 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 constructor() {\n super();\n effect(() => {\n this.form = this.formBuilder.group({\n search: [this.search()],\n });\n });\n }\n\n onSend(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)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\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
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form.mjs","sources":["../../../projects/ng-dsv/ds/form/checkbox/component/form.checkbox.component.ts","../../../projects/ng-dsv/ds/form/checkbox/component/form.checkbox.component.html","../../../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/select/component/form.select.component.ts","../../../projects/ng-dsv/ds/form/select/component/form.select.component.html","../../../projects/ng-dsv/ds/form/ng-vagabond-lab-ng-dsv-ds-form.ts"],"sourcesContent":["import { Component, input, output } from \"@angular/core\";\nimport { FormGroup, ReactiveFormsModule } from \"@angular/forms\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\n\n@Component({\n selector: 'dsv-form-checkbox',\n standalone: true,\n imports: [ReactiveFormsModule],\n templateUrl: './form.checkbox.component.html',\n styleUrls: [\n '../../input/component/form.input.component.scss',\n './form.checkbox.component.scss'\n ],\n})\nexport class FormCheckboxComponent {\n form = input.required<FormGroup>();\n field = input.required<string>();\n withLabel = input<boolean>(true);\n\n list = input<(ApiDto & { name: string })[]>([]);\n\n change = output<string>();\n\n doChange() {\n this.change.emit(this.form().value[this.field()]);\n }\n}","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <input\n type=\"checkbox\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n />\n </div>\n</div>\n","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","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-form',\n imports: [\n ReactiveFormsModule,\n DsvButtonComponent,\n RouterLink,\n TranslatePipe\n ],\n standalone: true,\n templateUrl: './form.component.html',\n styleUrl: './form.component.scss',\n})\nexport class FormComponent {\n form = input.required<FormGroup>();\n\n urlBack = input<string>();\n textValid = input<string>('ENREGISTRER');\n\n callback = output<ApiDto>();\n\n onSubmit() {\n if (this.form().valid) {\n this.callback.emit(this.form().value);\n } else {\n console.log('Erreur dans le formulaire !');\n }\n }\n}\n","<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\" class=\"form-container\">\n <ng-content></ng-content>\n <div class=\"form-buttons\">\n @if (urlBack()) {\n <dsv-button\n color=\"default\"\n variant=\"outlined\"\n [routerLink]=\"urlBack()\"\n [prevent]=\"false\"\n >{{ \"RETOUR\" | translate }}</dsv-button\n >\n }\n @if (textValid()) {\n <dsv-button type=\"submit\" color=\"success\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'dsv-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 type = input<string>('text');\n withLabel = input<boolean>(true);\n icon = input<string>();\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]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n</div>\n","import { Component, effect, 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 constructor() {\n super();\n effect(() => {\n this.form = this.formBuilder.group({\n search: [this.search()],\n });\n });\n }\n\n onSend(value: string) {\n this.onSearch.emit(value);\n }\n}\n","<app-form [form]=\"form\">\n <dsv-form-input\n [form]=\"form\"\n field=\"search\"\n [withLabel]=\"false\"\n (onSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-input>\n</app-form>\n","import { Component, input, output } from \"@angular/core\";\nimport { FormGroup, ReactiveFormsModule } from \"@angular/forms\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\n\n@Component({\n selector: 'dsv-form-select',\n imports: [\n ReactiveFormsModule\n ],\n standalone: true,\n templateUrl: './form.select.component.html',\n styleUrls: [\n '../../input/component/form.input.component.scss',\n './form.select.component.scss'\n ]\n})\nexport class SelectComponent {\n form = input.required<FormGroup>();\n field = input.required<string>();\n withLabel = input<boolean>(true);\n\n list = input<(ApiDto & { name: string })[]>([]);\n\n change = output<string>();\n\n doChange() {\n this.change.emit(this.form().value[this.field()]);\n }\n}","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }}</label>\n }\n <div>\n <select\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n >\n @for (list of list(); track list.id) {\n <option [value]=\"list.id\">\n {{ list.name }}\n </option>\n }\n </select>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAca,qBAAqB,CAAA;AAC9B,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;AAClC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AAChC,IAAA,SAAS,GAAG,KAAK,CAAU,IAAI,CAAC;AAEhC,IAAA,IAAI,GAAG,KAAK,CAAgC,EAAE,CAAC;IAE/C,MAAM,GAAG,MAAM,EAAU;IAEzB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;uGAV5C,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdlC,mRAaA,EAAA,MAAA,EAAA,CAAA,8oBAAA,EAAA,kLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNc,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAOpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACjB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,mRAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,EAAA,kLAAA,CAAA,EAAA;;;MEDZ,iBAAiB,CAAA;AAClB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1C,IAAA,IAAI;uGAFM,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,wEAF3B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;MCcY,aAAa,CAAA;AACxB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;IAElC,OAAO,GAAG,KAAK,EAAU;AACzB,IAAA,SAAS,GAAG,KAAK,CAAS,aAAa,CAAC;IAExC,QAAQ,GAAG,MAAM,EAAU;IAE3B,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;;aAChC;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;;;uGAZnC,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,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,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,ECnB1B,4hBAmBA,EDTI,MAAA,EAAA,CAAA,sMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,qbACnB,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,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACV,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAMJ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACX,OAAA,EAAA;wBACP,mBAAmB;wBACnB,kBAAkB;wBAClB,UAAU;wBACV;AACD,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,4hBAAA,EAAA,MAAA,EAAA,CAAA,sMAAA,CAAA,EAAA;;;MELL,kBAAkB,CAAA;AAC7B,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;AAClC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AAChC,IAAA,IAAI,GAAG,KAAK,CAAS,MAAM,CAAC;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAU,IAAI,CAAC;IAChC,IAAI,GAAG,KAAK,EAAU;IAEtB,MAAM,GAAG,MAAM,EAAU;IAEzB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;uGAVxC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,8UAeA,EAAA,MAAA,EAAA,CAAA,8oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVY,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACjB,OAAA,EAAA,CAAC,mBAAmB,CAAC,cAClB,IAAI,EAAA,QAAA,EAAA,8UAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,CAAA,EAAA;;;AEOZ,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AACvD,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC;IAC1B,QAAQ,GAAG,MAAM,EAAU;AAE3B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACjC,gBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACxB,aAAA,CAAC;AACJ,SAAC,CAAC;;AAGJ,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAdhB,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,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECb/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,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,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6NASA,EDAY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,sHAAE,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIhC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,CAAC,aAAa,EAAE,kBAAkB,CAAC,cAChC,IAAI,EAAA,QAAA,EAAA,6NAAA,EAAA;;;MEML,eAAe,CAAA;AACxB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;AAClC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AAChC,IAAA,SAAS,GAAG,KAAK,CAAU,IAAI,CAAC;AAEhC,IAAA,IAAI,GAAG,KAAK,CAAgC,EAAE,CAAC;IAE/C,MAAM,GAAG,MAAM,EAAU;IAEzB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;uGAV5C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB5B,mbAmBA,EAAA,MAAA,EAAA,CAAA,8oBAAA,EAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDZQ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FASd,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAClB,OAAA,EAAA;wBACL;AACH,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,mbAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,EAAA,qBAAA,CAAA,EAAA;;;AETpB;;AAEG;;;;"}
|
|
@@ -13,7 +13,7 @@ class DsvMenuButtonComponent {
|
|
|
13
13
|
this.menuService.toogleMenu();
|
|
14
14
|
}
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: DsvMenuButtonComponent, isStandalone: true, selector: "dsv-menu-button", ngImport: i0, template: "<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n></dsv-button>\n", 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", "noHover"], outputs: ["callback"] }] });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: DsvMenuButtonComponent, isStandalone: true, selector: "dsv-menu-button", ngImport: i0, template: "<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n></dsv-button>\n", 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", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvMenuButtonComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
@@ -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, 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\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n></dsv-button>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n HostListener,\n input\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 {\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 this.menuService.isMenuOpen() &&\n document.getElementsByTagName('dsv-container')[0].classList.add('show');\n });\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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"}
|
|
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\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n></dsv-button>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n HostListener,\n input\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 {\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 this.menuService.isMenuOpen() &&\n document.getElementsByTagName('dsv-container')[0].classList.add('show');\n });\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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"}
|
|
@@ -50,7 +50,7 @@ class ModalComponent {
|
|
|
50
50
|
this.modalService.close(this.id());
|
|
51
51
|
};
|
|
52
52
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isOpen()) {\n <div class=\"modal-overlay\"></div>\n <div [class]=\"'modal ' + class()\">\n <div class=\"modal-header\">\n <b>{{ title() }}</b>\n <dsv-button (callback)=\"close()\" variant=\"text\" color=\"default\">\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"modal-footer\"></ng-content>\n </div>\n </div>\n}\n", styles: [".modal-overlay{position:fixed;z-index:300000;background-color:oklab(0% none none / .8);width:100%;height:100%;top:0;right:0}.modal{position:fixed;z-index:300001;top:35%;left:25%;width:50%;height:25%;background:var(--background);display:flex;flex-direction:column}.modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px;border-bottom:1px outset black}.modal .modal-content{flex:1;overflow:auto;padding:10px;align-content:center}.modal .modal-footer{padding:10px}::ng-deep .modal-footer>div{display:flex;gap:.5rem;justify-content:flex-end}::ng-deep .light .modal .modal-content{background-color:var(--text-dark)!important}::ng-deep .light .modal .modal-footer{background-color:var(--text-dark)!important}::ng-deep .dark .modal{background:var(--background-dark)!important}::ng-deep .dark .modal-header{border-color:var(--text-dark)!important}@media screen and (max-width: 600px){.modal{width:calc(100% - 16px)!important;left:8px!important}}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover"], outputs: ["callback"] }] });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isOpen()) {\n <div class=\"modal-overlay\"></div>\n <div [class]=\"'modal ' + class()\">\n <div class=\"modal-header\">\n <b>{{ title() }}</b>\n <dsv-button (callback)=\"close()\" variant=\"text\" color=\"default\">\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"modal-footer\"></ng-content>\n </div>\n </div>\n}\n", styles: [".modal-overlay{position:fixed;z-index:300000;background-color:oklab(0% none none / .8);width:100%;height:100%;top:0;right:0}.modal{position:fixed;z-index:300001;top:35%;left:25%;width:50%;height:25%;background:var(--background);display:flex;flex-direction:column}.modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px;border-bottom:1px outset black}.modal .modal-content{flex:1;overflow:auto;padding:10px;align-content:center}.modal .modal-footer{padding:10px}::ng-deep .modal-footer>div{display:flex;gap:.5rem;justify-content:flex-end}::ng-deep .light .modal .modal-content{background-color:var(--text-dark)!important}::ng-deep .light .modal .modal-footer{background-color:var(--text-dark)!important}::ng-deep .dark .modal{background:var(--background-dark)!important}::ng-deep .dark .modal-header{border-color:var(--text-dark)!important}@media screen and (max-width: 600px){.modal{width:calc(100% - 16px)!important;left:8px!important}}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
54
54
|
}
|
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalComponent, decorators: [{
|
|
56
56
|
type: Component,
|
|
@@ -81,7 +81,7 @@ class ModalAlertComponent {
|
|
|
81
81
|
this.modalService.close(this.id());
|
|
82
82
|
};
|
|
83
83
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ModalAlertComponent, isStandalone: true, selector: "app-modal-alert", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonClose: { classPropertyName: "buttonClose", publicName: "buttonClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<app-modal [id]=\"id()\" [title]=\"title()\">\n {{ text() }}\n <div ngProjectAs=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button (callback)=\"doClickClose()\" color=\"error\">\n {{ buttonClose() }}\n </dsv-button>\n }\n <dsv-button (callback)=\"doClick()\" color=\"success\">\n {{ button() }}\n </dsv-button>\n </div>\n</app-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "app-modal", inputs: ["id", "title", "class"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover"], outputs: ["callback"] }] });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: ModalAlertComponent, isStandalone: true, selector: "app-modal-alert", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonClose: { classPropertyName: "buttonClose", publicName: "buttonClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<app-modal [id]=\"id()\" [title]=\"title()\">\n {{ text() }}\n <div ngProjectAs=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button (callback)=\"doClickClose()\" color=\"error\">\n {{ buttonClose() }}\n </dsv-button>\n }\n <dsv-button (callback)=\"doClick()\" color=\"success\">\n {{ button() }}\n </dsv-button>\n </div>\n</app-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "app-modal", inputs: ["id", "title", "class"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalAlertComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
@@ -101,7 +101,7 @@ class ModalButtonComponent {
|
|
|
101
101
|
this.modalService.toggle(this.id());
|
|
102
102
|
};
|
|
103
103
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: ModalButtonComponent, isStandalone: true, selector: "app-modal-button", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dsv-button\n [color]=\"icon() ? 'default' : color()\"\n [icon]=\"icon()\"\n [variant]=\"icon() ? 'text' : 'contained'\"\n color=\"inherit\"\n (callback)=\"doToogle()\"\n>\n {{ text() }}\n <ng-content></ng-content>\n</dsv-button>\n", dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover"], outputs: ["callback"] }] });
|
|
104
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: ModalButtonComponent, isStandalone: true, selector: "app-modal-button", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dsv-button\n [color]=\"icon() ? 'default' : color()\"\n [icon]=\"icon()\"\n [variant]=\"icon() ? 'text' : 'contained'\"\n color=\"inherit\"\n (callback)=\"doToogle()\"\n>\n {{ text() }}\n <ng-content></ng-content>\n</dsv-button>\n", dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
105
105
|
}
|
|
106
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: ModalButtonComponent, decorators: [{
|
|
107
107
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-modal.mjs","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.html","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.html","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.html","../../../projects/ng-dsv/ds/modal/ng-vagabond-lab-ng-dsv-ds-modal.ts"],"sourcesContent":["import { Injectable, signal } from \"@angular/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly states = new Map<string, ReturnType<typeof signal<boolean>>>();\n\n getSignal(id: string) {\n if (!this.states.has(id)) {\n const newSignal = signal<boolean>(false);\n this.states.set(id, newSignal);\n }\n return this.states.get(id)?.() ?? false;\n }\n\n open(id: string) {\n this.states.get(id)?.set(true);\n }\n\n close(id: string) {\n this.states.get(id)?.set(false);\n }\n\n toggle(id: string) {\n const s = this.states.get(id);\n if (s) s.update(v => !v);\n }\n}","import { Component, effect, inject, input, signal } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { MenuService } from \"@ng-vagabond-lab/ng-dsv/ds/menu\";\nimport { ModalService } from \"../service/modal.service\";\n\n@Component({\n selector: 'app-modal',\n imports: [\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent {\n id = input.required<string>();\n title = input.required<string>();\n class = input<string>('');\n\n isOpen = signal<boolean>(false);\n\n modalService = inject(ModalService);\n menuService = inject(MenuService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);\n if (this.isOpen()) {\n this.menuService.isMenuOpen.set(false);\n }\n })\n }\n\n close = () => {\n this.modalService.close(this.id());\n }\n}","@if (isOpen()) {\n <div class=\"modal-overlay\"></div>\n <div [class]=\"'modal ' + class()\">\n <div class=\"modal-header\">\n <b>{{ title() }}</b>\n <dsv-button (callback)=\"close()\" variant=\"text\" color=\"default\">\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"modal-footer\"></ng-content>\n </div>\n </div>\n}\n","import { Component, effect, inject, input, output, signal } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ModalService } from \"../../service/modal.service\";\nimport { ModalComponent } from \"../modal.component\";\n\n@Component({\n selector: 'app-modal-alert',\n imports: [\n ModalComponent,\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal-alert.component.html',\n})\nexport class ModalAlertComponent {\n id = input.required<string>();\n title = input<string>('title');\n text = input<string>('text');\n button = input<string>('button');\n buttonClose = input<string>();\n callback = output<void>();\n\n isOpen = signal<boolean>(false);\n\n modalService = inject(ModalService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()));\n });\n }\n\n doClick = () => {\n this.modalService.toggle(this.id());\n this.callback.emit();\n }\n\n doClickClose = () => {\n this.modalService.close(this.id());\n }\n}","<app-modal [id]=\"id()\" [title]=\"title()\">\n {{ text() }}\n <div ngProjectAs=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button (callback)=\"doClickClose()\" color=\"error\">\n {{ buttonClose() }}\n </dsv-button>\n }\n <dsv-button (callback)=\"doClick()\" color=\"success\">\n {{ button() }}\n </dsv-button>\n </div>\n</app-modal>\n","import { Component, inject, input } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ColorType } from \"@ng-vagabond-lab/ng-dsv/type\";\nimport { ModalService } from \"../../service/modal.service\";\n\n@Component({\n selector: 'app-modal-button',\n imports: [\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal-button.component.html',\n})\nexport class ModalButtonComponent {\n id = input.required<string>();\n icon = input<string>('');\n text = input<string>('');\n color = input<ColorType>('primary');\n\n modalService = inject(ModalService);\n\n doToogle = () => {\n this.modalService.toggle(this.id());\n }\n}","<dsv-button\n [color]=\"icon() ? 'default' : color()\"\n [icon]=\"icon()\"\n [variant]=\"icon() ? 'text' : 'contained'\"\n color=\"inherit\"\n (callback)=\"doToogle()\"\n>\n {{ text() }}\n <ng-content></ng-content>\n</dsv-button>\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-modal.mjs","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.html","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.html","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.html","../../../projects/ng-dsv/ds/modal/ng-vagabond-lab-ng-dsv-ds-modal.ts"],"sourcesContent":["import { Injectable, signal } from \"@angular/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly states = new Map<string, ReturnType<typeof signal<boolean>>>();\n\n getSignal(id: string) {\n if (!this.states.has(id)) {\n const newSignal = signal<boolean>(false);\n this.states.set(id, newSignal);\n }\n return this.states.get(id)?.() ?? false;\n }\n\n open(id: string) {\n this.states.get(id)?.set(true);\n }\n\n close(id: string) {\n this.states.get(id)?.set(false);\n }\n\n toggle(id: string) {\n const s = this.states.get(id);\n if (s) s.update(v => !v);\n }\n}","import { Component, effect, inject, input, signal } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { MenuService } from \"@ng-vagabond-lab/ng-dsv/ds/menu\";\nimport { ModalService } from \"../service/modal.service\";\n\n@Component({\n selector: 'app-modal',\n imports: [\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent {\n id = input.required<string>();\n title = input.required<string>();\n class = input<string>('');\n\n isOpen = signal<boolean>(false);\n\n modalService = inject(ModalService);\n menuService = inject(MenuService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);\n if (this.isOpen()) {\n this.menuService.isMenuOpen.set(false);\n }\n })\n }\n\n close = () => {\n this.modalService.close(this.id());\n }\n}","@if (isOpen()) {\n <div class=\"modal-overlay\"></div>\n <div [class]=\"'modal ' + class()\">\n <div class=\"modal-header\">\n <b>{{ title() }}</b>\n <dsv-button (callback)=\"close()\" variant=\"text\" color=\"default\">\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"modal-footer\"></ng-content>\n </div>\n </div>\n}\n","import { Component, effect, inject, input, output, signal } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ModalService } from \"../../service/modal.service\";\nimport { ModalComponent } from \"../modal.component\";\n\n@Component({\n selector: 'app-modal-alert',\n imports: [\n ModalComponent,\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal-alert.component.html',\n})\nexport class ModalAlertComponent {\n id = input.required<string>();\n title = input<string>('title');\n text = input<string>('text');\n button = input<string>('button');\n buttonClose = input<string>();\n callback = output<void>();\n\n isOpen = signal<boolean>(false);\n\n modalService = inject(ModalService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()));\n });\n }\n\n doClick = () => {\n this.modalService.toggle(this.id());\n this.callback.emit();\n }\n\n doClickClose = () => {\n this.modalService.close(this.id());\n }\n}","<app-modal [id]=\"id()\" [title]=\"title()\">\n {{ text() }}\n <div ngProjectAs=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button (callback)=\"doClickClose()\" color=\"error\">\n {{ buttonClose() }}\n </dsv-button>\n }\n <dsv-button (callback)=\"doClick()\" color=\"success\">\n {{ button() }}\n </dsv-button>\n </div>\n</app-modal>\n","import { Component, inject, input } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { ColorType } from \"@ng-vagabond-lab/ng-dsv/type\";\nimport { ModalService } from \"../../service/modal.service\";\n\n@Component({\n selector: 'app-modal-button',\n imports: [\n DsvButtonComponent\n ],\n standalone: true,\n templateUrl: './modal-button.component.html',\n})\nexport class ModalButtonComponent {\n id = input.required<string>();\n icon = input<string>('');\n text = input<string>('');\n color = input<ColorType>('primary');\n\n modalService = inject(ModalService);\n\n doToogle = () => {\n this.modalService.toggle(this.id());\n }\n}","<dsv-button\n [color]=\"icon() ? 'default' : color()\"\n [icon]=\"icon()\"\n [variant]=\"icon() ? 'text' : 'contained'\"\n color=\"inherit\"\n (callback)=\"doToogle()\"\n>\n {{ text() }}\n <ng-content></ng-content>\n</dsv-button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, Component } from '@angular/core';
|
|
3
|
+
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
4
|
+
|
|
5
|
+
class PaginateComponent {
|
|
6
|
+
page = input.required();
|
|
7
|
+
max = input.required();
|
|
8
|
+
nb = input.required();
|
|
9
|
+
callback = output();
|
|
10
|
+
gotoPage(page) {
|
|
11
|
+
this.callback.emit(page);
|
|
12
|
+
}
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: PaginateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: PaginateComponent, isStandalone: true, selector: "app-paginate-component", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null }, nb: { classPropertyName: "nb", publicName: "nb", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 5px}::ng-deep app-paginate-component button:disabled{background:transparent!important;color:#00000042!important}::ng-deep .dark app-paginate-component button:disabled{color:#ffffff4d!important}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "color", "icon", "iconEnd", "width", "variant", "fullwidth", "show", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: PaginateComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: "app-paginate-component", standalone: true, imports: [
|
|
19
|
+
DsvButtonComponent
|
|
20
|
+
], template: "<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 5px}::ng-deep app-paginate-component button:disabled{background:transparent!important;color:#00000042!important}::ng-deep .dark app-paginate-component button:disabled{color:#ffffff4d!important}\n"] }]
|
|
21
|
+
}] });
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Generated bundle index. Do not edit.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export { PaginateComponent };
|
|
28
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-paginate.mjs","sources":["../../../projects/ng-dsv/ds/paginate/component/paginate.component.ts","../../../projects/ng-dsv/ds/paginate/component/paginate.component.html","../../../projects/ng-dsv/ds/paginate/ng-vagabond-lab-ng-dsv-ds-paginate.ts"],"sourcesContent":["import { Component, input, output } from \"@angular/core\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\n\n@Component({\n selector: \"app-paginate-component\",\n standalone: true,\n imports: [\n DsvButtonComponent\n ],\n templateUrl: \"./paginate.component.html\",\n styleUrls: [\"./paginate.component.scss\"],\n})\nexport class PaginateComponent {\n page = input.required<number>();\n max = input.required<number>();\n nb = input.required<number>();\n\n callback = output<number>();\n\n gotoPage(page: number) {\n this.callback.emit(page);\n }\n}","<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,iBAAiB,CAAA;AAC1B,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC9B,IAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAU;IAE7B,QAAQ,GAAG,MAAM,EAAU;AAE3B,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;uGARnB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9B,+UAaA,EAAA,MAAA,EAAA,CAAA,kSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNQ,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,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKb,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;+BACI,wBAAwB,EAAA,UAAA,EACtB,IAAI,EACP,OAAA,EAAA;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,+UAAA,EAAA,MAAA,EAAA,CAAA,kSAAA,CAAA,EAAA;;;AERL;;AAEG;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, Component } from '@angular/core';
|
|
3
|
+
import { RouterLink } from '@angular/router';
|
|
4
|
+
|
|
5
|
+
class TabComponent {
|
|
6
|
+
tab = input.required();
|
|
7
|
+
isSelected = input(false);
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: TabComponent, isStandalone: true, selector: "app-tab-component", inputs: { tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button [routerLink]=\"tab().url\" [class.selected]=\"isSelected()\">\n {{ tab().title }}\n</button>\n", styles: [":host button{opacity:.6;align-items:baseline;max-width:max-content!important;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0px;border:0px;margin:0;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.25;letter-spacing:.02857em;text-transform:uppercase;max-width:none;min-width:90px;position:relative;min-height:48px;flex:1 1 0px;padding:12px 16px;overflow:hidden;white-space:normal;text-align:center;flex-direction:column;color:inherit;-webkit-box-flex:1}:host button.selected{opacity:1;border-bottom:2px solid var(--primary)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TabComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: "app-tab-component", standalone: true, imports: [
|
|
14
|
+
RouterLink,
|
|
15
|
+
], template: "<button [routerLink]=\"tab().url\" [class.selected]=\"isSelected()\">\n {{ tab().title }}\n</button>\n", styles: [":host button{opacity:.6;align-items:baseline;max-width:max-content!important;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0px;border:0px;margin:0;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.25;letter-spacing:.02857em;text-transform:uppercase;max-width:none;min-width:90px;position:relative;min-height:48px;flex:1 1 0px;padding:12px 16px;overflow:hidden;white-space:normal;text-align:center;flex-direction:column;color:inherit;-webkit-box-flex:1}:host button.selected{opacity:1;border-bottom:2px solid var(--primary)}\n"] }]
|
|
16
|
+
}] });
|
|
17
|
+
|
|
18
|
+
class TabsComponent {
|
|
19
|
+
tabs = input.required();
|
|
20
|
+
active = input.required();
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: TabsComponent, isStandalone: true, selector: "dsv-tabs-component", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div>\n <div>\n @for (tab of tabs(); track tab.id) {\n <app-tab-component\n [tab]=\"tab\"\n [isSelected]=\"active().trim() === tab.title.trim()\"\n />\n }\n </div>\n</div>\n", styles: [":host{overflow:hidden;min-height:48px;display:flex;width:100%}:host>div{margin-bottom:0;position:relative;display:inline-block;flex:1 1 auto;overflow:auto;overflow-x:hidden;width:100%}:host>div>div{display:flex;overflow:visible!important;margin:3px 0}\n"], dependencies: [{ kind: "component", type: TabComponent, selector: "app-tab-component", inputs: ["tab", "isSelected"] }] });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TabsComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: "dsv-tabs-component", standalone: true, imports: [
|
|
27
|
+
TabComponent
|
|
28
|
+
], template: "<div>\n <div>\n @for (tab of tabs(); track tab.id) {\n <app-tab-component\n [tab]=\"tab\"\n [isSelected]=\"active().trim() === tab.title.trim()\"\n />\n }\n </div>\n</div>\n", styles: [":host{overflow:hidden;min-height:48px;display:flex;width:100%}:host>div{margin-bottom:0;position:relative;display:inline-block;flex:1 1 auto;overflow:auto;overflow-x:hidden;width:100%}:host>div>div{display:flex;overflow:visible!important;margin:3px 0}\n"] }]
|
|
29
|
+
}] });
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Generated bundle index. Do not edit.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
export { TabComponent, TabsComponent };
|
|
36
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-tab.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-tab.mjs","sources":["../../../projects/ng-dsv/ds/tab/tab/component/tab.component.ts","../../../projects/ng-dsv/ds/tab/tab/component/tab.component.html","../../../projects/ng-dsv/ds/tab/tabs/component/tabs.component.ts","../../../projects/ng-dsv/ds/tab/tabs/component/tabs.component.html","../../../projects/ng-dsv/ds/tab/ng-vagabond-lab-ng-dsv-ds-tab.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { RouterLink } from \"@angular/router\";\nimport { TabDto } from \"../dto/tab.dto\";\n\n@Component({\n selector: \"app-tab-component\",\n standalone: true,\n imports: [\n RouterLink,\n ],\n templateUrl: \"./tab.component.html\",\n styleUrls: [\"./tab.component.scss\"],\n})\nexport class TabComponent {\n tab = input.required<TabDto>();\n isSelected = input<boolean>(false);\n\n}","<button [routerLink]=\"tab().url\" [class.selected]=\"isSelected()\">\n {{ tab().title }}\n</button>\n","import { Component, input } from \"@angular/core\";\nimport { TabDto } from \"../../public-api\";\nimport { TabComponent } from \"../../tab/component/tab.component\";\n\n@Component({\n selector: \"dsv-tabs-component\",\n standalone: true,\n imports: [\n TabComponent\n ],\n templateUrl: \"./tabs.component.html\",\n styleUrls: [\"./tabs.component.scss\"],\n})\nexport class TabsComponent {\n tabs = input.required<TabDto[]>();\n active = input.required<string>();\n\n}","<div>\n <div>\n @for (tab of tabs(); track tab.id) {\n <app-tab-component\n [tab]=\"tab\"\n [isSelected]=\"active().trim() === tab.title.trim()\"\n />\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,YAAY,CAAA;AACrB,IAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC9B,IAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC;uGAFzB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbzB,yGAGA,EAAA,MAAA,EAAA,CAAA,m2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKQ,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKL,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,SAAS;+BACI,mBAAmB,EAAA,UAAA,EACjB,IAAI,EACP,OAAA,EAAA;wBACL,UAAU;AACb,qBAAA,EAAA,QAAA,EAAA,yGAAA,EAAA,MAAA,EAAA,CAAA,m2BAAA,CAAA,EAAA;;;MEIQ,aAAa,CAAA;AACtB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAY;AACjC,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;uGAFxB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1B,+MAUA,EAAA,MAAA,EAAA,CAAA,+PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFQ,YAAY,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKP,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;+BACI,oBAAoB,EAAA,UAAA,EAClB,IAAI,EACP,OAAA,EAAA;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,+MAAA,EAAA,MAAA,EAAA,CAAA,+PAAA,CAAA,EAAA;;;AETL;;AAEG;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, signal, effect, Component } from '@angular/core';
|
|
3
|
+
import { RouterLink } from '@angular/router';
|
|
4
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
5
|
+
|
|
6
|
+
class TableComponent {
|
|
7
|
+
url = input.required();
|
|
8
|
+
cells = input.required();
|
|
9
|
+
datas = input.required();
|
|
10
|
+
max = input(10);
|
|
11
|
+
showDatas = signal([]);
|
|
12
|
+
constructor() {
|
|
13
|
+
effect(() => {
|
|
14
|
+
let datas = this.datas();
|
|
15
|
+
if (this.max() > 0) {
|
|
16
|
+
datas = [];
|
|
17
|
+
for (let i = 0; i < this.max(); i++) {
|
|
18
|
+
const data = this.datas()?.[i] ? this.datas()[i] : { id: i + 1 };
|
|
19
|
+
datas.push(data);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const showDatas = [];
|
|
23
|
+
datas.forEach(data => {
|
|
24
|
+
const showData = [];
|
|
25
|
+
showData.push(this.getValue(data, "id", false));
|
|
26
|
+
this.cells().forEach(cell => {
|
|
27
|
+
showData.push(this.getValue(data, cell.name, cell.date ?? false));
|
|
28
|
+
});
|
|
29
|
+
showDatas.push(showData);
|
|
30
|
+
});
|
|
31
|
+
this.showDatas.set(showDatas);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
getValue(obj, key, isDate) {
|
|
35
|
+
let value = obj[key];
|
|
36
|
+
if (key.includes('.')) {
|
|
37
|
+
const keys = key.split('.');
|
|
38
|
+
let recurse = obj;
|
|
39
|
+
keys.forEach(key2 => {
|
|
40
|
+
if (recurse) {
|
|
41
|
+
if (Array.isArray(recurse)) {
|
|
42
|
+
recurse = recurse.map(item => item[key2]).join(',');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
recurse = recurse[key2];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
value = recurse?.toString();
|
|
50
|
+
}
|
|
51
|
+
if (isDate && value) {
|
|
52
|
+
value = this.formatDate(value);
|
|
53
|
+
}
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
formatDate(dateString) {
|
|
57
|
+
const date = new Date(dateString);
|
|
58
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
59
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
60
|
+
const year = date.getFullYear();
|
|
61
|
+
const hours = String(date.getHours()).padStart(2, '0');
|
|
62
|
+
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
63
|
+
return `${day}/${month}/${year} ${hours}:${minutes}`;
|
|
64
|
+
}
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: TableComponent, isStandalone: true, selector: "dsv-table", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: true, transformFunction: null }, cells: { classPropertyName: "cells", publicName: "cells", isSignal: true, isRequired: true, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (cell of cells(); track cell.name) {\n <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of showDatas(); track $index; let index = $index) {\n <tr>\n @for (cell of cells(); track cell.name; let indexData = $index) {\n <td\n [routerLink]=\"url() + '/' + data[0]\"\n [style.maxWidth]=\"cell.width\"\n >\n {{ data[indexData + 1] }}\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{overflow:auto;width:100%}:host table{table-layout:fixed;min-width:100%;display:table;border-collapse:collapse;border-spacing:0px}:host table thead{display:table-header-group}:host table thead tr{background-color:var(--text);color:var(--text-dark);display:table-row;vertical-align:middle;outline:0px;height:32px}:host table thead tr th{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5rem;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgb(224,224,224);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table tbody{display:table-row-group;background-color:var(--text-dark)}:host table tbody tr{display:table-row;vertical-align:middle;outline:0px;height:32px}:host table tbody tr td{font-weight:400;font-size:.875rem;line-height:1.43;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgb(224,224,224);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}::ng-deep .dark table thead tr{background-color:var(--text-dark)!important;color:var(--text)!important}::ng-deep .dark table tbody{display:table-row-group;background-color:var(--text)!important}::ng-deep .dark table tbody td{cursor:pointer;border-bottom:1px solid rgb(81,81,81)!important}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: TableComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: "dsv-table", standalone: true, imports: [
|
|
71
|
+
RouterLink,
|
|
72
|
+
TranslatePipe,
|
|
73
|
+
], template: "<table>\n <thead>\n <tr>\n @for (cell of cells(); track cell.name) {\n <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of showDatas(); track $index; let index = $index) {\n <tr>\n @for (cell of cells(); track cell.name; let indexData = $index) {\n <td\n [routerLink]=\"url() + '/' + data[0]\"\n [style.maxWidth]=\"cell.width\"\n >\n {{ data[indexData + 1] }}\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{overflow:auto;width:100%}:host table{table-layout:fixed;min-width:100%;display:table;border-collapse:collapse;border-spacing:0px}:host table thead{display:table-header-group}:host table thead tr{background-color:var(--text);color:var(--text-dark);display:table-row;vertical-align:middle;outline:0px;height:32px}:host table thead tr th{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5rem;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgb(224,224,224);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table tbody{display:table-row-group;background-color:var(--text-dark)}:host table tbody tr{display:table-row;vertical-align:middle;outline:0px;height:32px}:host table tbody tr td{font-weight:400;font-size:.875rem;line-height:1.43;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid rgb(224,224,224);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}::ng-deep .dark table thead tr{background-color:var(--text-dark)!important;color:var(--text)!important}::ng-deep .dark table tbody{display:table-row-group;background-color:var(--text)!important}::ng-deep .dark table tbody td{cursor:pointer;border-bottom:1px solid rgb(81,81,81)!important}\n"] }]
|
|
74
|
+
}], ctorParameters: () => [] });
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Generated bundle index. Do not edit.
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
export { TableComponent };
|
|
81
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-table.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-table.mjs","sources":["../../../projects/ng-dsv/ds/table/component/table.component.ts","../../../projects/ng-dsv/ds/table/component/table.component.html","../../../projects/ng-dsv/ds/table/ng-vagabond-lab-ng-dsv-ds-table.ts"],"sourcesContent":["import { Component, effect, input, signal } from \"@angular/core\";\nimport { RouterLink } from \"@angular/router\";\nimport { JSONObject } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { TranslatePipe } from \"@ngx-translate/core\";\nimport { TableDto } from \"../dto/table.dto\";\n\n@Component({\n selector: \"dsv-table\",\n standalone: true,\n imports: [\n RouterLink,\n TranslatePipe,\n ],\n templateUrl: \"./table.component.html\",\n styleUrls: [\"./table.component.scss\"]\n})\nexport class TableComponent {\n\n url = input.required<string>();\n\n cells = input.required<TableDto[]>();\n datas = input.required<JSONObject[]>();\n\n max = input<number>(10);\n\n showDatas = signal<string[][]>([]);\n\n constructor() {\n effect(() => {\n let datas: JSONObject[] = this.datas();\n if (this.max() > 0) {\n datas = [];\n for (let i = 0; i < this.max(); i++) {\n const data = this.datas()?.[i] ? this.datas()[i] : { id: i + 1 } as JSONObject;\n datas.push(data);\n }\n }\n\n const showDatas: string[][] = [];\n datas.forEach(data => {\n const showData: string[] = [];\n showData.push(this.getValue(data, \"id\", false));\n this.cells().forEach(cell => {\n showData.push(this.getValue(data, cell.name, cell.date ?? false));\n });\n showDatas.push(showData);\n })\n this.showDatas.set(showDatas);\n });\n }\n\n getValue(obj: JSONObject, key: string, isDate: boolean): any {\n let value: string = obj[key as keyof JSONObject];\n if (key.includes('.')) {\n const keys = key.split('.');\n let recurse: JSONObject = obj;\n keys.forEach(key2 => {\n if (recurse) {\n if (Array.isArray(recurse)) {\n recurse = (recurse as JSONObject[]).map(item => item[key2 as keyof JSONObject]).join(',') as JSONObject;\n } else {\n recurse = recurse[key2 as keyof JSONObject];\n }\n }\n });\n value = recurse?.toString();\n }\n if (isDate && value) {\n value = this.formatDate(value);\n }\n return value;\n }\n\n formatDate(dateString: string): string {\n const date = new Date(dateString);\n\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n\n return `${day}/${month}/${year} ${hours}:${minutes}`;\n }\n}","<table>\n <thead>\n <tr>\n @for (cell of cells(); track cell.name) {\n <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of showDatas(); track $index; let index = $index) {\n <tr>\n @for (cell of cells(); track cell.name; let indexData = $index) {\n <td\n [routerLink]=\"url() + '/' + data[0]\"\n [style.maxWidth]=\"cell.width\"\n >\n {{ data[indexData + 1] }}\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ class DsvThemeSwitchComponent {
|
|
|
77
77
|
return this.themeService.themeMode() === 'light';
|
|
78
78
|
}
|
|
79
79
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvThemeSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: DsvThemeSwitchComponent, isStandalone: true, selector: "dsv-theme-switch", ngImport: i0, template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"medium\"\n [noHover]=\"true\"\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", "noHover"], outputs: ["callback"] }] });
|
|
80
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: DsvThemeSwitchComponent, isStandalone: true, selector: "dsv-theme-switch", ngImport: i0, template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"medium\"\n [noHover]=\"true\"\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", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
81
81
|
}
|
|
82
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: DsvThemeSwitchComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
@@ -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, effect, 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 constructor() {\n effect(() => {\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}\n","<ng-content></ng-content>\n<div id=\"collapse\"></div>\n","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 [noHover]=\"true\"\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
|
+
{"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, effect, 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 constructor() {\n effect(() => {\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}\n","<ng-content></ng-content>\n<div id=\"collapse\"></div>\n","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 [noHover]=\"true\"\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-vagabond-lab/ng-dsv",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.75",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.0.0",
|
|
6
6
|
"@angular/core": "^20.0.0"
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"types": "./index.d.ts",
|
|
20
20
|
"default": "./fesm2022/ng-vagabond-lab-ng-dsv.mjs"
|
|
21
21
|
},
|
|
22
|
-
"./auth": {
|
|
23
|
-
"types": "./auth/index.d.ts",
|
|
24
|
-
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-auth.mjs"
|
|
25
|
-
},
|
|
26
22
|
"./api": {
|
|
27
23
|
"types": "./api/index.d.ts",
|
|
28
24
|
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-api.mjs"
|
|
29
25
|
},
|
|
26
|
+
"./auth": {
|
|
27
|
+
"types": "./auth/index.d.ts",
|
|
28
|
+
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-auth.mjs"
|
|
29
|
+
},
|
|
30
30
|
"./base": {
|
|
31
31
|
"types": "./base/index.d.ts",
|
|
32
32
|
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-base.mjs"
|
|
@@ -95,6 +95,18 @@
|
|
|
95
95
|
"types": "./ds/modal/index.d.ts",
|
|
96
96
|
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs"
|
|
97
97
|
},
|
|
98
|
+
"./ds/paginate": {
|
|
99
|
+
"types": "./ds/paginate/index.d.ts",
|
|
100
|
+
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs"
|
|
101
|
+
},
|
|
102
|
+
"./ds/tab": {
|
|
103
|
+
"types": "./ds/tab/index.d.ts",
|
|
104
|
+
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs"
|
|
105
|
+
},
|
|
106
|
+
"./ds/table": {
|
|
107
|
+
"types": "./ds/table/index.d.ts",
|
|
108
|
+
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs"
|
|
109
|
+
},
|
|
98
110
|
"./ds/theme": {
|
|
99
111
|
"types": "./ds/theme/index.d.ts",
|
|
100
112
|
"default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs"
|