@ng-vagabond-lab/ng-dsv 0.0.86 → 0.0.89

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/admin/index.d.ts CHANGED
@@ -6,6 +6,31 @@ import { BaseRouteComponent } from '@ng-vagabond-lab/ng-dsv/base';
6
6
  import { TabDto } from '@ng-vagabond-lab/ng-dsv/ds/tab';
7
7
  import { ModalService } from '@ng-vagabond-lab/ng-dsv/ds/modal';
8
8
 
9
+ declare class AdminFormComponent extends BaseFormComponent {
10
+ urlBack: _angular_core.InputSignal<string | undefined>;
11
+ data: _angular_core.InputSignal<ApiDto>;
12
+ formConf: _angular_core.InputSignal<FormDto[]>;
13
+ callback: _angular_core.OutputEmitterRef<ApiDto>;
14
+ constructor();
15
+ sendForm(data: ApiDto): void;
16
+ removeValue(name: string, id: ID): void;
17
+ addValue: (name: string) => (data: ApiDto) => void;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminFormComponent, never>;
19
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminFormComponent, "dsv-admin-form-component", never, { "urlBack": { "alias": "urlBack"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "formConf": { "alias": "formConf"; "required": true; "isSignal": true; }; }, { "callback": "callback"; }, never, never, true, never>;
20
+ }
21
+
22
+ declare class AdminFormContainer extends BaseRouteComponent {
23
+ adminService: AdminService;
24
+ tabs: _angular_core.WritableSignal<TabDto[]>;
25
+ tab: _angular_core.WritableSignal<string>;
26
+ tabConfig: _angular_core.WritableSignal<AdminTabDto | undefined>;
27
+ constructor();
28
+ findById(id: string): void;
29
+ sendForm(data: ApiDto): void;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminFormContainer, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminFormContainer, "dsv-admin-form", never, {}, {}, never, never, true, never>;
32
+ }
33
+
9
34
  interface ManyToManyDto {
10
35
  name: string;
11
36
  endPoint: string;
@@ -51,19 +76,6 @@ interface AdminTabConfDto {
51
76
  tabs: AdminTabDto[];
52
77
  }
53
78
 
54
- declare class AdminFormComponent extends BaseFormComponent {
55
- urlBack: _angular_core.InputSignal<string | undefined>;
56
- data: _angular_core.InputSignal<ApiDto>;
57
- formConf: _angular_core.InputSignal<FormDto[]>;
58
- callback: _angular_core.OutputEmitterRef<ApiDto>;
59
- constructor();
60
- sendForm(data: ApiDto): void;
61
- removeValue(name: string, id: ID): void;
62
- addValue: (name: string) => (data: ApiDto) => void;
63
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminFormComponent, never>;
64
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminFormComponent, "dsv-admin-form-component", never, { "urlBack": { "alias": "urlBack"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "formConf": { "alias": "formConf"; "required": true; "isSignal": true; }; }, { "callback": "callback"; }, never, never, true, never>;
65
- }
66
-
67
79
  declare class AdminService {
68
80
  apiService: ApiService;
69
81
  tabs: _angular_core.WritableSignal<AdminTabConfDto>;
@@ -76,18 +88,6 @@ declare class AdminService {
76
88
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AdminService>;
77
89
  }
78
90
 
79
- declare class AdminFormContainer extends BaseRouteComponent {
80
- adminService: AdminService;
81
- tabs: _angular_core.WritableSignal<TabDto[]>;
82
- tab: _angular_core.WritableSignal<string>;
83
- tabConfig: _angular_core.WritableSignal<AdminTabDto | undefined>;
84
- constructor();
85
- findById(id: string): void;
86
- sendForm(data: ApiDto): void;
87
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdminFormContainer, never>;
88
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AdminFormContainer, "dsv-admin-form", never, {}, {}, never, never, true, never>;
89
- }
90
-
91
91
  declare class AdminSearchModalContainer {
92
92
  modalService: ModalService;
93
93
  adminService: AdminService;
package/base/index.d.ts CHANGED
@@ -1,43 +1,51 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
3
+ import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
2
4
  import * as _angular_router from '@angular/router';
3
5
  import { ActivatedRoute } from '@angular/router';
4
6
  import { Subscription } from 'rxjs';
5
7
 
8
+ declare abstract class BaseAppScrollComponent {
9
+ environmentService: EnvironmentService;
10
+ apiService: ApiService;
11
+ scrollService: ScrollService;
12
+ scroll: _angular_core.WritableSignal<number>;
13
+ load: _angular_core.WritableSignal<boolean>;
14
+ constructor();
15
+ doScroll(): void;
16
+ }
17
+
6
18
  declare abstract class BaseRouteComponent {
7
19
  activatedRoute: ActivatedRoute;
8
- routeParams: i0.Signal<_angular_router.Params | undefined>;
20
+ routeParams: _angular_core.Signal<_angular_router.Params | undefined>;
9
21
  routeObservable: Subscription | null;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseRouteComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<BaseRouteComponent, "ng-component", never, {}, {}, never, never, true, never>;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseRouteComponent, never>;
23
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseRouteComponent, "ng-component", never, {}, {}, never, never, true, never>;
24
+ }
25
+
26
+ declare abstract class BaseScrollComponent {
27
+ readonly scrollService: ScrollService;
28
+ constructor();
29
+ loadMore(): void;
30
+ abstract doLoad(): void;
31
+ }
32
+
33
+ declare abstract class BaseService {
34
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseService, never>;
35
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BaseService>;
12
36
  }
13
37
 
14
38
  declare class ScrollService {
15
- scrolls: i0.WritableSignal<Map<string, number>>;
16
- isScrollDown: i0.WritableSignal<Map<string, boolean>>;
17
- blocked: i0.WritableSignal<Map<string, boolean>>;
39
+ scrolls: _angular_core.WritableSignal<Map<string, number>>;
40
+ blocked: _angular_core.WritableSignal<Map<string, boolean>>;
41
+ scroll: _angular_core.WritableSignal<number>;
18
42
  saveScroll(scrollTop: number): void;
19
43
  getScroll(): number | undefined;
20
- saveScrollDown(isDown?: boolean): void;
21
- getScrollDown(): boolean | undefined;
22
44
  doBlocked(blocked?: boolean): void;
23
45
  doBlockedWithTimeout(blocked: boolean, timeout?: number): void;
24
46
  getlocked(): boolean | undefined;
25
- static ɵfac: i0.ɵɵFactoryDeclaration<ScrollService, never>;
26
- static ɵprov: i0.ɵɵInjectableDeclaration<ScrollService>;
27
- }
28
-
29
- declare abstract class BaseScrollComponent {
30
- scrollService: ScrollService;
31
- initScroll: i0.WritableSignal<boolean>;
32
- constructor();
33
- onScroll(scrollName?: string): void;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseScrollComponent, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<BaseScrollComponent, "ng-component", never, {}, {}, never, never, true, never>;
36
- }
37
-
38
- declare abstract class BaseService {
39
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseService, never>;
40
- static ɵprov: i0.ɵɵInjectableDeclaration<BaseService>;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollService, never>;
48
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollService>;
41
49
  }
42
50
 
43
- export { BaseRouteComponent, BaseScrollComponent, BaseService, ScrollService };
51
+ export { BaseAppScrollComponent, BaseRouteComponent, BaseScrollComponent, BaseService, ScrollService };
@@ -0,0 +1,14 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ScrollService } from '@ng-vagabond-lab/ng-dsv/base';
3
+
4
+ declare const SCROLL_BOTTOM_MIN = 50;
5
+ declare class ScrollInfiniteContainer {
6
+ scrollService: ScrollService;
7
+ class: _angular_core.InputSignal<string>;
8
+ callback: _angular_core.OutputEmitterRef<void>;
9
+ doScroll(): void;
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollInfiniteContainer, never>;
11
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollInfiniteContainer, "dsv-scroll-infinite", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "callback": "callback"; }, never, ["*"], true, never>;
12
+ }
13
+
14
+ export { SCROLL_BOTTOM_MIN, ScrollInfiniteContainer };
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, signal, Injectable, input, output, effect, Component } from '@angular/core';
2
+ import { input, output, effect, Component, inject, signal, Injectable } from '@angular/core';
3
3
  import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
4
4
  import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
5
- import { SearchbarComponent, BaseFormComponent, FormComponent, FormInputComponent, FormCheckboxComponent } from '@ng-vagabond-lab/ng-dsv/ds/form';
5
+ import { BaseFormComponent, FormComponent, FormInputComponent, FormCheckboxComponent, SearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form';
6
6
  import { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';
7
7
  import { ModalService, ModalButtonComponent, ModalComponent } from '@ng-vagabond-lab/ng-dsv/ds/modal';
8
8
  import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
@@ -13,77 +13,6 @@ import { TabsComponent } from '@ng-vagabond-lab/ng-dsv/ds/tab';
13
13
  import { TableComponent } from '@ng-vagabond-lab/ng-dsv/ds/table';
14
14
  import { v4 } from 'uuid';
15
15
 
16
- class AdminService {
17
- apiService = inject(ApiService);
18
- tabs = signal({});
19
- datas = signal({});
20
- data = signal({});
21
- get(endpoint, fields, search, page = 0, max = 10, callback) {
22
- const url = '/' + endpoint + '/findBy?fields=' + fields + '&values=' + search + '&first=' + page + '&max=' + max;
23
- const callbackResponse = callback ?? ((data) => {
24
- this.datas.set(data);
25
- });
26
- this.apiService.get(encodeURI(url), callbackResponse);
27
- }
28
- put(endpoint, data) {
29
- const url = '/' + endpoint;
30
- this.apiService.put(encodeURI(url), data, (response) => {
31
- this.data.set(response);
32
- });
33
- }
34
- findById(endpoint, id) {
35
- const url = '/' + endpoint + '/' + id;
36
- this.apiService.get(encodeURI(url), (data) => {
37
- this.data.set(data);
38
- });
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, providedIn: "root" });
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, decorators: [{
44
- type: Injectable,
45
- args: [{
46
- providedIn: "root",
47
- }]
48
- }] });
49
-
50
- class AdminSearchModalContainer {
51
- modalService = inject(ModalService);
52
- adminService = inject(AdminService);
53
- m2em = input.required();
54
- search = signal('');
55
- datas = signal([]);
56
- callback = output();
57
- constructor() {
58
- effect(() => {
59
- this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {
60
- this.datas.set(data.content);
61
- });
62
- });
63
- }
64
- getValue(data, name) {
65
- return data[name];
66
- }
67
- doSearch(search) {
68
- this.search.set(search);
69
- }
70
- clickItem = (data) => {
71
- this.callback.emit(data);
72
- this.modalService.close('m2m');
73
- };
74
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminSearchModalContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: AdminSearchModalContainer, isStandalone: true, selector: "admin-search-modal", inputs: { m2em: { classPropertyName: "m2em", publicName: "m2em", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un e\u0301le\u0301ment\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n", styles: ["::ng-deep admin-search-modal .modal{width:70%!important;left:15%!important;height:65%!important;top:20%!important}::ng-deep admin-search-modal .modal .modal-content{align-content:flex-start!important}\n"], dependencies: [{ kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "url", "small"], outputs: ["callback"] }, { kind: "component", type: ModalButtonComponent, selector: "app-modal-button", inputs: ["id", "icon", "text", "color"] }, { kind: "component", type: ModalComponent, selector: "app-modal", inputs: ["id", "title", "class"] }, { kind: "component", type: SearchbarComponent, selector: "form-searchbar", inputs: ["search"], outputs: ["onSearch"] }] });
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminSearchModalContainer, decorators: [{
78
- type: Component,
79
- args: [{ selector: 'admin-search-modal', standalone: true, imports: [
80
- DsvItemComponent,
81
- ModalButtonComponent,
82
- ModalComponent,
83
- SearchbarComponent,
84
- ], template: "<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un e\u0301le\u0301ment\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n", styles: ["::ng-deep admin-search-modal .modal{width:70%!important;left:15%!important;height:65%!important;top:20%!important}::ng-deep admin-search-modal .modal .modal-content{align-content:flex-start!important}\n"] }]
85
- }], ctorParameters: () => [] });
86
-
87
16
  class AdminFormComponent extends BaseFormComponent {
88
17
  urlBack = input();
89
18
  data = input.required();
@@ -168,6 +97,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
168
97
  ], template: "<dsv-card [title]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n <dsv-admin-form-component\n [data]=\"adminService.data()\"\n [formConf]=\"tabConfig()?.form!\"\n [urlBack]=\"'/admin/' + tab()\"\n (callback)=\"sendForm($event)\"\n />\n</dsv-card>\n", styles: [":host{width:100%}\n"] }]
169
98
  }], ctorParameters: () => [] });
170
99
 
100
+ class AdminService {
101
+ apiService = inject(ApiService);
102
+ tabs = signal({});
103
+ datas = signal({});
104
+ data = signal({});
105
+ get(endpoint, fields, search, page = 0, max = 10, callback) {
106
+ const url = '/' + endpoint + '/findBy?fields=' + fields + '&values=' + search + '&first=' + page + '&max=' + max;
107
+ const callbackResponse = callback ?? ((data) => {
108
+ this.datas.set(data);
109
+ });
110
+ this.apiService.get(encodeURI(url), callbackResponse);
111
+ }
112
+ put(endpoint, data) {
113
+ const url = '/' + endpoint;
114
+ this.apiService.put(encodeURI(url), data, (response) => {
115
+ this.data.set(response);
116
+ });
117
+ }
118
+ findById(endpoint, id) {
119
+ const url = '/' + endpoint + '/' + id;
120
+ this.apiService.get(encodeURI(url), (data) => {
121
+ this.data.set(data);
122
+ });
123
+ }
124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
125
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, providedIn: "root" });
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminService, decorators: [{
128
+ type: Injectable,
129
+ args: [{
130
+ providedIn: "root",
131
+ }]
132
+ }] });
133
+
134
+ class AdminSearchModalContainer {
135
+ modalService = inject(ModalService);
136
+ adminService = inject(AdminService);
137
+ m2em = input.required();
138
+ search = signal('');
139
+ datas = signal([]);
140
+ callback = output();
141
+ constructor() {
142
+ effect(() => {
143
+ this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {
144
+ this.datas.set(data.content);
145
+ });
146
+ });
147
+ }
148
+ getValue(data, name) {
149
+ return data[name];
150
+ }
151
+ doSearch(search) {
152
+ this.search.set(search);
153
+ }
154
+ clickItem = (data) => {
155
+ this.callback.emit(data);
156
+ this.modalService.close('m2m');
157
+ };
158
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminSearchModalContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: AdminSearchModalContainer, isStandalone: true, selector: "admin-search-modal", inputs: { m2em: { classPropertyName: "m2em", publicName: "m2em", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un e\u0301le\u0301ment\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n", styles: ["::ng-deep admin-search-modal .modal{width:70%!important;left:15%!important;height:65%!important;top:20%!important}::ng-deep admin-search-modal .modal .modal-content{align-content:flex-start!important}\n"], dependencies: [{ kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "url", "small"], outputs: ["callback"] }, { kind: "component", type: ModalButtonComponent, selector: "app-modal-button", inputs: ["id", "icon", "text", "color"] }, { kind: "component", type: ModalComponent, selector: "app-modal", inputs: ["id", "title", "class"] }, { kind: "component", type: SearchbarComponent, selector: "form-searchbar", inputs: ["search"], outputs: ["onSearch"] }] });
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: AdminSearchModalContainer, decorators: [{
162
+ type: Component,
163
+ args: [{ selector: 'admin-search-modal', standalone: true, imports: [
164
+ DsvItemComponent,
165
+ ModalButtonComponent,
166
+ ModalComponent,
167
+ SearchbarComponent,
168
+ ], template: "<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un e\u0301le\u0301ment\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n", styles: ["::ng-deep admin-search-modal .modal{width:70%!important;left:15%!important;height:65%!important;top:20%!important}::ng-deep admin-search-modal .modal .modal-content{align-content:flex-start!important}\n"] }]
169
+ }], ctorParameters: () => [] });
170
+
171
171
  class AdminSearchContainer extends BaseRouteComponent {
172
172
  adminService = inject(AdminService);
173
173
  tabs = signal([]);
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-admin.mjs","sources":["../../../projects/ng-dsv/admin/service/admin.service.ts","../../../projects/ng-dsv/admin/container/modal/admin.search.modal.container.ts","../../../projects/ng-dsv/admin/container/modal/admin.search.modal.container.html","../../../projects/ng-dsv/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/admin/component/form/admin.form.component.html","../../../projects/ng-dsv/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/admin/container/form/admin.form.container.html","../../../projects/ng-dsv/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/admin/container/search/admin.search.container.html","../../../projects/ng-dsv/admin/dto/admin.default.dto.ts","../../../projects/ng-dsv/admin/ng-vagabond-lab-ng-dsv-admin.ts"],"sourcesContent":["import { inject, Injectable, signal } from \"@angular/core\";\nimport { ApiDto, ApiService, PageableDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { AdminTabConfDto } from \"../dto/admin.dto\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AdminService {\n apiService = inject(ApiService);\n\n tabs = signal<AdminTabConfDto>({} as AdminTabConfDto);\n\n datas = signal<PageableDto<ApiDto[]>>({} as PageableDto<ApiDto[]>);\n data = signal<ApiDto>({} as ApiDto);\n\n get(endpoint: string, fields: string, search: string, page: number = 0, max: number = 10, callback?: (data: PageableDto<ApiDto[]>) => void) {\n const url = '/' + endpoint + '/findBy?fields=' + fields + '&values=' + search + '&first=' + page + '&max=' + max;\n\n const callbackResponse = callback ?? ((data: PageableDto<ApiDto[]>) => {\n this.datas.set(data);\n });\n this.apiService.get<PageableDto<ApiDto[]>>(encodeURI(url), callbackResponse)\n }\n\n put(endpoint: string, data: ApiDto) {\n const url = '/' + endpoint;\n this.apiService.put<ApiDto>(encodeURI(url), data, (response) => {\n this.data.set(response);\n })\n }\n\n findById(endpoint: string, id: string) {\n const url = '/' + endpoint + '/' + id;\n this.apiService.get<ApiDto>(encodeURI(url), (data) => {\n this.data.set(data);\n })\n }\n}","import { Component, effect, inject, input, output, signal } from \"@angular/core\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { SearchbarComponent } from \"@ng-vagabond-lab/ng-dsv/ds/form\";\nimport { DsvItemComponent } from \"@ng-vagabond-lab/ng-dsv/ds/item\";\nimport { ModalButtonComponent, ModalComponent, ModalService } from \"@ng-vagabond-lab/ng-dsv/ds/modal\";\nimport { ManyToManyDto } from \"../../dto/admin.dto\";\nimport { AdminService } from \"../../service/admin.service\";\n\n@Component({\n selector: 'admin-search-modal',\n standalone: true,\n imports: [\n DsvItemComponent,\n ModalButtonComponent,\n ModalComponent,\n SearchbarComponent,\n ],\n templateUrl: './admin.search.modal.container.html',\n styleUrls: ['./admin.search.modal.container.scss']\n})\nexport class AdminSearchModalContainer {\n modalService = inject(ModalService);\n adminService = inject(AdminService);\n\n m2em = input.required<ManyToManyDto>();\n\n search = signal<string>('');\n datas = signal<(ApiDto)[]>([]);\n\n callback = output<ApiDto>();\n\n constructor() {\n effect(() => {\n this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {\n this.datas.set(data.content);\n });\n });\n }\n\n getValue(data: ApiDto, name: string) {\n return data[name as keyof ApiDto] as string;\n }\n\n doSearch(search: string) {\n this.search.set(search);\n }\n\n clickItem = (data: ApiDto) => {\n this.callback.emit(data);\n this.modalService.close('m2m');\n }\n}","<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un élément\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n","import { Component, effect, input, output } from \"@angular/core\";\nimport { FormControl, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { ApiDto, ID } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { BaseFormComponent, FormCheckboxComponent, FormComponent, FormInputComponent } from \"@ng-vagabond-lab/ng-dsv/ds/form\";\nimport { AdminSearchModalContainer } from \"../../container/modal/admin.search.modal.container\";\nimport { FormDto } from \"../../dto/admin.dto\";\n\n@Component({\n selector: 'dsv-admin-form-component',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n DsvButtonComponent,\n FormComponent,\n FormInputComponent,\n AdminSearchModalContainer,\n FormCheckboxComponent\n ],\n templateUrl: './admin.form.component.html',\n styleUrls: ['./admin.form.component.scss']\n})\nexport class AdminFormComponent extends BaseFormComponent {\n urlBack = input<string>();\n data = input.required<ApiDto>();\n formConf = input.required<FormDto[]>();\n\n callback = output<ApiDto>();\n\n constructor() {\n super();\n effect(() => {\n this.formBuilder.control('a')\n\n let formControl = {} as { [key: string]: FormControl };\n this.formConf().forEach(conf => {\n let value = this.data()[conf.name as keyof ApiDto];\n if (conf.type === 'datetime-local' && value) {\n value = (value as string).substring(0, 16);\n }\n const required = conf.required || false;\n formControl[conf.name] = new FormControl(value, required ? Validators.required : null);\n })\n this.form = this.formBuilder.group(formControl);\n })\n }\n\n sendForm(data: ApiDto) {\n this.callback.emit(data);\n }\n\n removeValue(name: string, id: ID) {\n this.form.value[name] = this.form.value[name].filter((value: ApiDto) => value.id !== id);\n }\n\n addValue = (name: string) => (data: ApiDto) => {\n const find = this.form.value[name].find((value: ApiDto) => value.id === data.id);\n if (!find) {\n this.form.value[name].push(data);\n }\n }\n}","<app-form [form]=\"form\" [urlBack]=\"urlBack()!\" (callback)=\"sendForm($event)\">\n <div class=\"form-container\">\n @for (field of formConf(); track field.name) {\n <div [class.width50]=\"field.className === 'width50'\">\n @if (field.type === \"text\" || field.type === \"datetime-local\") {\n <dsv-form-input\n [form]=\"form\"\n [field]=\"field.name\"\n [type]=\"field.type\"\n [required]=\"field.required ?? false\"\n />\n }\n @if (field.type === \"switch\") {\n <dsv-form-checkbox [form]=\"form\" [field]=\"field.name\" />\n }\n @if (field.type === \"m2m\") {\n <div class=\"m2m\">\n @for (value of form.value[field.name]; track value.id) {\n <div class=\"chip\">\n {{ value.name }}\n <dsv-button\n icon=\"ri-delete-bin-line\"\n variant=\"text\"\n color=\"error\"\n (callback)=\"removeValue(field.name, value.id)\"\n ></dsv-button>\n </div>\n }\n <admin-search-modal\n [m2em]=\"field.m2m!\"\n (callback)=\"addValue(field.name)($event)\"\n />\n </div>\n }\n </div>\n }\n </div>\n</app-form>\n","import { Component, effect, inject, signal } from \"@angular/core\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { BaseRouteComponent } from \"@ng-vagabond-lab/ng-dsv/base\";\nimport { DsvCardComponent } from \"@ng-vagabond-lab/ng-dsv/ds/card\";\nimport { TabDto } from \"@ng-vagabond-lab/ng-dsv/ds/tab\";\nimport { AdminFormComponent } from \"../../component/form/admin.form.component\";\nimport { AdminTabDto } from \"../../dto/admin.dto\";\nimport { AdminService } from \"../../service/admin.service\";\n\n@Component({\n selector: 'dsv-admin-form',\n standalone: true,\n imports: [\n DsvCardComponent,\n AdminFormComponent\n ],\n templateUrl: './admin.form.container.html',\n styleUrls: ['./admin.form.container.scss']\n})\nexport class AdminFormContainer extends BaseRouteComponent {\n adminService = inject(AdminService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n constructor() {\n super();\n effect(() => {\n this.tab.set(this.routeParams()?.['type']);\n const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab());\n this.tabConfig.set(tab);\n this.findById(this.routeParams()?.['id']);\n });\n effect(() => {\n\n });\n }\n\n findById(id: string) {\n this.adminService.findById(this.tabConfig()?.name!, id);\n }\n\n sendForm(data: ApiDto) {\n this.adminService.put(this.tabConfig()?.name!, {\n ...this.adminService.data(),\n ...data\n });\n }\n}","<dsv-card [title]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n <dsv-admin-form-component\n [data]=\"adminService.data()\"\n [formConf]=\"tabConfig()?.form!\"\n [urlBack]=\"'/admin/' + tab()\"\n (callback)=\"sendForm($event)\"\n />\n</dsv-card>\n","import { Component, effect, inject, signal } from \"@angular/core\";\nimport { BaseRouteComponent } from \"@ng-vagabond-lab/ng-dsv/base\";\nimport { PaginateComponent } from \"@ng-vagabond-lab/ng-dsv/ds/paginate\";\nimport { TabDto, TabsComponent } from \"@ng-vagabond-lab/ng-dsv/ds/tab\";\nimport { TableComponent } from \"@ng-vagabond-lab/ng-dsv/ds/table\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { AdminTabDto } from \"../../dto/admin.dto\";\nimport { AdminService } from \"../../service/admin.service\";\n\n\n@Component({\n selector: \"app-admin-search\",\n standalone: true,\n imports: [\n TabsComponent,\n TableComponent,\n PaginateComponent\n ],\n templateUrl: \"./admin.search.container.html\",\n styleUrls: [\"./admin.search.container.scss\"]\n})\nexport class AdminSearchContainer extends BaseRouteComponent {\n adminService = inject(AdminService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n page = signal<number>(0);\n\n constructor() {\n super();\n effect(() => {\n this.tab.set(this.routeParams()?.['type']);\n const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab())\n this.tabConfig.set(tab);\n this.gotoPage(0);\n });\n effect(() => {\n const tabs = this.adminService.tabs()?.tabs;\n const tabsDtos: TabDto[] = [];\n if (tabs) {\n tabs.forEach((tab) => {\n const tabsDto = {} as TabDto;\n tabsDto.id = uuidv4();\n tabsDto.title = tab.name;\n tabsDto.url = '/admin/' + tab.name;\n tabsDtos.push(tabsDto);\n });\n }\n this.tabs.set(tabsDtos);\n });\n }\n\n gotoPage(page: number) {\n this.page.set(page);\n this.adminService.get(this.tabConfig()?.name!, this.tabConfig()?.findByChamps!, '', page, this.adminService.tabs()?.max);\n }\n}","<dsv-tabs-component [tabs]=\"tabs()\" [active]=\"tab()\" />\n<dsv-table\n [cells]=\"tabConfig()?.cells!\"\n [datas]=\"adminService.datas().content!\"\n [max]=\"adminService.tabs().max!\"\n [url]=\"'/admin/' + tab()\"\n></dsv-table>\n<app-paginate-component\n [page]=\"page()\"\n [max]=\"adminService.datas().totalPages!\"\n [nb]=\"adminService.datas().totalElements!\"\n (callback)=\"gotoPage($event)\"\n/>\n","import { AdminTabDto } from \"./admin.dto\";\n\nexport const ADMIN_COL = [\n { label: 'AUTH.FIELDS.CREATE_DATE', width: '145px', name: 'creationDate', date: true, order: true },\n { label: 'AUTH.FIELDS.ACTIVE', width: '70px', name: 'active', order: true },\n];\n\nexport const ADMIN_PROFILE_M2M = {\n name: 'name',\n endPoint: 'profile',\n fields: 'name%',\n order: 'name',\n orderBy: 'asc',\n};\n\nexport const ADMIN_INPUT = [\n { name: 'creationDate', label: 'AUTH.FIELDS.CREATE_DATE', type: 'datetime-local', required: false, className: 'width50' },\n { name: 'updatedDate', label: 'AUTH.FIELDS.UPDATE_DATE', type: 'datetime-local', required: false, className: 'width50' },\n {\n name: 'deletedDate',\n label: 'AUTH.FIELDS.DELETE_DATE',\n type: 'datetime-local',\n required: false,\n className: 'width50',\n disabled: true,\n },\n { name: 'active', label: 'AUTH.FIELDS.ACTIVE', type: 'switch', required: false, className: 'width50' },\n];\n\nexport const ADMIN_USER: AdminTabDto[] = [\n {\n name: 'user',\n label: 'AUTH.USER:TITLE',\n findByChamps: 'username%And|Email%',\n sortBy: 'creationDate',\n sortByAsc: 'desc',\n cells: [\n { label: 'AUTH.FIELDS.LOGIN', name: 'username', order: true },\n { label: 'AUTH.FIELDS.EMAIL', width: '240px', name: 'email', order: true },\n { label: 'AUTH.FIELDS.PROFILES', name: 'profiles.name' },\n { label: 'AUTH.FIELDS.LAST_CONNEXION_DATE', width: '150px', name: 'lastConnexionDate', date: true, order: true },\n ...ADMIN_COL,\n ],\n form: [\n { name: 'username', label: 'AUTH.FIELDS.LOGIN', type: 'text', required: true },\n { name: 'password', label: 'AUTH.FIELDS.PASSWORD', type: 'password', required: false },\n { name: 'email', label: 'AUTH.FIELDS.EMAIL', type: 'text', email: true, required: true },\n {\n name: 'profiles',\n label: 'AUTH.FIELDS.PFOFILES',\n type: 'm2m',\n required: false,\n m2m: ADMIN_PROFILE_M2M,\n array: true,\n },\n { name: 'lastConnexionDate', label: 'AUTH.FIELDS.LAST_CONNEXION_DATE', type: 'datetime-local', required: false },\n { name: 'activationToken', label: 'AUTH.FIELDS.ACTIVATION_TOKEN', type: 'text', className: 'width50' },\n { name: 'emailActivation', label: 'AUTH.FIELDS.EMAIL_ACTIVIATION', type: 'switch', className: 'width50' },\n { name: 'identityToken', label: 'AUTH.FIELDS.IDENTITY_TOKEN', type: 'text', className: 'width50' },\n { name: 'identityTokenDateEnd', label: 'AUTH.FIELDS.IDENTITY_TOKEN_DATE', type: 'datetime-local', className: 'width50' },\n { name: 'googleId', label: 'AUTH.FIELDS.GOOGLE_ID', type: 'text', className: 'width50' },\n { name: 'facebookId', label: 'AUTH.FIELDS.FACEBOOK_ID', type: 'text', className: 'width50' },\n ...ADMIN_INPUT,\n ],\n },\n];\n\n\nexport const ADMIN_PROFILE: AdminTabDto[] = [\n {\n name: 'profile',\n label: 'AUTH.PROFILE:TITLE',\n findByChamps: 'name%',\n sortBy: 'name',\n cells: [\n { label: 'AUTH.FIELDS.NAME', name: 'name', order: true },\n { label: 'AUTH.FIELDS.ROLES', name: 'roles', order: true },\n ...ADMIN_COL,\n ],\n form: [\n { name: 'name', label: 'AUTH.FIELDS.NAME', type: 'text', required: true },\n { name: 'roles', label: 'AUTH.FIELDS.ROLES', type: 'text', required: true },\n ...ADMIN_INPUT,\n ],\n },\n];","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-admin.mjs","sources":["../../../projects/ng-dsv/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/admin/component/form/admin.form.component.html","../../../projects/ng-dsv/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/admin/container/form/admin.form.container.html","../../../projects/ng-dsv/admin/service/admin.service.ts","../../../projects/ng-dsv/admin/container/modal/admin.search.modal.container.ts","../../../projects/ng-dsv/admin/container/modal/admin.search.modal.container.html","../../../projects/ng-dsv/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/admin/container/search/admin.search.container.html","../../../projects/ng-dsv/admin/dto/admin.default.dto.ts","../../../projects/ng-dsv/admin/ng-vagabond-lab-ng-dsv-admin.ts"],"sourcesContent":["import { Component, effect, input, output } from \"@angular/core\";\nimport { FormControl, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { ApiDto, ID } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { DsvButtonComponent } from \"@ng-vagabond-lab/ng-dsv/ds/button\";\nimport { BaseFormComponent, FormCheckboxComponent, FormComponent, FormInputComponent } from \"@ng-vagabond-lab/ng-dsv/ds/form\";\nimport { AdminSearchModalContainer, FormDto } from \"../../public-api\";\n\n@Component({\n selector: 'dsv-admin-form-component',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n DsvButtonComponent,\n FormComponent,\n FormInputComponent,\n AdminSearchModalContainer,\n FormCheckboxComponent\n ],\n templateUrl: './admin.form.component.html',\n styleUrls: ['./admin.form.component.scss']\n})\nexport class AdminFormComponent extends BaseFormComponent {\n urlBack = input<string>();\n data = input.required<ApiDto>();\n formConf = input.required<FormDto[]>();\n\n callback = output<ApiDto>();\n\n constructor() {\n super();\n effect(() => {\n this.formBuilder.control('a')\n\n let formControl = {} as { [key: string]: FormControl };\n this.formConf().forEach(conf => {\n let value = this.data()[conf.name as keyof ApiDto];\n if (conf.type === 'datetime-local' && value) {\n value = (value as string).substring(0, 16);\n }\n const required = conf.required || false;\n formControl[conf.name] = new FormControl(value, required ? Validators.required : null);\n })\n this.form = this.formBuilder.group(formControl);\n })\n }\n\n sendForm(data: ApiDto) {\n this.callback.emit(data);\n }\n\n removeValue(name: string, id: ID) {\n this.form.value[name] = this.form.value[name].filter((value: ApiDto) => value.id !== id);\n }\n\n addValue = (name: string) => (data: ApiDto) => {\n const find = this.form.value[name].find((value: ApiDto) => value.id === data.id);\n if (!find) {\n this.form.value[name].push(data);\n }\n }\n}","<app-form [form]=\"form\" [urlBack]=\"urlBack()!\" (callback)=\"sendForm($event)\">\n <div class=\"form-container\">\n @for (field of formConf(); track field.name) {\n <div [class.width50]=\"field.className === 'width50'\">\n @if (field.type === \"text\" || field.type === \"datetime-local\") {\n <dsv-form-input\n [form]=\"form\"\n [field]=\"field.name\"\n [type]=\"field.type\"\n [required]=\"field.required ?? false\"\n />\n }\n @if (field.type === \"switch\") {\n <dsv-form-checkbox [form]=\"form\" [field]=\"field.name\" />\n }\n @if (field.type === \"m2m\") {\n <div class=\"m2m\">\n @for (value of form.value[field.name]; track value.id) {\n <div class=\"chip\">\n {{ value.name }}\n <dsv-button\n icon=\"ri-delete-bin-line\"\n variant=\"text\"\n color=\"error\"\n (callback)=\"removeValue(field.name, value.id)\"\n ></dsv-button>\n </div>\n }\n <admin-search-modal\n [m2em]=\"field.m2m!\"\n (callback)=\"addValue(field.name)($event)\"\n />\n </div>\n }\n </div>\n }\n </div>\n</app-form>\n","import { Component, effect, inject, signal } from \"@angular/core\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { BaseRouteComponent } from \"@ng-vagabond-lab/ng-dsv/base\";\nimport { DsvCardComponent } from \"@ng-vagabond-lab/ng-dsv/ds/card\";\nimport { TabDto } from \"@ng-vagabond-lab/ng-dsv/ds/tab\";\nimport { AdminFormComponent, AdminService, AdminTabDto } from \"../../public-api\";\n\n@Component({\n selector: 'dsv-admin-form',\n standalone: true,\n imports: [\n DsvCardComponent,\n AdminFormComponent\n ],\n templateUrl: './admin.form.container.html',\n styleUrls: ['./admin.form.container.scss']\n})\nexport class AdminFormContainer extends BaseRouteComponent {\n adminService = inject(AdminService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n constructor() {\n super();\n effect(() => {\n this.tab.set(this.routeParams()?.['type']);\n const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab());\n this.tabConfig.set(tab);\n this.findById(this.routeParams()?.['id']);\n });\n effect(() => {\n\n });\n }\n\n findById(id: string) {\n this.adminService.findById(this.tabConfig()?.name!, id);\n }\n\n sendForm(data: ApiDto) {\n this.adminService.put(this.tabConfig()?.name!, {\n ...this.adminService.data(),\n ...data\n });\n }\n}","<dsv-card [title]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n <dsv-admin-form-component\n [data]=\"adminService.data()\"\n [formConf]=\"tabConfig()?.form!\"\n [urlBack]=\"'/admin/' + tab()\"\n (callback)=\"sendForm($event)\"\n />\n</dsv-card>\n","import { inject, Injectable, signal } from \"@angular/core\";\nimport { ApiDto, ApiService, PageableDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { AdminTabConfDto } from \"../dto/admin.dto\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AdminService {\n apiService = inject(ApiService);\n\n tabs = signal<AdminTabConfDto>({} as AdminTabConfDto);\n\n datas = signal<PageableDto<ApiDto[]>>({} as PageableDto<ApiDto[]>);\n data = signal<ApiDto>({} as ApiDto);\n\n get(endpoint: string, fields: string, search: string, page: number = 0, max: number = 10, callback?: (data: PageableDto<ApiDto[]>) => void) {\n const url = '/' + endpoint + '/findBy?fields=' + fields + '&values=' + search + '&first=' + page + '&max=' + max;\n\n const callbackResponse = callback ?? ((data: PageableDto<ApiDto[]>) => {\n this.datas.set(data);\n });\n this.apiService.get<PageableDto<ApiDto[]>>(encodeURI(url), callbackResponse)\n }\n\n put(endpoint: string, data: ApiDto) {\n const url = '/' + endpoint;\n this.apiService.put<ApiDto>(encodeURI(url), data, (response) => {\n this.data.set(response);\n })\n }\n\n findById(endpoint: string, id: string) {\n const url = '/' + endpoint + '/' + id;\n this.apiService.get<ApiDto>(encodeURI(url), (data) => {\n this.data.set(data);\n })\n }\n}","import { Component, effect, inject, input, output, signal } from \"@angular/core\";\nimport { ApiDto } from \"@ng-vagabond-lab/ng-dsv/api\";\nimport { SearchbarComponent } from \"@ng-vagabond-lab/ng-dsv/ds/form\";\nimport { DsvItemComponent } from \"@ng-vagabond-lab/ng-dsv/ds/item\";\nimport { ModalButtonComponent, ModalComponent, ModalService } from \"@ng-vagabond-lab/ng-dsv/ds/modal\";\nimport { ManyToManyDto } from \"../../dto/admin.dto\";\nimport { AdminService } from \"../../service/admin.service\";\n\n@Component({\n selector: 'admin-search-modal',\n standalone: true,\n imports: [\n DsvItemComponent,\n ModalButtonComponent,\n ModalComponent,\n SearchbarComponent,\n ],\n templateUrl: './admin.search.modal.container.html',\n styleUrls: ['./admin.search.modal.container.scss']\n})\nexport class AdminSearchModalContainer {\n modalService = inject(ModalService);\n adminService = inject(AdminService);\n\n m2em = input.required<ManyToManyDto>();\n\n search = signal<string>('');\n datas = signal<(ApiDto)[]>([]);\n\n callback = output<ApiDto>();\n\n constructor() {\n effect(() => {\n this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {\n this.datas.set(data.content);\n });\n });\n }\n\n getValue(data: ApiDto, name: string) {\n return data[name as keyof ApiDto] as string;\n }\n\n doSearch(search: string) {\n this.search.set(search);\n }\n\n clickItem = (data: ApiDto) => {\n this.callback.emit(data);\n this.modalService.close('m2m');\n }\n}","<app-modal-button id=\"m2m\" icon=\"ri-add-line\" />\n<app-modal id=\"m2m\" title=\"Ajouter un élément\">\n <form-searchbar\n [search]=\"search()\"\n (onSearch)=\"doSearch($event)\"\n ></form-searchbar>\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item\n [text]=\"getValue(data, m2em().name)\"\n (callback)=\"clickItem(data)\"\n />\n }\n </div>\n</app-modal>\n","import { Component, effect, inject, signal } from \"@angular/core\";\nimport { BaseRouteComponent } from \"@ng-vagabond-lab/ng-dsv/base\";\nimport { PaginateComponent } from \"@ng-vagabond-lab/ng-dsv/ds/paginate\";\nimport { TabDto, TabsComponent } from \"@ng-vagabond-lab/ng-dsv/ds/tab\";\nimport { TableComponent } from \"@ng-vagabond-lab/ng-dsv/ds/table\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { AdminTabDto } from \"../../dto/admin.dto\";\nimport { AdminService } from \"../../service/admin.service\";\n\n\n@Component({\n selector: \"app-admin-search\",\n standalone: true,\n imports: [\n TabsComponent,\n TableComponent,\n PaginateComponent\n ],\n templateUrl: \"./admin.search.container.html\",\n styleUrls: [\"./admin.search.container.scss\"]\n})\nexport class AdminSearchContainer extends BaseRouteComponent {\n adminService = inject(AdminService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n page = signal<number>(0);\n\n constructor() {\n super();\n effect(() => {\n this.tab.set(this.routeParams()?.['type']);\n const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab())\n this.tabConfig.set(tab);\n this.gotoPage(0);\n });\n effect(() => {\n const tabs = this.adminService.tabs()?.tabs;\n const tabsDtos: TabDto[] = [];\n if (tabs) {\n tabs.forEach((tab) => {\n const tabsDto = {} as TabDto;\n tabsDto.id = uuidv4();\n tabsDto.title = tab.name;\n tabsDto.url = '/admin/' + tab.name;\n tabsDtos.push(tabsDto);\n });\n }\n this.tabs.set(tabsDtos);\n });\n }\n\n gotoPage(page: number) {\n this.page.set(page);\n this.adminService.get(this.tabConfig()?.name!, this.tabConfig()?.findByChamps!, '', page, this.adminService.tabs()?.max);\n }\n}","<dsv-tabs-component [tabs]=\"tabs()\" [active]=\"tab()\" />\n<dsv-table\n [cells]=\"tabConfig()?.cells!\"\n [datas]=\"adminService.datas().content!\"\n [max]=\"adminService.tabs().max!\"\n [url]=\"'/admin/' + tab()\"\n></dsv-table>\n<app-paginate-component\n [page]=\"page()\"\n [max]=\"adminService.datas().totalPages!\"\n [nb]=\"adminService.datas().totalElements!\"\n (callback)=\"gotoPage($event)\"\n/>\n","import { AdminTabDto } from \"./admin.dto\";\n\nexport const ADMIN_COL = [\n { label: 'AUTH.FIELDS.CREATE_DATE', width: '145px', name: 'creationDate', date: true, order: true },\n { label: 'AUTH.FIELDS.ACTIVE', width: '70px', name: 'active', order: true },\n];\n\nexport const ADMIN_PROFILE_M2M = {\n name: 'name',\n endPoint: 'profile',\n fields: 'name%',\n order: 'name',\n orderBy: 'asc',\n};\n\nexport const ADMIN_INPUT = [\n { name: 'creationDate', label: 'AUTH.FIELDS.CREATE_DATE', type: 'datetime-local', required: false, className: 'width50' },\n { name: 'updatedDate', label: 'AUTH.FIELDS.UPDATE_DATE', type: 'datetime-local', required: false, className: 'width50' },\n {\n name: 'deletedDate',\n label: 'AUTH.FIELDS.DELETE_DATE',\n type: 'datetime-local',\n required: false,\n className: 'width50',\n disabled: true,\n },\n { name: 'active', label: 'AUTH.FIELDS.ACTIVE', type: 'switch', required: false, className: 'width50' },\n];\n\nexport const ADMIN_USER: AdminTabDto[] = [\n {\n name: 'user',\n label: 'AUTH.USER:TITLE',\n findByChamps: 'username%And|Email%',\n sortBy: 'creationDate',\n sortByAsc: 'desc',\n cells: [\n { label: 'AUTH.FIELDS.LOGIN', name: 'username', order: true },\n { label: 'AUTH.FIELDS.EMAIL', width: '240px', name: 'email', order: true },\n { label: 'AUTH.FIELDS.PROFILES', name: 'profiles.name' },\n { label: 'AUTH.FIELDS.LAST_CONNEXION_DATE', width: '150px', name: 'lastConnexionDate', date: true, order: true },\n ...ADMIN_COL,\n ],\n form: [\n { name: 'username', label: 'AUTH.FIELDS.LOGIN', type: 'text', required: true },\n { name: 'password', label: 'AUTH.FIELDS.PASSWORD', type: 'password', required: false },\n { name: 'email', label: 'AUTH.FIELDS.EMAIL', type: 'text', email: true, required: true },\n {\n name: 'profiles',\n label: 'AUTH.FIELDS.PFOFILES',\n type: 'm2m',\n required: false,\n m2m: ADMIN_PROFILE_M2M,\n array: true,\n },\n { name: 'lastConnexionDate', label: 'AUTH.FIELDS.LAST_CONNEXION_DATE', type: 'datetime-local', required: false },\n { name: 'activationToken', label: 'AUTH.FIELDS.ACTIVATION_TOKEN', type: 'text', className: 'width50' },\n { name: 'emailActivation', label: 'AUTH.FIELDS.EMAIL_ACTIVIATION', type: 'switch', className: 'width50' },\n { name: 'identityToken', label: 'AUTH.FIELDS.IDENTITY_TOKEN', type: 'text', className: 'width50' },\n { name: 'identityTokenDateEnd', label: 'AUTH.FIELDS.IDENTITY_TOKEN_DATE', type: 'datetime-local', className: 'width50' },\n { name: 'googleId', label: 'AUTH.FIELDS.GOOGLE_ID', type: 'text', className: 'width50' },\n { name: 'facebookId', label: 'AUTH.FIELDS.FACEBOOK_ID', type: 'text', className: 'width50' },\n ...ADMIN_INPUT,\n ],\n },\n];\n\n\nexport const ADMIN_PROFILE: AdminTabDto[] = [\n {\n name: 'profile',\n label: 'AUTH.PROFILE:TITLE',\n findByChamps: 'name%',\n sortBy: 'name',\n cells: [\n { label: 'AUTH.FIELDS.NAME', name: 'name', order: true },\n { label: 'AUTH.FIELDS.ROLES', name: 'roles', order: true },\n ...ADMIN_COL,\n ],\n form: [\n { name: 'name', label: 'AUTH.FIELDS.NAME', type: 'text', required: true },\n { name: 'roles', label: 'AUTH.FIELDS.ROLES', type: 'text', required: true },\n ...ADMIN_INPUT,\n ],\n },\n];","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
@@ -1,7 +1,41 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, signal, Injectable } from '@angular/core';
2
+ import { inject, signal, effect, Component, Injectable } from '@angular/core';
3
+ import { Router, ActivatedRoute } from '@angular/router';
4
+ import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
5
+ import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
3
6
  import { toSignal } from '@angular/core/rxjs-interop';
4
- import { ActivatedRoute, Router } from '@angular/router';
7
+
8
+ class BaseAppScrollComponent {
9
+ environmentService = inject(EnvironmentService);
10
+ apiService = inject(ApiService);
11
+ scrollService = inject(ScrollService);
12
+ scroll = signal(0);
13
+ load = signal(false);
14
+ constructor() {
15
+ inject(Router)
16
+ .events
17
+ .subscribe((res) => {
18
+ const divScrolls = document.getElementsByClassName('scroll');
19
+ Array.from(divScrolls).forEach(scroll => {
20
+ scroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);
21
+ });
22
+ });
23
+ effect(() => {
24
+ if (this.environmentService.env()) {
25
+ const apiUrl = this.environmentService.env()?.API_URL;
26
+ this.apiService.setBaseUrl(apiUrl);
27
+ this.load.set(true);
28
+ }
29
+ });
30
+ }
31
+ doScroll() {
32
+ const divScroll = document.getElementsByClassName('scroll')?.[0];
33
+ if (document.getElementsByClassName('scroll').length === 1) {
34
+ this.scrollService.saveScroll(divScroll?.scrollTop);
35
+ this.scrollService.scroll.set(divScroll?.scrollTop);
36
+ }
37
+ }
38
+ }
5
39
 
6
40
  class BaseRouteComponent {
7
41
  activatedRoute = inject(ActivatedRoute);
@@ -17,28 +51,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
17
51
  }]
18
52
  }] });
19
53
 
54
+ class BaseScrollComponent {
55
+ scrollService = inject(ScrollService);
56
+ constructor() {
57
+ effect(() => {
58
+ });
59
+ }
60
+ loadMore() {
61
+ if (!this.scrollService.getlocked()) {
62
+ this.scrollService.doBlocked();
63
+ this.doLoad();
64
+ this.scrollService.doBlockedWithTimeout(false, 500);
65
+ }
66
+ }
67
+ }
68
+
69
+ class BaseService {
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, providedIn: 'root' });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, decorators: [{
74
+ type: Injectable,
75
+ args: [{
76
+ providedIn: 'root',
77
+ }]
78
+ }] });
79
+
20
80
  class ScrollService {
21
81
  scrolls = signal(new Map());
22
- isScrollDown = signal(new Map());
23
82
  blocked = signal(new Map());
83
+ scroll = signal(0);
24
84
  saveScroll(scrollTop) {
25
85
  this.scrolls.update((value) => {
26
- value.set(location.href, scrollTop);
86
+ if (scrollTop !== 0) {
87
+ value.set(location.href, scrollTop);
88
+ }
27
89
  return value;
28
90
  });
29
91
  }
30
92
  getScroll() {
31
93
  return this.scrolls().get(location.href);
32
94
  }
33
- saveScrollDown(isDown = true) {
34
- this.isScrollDown.update((value) => {
35
- value.set(location.href, isDown);
36
- return value;
37
- });
38
- }
39
- getScrollDown() {
40
- return this.isScrollDown().get(location.href);
41
- }
42
95
  doBlocked(blocked = true) {
43
96
  this.blocked.update((value) => {
44
97
  value.set(location.href, blocked);
@@ -61,56 +114,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
61
114
  args: [{ providedIn: 'root' }]
62
115
  }] });
63
116
 
64
- class BaseScrollComponent {
65
- scrollService = inject(ScrollService);
66
- initScroll = signal(false);
67
- constructor() {
68
- inject(Router)
69
- .events
70
- .subscribe(() => {
71
- this.initScroll.set(true);
72
- this.scrollService.saveScrollDown(false);
73
- const divScroll = document.getElementById('scroll');
74
- divScroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);
75
- setTimeout(() => {
76
- this.initScroll.set(false);
77
- }, 1000);
78
- });
79
- }
80
- onScroll(scrollName = 'scroll') {
81
- if (!this.initScroll()) {
82
- const divScroll = document.getElementById(scrollName);
83
- const distanceToBottom = divScroll?.scrollHeight -
84
- (divScroll?.scrollTop + divScroll?.clientHeight);
85
- console.log(distanceToBottom);
86
- this.scrollService.saveScrollDown(distanceToBottom < 50);
87
- this.scrollService.saveScroll(divScroll?.scrollTop);
88
- }
89
- }
90
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
91
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: BaseScrollComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseScrollComponent, decorators: [{
94
- type: Component,
95
- args: [{
96
- template: '',
97
- }]
98
- }], ctorParameters: () => [] });
99
-
100
- class BaseService {
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
102
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, providedIn: 'root' });
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: BaseService, decorators: [{
105
- type: Injectable,
106
- args: [{
107
- providedIn: 'root',
108
- }]
109
- }] });
110
-
111
117
  /**
112
118
  * Generated bundle index. Do not edit.
113
119
  */
114
120
 
115
- export { BaseRouteComponent, BaseScrollComponent, BaseService, ScrollService };
121
+ export { BaseAppScrollComponent, BaseRouteComponent, BaseScrollComponent, BaseService, ScrollService };
116
122
  //# sourceMappingURL=ng-vagabond-lab-ng-dsv-base.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.route.component.ts","../../../projects/ng-dsv/base/service/scroll.service.ts","../../../projects/ng-dsv/base/component/base.scroll.component.ts","../../../projects/ng-dsv/base/service/base.service.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Component({\n template: '',\n})\nexport abstract class BaseRouteComponent {\n activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n routeParams = toSignal(this.activatedRoute.params);\n\n routeObservable: Subscription | null = null;\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService {\n scrolls = signal<Map<string, number>>(new Map());\n isScrollDown = signal<Map<string, boolean>>(new Map());\n blocked = signal<Map<string, boolean>>(new Map());\n\n saveScroll(scrollTop: number) {\n this.scrolls.update((value) => {\n value.set(location.href, scrollTop);\n return value;\n });\n }\n\n getScroll() {\n return this.scrolls().get(location.href);\n }\n\n saveScrollDown(isDown: boolean = true) {\n this.isScrollDown.update((value) => {\n value.set(location.href, isDown);\n return value;\n });\n }\n\n getScrollDown() {\n return this.isScrollDown().get(location.href);\n }\n\n doBlocked(blocked: boolean = true) {\n this.blocked.update((value) => {\n value.set(location.href, blocked);\n return value;\n });\n }\n\n doBlockedWithTimeout(blocked: boolean, timeout: number = 1000) {\n setTimeout(() => {\n this.doBlocked(blocked);\n }, timeout);\n }\n\n getlocked() {\n return this.blocked().get(location.href);\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ScrollService } from '../service/scroll.service';\n\n@Component({\n template: '',\n})\nexport abstract class BaseScrollComponent {\n scrollService = inject(ScrollService);\n\n initScroll = signal<boolean>(false);\n\n constructor() {\n inject(Router)\n .events\n .subscribe(() => {\n this.initScroll.set(true);\n this.scrollService.saveScrollDown(false);\n const divScroll = document.getElementById('scroll');\n divScroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);\n setTimeout(() => {\n this.initScroll.set(false);\n }, 1000);\n });\n }\n\n onScroll(scrollName: string = 'scroll') {\n if (!this.initScroll()) {\n const divScroll = document.getElementById(scrollName);\n const distanceToBottom =\n divScroll?.scrollHeight! -\n (divScroll?.scrollTop! + divScroll?.clientHeight!);\n console.log(distanceToBottom)\n this.scrollService.saveScrollDown(distanceToBottom < 50);\n this.scrollService.saveScroll(divScroll?.scrollTop!);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class BaseService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.app-scroll.component.ts","../../../projects/ng-dsv/base/component/base.route.component.ts","../../../projects/ng-dsv/base/component/base.scroll.component.ts","../../../projects/ng-dsv/base/service/base.service.ts","../../../projects/ng-dsv/base/service/scroll.service.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { effect, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { ScrollService } from '../public-api';\n\nexport abstract class BaseAppScrollComponent {\n environmentService = inject(EnvironmentService);\n apiService = inject(ApiService);\n scrollService = inject(ScrollService);\n\n scroll = signal<number>(0);\n\n load = signal<boolean>(false);\n\n constructor() {\n inject(Router)\n .events\n .subscribe((res) => {\n const divScrolls = document.getElementsByClassName('scroll');\n Array.from(divScrolls).forEach(scroll => {\n scroll?.scrollTo(0, this.scrollService.getScroll() ?? 0);\n })\n });\n\n effect(() => {\n if (this.environmentService.env()) {\n const apiUrl = this.environmentService.env()?.API_URL!;\n this.apiService.setBaseUrl(apiUrl);\n this.load.set(true);\n }\n });\n }\n\n doScroll() {\n const divScroll = document.getElementsByClassName('scroll')?.[0];\n if (document.getElementsByClassName('scroll').length === 1) {\n this.scrollService.saveScroll(divScroll?.scrollTop!);\n this.scrollService.scroll.set(divScroll?.scrollTop!);\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Component({\n template: '',\n})\nexport abstract class BaseRouteComponent {\n activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n routeParams = toSignal(this.activatedRoute.params);\n\n routeObservable: Subscription | null = null;\n}\n","import { effect, inject } from '@angular/core';\nimport { ScrollService } from '../public-api';\n\nexport abstract class BaseScrollComponent {\n readonly scrollService = inject(ScrollService);\n\n constructor() {\n\n effect(() => {\n });\n }\n\n loadMore() {\n if (!this.scrollService.getlocked()) {\n this.scrollService.doBlocked();\n this.doLoad();\n this.scrollService.doBlockedWithTimeout(false, 500);\n }\n }\n\n abstract doLoad(): void;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class BaseService {}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService {\n scrolls = signal<Map<string, number>>(new Map());\n blocked = signal<Map<string, boolean>>(new Map());\n scroll = signal<number>(0);\n\n saveScroll(scrollTop: number) {\n this.scrolls.update((value) => {\n if (scrollTop !== 0) {\n value.set(location.href, scrollTop);\n }\n return value;\n });\n }\n\n getScroll() {\n return this.scrolls().get(location.href);\n }\n\n doBlocked(blocked: boolean = true) {\n this.blocked.update((value) => {\n value.set(location.href, blocked);\n return value;\n });\n }\n\n doBlockedWithTimeout(blocked: boolean, timeout: number = 1000) {\n setTimeout(() => {\n this.doBlocked(blocked);\n }, timeout);\n }\n\n getlocked() {\n return this.blocked().get(location.href);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -41,7 +41,10 @@ class ButtonScrollTopComponent {
41
41
  });
42
42
  }
43
43
  scrollToTop() {
44
- document.getElementById('scroll')?.scrollTo(0, 0);
44
+ const scrolls = document.getElementsByClassName('scroll');
45
+ Array.from(scrolls).forEach(scroll => {
46
+ scroll?.scrollTo(0, 0);
47
+ });
45
48
  }
46
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ButtonScrollTopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
50
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", 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"] }] });
@@ -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 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":"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"}
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 const scrolls = document.getElementsByClassName('scroll');\n Array.from(scrolls).forEach(scroll => {\n scroll?.scrollTo(0, 0);\n })\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":"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"}
@@ -46,9 +46,11 @@ class FormComponent {
46
46
  onSubmit() {
47
47
  if (this.form().valid) {
48
48
  this.callback.emit(this.form().value);
49
- this.toastService.showToast({
50
- text: this.formValid(),
51
- });
49
+ if (this.textValid() !== '') {
50
+ this.toastService.showToast({
51
+ text: this.formValid(),
52
+ });
53
+ }
52
54
  }
53
55
  else {
54
56
  this.toastService.showToast({
@@ -1 +1 @@
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\";\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 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, inject, 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 { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\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 toastService = inject(ToastService);\n\n form = input.required<FormGroup>();\n\n urlBack = input<string>();\n textValid = input<string>('ENREGISTRER');\n formValid = input<string>('Formulaire envoyé !');\n\n callback = output<ApiDto>();\n\n onSubmit() {\n if (this.form().valid) {\n this.callback.emit(this.form().value);\n this.toastService.showToast({\n text: this.formValid(),\n })\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error'\n })\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() && textValid() !== \"\") {\n <dsv-button type=\"submit\" color=\"success\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input, output, signal } 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 required = input<boolean>(true);\n icon = input<string>();\n\n onSend = output<string>();\n\n error = signal<string>('');\n\n onEnter() {\n this.onSend.emit(this.form().value[this.field()]);\n }\n\n onChange() {\n const error = this.form().controls[this.field()].errors;\n let errorText = \"\";\n if (error?.['required']) {\n errorText = \"Ce champ est obligatoire\";\n }\n this.error.set(errorText);\n }\n}\n","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }} {{ required() ? \"*\" : \"\" }}</label>\n }\n <input\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"error()\"\n [id]=\"field()\"\n (change)=\"onChange()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (error() !== \"\") {\n <div class=\"error-content\">{{ error() }}</div>\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\" textValid=\"\">\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":"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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\";\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 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, inject, 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 { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\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 toastService = inject(ToastService);\n\n form = input.required<FormGroup>();\n\n urlBack = input<string>();\n textValid = input<string>('ENREGISTRER');\n formValid = input<string>('Formulaire envoyé !');\n\n callback = output<ApiDto>();\n\n onSubmit() {\n if (this.form().valid) {\n this.callback.emit(this.form().value);\n if (this.textValid() !== '') {\n this.toastService.showToast({\n text: this.formValid(),\n })\n }\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error'\n })\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() && textValid() !== \"\") {\n <dsv-button type=\"submit\" color=\"success\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input, output, signal } 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 required = input<boolean>(true);\n icon = input<string>();\n\n onSend = output<string>();\n\n error = signal<string>('');\n\n onEnter() {\n this.onSend.emit(this.form().value[this.field()]);\n }\n\n onChange() {\n const error = this.form().controls[this.field()].errors;\n let errorText = \"\";\n if (error?.['required']) {\n errorText = \"Ce champ est obligatoire\";\n }\n this.error.set(errorText);\n }\n}\n","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <label [for]=\"field()\">{{ field() }} {{ required() ? \"*\" : \"\" }}</label>\n }\n <input\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"error()\"\n [id]=\"field()\"\n (change)=\"onChange()\"\n (keydown.enter)=\"onEnter()\"\n />\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (error() !== \"\") {\n <div class=\"error-content\">{{ error() }}</div>\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\" textValid=\"\">\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":"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"}
@@ -0,0 +1,33 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, input, output, Component } from '@angular/core';
3
+ import { ScrollService } from '@ng-vagabond-lab/ng-dsv/base';
4
+
5
+ const SCROLL_BOTTOM_MIN = 50;
6
+ class ScrollInfiniteContainer {
7
+ scrollService = inject(ScrollService);
8
+ class = input('infinite-scroll');
9
+ callback = output();
10
+ doScroll() {
11
+ const divScroll = document.getElementsByClassName(this.class())?.[0];
12
+ const scrollClientHeight = (divScroll?.scrollTop + divScroll?.clientHeight);
13
+ const distanceToBottom = divScroll?.scrollHeight - scrollClientHeight;
14
+ this.scrollService.saveScroll(divScroll?.scrollTop);
15
+ this.scrollService.scroll.set(divScroll?.scrollTop);
16
+ if (distanceToBottom < SCROLL_BOTTOM_MIN) {
17
+ this.callback.emit();
18
+ }
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ScrollInfiniteContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: ScrollInfiniteContainer, isStandalone: true, selector: "dsv-scroll-infinite", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<div [class]=\"'scroll ' + class()\" (scroll)=\"doScroll()\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;display:flex}:host div{overflow:auto}\n"] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ScrollInfiniteContainer, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'dsv-scroll-infinite', standalone: true, imports: [], template: "<div [class]=\"'scroll ' + class()\" (scroll)=\"doScroll()\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;display:flex}:host div{overflow:auto}\n"] }]
26
+ }] });
27
+
28
+ /**
29
+ * Generated bundle index. Do not edit.
30
+ */
31
+
32
+ export { SCROLL_BOTTOM_MIN, ScrollInfiniteContainer };
33
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-scroll.mjs","sources":["../../../projects/ng-dsv/ds/scroll/container/scroll.infinite.container.ts","../../../projects/ng-dsv/ds/scroll/container/scroll.infinite.container.html","../../../projects/ng-dsv/ds/scroll/ng-vagabond-lab-ng-dsv-ds-scroll.ts"],"sourcesContent":["import { Component, inject, input, output } from \"@angular/core\";\nimport { ScrollService } from \"@ng-vagabond-lab/ng-dsv/base\";\n\nexport const SCROLL_BOTTOM_MIN = 50;\n\n@Component({\n selector: 'dsv-scroll-infinite',\n standalone: true,\n imports: [\n\n ],\n templateUrl: './scroll.infinite.container.html',\n styleUrls: ['./scroll.infinite.container.scss']\n})\nexport class ScrollInfiniteContainer {\n scrollService = inject(ScrollService);\n\n class = input<string>('infinite-scroll');\n\n callback = output<void>();\n\n doScroll() {\n const divScroll = document.getElementsByClassName(this.class())?.[0];\n const scrollClientHeight = (divScroll?.scrollTop! + divScroll?.clientHeight!)\n const distanceToBottom = divScroll?.scrollHeight! - scrollClientHeight;\n this.scrollService.saveScroll(divScroll?.scrollTop!);\n this.scrollService.scroll.set(divScroll?.scrollTop!);\n if (distanceToBottom < SCROLL_BOTTOM_MIN) {\n this.callback.emit();\n }\n }\n}","<div [class]=\"'scroll ' + class()\" (scroll)=\"doScroll()\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAGO,MAAM,iBAAiB,GAAG;MAWpB,uBAAuB,CAAA;AAChC,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAErC,IAAA,KAAK,GAAG,KAAK,CAAS,iBAAiB,CAAC;IAExC,QAAQ,GAAG,MAAM,EAAQ;IAEzB,QAAQ,GAAA;AACJ,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,kBAAkB,IAAI,SAAS,EAAE,SAAU,GAAG,SAAS,EAAE,YAAa,CAAC;AAC7E,QAAA,MAAM,gBAAgB,GAAG,SAAS,EAAE,YAAa,GAAG,kBAAkB;QACtE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,SAAU,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAU,CAAC;AACpD,QAAA,IAAI,gBAAgB,GAAG,iBAAiB,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;;uGAdnB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sPCdpC,sGAGA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,CAAA;;2FDWa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;+BACI,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,EAER,EAAA,QAAA,EAAA,sGAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;;;AEVL;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-vagabond-lab/ng-dsv",
3
- "version": "0.0.86",
3
+ "version": "0.0.89",
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
- "./admin": {
23
- "types": "./admin/index.d.ts",
24
- "default": "./fesm2022/ng-vagabond-lab-ng-dsv-admin.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
+ "./admin": {
27
+ "types": "./admin/index.d.ts",
28
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-admin.mjs"
29
+ },
30
30
  "./auth": {
31
31
  "types": "./auth/index.d.ts",
32
32
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-auth.mjs"
@@ -99,6 +99,10 @@
99
99
  "types": "./ds/paginate/index.d.ts",
100
100
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs"
101
101
  },
102
+ "./ds/scroll": {
103
+ "types": "./ds/scroll/index.d.ts",
104
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs"
105
+ },
102
106
  "./ds/tab": {
103
107
  "types": "./ds/tab/index.d.ts",
104
108
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs"