@ng-vagabond-lab/ng-dsv 0.1.112 → 0.1.113

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.
Files changed (48) hide show
  1. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +2 -0
  2. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
  3. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +17 -2
  4. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
  5. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +33 -8
  6. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs.map +1 -1
  7. package/fesm2022/ng-vagabond-lab-ng-dsv-modules-admin.mjs +5 -3
  8. package/fesm2022/ng-vagabond-lab-ng-dsv-modules-admin.mjs.map +1 -1
  9. package/fesm2022/ng-vagabond-lab-ng-dsv-modules-auth.mjs +20 -25
  10. package/fesm2022/ng-vagabond-lab-ng-dsv-modules-auth.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts +2 -0
  13. package/types/ng-vagabond-lab-ng-dsv-base.d.ts +7 -1
  14. package/types/ng-vagabond-lab-ng-dsv-date.d.ts +11 -2
  15. package/types/ng-vagabond-lab-ng-dsv-modules-admin.d.ts +2 -2
  16. package/types/ng-vagabond-lab-ng-dsv-modules-auth.d.ts +2 -1
  17. package/types/ng-vagabond-lab-ng-dsv-api.d.ts.map +0 -1
  18. package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts.map +0 -1
  19. package/types/ng-vagabond-lab-ng-dsv-base.d.ts.map +0 -1
  20. package/types/ng-vagabond-lab-ng-dsv-date.d.ts.map +0 -1
  21. package/types/ng-vagabond-lab-ng-dsv-ds-avatar.d.ts.map +0 -1
  22. package/types/ng-vagabond-lab-ng-dsv-ds-button.d.ts.map +0 -1
  23. package/types/ng-vagabond-lab-ng-dsv-ds-card.d.ts.map +0 -1
  24. package/types/ng-vagabond-lab-ng-dsv-ds-chip.d.ts.map +0 -1
  25. package/types/ng-vagabond-lab-ng-dsv-ds-container.d.ts.map +0 -1
  26. package/types/ng-vagabond-lab-ng-dsv-ds-form-reactive.d.ts.map +0 -1
  27. package/types/ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts.map +0 -1
  28. package/types/ng-vagabond-lab-ng-dsv-ds-header.d.ts.map +0 -1
  29. package/types/ng-vagabond-lab-ng-dsv-ds-img.d.ts.map +0 -1
  30. package/types/ng-vagabond-lab-ng-dsv-ds-item.d.ts.map +0 -1
  31. package/types/ng-vagabond-lab-ng-dsv-ds-linear-progress.d.ts.map +0 -1
  32. package/types/ng-vagabond-lab-ng-dsv-ds-list.d.ts.map +0 -1
  33. package/types/ng-vagabond-lab-ng-dsv-ds-menu.d.ts.map +0 -1
  34. package/types/ng-vagabond-lab-ng-dsv-ds-modal.d.ts.map +0 -1
  35. package/types/ng-vagabond-lab-ng-dsv-ds-paginate.d.ts.map +0 -1
  36. package/types/ng-vagabond-lab-ng-dsv-ds-scroll.d.ts.map +0 -1
  37. package/types/ng-vagabond-lab-ng-dsv-ds-skeleton.d.ts.map +0 -1
  38. package/types/ng-vagabond-lab-ng-dsv-ds-tab.d.ts.map +0 -1
  39. package/types/ng-vagabond-lab-ng-dsv-ds-table.d.ts.map +0 -1
  40. package/types/ng-vagabond-lab-ng-dsv-ds-theme.d.ts.map +0 -1
  41. package/types/ng-vagabond-lab-ng-dsv-ds-toast.d.ts.map +0 -1
  42. package/types/ng-vagabond-lab-ng-dsv-ds-tooltip.d.ts.map +0 -1
  43. package/types/ng-vagabond-lab-ng-dsv-environment.d.ts.map +0 -1
  44. package/types/ng-vagabond-lab-ng-dsv-modules-admin.d.ts.map +0 -1
  45. package/types/ng-vagabond-lab-ng-dsv-modules-auth.d.ts.map +0 -1
  46. package/types/ng-vagabond-lab-ng-dsv-platform.d.ts.map +0 -1
  47. package/types/ng-vagabond-lab-ng-dsv-router.d.ts.map +0 -1
  48. package/types/ng-vagabond-lab-ng-dsv-storage.d.ts.map +0 -1
@@ -1,10 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, TransferState, signal, Directive, makeStateKey, Injectable } from '@angular/core';
3
3
  import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
4
+ import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
4
5
  import { removeDuplicate } from '@ng-vagabond-lab/ng-dsv/storage';
5
6
 
6
7
  class BaseService {
7
8
  apiService = inject(ApiService);
9
+ toastService = inject(ToastService);
8
10
  transferState = inject(TransferState);
9
11
  loaded = signal(true, ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
10
12
  isPlatformBrowser() {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base-service.mjs","sources":["../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/fetch/base.fetch.service.ts","../../../projects/ng-dsv/base/service/search/base.search.service.ts","../../../projects/ng-dsv/base/service/ng-vagabond-lab-ng-dsv-base-service.ts"],"sourcesContent":["import { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\n\n@Directive()\nexport abstract class BaseService {\n readonly apiService = inject(ApiService);\n readonly transferState = inject(TransferState);\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser() {\n return this.apiService.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, makeStateKey, signal, StateKey } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from '../base/base.service';\n\n@Directive()\nexport abstract class BaseFetchService<D extends ApiDto | ApiDto[]> extends BaseService {\n //abstract fetch(id: number): D;\n\n readonly ssr = signal<boolean>(true);\n\n getStateKey(url: string): StateKey<D> {\n return makeStateKey<D>(url);\n }\n\n getDataFromState(url: string): D | null {\n const key = this.getStateKey(url);\n let data = null;\n if (this.transferState.hasKey(key)) {\n console.log('Load from transfer state');\n data = this.transferState.get(key, null);\n this.transferState.remove(key);\n }\n return data;\n }\n\n setDataToState(url: string, data: D | null) {\n if (!this.isPlatformBrowser()) {\n const key = this.getStateKey(url);\n this.transferState.set(key, data);\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { ApiDto, PageableDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { removeDuplicate } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { BaseFetchService } from '../fetch/base.fetch.service';\n\n@Injectable({ providedIn: 'root' })\nexport abstract class BaseSearchService<T extends ApiDto> extends BaseFetchService<T[]> {\n datas = signal<T[]>([]);\n\n page = signal<number>(1);\n search = signal<string>('');\n isLoading = signal<boolean>(false);\n stopFetch = signal<boolean>(false);\n\n getUrl(): string {\n let url = this.getEndPoint();\n const params = this.getParams();\n url += '?page=' + this.page() + params + '&search=';\n return url;\n }\n\n abstract getEndPoint(): string;\n\n getParams(): string {\n return '';\n }\n\n fetchByPage(search: string = '', page: number = 1): void {\n this.search.set(search);\n if (page === 1) {\n this.stopFetch.set(false);\n }\n if (this.stopFetch()) {\n return;\n }\n const url = this.getUrl();\n\n const data = this.getDataFromState(url);\n if (data) {\n this.updateDate(page, data);\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n\n this.apiService.get<PageableDto<T[]>>(\n url + search,\n (data) => {\n this.page.set(page + 1);\n this.setDataToState(url, data.content);\n this.isLoading.set(false);\n this.updateDate(page, data.content);\n },\n () => {\n this.stopFetch.set(true);\n },\n );\n }\n\n updateDate(page: number, datas: T[]): void {\n if (page === 1) {\n this.datas.set([]);\n }\n this.datas.update((current) => removeDuplicate([...current, ...datas]));\n if (datas?.length === 0) {\n this.stopFetch.set(true);\n }\n this.afterFetch(datas);\n }\n\n afterFetch(data: T[]): void {\n return;\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-base-service.mjs","sources":["../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/fetch/base.fetch.service.ts","../../../projects/ng-dsv/base/service/search/base.search.service.ts","../../../projects/ng-dsv/base/service/ng-vagabond-lab-ng-dsv-base-service.ts"],"sourcesContent":["import { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\n\n@Directive()\nexport abstract class BaseService {\n readonly apiService = inject(ApiService);\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser() {\n return this.apiService.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, makeStateKey, signal, StateKey } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from '../base/base.service';\n\n@Directive()\nexport abstract class BaseFetchService<D extends ApiDto | ApiDto[]> extends BaseService {\n //abstract fetch(id: number): D;\n\n readonly ssr = signal<boolean>(true);\n\n getStateKey(url: string): StateKey<D> {\n return makeStateKey<D>(url);\n }\n\n getDataFromState(url: string): D | null {\n const key = this.getStateKey(url);\n let data = null;\n if (this.transferState.hasKey(key)) {\n console.log('Load from transfer state');\n data = this.transferState.get(key, null);\n this.transferState.remove(key);\n }\n return data;\n }\n\n setDataToState(url: string, data: D | null) {\n if (!this.isPlatformBrowser()) {\n const key = this.getStateKey(url);\n this.transferState.set(key, data);\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { ApiDto, PageableDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { removeDuplicate } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { BaseFetchService } from '../fetch/base.fetch.service';\n\n@Injectable({ providedIn: 'root' })\nexport abstract class BaseSearchService<T extends ApiDto> extends BaseFetchService<T[]> {\n datas = signal<T[]>([]);\n\n page = signal<number>(1);\n search = signal<string>('');\n isLoading = signal<boolean>(false);\n stopFetch = signal<boolean>(false);\n\n getUrl(): string {\n let url = this.getEndPoint();\n const params = this.getParams();\n url += '?page=' + this.page() + params + '&search=';\n return url;\n }\n\n abstract getEndPoint(): string;\n\n getParams(): string {\n return '';\n }\n\n fetchByPage(search: string = '', page: number = 1): void {\n this.search.set(search);\n if (page === 1) {\n this.stopFetch.set(false);\n }\n if (this.stopFetch()) {\n return;\n }\n const url = this.getUrl();\n\n const data = this.getDataFromState(url);\n if (data) {\n this.updateDate(page, data);\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n\n this.apiService.get<PageableDto<T[]>>(\n url + search,\n (data) => {\n this.page.set(page + 1);\n this.setDataToState(url, data.content);\n this.isLoading.set(false);\n this.updateDate(page, data.content);\n },\n () => {\n this.stopFetch.set(true);\n },\n );\n }\n\n updateDate(page: number, datas: T[]): void {\n if (page === 1) {\n this.datas.set([]);\n }\n this.datas.update((current) => removeDuplicate([...current, ...datas]));\n if (datas?.length === 0) {\n this.stopFetch.set(true);\n }\n this.afterFetch(datas);\n }\n\n afterFetch(data: T[]): void {\n return;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, inject, TransferState, Directive, makeStateKey, Injectable, effect } from '@angular/core';
2
+ import { signal, inject, TransferState, Directive, makeStateKey, Injectable, effect, computed } from '@angular/core';
3
3
  import { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';
4
+ import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
4
5
  import { Title, Meta } from '@angular/platform-browser';
5
6
  import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
6
- import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
7
+ import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
7
8
  import { toSignal } from '@angular/core/rxjs-interop';
8
9
  import { ActivatedRoute } from '@angular/router';
9
10
  import { scrollOnClassTo } from '@ng-vagabond-lab/ng-dsv/ds/scroll';
@@ -15,6 +16,7 @@ class BaseComponent {
15
16
 
16
17
  class BaseService {
17
18
  apiService = inject(ApiService);
19
+ toastService = inject(ToastService);
18
20
  transferState = inject(TransferState);
19
21
  loaded = signal(true, ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
20
22
  isPlatformBrowser() {
@@ -48,6 +50,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
48
50
  class BaseContainer {
49
51
  authService = inject(AuthService);
50
52
  seoService = inject(SeoService);
53
+ routerService = inject(RouterService);
54
+ requiredRole = signal('', ...(ngDevMode ? [{ debugName: "requiredRole" }] : /* istanbul ignore next */ []));
55
+ constructor() {
56
+ effect(() => {
57
+ if (!this.hasAccess()) {
58
+ this.routerService.router.navigate(['/']);
59
+ }
60
+ });
61
+ }
62
+ hasAccess = computed(() => {
63
+ const role = this.requiredRole();
64
+ return !role || this.authService.hasRole(role);
65
+ }, ...(ngDevMode ? [{ debugName: "hasAccess" }] : /* istanbul ignore next */ []));
51
66
  }
52
67
 
53
68
  class BaseMainContainer {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.component.ts","../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/seo/seo.service.ts","../../../projects/ng-dsv/base/container/base.container.ts","../../../projects/ng-dsv/base/container/main/base.main.container.ts","../../../projects/ng-dsv/base/container/route/base.route.container.ts","../../../projects/ng-dsv/base/container/search/base.search.container.ts","../../../projects/ng-dsv/base/utils/base.utils.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { signal } from '@angular/core';\n\n// TODO : checker les inject dans les composants ???\nexport abstract class BaseComponent {\n loaded = signal(false);\n}\n","import { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\n\n@Directive()\nexport abstract class BaseService {\n readonly apiService = inject(ApiService);\n readonly transferState = inject(TransferState);\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser() {\n return this.apiService.platformService.isPlatformBrowser();\n }\n}\n","import { inject, Injectable, makeStateKey } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { BaseService } from '../base/base.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseService {\n public readonly title = inject(Title);\n public readonly meta = inject(Meta);\n\n setMeta(titleApp: string, title: string, description: string, image?: string) {\n const newTitle = titleApp + ' - ' + title;\n this.title.setTitle(newTitle);\n this.transferState.set(makeStateKey<string>('title'), newTitle);\n this.meta.updateTag({ name: 'description', content: description });\n image && this.meta.updateTag({ property: 'og:image', content: image });\n }\n}\n","import { inject } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { SeoService } from '../service/seo/seo.service';\n\nexport abstract class BaseContainer {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n}\n","import { effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\n\nexport abstract class BaseMainContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n\n initRefreshToken = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n if (this.authService.isPlatformBrowser() && !this.initRefreshToken()) {\n this.initRefreshToken.set(true);\n this.authService.refreshToken();\n }\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseContainer } from '../base.container';\n\nexport abstract class BaseRouteContainer extends BaseContainer {\n activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n routeParams = toSignal(this.activatedRoute.params);\n}\n","import { effect, inject } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { scrollOnClassTo } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { BaseSearchService } from '../../service';\nimport { SeoService } from '../../service/seo/seo.service';\n\nexport abstract class BaseSearchContainer<T extends BaseSearchService<U>, U extends ApiDto> {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n\n readonly service: T | undefined = undefined;\n\n constructor(searchService: T) {\n this.service = searchService;\n this.service.isLoading.set(true);\n effect(() => {\n if (\n this.service?.datas().length === 0 &&\n this.service.search() === '' &&\n !this.service.stopFetch() &&\n (this.service.ssr() || this.authService.isPlatformBrowser())\n ) {\n this.doFetch();\n }\n });\n }\n\n doFetch(search: string | undefined = this.service?.search()): void {\n this.service?.fetchByPage(search, this.service?.page());\n }\n\n doSearch(search: string) {\n this.service?.page.set(1);\n scrollOnClassTo('scroll', 0, 0);\n this.doFetch(search);\n }\n}\n","import { OutputEmitterRef } from '@angular/core';\n\nexport const isCallback = <T>(callback: OutputEmitterRef<T>) => {\n const listeners = callback['listeners' as keyof OutputEmitterRef<T>];\n return listeners?.length > 0;\n};\n\nexport const generateArray = (length: number = 20) => Array.from({ length }, (_, i) => i);\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.component.ts","../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/seo/seo.service.ts","../../../projects/ng-dsv/base/container/base.container.ts","../../../projects/ng-dsv/base/container/main/base.main.container.ts","../../../projects/ng-dsv/base/container/route/base.route.container.ts","../../../projects/ng-dsv/base/container/search/base.search.container.ts","../../../projects/ng-dsv/base/utils/base.utils.ts","../../../projects/ng-dsv/base/ng-vagabond-lab-ng-dsv-base.ts"],"sourcesContent":["import { signal } from '@angular/core';\n\n// TODO : checker les inject dans les composants ???\nexport abstract class BaseComponent {\n loaded = signal(false);\n}\n","import { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\n\n@Directive()\nexport abstract class BaseService {\n readonly apiService = inject(ApiService);\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser() {\n return this.apiService.platformService.isPlatformBrowser();\n }\n}\n","import { inject, Injectable, makeStateKey } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { BaseService } from '../base/base.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseService {\n public readonly title = inject(Title);\n public readonly meta = inject(Meta);\n\n setMeta(titleApp: string, title: string, description: string, image?: string) {\n const newTitle = titleApp + ' - ' + title;\n this.title.setTitle(newTitle);\n this.transferState.set(makeStateKey<string>('title'), newTitle);\n this.meta.updateTag({ name: 'description', content: description });\n image && this.meta.updateTag({ property: 'og:image', content: image });\n }\n}\n","import { computed, effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { SeoService } from '../service/seo/seo.service';\n\nexport abstract class BaseContainer {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n readonly routerService = inject(RouterService);\n\n protected requiredRole = signal('');\n\n constructor() {\n effect(() => {\n if (!this.hasAccess()) {\n this.routerService.router.navigate(['/']);\n }\n });\n }\n\n readonly hasAccess = computed(() => {\n const role = this.requiredRole();\n return !role || this.authService.hasRole(role);\n });\n}\n","import { effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\n\nexport abstract class BaseMainContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n\n initRefreshToken = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n if (this.authService.isPlatformBrowser() && !this.initRefreshToken()) {\n this.initRefreshToken.set(true);\n this.authService.refreshToken();\n }\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseContainer } from '../base.container';\n\nexport abstract class BaseRouteContainer extends BaseContainer {\n activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n routeParams = toSignal(this.activatedRoute.params);\n}\n","import { effect, inject } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { scrollOnClassTo } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';\nimport { BaseSearchService } from '../../service';\nimport { SeoService } from '../../service/seo/seo.service';\n\nexport abstract class BaseSearchContainer<T extends BaseSearchService<U>, U extends ApiDto> {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n\n readonly service: T | undefined = undefined;\n\n constructor(searchService: T) {\n this.service = searchService;\n this.service.isLoading.set(true);\n effect(() => {\n if (\n this.service?.datas().length === 0 &&\n this.service.search() === '' &&\n !this.service.stopFetch() &&\n (this.service.ssr() || this.authService.isPlatformBrowser())\n ) {\n this.doFetch();\n }\n });\n }\n\n doFetch(search: string | undefined = this.service?.search()): void {\n this.service?.fetchByPage(search, this.service?.page());\n }\n\n doSearch(search: string) {\n this.service?.page.set(1);\n scrollOnClassTo('scroll', 0, 0);\n this.doFetch(search);\n }\n}\n","import { OutputEmitterRef } from '@angular/core';\n\nexport const isCallback = <T>(callback: OutputEmitterRef<T>) => {\n const listeners = callback['listeners' as keyof OutputEmitterRef<T>];\n return listeners?.length > 0;\n};\n\nexport const generateArray = (length: number = 20) => Array.from({ length }, (_, i) => i);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,36 @@
1
- const formatDate = (dateString) => {
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe } from '@angular/core';
3
+
4
+ class DateFormatPipe {
5
+ transform(value) {
6
+ return formatDate(value);
7
+ }
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: DateFormatPipe, isStandalone: true, name: "formatDate" });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DateFormatPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'formatDate',
15
+ standalone: true,
16
+ }]
17
+ }] });
18
+
19
+ const FORMAT_TOKENS = {
20
+ DD: (d) => String(d.getDate()).padStart(2, '0'),
21
+ MM: (d) => String(d.getMonth() + 1).padStart(2, '0'),
22
+ YYYY: (d) => String(d.getFullYear()),
23
+ YY: (d) => String(d.getFullYear()).slice(-2),
24
+ HH: (d) => String(d.getHours()).padStart(2, '0'),
25
+ mm: (d) => String(d.getMinutes()).padStart(2, '0'),
26
+ ss: (d) => String(d.getSeconds()).padStart(2, '0'),
27
+ };
28
+ const TOKEN_REGEX = new RegExp(Object.keys(FORMAT_TOKENS).join('|'), 'g');
29
+ const formatDate = (dateString, format = 'DD/MM/YYYY HH:mm:ss') => {
2
30
  const date = new Date(dateString);
3
- const day = String(date.getDate()).padStart(2, '0');
4
- const month = String(date.getMonth() + 1).padStart(2, '0');
5
- const year = date.getFullYear();
6
- const hours = String(date.getHours()).padStart(2, '0');
7
- const minutes = String(date.getMinutes()).padStart(2, '0');
8
- return `${day}/${month}/${year} ${hours}:${minutes}`;
31
+ if (Number.isNaN(date.getTime()))
32
+ return '';
33
+ return format.replace(TOKEN_REGEX, (token) => FORMAT_TOKENS[token](date));
9
34
  };
10
35
  function toDateInputValue(value) {
11
36
  if (!value)
@@ -22,5 +47,5 @@ function toBackendDate(value) {
22
47
  * Generated bundle index. Do not edit.
23
48
  */
24
49
 
25
- export { formatDate, toBackendDate, toDateInputValue };
50
+ export { DateFormatPipe, formatDate, toBackendDate, toDateInputValue };
26
51
  //# sourceMappingURL=ng-vagabond-lab-ng-dsv-date.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-date.mjs","sources":["../../../projects/ng-dsv/date/utils/date.utils.ts","../../../projects/ng-dsv/date/ng-vagabond-lab-ng-dsv-date.ts"],"sourcesContent":["export const 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\nexport function toDateInputValue(value: string | null | undefined): string {\n if (!value) return '';\n return value.includes('T') ? value.split('T')[0] : value;\n}\n\nexport function toBackendDate(value: string | null | undefined): string {\n if (!value) return '';\n return value.includes('T') ? value : `${value}T00:00:00`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,UAAU,GAAG,CAAC,UAAkB,KAAY;AACrD,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;AAEjC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1D,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAE/B,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACtD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAE1D,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE;AACxD;AAEM,SAAU,gBAAgB,CAAC,KAAgC,EAAA;AAC7D,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;IACrB,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AAC5D;AAEM,SAAU,aAAa,CAAC,KAAgC,EAAA;AAC1D,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;AACrB,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAA,EAAG,KAAK,WAAW;AAC5D;;ACrBA;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-date.mjs","sources":["../../../projects/ng-dsv/date/pipe/date.format.pipe.ts","../../../projects/ng-dsv/date/utils/date.utils.ts","../../../projects/ng-dsv/date/ng-vagabond-lab-ng-dsv-date.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { formatDate } from '../public-api';\n\n@Pipe({\n name: 'formatDate',\n standalone: true,\n})\nexport class DateFormatPipe implements PipeTransform {\n transform(value: string): string {\n return formatDate(value);\n }\n}\n","const FORMAT_TOKENS: Record<string, (d: Date) => string> = {\n DD: (d) => String(d.getDate()).padStart(2, '0'),\n MM: (d) => String(d.getMonth() + 1).padStart(2, '0'),\n YYYY: (d) => String(d.getFullYear()),\n YY: (d) => String(d.getFullYear()).slice(-2),\n HH: (d) => String(d.getHours()).padStart(2, '0'),\n mm: (d) => String(d.getMinutes()).padStart(2, '0'),\n ss: (d) => String(d.getSeconds()).padStart(2, '0'),\n};\n\nconst TOKEN_REGEX = new RegExp(Object.keys(FORMAT_TOKENS).join('|'), 'g');\n\nexport const formatDate = (dateString: string, format = 'DD/MM/YYYY HH:mm:ss'): string => {\n const date = new Date(dateString);\n\n if (Number.isNaN(date.getTime())) return '—';\n\n return format.replace(TOKEN_REGEX, (token) => FORMAT_TOKENS[token](date));\n};\n\nexport function toDateInputValue(value: string | null | undefined): string {\n if (!value) return '';\n return value.includes('T') ? value.split('T')[0] : value;\n}\n\nexport function toBackendDate(value: string | null | undefined): string {\n if (!value) return '';\n return value.includes('T') ? value : `${value}T00:00:00`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,cAAc,CAAA;AACvB,IAAA,SAAS,CAAC,KAAa,EAAA;AACnB,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC;IAC5B;wGAHS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;ACND,MAAM,aAAa,GAAwC;AACvD,IAAA,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACpD,IAAA,IAAI,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACpC,IAAA,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,IAAA,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChD,IAAA,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAClD,IAAA,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;CACrD;AAED,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAElE,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,MAAM,GAAG,qBAAqB,KAAY;AACrF,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAAE,QAAA,OAAO,GAAG;AAE5C,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7E;AAEM,SAAU,gBAAgB,CAAC,KAAgC,EAAA;AAC7D,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;IACrB,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AAC5D;AAEM,SAAU,aAAa,CAAC,KAAgC,EAAA;AAC1D,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;AACrB,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAA,EAAG,KAAK,WAAW;AAC5D;;AC5BA;;AAEG;;;;"}
@@ -3,10 +3,10 @@ import { inject, signal, Injectable, input, output, effect, Component } from '@a
3
3
  import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
4
4
  import { DsvChipComponent } from '@ng-vagabond-lab/ng-dsv/ds/chip';
5
5
  import { ReactiveSearchbarComponent, BaseFormReactiveComponent, FormReactiveComponent, FormReactiveInputComponent, FormReactiveCheckboxComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';
6
+ import { BaseContainer, BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';
6
7
  import { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';
7
8
  import { ModalService, ModalButtonComponent, ModalComponent } from '@ng-vagabond-lab/ng-dsv/ds/modal';
8
9
  import { ApiService } from '@ng-vagabond-lab/ng-dsv/api';
9
- import { BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';
10
10
  import { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';
11
11
  import { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';
12
12
  import { RouterLink } from '@angular/router';
@@ -68,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
68
68
  }]
69
69
  }] });
70
70
 
71
- class AdminSearchModalContainer {
71
+ class AdminSearchModalContainer extends BaseContainer {
72
72
  modalService = inject(ModalService);
73
73
  adminService = inject(AdminService);
74
74
  m2em = input.required(...(ngDevMode ? [{ debugName: "m2em" }] : /* istanbul ignore next */ []));
@@ -76,6 +76,8 @@ class AdminSearchModalContainer {
76
76
  datas = signal([], ...(ngDevMode ? [{ debugName: "datas" }] : /* istanbul ignore next */ []));
77
77
  callback = output();
78
78
  constructor() {
79
+ super();
80
+ this.requiredRole.set('ADMIN');
79
81
  effect(() => {
80
82
  this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {
81
83
  this.datas.set(data.content);
@@ -93,7 +95,7 @@ class AdminSearchModalContainer {
93
95
  this.modalService.close('m2m');
94
96
  };
95
97
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AdminSearchModalContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: AdminSearchModalContainer, isStandalone: true, selector: "dsv-admin-search-modal", inputs: { m2em: { classPropertyName: "m2em", publicName: "m2em", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<dsv-modal-button\n id=\"m2m\"\n icon=\"ri-add-line\"\n/>\n<dsv-modal\n id=\"m2m\"\n titleText=\"Ajouter un e\u0301le\u0301ment\"\n>\n <dsv-form-reactive-searchbar\n [search]=\"search()\"\n (callbackSearch)=\"doSearch($event)\"\n />\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</dsv-modal>\n", styles: [":host dsv-modal{--modal-width: 70% !important;--modal-left: 15% !important;--modal-height: 65% !important;--modal-top: 20% !important}\n"], dependencies: [{ kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "url", "small"], outputs: ["callback"] }, { kind: "component", type: ModalButtonComponent, selector: "dsv-modal-button", inputs: ["id", "icon", "variant", "text", "color"], outputs: ["callback"] }, { kind: "component", type: ModalComponent, selector: "dsv-modal", inputs: ["id", "titleText", "class", "canEchap"] }, { kind: "component", type: ReactiveSearchbarComponent, selector: "dsv-form-reactive-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }] });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: AdminSearchModalContainer, isStandalone: true, selector: "dsv-admin-search-modal", inputs: { m2em: { classPropertyName: "m2em", publicName: "m2em", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, usesInheritance: true, ngImport: i0, template: "<dsv-modal-button\n id=\"m2m\"\n icon=\"ri-add-line\"\n/>\n<dsv-modal\n id=\"m2m\"\n titleText=\"Ajouter un e\u0301le\u0301ment\"\n>\n <dsv-form-reactive-searchbar\n [search]=\"search()\"\n (callbackSearch)=\"doSearch($event)\"\n />\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</dsv-modal>\n", styles: [":host dsv-modal{--modal-width: 70% !important;--modal-left: 15% !important;--modal-height: 65% !important;--modal-top: 20% !important}\n"], dependencies: [{ kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "url", "small"], outputs: ["callback"] }, { kind: "component", type: ModalButtonComponent, selector: "dsv-modal-button", inputs: ["id", "icon", "variant", "text", "color"], outputs: ["callback"] }, { kind: "component", type: ModalComponent, selector: "dsv-modal", inputs: ["id", "titleText", "class", "canEchap"] }, { kind: "component", type: ReactiveSearchbarComponent, selector: "dsv-form-reactive-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }] });
97
99
  }
98
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AdminSearchModalContainer, decorators: [{
99
101
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-modules-admin.mjs","sources":["../../../projects/ng-dsv/modules/admin/service/admin.service.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.html","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.html","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.html","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.html","../../../projects/ng-dsv/modules/admin/dto/admin.default.dto.ts","../../../projects/ng-dsv/modules/admin/ng-vagabond-lab-ng-dsv-modules-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<Record<string, PageableDto<ApiDto[]>>>({});\n data = signal<ApiDto>({} as ApiDto);\n\n page = signal<Record<string, number>>({});\n search = signal<Record<string, string>>({});\n\n get(\n endpoint: string,\n fields: string,\n search: string,\n page: number = 0,\n max: number = 10,\n callback?: (data: PageableDto<ApiDto[]>) => void,\n ) {\n const url =\n '/' +\n endpoint +\n '/findBy?fields=' +\n fields +\n '&values=' +\n search +\n '&first=' +\n page +\n '&max=' +\n max;\n\n const callbackResponse =\n callback ??\n ((data: PageableDto<ApiDto[]>) => {\n this.datas.update((s) => ({ ...s, [endpoint]: data }));\n });\n this.apiService.get<PageableDto<ApiDto[]>>(encodeURI(url), callbackResponse);\n }\n\n post(endpoint: string, data: ApiDto) {\n const url = '/' + endpoint;\n this.apiService.post<ApiDto>(encodeURI(url), data, (response) => {\n this.data.set(response);\n });\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}\n","import { Component, effect, inject, input, output, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\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: 'dsv-admin-search-modal',\n imports: [DsvItemComponent, ModalButtonComponent, ModalComponent, ReactiveSearchbarComponent],\n templateUrl: './admin.search.modal.component.html',\n styleUrls: ['./admin.search.modal.component.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}\n","<dsv-modal-button\n id=\"m2m\"\n icon=\"ri-add-line\"\n/>\n<dsv-modal\n id=\"m2m\"\n titleText=\"Ajouter un élément\"\n>\n <dsv-form-reactive-searchbar\n [search]=\"search()\"\n (callbackSearch)=\"doSearch($event)\"\n />\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</dsv-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 { DsvChipComponent } from '@ng-vagabond-lab/ng-dsv/ds/chip';\nimport {\n BaseFormReactiveComponent,\n FormReactiveCheckboxComponent,\n FormReactiveComponent,\n FormReactiveInputComponent,\n} from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { FormDto } from '../../dto/admin.dto';\nimport { AdminSearchModalContainer } from '../modal/admin.search.modal.component';\n\n@Component({\n selector: 'dsv-admin-form',\n imports: [\n ReactiveFormsModule,\n DsvChipComponent,\n FormReactiveComponent,\n FormReactiveInputComponent,\n FormReactiveCheckboxComponent,\n AdminSearchModalContainer,\n ],\n templateUrl: './admin.form.component.html',\n styleUrls: ['./admin.form.component.scss'],\n})\nexport class AdminFormComponent extends BaseFormReactiveComponent {\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(\n { value, disabled: conf.disabled ?? false },\n required ? Validators.required : null,\n );\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}\n","<dsv-form-reactive\n [form]=\"form\"\n [urlBack]=\"urlBack()!\"\n (callback)=\"sendForm($event)\"\n>\n @for (field of formConf(); track field.name) {\n <div [class]=\"'item ' + (field.className ?? '')\">\n @if (\n field.type === 'text' ||\n field.type === 'number' ||\n field.type === 'textarea' ||\n field.type === 'datetime-local'\n ) {\n <dsv-form-reactive-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-reactive-checkbox\n [form]=\"form\"\n [field]=\"field.name\"\n />\n }\n @if (field.type === 'm2m') {\n <div class=\"m2m\">\n <div class=\"m2m-content\">\n @for (value of form.value[field.name]; track value.id) {\n <dsv-chip\n color=\"default\"\n [text]=\"value.name\"\n (delete)=\"removeValue(field.name, value.id)()\"\n />\n }\n <dsv-admin-search-modal\n [m2em]=\"field.m2m!\"\n (callback)=\"addValue(field.name)($event)\"\n />\n </div>\n </div>\n }\n </div>\n }\n</dsv-form-reactive>\n","import { Component, effect, inject, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseRouteContainer } 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 { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\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-container',\n imports: [DsvCardComponent, AdminFormComponent],\n templateUrl: './admin.form.container.html',\n styleUrls: ['./admin.form.container.scss'],\n})\nexport class AdminFormContainer extends BaseRouteContainer {\n adminService = inject(AdminService);\n platformService = inject(PlatformService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n constructor() {\n super();\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\n const id = this.routeParams()?.['id'];\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 if (Number.isNaN(Number(id))) {\n this.adminService.data.set({} as ApiDto);\n } else {\n this.findById(this.routeParams()?.['id']);\n }\n }\n });\n }\n\n findById(id: string) {\n this.adminService.findById(this.tabConfig()?.name!, id);\n }\n\n sendForm(data: ApiDto) {\n const dataFusion = {\n ...this.adminService.data(),\n ...data,\n };\n if (dataFusion.id) {\n this.adminService.put(this.tabConfig()?.name!, dataFusion);\n } else {\n this.adminService.post(this.tabConfig()?.name!, dataFusion);\n }\n }\n}\n","<dsv-card [titleText]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n <dsv-admin-form\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 { RouterLink } from '@angular/router';\nimport { BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { FormSignalSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/signal';\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 { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { AdminTabDto } from '../../dto/admin.dto';\nimport { AdminService } from '../../service/admin.service';\n\n@Component({\n selector: 'dsv-admin-search',\n imports: [\n DsvCardComponent,\n DsvButtonComponent,\n TabsComponent,\n TableComponent,\n PaginateComponent,\n RouterLink,\n FormSignalSearchbarComponent,\n ],\n templateUrl: './admin.search.container.html',\n styleUrls: ['./admin.search.container.scss'],\n})\nexport class AdminSearchContainer extends BaseRouteContainer {\n adminService = inject(AdminService);\n platformService = inject(PlatformService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n load = signal<Record<string, boolean>>({});\n\n constructor() {\n super();\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\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 if (!this.load()[this.routeParams()?.['type']]) {\n this.load.update((s) => ({ ...s, [this.tabConfig()?.name!]: true }));\n this.gotoPage(0);\n }\n }\n });\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\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 = tab.name;\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\n gotoPage(page: number, search: string = '') {\n this.adminService.page.update((s) => ({ ...s, [this.tabConfig()?.name!]: page }));\n this.adminService.search.update((s) => ({ ...s, [this.tabConfig()?.name!]: search }));\n this.adminService.get(\n this.tabConfig()?.name!,\n this.tabConfig()?.findByChamps!,\n search,\n page,\n this.adminService.tabs()?.max,\n );\n }\n}\n","<dsv-tabs-component\n [tabs]=\"tabs()\"\n [active]=\"tab()\"\n/>\n<dsv-card>\n <div class=\"admin-header\">\n <span>Résulat : {{ adminService.datas()[tab()]?.totalElements }}</span>\n <dsv-button\n variant=\"contained\"\n color=\"primary\"\n icon=\"ri-add-line\"\n [routerLink]=\"'/admin/' + tab() + '/add'\"\n [prevent]=\"false\"\n ></dsv-button>\n </div>\n <dsv-form-signal-searchbar\n [search]=\"adminService.search()[tab()]\"\n (callbackSearch)=\"gotoPage(0, $event)\"\n />\n <dsv-table\n [cells]=\"tabConfig()?.cells!\"\n [datas]=\"adminService.datas()[tab()]?.content!\"\n [max]=\"adminService.tabs().max!\"\n [url]=\"'/admin/' + tab()\"\n ></dsv-table>\n <dsv-paginate\n [page]=\"adminService.page()[this.tabConfig()?.name!]\"\n [max]=\"adminService.datas()[tab()]?.totalPages!\"\n (callback)=\"gotoPage($event)\"\n />\n</dsv-card>\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 {\n name: 'creationDate',\n label: 'AUTH.FIELDS.CREATE_DATE',\n type: 'datetime-local',\n className: 'width50',\n disabled: true,\n },\n {\n name: 'updatedDate',\n label: 'AUTH.FIELDS.UPDATE_DATE',\n type: 'datetime-local',\n className: 'width50',\n disabled: true,\n },\n {\n name: 'deletedDate',\n label: 'AUTH.FIELDS.DELETE_DATE',\n type: 'datetime-local',\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 {\n label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n width: '150px',\n name: 'lastConnexionDate',\n date: true,\n order: true,\n },\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 {\n name: 'lastConnexionDate',\n label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n type: 'datetime-local',\n required: false,\n },\n {\n name: 'activationToken',\n label: 'AUTH.FIELDS.ACTIVATION_TOKEN',\n type: 'text',\n className: 'width50',\n },\n {\n name: 'emailActivation',\n label: 'AUTH.FIELDS.EMAIL_ACTIVIATION',\n type: 'switch',\n className: 'width50',\n },\n {\n name: 'identityToken',\n label: 'AUTH.FIELDS.IDENTITY_TOKEN',\n type: 'text',\n className: 'width50',\n },\n {\n name: 'identityTokenDateEnd',\n label: 'AUTH.FIELDS.IDENTITY_TOKEN_DATE',\n type: 'datetime-local',\n className: 'width50',\n },\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\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","/**\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-modules-admin.mjs","sources":["../../../projects/ng-dsv/modules/admin/service/admin.service.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.html","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.html","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.html","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.html","../../../projects/ng-dsv/modules/admin/dto/admin.default.dto.ts","../../../projects/ng-dsv/modules/admin/ng-vagabond-lab-ng-dsv-modules-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<Record<string, PageableDto<ApiDto[]>>>({});\n data = signal<ApiDto>({} as ApiDto);\n\n page = signal<Record<string, number>>({});\n search = signal<Record<string, string>>({});\n\n get(\n endpoint: string,\n fields: string,\n search: string,\n page: number = 0,\n max: number = 10,\n callback?: (data: PageableDto<ApiDto[]>) => void,\n ) {\n const url =\n '/' +\n endpoint +\n '/findBy?fields=' +\n fields +\n '&values=' +\n search +\n '&first=' +\n page +\n '&max=' +\n max;\n\n const callbackResponse =\n callback ??\n ((data: PageableDto<ApiDto[]>) => {\n this.datas.update((s) => ({ ...s, [endpoint]: data }));\n });\n this.apiService.get<PageableDto<ApiDto[]>>(encodeURI(url), callbackResponse);\n }\n\n post(endpoint: string, data: ApiDto) {\n const url = '/' + endpoint;\n this.apiService.post<ApiDto>(encodeURI(url), data, (response) => {\n this.data.set(response);\n });\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}\n","import { Component, effect, inject, input, output, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseContainer } from '@ng-vagabond-lab/ng-dsv/base';\nimport { ReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\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: 'dsv-admin-search-modal',\n imports: [DsvItemComponent, ModalButtonComponent, ModalComponent, ReactiveSearchbarComponent],\n templateUrl: './admin.search.modal.component.html',\n styleUrls: ['./admin.search.modal.component.scss'],\n})\nexport class AdminSearchModalContainer extends BaseContainer {\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 super();\n this.requiredRole.set('ADMIN');\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}\n","<dsv-modal-button\n id=\"m2m\"\n icon=\"ri-add-line\"\n/>\n<dsv-modal\n id=\"m2m\"\n titleText=\"Ajouter un élément\"\n>\n <dsv-form-reactive-searchbar\n [search]=\"search()\"\n (callbackSearch)=\"doSearch($event)\"\n />\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</dsv-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 { DsvChipComponent } from '@ng-vagabond-lab/ng-dsv/ds/chip';\nimport {\n BaseFormReactiveComponent,\n FormReactiveCheckboxComponent,\n FormReactiveComponent,\n FormReactiveInputComponent,\n} from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { FormDto } from '../../dto/admin.dto';\nimport { AdminSearchModalContainer } from '../modal/admin.search.modal.component';\n\n@Component({\n selector: 'dsv-admin-form',\n imports: [\n ReactiveFormsModule,\n DsvChipComponent,\n FormReactiveComponent,\n FormReactiveInputComponent,\n FormReactiveCheckboxComponent,\n AdminSearchModalContainer,\n ],\n templateUrl: './admin.form.component.html',\n styleUrls: ['./admin.form.component.scss'],\n})\nexport class AdminFormComponent extends BaseFormReactiveComponent {\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(\n { value, disabled: conf.disabled ?? false },\n required ? Validators.required : null,\n );\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}\n","<dsv-form-reactive\n [form]=\"form\"\n [urlBack]=\"urlBack()!\"\n (callback)=\"sendForm($event)\"\n>\n @for (field of formConf(); track field.name) {\n <div [class]=\"'item ' + (field.className ?? '')\">\n @if (\n field.type === 'text' ||\n field.type === 'number' ||\n field.type === 'textarea' ||\n field.type === 'datetime-local'\n ) {\n <dsv-form-reactive-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-reactive-checkbox\n [form]=\"form\"\n [field]=\"field.name\"\n />\n }\n @if (field.type === 'm2m') {\n <div class=\"m2m\">\n <div class=\"m2m-content\">\n @for (value of form.value[field.name]; track value.id) {\n <dsv-chip\n color=\"default\"\n [text]=\"value.name\"\n (delete)=\"removeValue(field.name, value.id)()\"\n />\n }\n <dsv-admin-search-modal\n [m2em]=\"field.m2m!\"\n (callback)=\"addValue(field.name)($event)\"\n />\n </div>\n </div>\n }\n </div>\n }\n</dsv-form-reactive>\n","import { Component, effect, inject, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseRouteContainer } 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 { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\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-container',\n imports: [DsvCardComponent, AdminFormComponent],\n templateUrl: './admin.form.container.html',\n styleUrls: ['./admin.form.container.scss'],\n})\nexport class AdminFormContainer extends BaseRouteContainer {\n adminService = inject(AdminService);\n platformService = inject(PlatformService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n constructor() {\n super();\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\n const id = this.routeParams()?.['id'];\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 if (Number.isNaN(Number(id))) {\n this.adminService.data.set({} as ApiDto);\n } else {\n this.findById(this.routeParams()?.['id']);\n }\n }\n });\n }\n\n findById(id: string) {\n this.adminService.findById(this.tabConfig()?.name!, id);\n }\n\n sendForm(data: ApiDto) {\n const dataFusion = {\n ...this.adminService.data(),\n ...data,\n };\n if (dataFusion.id) {\n this.adminService.put(this.tabConfig()?.name!, dataFusion);\n } else {\n this.adminService.post(this.tabConfig()?.name!, dataFusion);\n }\n }\n}\n","<dsv-card [titleText]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n <dsv-admin-form\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 { RouterLink } from '@angular/router';\nimport { BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { FormSignalSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/signal';\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 { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { AdminTabDto } from '../../dto/admin.dto';\nimport { AdminService } from '../../service/admin.service';\n\n@Component({\n selector: 'dsv-admin-search',\n imports: [\n DsvCardComponent,\n DsvButtonComponent,\n TabsComponent,\n TableComponent,\n PaginateComponent,\n RouterLink,\n FormSignalSearchbarComponent,\n ],\n templateUrl: './admin.search.container.html',\n styleUrls: ['./admin.search.container.scss'],\n})\nexport class AdminSearchContainer extends BaseRouteContainer {\n adminService = inject(AdminService);\n platformService = inject(PlatformService);\n\n tabs = signal<TabDto[]>([]);\n tab = signal<string>('user');\n tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n load = signal<Record<string, boolean>>({});\n\n constructor() {\n super();\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\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 if (!this.load()[this.routeParams()?.['type']]) {\n this.load.update((s) => ({ ...s, [this.tabConfig()?.name!]: true }));\n this.gotoPage(0);\n }\n }\n });\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\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 = tab.name;\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\n gotoPage(page: number, search: string = '') {\n this.adminService.page.update((s) => ({ ...s, [this.tabConfig()?.name!]: page }));\n this.adminService.search.update((s) => ({ ...s, [this.tabConfig()?.name!]: search }));\n this.adminService.get(\n this.tabConfig()?.name!,\n this.tabConfig()?.findByChamps!,\n search,\n page,\n this.adminService.tabs()?.max,\n );\n }\n}\n","<dsv-tabs-component\n [tabs]=\"tabs()\"\n [active]=\"tab()\"\n/>\n<dsv-card>\n <div class=\"admin-header\">\n <span>Résulat : {{ adminService.datas()[tab()]?.totalElements }}</span>\n <dsv-button\n variant=\"contained\"\n color=\"primary\"\n icon=\"ri-add-line\"\n [routerLink]=\"'/admin/' + tab() + '/add'\"\n [prevent]=\"false\"\n ></dsv-button>\n </div>\n <dsv-form-signal-searchbar\n [search]=\"adminService.search()[tab()]\"\n (callbackSearch)=\"gotoPage(0, $event)\"\n />\n <dsv-table\n [cells]=\"tabConfig()?.cells!\"\n [datas]=\"adminService.datas()[tab()]?.content!\"\n [max]=\"adminService.tabs().max!\"\n [url]=\"'/admin/' + tab()\"\n ></dsv-table>\n <dsv-paginate\n [page]=\"adminService.page()[this.tabConfig()?.name!]\"\n [max]=\"adminService.datas()[tab()]?.totalPages!\"\n (callback)=\"gotoPage($event)\"\n />\n</dsv-card>\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 {\n name: 'creationDate',\n label: 'AUTH.FIELDS.CREATE_DATE',\n type: 'datetime-local',\n className: 'width50',\n disabled: true,\n },\n {\n name: 'updatedDate',\n label: 'AUTH.FIELDS.UPDATE_DATE',\n type: 'datetime-local',\n className: 'width50',\n disabled: true,\n },\n {\n name: 'deletedDate',\n label: 'AUTH.FIELDS.DELETE_DATE',\n type: 'datetime-local',\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 {\n label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n width: '150px',\n name: 'lastConnexionDate',\n date: true,\n order: true,\n },\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 {\n name: 'lastConnexionDate',\n label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n type: 'datetime-local',\n required: false,\n },\n {\n name: 'activationToken',\n label: 'AUTH.FIELDS.ACTIVATION_TOKEN',\n type: 'text',\n className: 'width50',\n },\n {\n name: 'emailActivation',\n label: 'AUTH.FIELDS.EMAIL_ACTIVIATION',\n type: 'switch',\n className: 'width50',\n },\n {\n name: 'identityToken',\n label: 'AUTH.FIELDS.IDENTITY_TOKEN',\n type: 'text',\n className: 'width50',\n },\n {\n name: 'identityTokenDateEnd',\n label: 'AUTH.FIELDS.IDENTITY_TOKEN_DATE',\n type: 'datetime-local',\n className: 'width50',\n },\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -5,9 +5,8 @@ import { ModalButtonComponent, ModalAlertComponent } from '@ng-vagabond-lab/ng-d
5
5
  import { BaseService } from '@ng-vagabond-lab/ng-dsv/base/service';
6
6
  import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
7
7
  import { toObservable } from '@angular/core/rxjs-interop';
8
- import { Router } from '@angular/router';
9
- import { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';
10
- import { filter, take, map, tap, timeout, of, catchError, throwError, switchMap } from 'rxjs';
8
+ import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
9
+ import { filter, take, map, catchError, throwError, switchMap } from 'rxjs';
11
10
  import { HttpClient, HttpErrorResponse } from '@angular/common/http';
12
11
  import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
13
12
 
@@ -43,29 +42,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
43
42
  args: [{ selector: 'dsv-auth', imports: [CommonModule, ModalButtonComponent, ModalAlertComponent], template: "<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [class.hidden]=\"!authService.loadRefreshToken() || authService.userConnected() !== null\"\n ></button>\n</div>\n\n@if (authService.userConnected()) {\n <div class=\"profile\">\n <img\n [src]=\"authService.userConnected()?.avatar\"\n alt=\"profile\"\n />\n <dsv-modal-button\n id=\"logout\"\n icon=\"ri-logout-box-line\"\n />\n </div>\n <dsv-modal-alert\n id=\"logout\"\n titleText=\"De\u0301connexion\"\n text=\"Voulez-vous vraiment vous de\u0301connecter ?\"\n button=\"Oui\"\n buttonClose=\"Non\"\n (callback)=\"logout()\"\n ></dsv-modal-alert>\n}\n", styles: [".auth-button button{margin:0;padding:0;background:transparent;border:0px}.profile{display:flex;gap:.5rem;flex-flow:nowrap;align-items:center}.profile img{width:30px;height:30px;border-radius:50%}\n"] }]
44
43
  }], ctorParameters: () => [], propDecorators: { callbackInitMember: [{ type: i0.Output, args: ["callbackInitMember"] }], callbackLogout: [{ type: i0.Output, args: ["callbackLogout"] }] } });
45
44
 
46
- const authGuard = (route) => {
47
- const platformService = inject(PlatformService);
48
- if (!platformService.isPlatformBrowser()) {
49
- return true;
50
- }
51
- const authService = inject(AuthService);
52
- const router = inject(Router);
53
- const requiredRole = route.data['role'];
54
- if (!requiredRole) {
55
- console.warn('No role specified in route data.');
56
- return false;
57
- }
58
- return toObservable(authService.userConnected).pipe(filter((user) => user !== null), take(1), map((user) => hasRole(requiredRole, user?.profiles)), tap((hasRole) => {
59
- if (!hasRole) {
60
- router.navigate(['/']);
45
+ const authGuard = (role) => {
46
+ return () => {
47
+ const authService = inject(AuthService);
48
+ const router = inject(RouterService).router;
49
+ if (!authService.isPlatformBrowser()) {
50
+ return true;
61
51
  }
62
- }), timeout({
63
- each: 500,
64
- with: () => {
65
- router.navigate(['/']);
66
- return of(false);
67
- },
68
- }));
52
+ const requiredRole = role.toUpperCase();
53
+ return toObservable(authService.loadRefreshToken).pipe(filter((loaded) => loaded), take(1), map(() => {
54
+ if (authService.hasRole(requiredRole)) {
55
+ return true;
56
+ }
57
+ return router.createUrlTree(['/access-denied']);
58
+ }));
59
+ };
69
60
  };
70
61
 
71
62
  const authInterceptor = (req, next) => {
@@ -148,6 +139,10 @@ class AuthService extends BaseService {
148
139
  }
149
140
  }, true);
150
141
  }
142
+ hasRole(role) {
143
+ const user = this.userConnected();
144
+ return !!user && hasRole(role, user.profiles);
145
+ }
151
146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
152
147
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: AuthService, providedIn: 'root' });
153
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-modules-auth.mjs","sources":["../../../projects/ng-dsv/modules/auth/component/auth.component.ts","../../../projects/ng-dsv/modules/auth/component/auth.component.html","../../../projects/ng-dsv/modules/auth/guard/auth.guard.ts","../../../projects/ng-dsv/modules/auth/interceptor/auth.interceptor.ts","../../../projects/ng-dsv/modules/auth/service/auth.service.ts","../../../projects/ng-dsv/modules/auth/service/auth.google.service.ts","../../../projects/ng-dsv/modules/auth/utils/auth.utils.ts","../../../projects/ng-dsv/modules/auth/ng-vagabond-lab-ng-dsv-modules-auth.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, output } from '@angular/core';\nimport { ID } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ModalAlertComponent, ModalButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/modal';\nimport { AuthGoogleService, AuthService } from '../public-api';\n\n@Component({\n selector: 'dsv-auth',\n imports: [CommonModule, ModalButtonComponent, ModalAlertComponent],\n templateUrl: './auth.component.html',\n styleUrls: ['./auth.component.scss'],\n})\nexport class AuthComponent {\n readonly authService = inject(AuthService);\n readonly authGoogleService = inject(AuthGoogleService);\n\n callbackInitMember = output<ID>();\n callbackLogout = output<void>();\n\n constructor() {\n effect(() => {\n if (this.authService.loadRefreshToken()) {\n this.authGoogleService.initGoogleAuth('google-signin-button');\n }\n });\n effect(() => {\n if (this.authService.userConnected() === null) {\n this.authGoogleService.loginWithGoogle();\n } else {\n this.callbackInitMember.emit(this.authService.userConnected()?.id);\n }\n });\n }\n\n logout() {\n this.authService.logout();\n this.callbackLogout.emit();\n }\n}\n","<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [class.hidden]=\"!authService.loadRefreshToken() || authService.userConnected() !== null\"\n ></button>\n</div>\n\n@if (authService.userConnected()) {\n <div class=\"profile\">\n <img\n [src]=\"authService.userConnected()?.avatar\"\n alt=\"profile\"\n />\n <dsv-modal-button\n id=\"logout\"\n icon=\"ri-logout-box-line\"\n />\n </div>\n <dsv-modal-alert\n id=\"logout\"\n titleText=\"Déconnexion\"\n text=\"Voulez-vous vraiment vous déconnecter ?\"\n button=\"Oui\"\n buttonClose=\"Non\"\n (callback)=\"logout()\"\n ></dsv-modal-alert>\n}\n","import { inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { filter, map, of, take, tap, timeout } from 'rxjs';\nimport { AuthService, hasRole } from '../public-api';\n\nexport const authGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => {\n const platformService = inject(PlatformService);\n\n if (!platformService.isPlatformBrowser()) {\n return true;\n }\n\n const authService = inject(AuthService);\n const router = inject(Router);\n\n const requiredRole = route.data['role'];\n\n if (!requiredRole) {\n console.warn('No role specified in route data.');\n return false;\n }\n\n return toObservable(authService.userConnected).pipe(\n filter((user) => user !== null),\n take(1),\n map((user) => hasRole(requiredRole, user?.profiles)),\n tap((hasRole) => {\n if (!hasRole) {\n router.navigate(['/']);\n }\n }),\n timeout({\n each: 500,\n with: () => {\n router.navigate(['/']);\n return of(false);\n },\n }),\n );\n};\n","import { HttpClient, HttpErrorResponse, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { AuthService } from '../public-api';\n\nexport const authInterceptor = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\n const httpClient = inject(HttpClient);\n const authService = inject(AuthService);\n const toastService = inject(ToastService);\n\n return next(getToken(req, authService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(authService.apiService.baseUrl()) &&\n error.status === 401\n ) {\n return handle401Error(httpClient, authService, req, next);\n }\n\n let errorMessage = error.error.debugMessage ?? error.error.message ?? error.message;\n\n if (errorMessage === 'fetch failed' || errorMessage === 'Failed to fetch') {\n errorMessage = 'Api indisponible';\n }\n if (errorMessage === 'NO_REFRESH_TOKEN') {\n authService.logout(false);\n } else {\n toastService.showToast({\n type: 'error',\n text: errorMessage,\n });\n }\n\n return throwError(() => error);\n }),\n );\n};\n\nconst getToken = <T>(req: HttpRequest<T>, authService: AuthService) => {\n const jwt = authService.userToken();\n if (!req.url.includes('/auth/') && req.url.includes(authService.apiService.baseUrl()) && jwt) {\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 authService: AuthService,\n request: HttpRequest<T>,\n next: HttpHandlerFn,\n) => {\n return httpClient\n .post(authService.apiService.baseUrl() + '/auth/refresh-token', {}, { withCredentials: true })\n .pipe(\n switchMap((response) => {\n authService.initUser(response);\n return next(getToken(request, authService));\n }),\n );\n};\n","import { Injectable, signal } from '@angular/core';\nimport { JSONValue } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { UserDto, UserSigninDto } from '../dto/user.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService extends BaseService {\n userConnected = signal<UserDto | null>(null);\n userToken = signal<string>('');\n loadRefreshToken = signal<boolean>(false);\n\n initUser(user: UserSigninDto | null = null) {\n this.userConnected.set(user?.user ?? null);\n this.userToken.set(user?.jwt ?? '');\n this.loadRefreshToken.set(true);\n }\n\n googleLogin(credential: string) {\n this.apiService.post<JSONValue, UserSigninDto>(\n '/auth/google-identity-connect',\n {\n googleToken: credential,\n },\n (data) => {\n this.initUser(data);\n this.apiService.toastService.showToast({\n type: 'success',\n text: 'Connexion réussie',\n });\n },\n true,\n );\n }\n\n refreshToken() {\n this.apiService.post<UserSigninDto>(\n '/auth/refresh-token',\n {},\n (data) => this.initUser(data),\n true,\n () => this.initUser(),\n );\n }\n\n logout(showToast: boolean = true) {\n this.apiService.post<UserSigninDto>(\n '/auth/logout',\n {},\n () => {\n this.initUser();\n if (showToast) {\n this.apiService.toastService.showToast({\n type: 'success',\n text: 'Déconnexion réussie',\n });\n }\n },\n true,\n );\n }\n}\n","import { effect, inject, Injectable, signal } from '@angular/core';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthService } from './auth.service';\n\ndeclare const google: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGoogleService {\n readonly authService = inject(AuthService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly googleIds = signal<Map<string, boolean>>(new Map());\n\n readonly init = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n if (!this.init() && this.authService.isPlatformBrowser()) {\n this.init.set(true);\n google.accounts.id.initialize({\n client_id: this.environmentService.env()?.GOOGLE_CLIENT_ID,\n callback: this.handleCredentialResponse.bind(this),\n });\n }\n });\n }\n\n initGoogleAuth(googleButtonid: string = crypto.randomUUID()) {\n if (this.googleIds().get(googleButtonid) || !this.authService.isPlatformBrowser()) {\n return;\n }\n const element = document.getElementById(googleButtonid);\n if (element) {\n this.googleIds.update((ids) => {\n ids.set(googleButtonid, true);\n return ids;\n });\n google.accounts.id.renderButton(document.getElementById(googleButtonid)!, {\n theme: 'outline',\n size: 'medium',\n type: 'icon',\n });\n }\n }\n\n handleCredentialResponse(response: { credential: string }) {\n this.authService.googleLogin(response.credential);\n }\n\n loginWithGoogle() {\n if (this.authService.loadRefreshToken() && this.authService.userConnected() === null) {\n google.accounts.id.prompt();\n }\n }\n}\n","import { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\n\nexport const hasRole = (roles: string, userRoles?: ApiDto[]) => {\n const roleSplit = roles.split(',');\n let find = false;\n roleSplit.forEach((role) => {\n if (\n userRoles?.find(\n (userRole) =>\n userRole['roles' as keyof ApiDto]?.toString().includes(role) ||\n userRole['name' as keyof ApiDto] === role,\n )\n ) {\n find = true;\n }\n });\n return find;\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-modules-auth.mjs","sources":["../../../projects/ng-dsv/modules/auth/component/auth.component.ts","../../../projects/ng-dsv/modules/auth/component/auth.component.html","../../../projects/ng-dsv/modules/auth/guard/auth.guard.ts","../../../projects/ng-dsv/modules/auth/interceptor/auth.interceptor.ts","../../../projects/ng-dsv/modules/auth/service/auth.service.ts","../../../projects/ng-dsv/modules/auth/service/auth.google.service.ts","../../../projects/ng-dsv/modules/auth/utils/auth.utils.ts","../../../projects/ng-dsv/modules/auth/ng-vagabond-lab-ng-dsv-modules-auth.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, effect, inject, output } from '@angular/core';\nimport { ID } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ModalAlertComponent, ModalButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/modal';\nimport { AuthGoogleService, AuthService } from '../public-api';\n\n@Component({\n selector: 'dsv-auth',\n imports: [CommonModule, ModalButtonComponent, ModalAlertComponent],\n templateUrl: './auth.component.html',\n styleUrls: ['./auth.component.scss'],\n})\nexport class AuthComponent {\n readonly authService = inject(AuthService);\n readonly authGoogleService = inject(AuthGoogleService);\n\n callbackInitMember = output<ID>();\n callbackLogout = output<void>();\n\n constructor() {\n effect(() => {\n if (this.authService.loadRefreshToken()) {\n this.authGoogleService.initGoogleAuth('google-signin-button');\n }\n });\n effect(() => {\n if (this.authService.userConnected() === null) {\n this.authGoogleService.loginWithGoogle();\n } else {\n this.callbackInitMember.emit(this.authService.userConnected()?.id);\n }\n });\n }\n\n logout() {\n this.authService.logout();\n this.callbackLogout.emit();\n }\n}\n","<div class=\"auth-button\">\n <button\n id=\"google-signin-button\"\n [class.hidden]=\"!authService.loadRefreshToken() || authService.userConnected() !== null\"\n ></button>\n</div>\n\n@if (authService.userConnected()) {\n <div class=\"profile\">\n <img\n [src]=\"authService.userConnected()?.avatar\"\n alt=\"profile\"\n />\n <dsv-modal-button\n id=\"logout\"\n icon=\"ri-logout-box-line\"\n />\n </div>\n <dsv-modal-alert\n id=\"logout\"\n titleText=\"Déconnexion\"\n text=\"Voulez-vous vraiment vous déconnecter ?\"\n button=\"Oui\"\n buttonClose=\"Non\"\n (callback)=\"logout()\"\n ></dsv-modal-alert>\n}\n","import { inject } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CanActivateFn } from '@angular/router';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { filter, map, take } from 'rxjs';\nimport { AuthService } from '../public-api';\n\nexport const authGuard = (role: string): CanActivateFn => {\n return () => {\n const authService = inject(AuthService);\n const router = inject(RouterService).router;\n\n if (!authService.isPlatformBrowser()) {\n return true;\n }\n\n const requiredRole = role.toUpperCase();\n\n return toObservable(authService.loadRefreshToken).pipe(\n filter((loaded) => loaded),\n take(1),\n map(() => {\n if (authService.hasRole(requiredRole)) {\n return true;\n }\n return router.createUrlTree(['/access-denied']);\n }),\n );\n };\n};\n","import { HttpClient, HttpErrorResponse, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { AuthService } from '../public-api';\n\nexport const authInterceptor = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\n const httpClient = inject(HttpClient);\n const authService = inject(AuthService);\n const toastService = inject(ToastService);\n\n return next(getToken(req, authService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(authService.apiService.baseUrl()) &&\n error.status === 401\n ) {\n return handle401Error(httpClient, authService, req, next);\n }\n\n let errorMessage = error.error.debugMessage ?? error.error.message ?? error.message;\n\n if (errorMessage === 'fetch failed' || errorMessage === 'Failed to fetch') {\n errorMessage = 'Api indisponible';\n }\n if (errorMessage === 'NO_REFRESH_TOKEN') {\n authService.logout(false);\n } else {\n toastService.showToast({\n type: 'error',\n text: errorMessage,\n });\n }\n\n return throwError(() => error);\n }),\n );\n};\n\nconst getToken = <T>(req: HttpRequest<T>, authService: AuthService) => {\n const jwt = authService.userToken();\n if (!req.url.includes('/auth/') && req.url.includes(authService.apiService.baseUrl()) && jwt) {\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 authService: AuthService,\n request: HttpRequest<T>,\n next: HttpHandlerFn,\n) => {\n return httpClient\n .post(authService.apiService.baseUrl() + '/auth/refresh-token', {}, { withCredentials: true })\n .pipe(\n switchMap((response) => {\n authService.initUser(response);\n return next(getToken(request, authService));\n }),\n );\n};\n","import { Injectable, signal } from '@angular/core';\nimport { JSONValue } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { UserDto, UserSigninDto } from '../dto/user.dto';\nimport { hasRole } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService extends BaseService {\n userConnected = signal<UserDto | null>(null);\n userToken = signal<string>('');\n loadRefreshToken = signal<boolean>(false);\n\n initUser(user: UserSigninDto | null = null) {\n this.userConnected.set(user?.user ?? null);\n this.userToken.set(user?.jwt ?? '');\n this.loadRefreshToken.set(true);\n }\n\n googleLogin(credential: string) {\n this.apiService.post<JSONValue, UserSigninDto>(\n '/auth/google-identity-connect',\n {\n googleToken: credential,\n },\n (data) => {\n this.initUser(data);\n this.apiService.toastService.showToast({\n type: 'success',\n text: 'Connexion réussie',\n });\n },\n true,\n );\n }\n\n refreshToken() {\n this.apiService.post<UserSigninDto>(\n '/auth/refresh-token',\n {},\n (data) => this.initUser(data),\n true,\n () => this.initUser(),\n );\n }\n\n logout(showToast: boolean = true) {\n this.apiService.post<UserSigninDto>(\n '/auth/logout',\n {},\n () => {\n this.initUser();\n if (showToast) {\n this.apiService.toastService.showToast({\n type: 'success',\n text: 'Déconnexion réussie',\n });\n }\n },\n true,\n );\n }\n\n hasRole(role: string): boolean {\n const user = this.userConnected();\n return !!user && hasRole(role, user.profiles);\n }\n}\n","import { effect, inject, Injectable, signal } from '@angular/core';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { AuthService } from './auth.service';\n\ndeclare const google: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGoogleService {\n readonly authService = inject(AuthService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly googleIds = signal<Map<string, boolean>>(new Map());\n\n readonly init = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n if (!this.init() && this.authService.isPlatformBrowser()) {\n this.init.set(true);\n google.accounts.id.initialize({\n client_id: this.environmentService.env()?.GOOGLE_CLIENT_ID,\n callback: this.handleCredentialResponse.bind(this),\n });\n }\n });\n }\n\n initGoogleAuth(googleButtonid: string = crypto.randomUUID()) {\n if (this.googleIds().get(googleButtonid) || !this.authService.isPlatformBrowser()) {\n return;\n }\n const element = document.getElementById(googleButtonid);\n if (element) {\n this.googleIds.update((ids) => {\n ids.set(googleButtonid, true);\n return ids;\n });\n google.accounts.id.renderButton(document.getElementById(googleButtonid)!, {\n theme: 'outline',\n size: 'medium',\n type: 'icon',\n });\n }\n }\n\n handleCredentialResponse(response: { credential: string }) {\n this.authService.googleLogin(response.credential);\n }\n\n loginWithGoogle() {\n if (this.authService.loadRefreshToken() && this.authService.userConnected() === null) {\n google.accounts.id.prompt();\n }\n }\n}\n","import { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\n\nexport const hasRole = (roles: string, userRoles?: ApiDto[]) => {\n const roleSplit = roles.split(',');\n let find = false;\n roleSplit.forEach((role) => {\n if (\n userRoles?.find(\n (userRole) =>\n userRole['roles' as keyof ApiDto]?.toString().includes(role) ||\n userRole['name' as keyof ApiDto] === role,\n )\n ) {\n find = true;\n }\n });\n return find;\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.1.112",
3
+ "version": "0.1.113",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.0.0",
6
6
  "@angular/core": "^20.0.0"
@@ -1,9 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TransferState, StateKey } from '@angular/core';
3
3
  import { ApiService, ApiDto } from '@ng-vagabond-lab/ng-dsv/api';
4
+ import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
4
5
 
5
6
  declare abstract class BaseService {
6
7
  readonly apiService: ApiService;
8
+ readonly toastService: ToastService;
7
9
  readonly transferState: TransferState;
8
10
  readonly loaded: _angular_core.WritableSignal<boolean>;
9
11
  isPlatformBrowser(): boolean;
@@ -1,9 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TransferState, StateKey, OutputEmitterRef } from '@angular/core';
3
3
  import { AuthService } from '@ng-vagabond-lab/ng-dsv/modules/auth';
4
+ import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
4
5
  import { Title, Meta } from '@angular/platform-browser';
5
6
  import { ApiService, ApiDto } from '@ng-vagabond-lab/ng-dsv/api';
6
- import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
7
+ import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
7
8
  import * as _angular_router from '@angular/router';
8
9
  import { ActivatedRoute } from '@angular/router';
9
10
 
@@ -13,6 +14,7 @@ declare abstract class BaseComponent {
13
14
 
14
15
  declare abstract class BaseService {
15
16
  readonly apiService: ApiService;
17
+ readonly toastService: ToastService;
16
18
  readonly transferState: TransferState;
17
19
  readonly loaded: _angular_core.WritableSignal<boolean>;
18
20
  isPlatformBrowser(): boolean;
@@ -31,6 +33,10 @@ declare class SeoService extends BaseService {
31
33
  declare abstract class BaseContainer {
32
34
  readonly authService: AuthService;
33
35
  readonly seoService: SeoService;
36
+ readonly routerService: RouterService;
37
+ protected requiredRole: _angular_core.WritableSignal<string>;
38
+ constructor();
39
+ readonly hasAccess: _angular_core.Signal<boolean>;
34
40
  }
35
41
 
36
42
  declare abstract class BaseMainContainer {
@@ -1,5 +1,14 @@
1
- declare const formatDate: (dateString: string) => string;
1
+ import * as i0 from '@angular/core';
2
+ import { PipeTransform } from '@angular/core';
3
+
4
+ declare class DateFormatPipe implements PipeTransform {
5
+ transform(value: string): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateFormatPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<DateFormatPipe, "formatDate", true>;
8
+ }
9
+
10
+ declare const formatDate: (dateString: string, format?: string) => string;
2
11
  declare function toDateInputValue(value: string | null | undefined): string;
3
12
  declare function toBackendDate(value: string | null | undefined): string;
4
13
 
5
- export { formatDate, toBackendDate, toDateInputValue };
14
+ export { DateFormatPipe, formatDate, toBackendDate, toDateInputValue };
@@ -2,8 +2,8 @@ import * as _angular_core from '@angular/core';
2
2
  import { ApiDto, ID, ApiService, PageableDto } from '@ng-vagabond-lab/ng-dsv/api';
3
3
  import { BaseFormReactiveComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';
4
4
  import { TableDto } from '@ng-vagabond-lab/ng-dsv/ds/table';
5
+ import { BaseContainer, BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';
5
6
  import { ModalService } from '@ng-vagabond-lab/ng-dsv/ds/modal';
6
- import { BaseRouteContainer } from '@ng-vagabond-lab/ng-dsv/base';
7
7
  import { TabDto } from '@ng-vagabond-lab/ng-dsv/ds/tab';
8
8
  import { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';
9
9
 
@@ -80,7 +80,7 @@ declare class AdminService {
80
80
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AdminService>;
81
81
  }
82
82
 
83
- declare class AdminSearchModalContainer {
83
+ declare class AdminSearchModalContainer extends BaseContainer {
84
84
  modalService: ModalService;
85
85
  adminService: AdminService;
86
86
  m2em: _angular_core.InputSignal<ManyToManyDto>;
@@ -33,7 +33,7 @@ interface GoogleRequest {
33
33
  googleToken: string;
34
34
  }
35
35
 
36
- declare const authGuard: CanActivateFn;
36
+ declare const authGuard: (role: string) => CanActivateFn;
37
37
 
38
38
  declare const authInterceptor: (req: HttpRequest<unknown>, next: HttpHandlerFn) => rxjs.Observable<_angular_common_http.HttpEvent<unknown>>;
39
39
 
@@ -45,6 +45,7 @@ declare class AuthService extends BaseService {
45
45
  googleLogin(credential: string): void;
46
46
  refreshToken(): void;
47
47
  logout(showToast?: boolean): void;
48
+ hasRole(role: string): boolean;
48
49
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthService, never>;
49
50
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AuthService>;
50
51
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-api.d.ts","sources":["../../../projects/ng-dsv/api/dto/api.dto.ts","../../../projects/ng-dsv/api/dto/api.pageable.dto.ts","../../../projects/ng-dsv/api/service/api.resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts"],"mappings":";;;;;;;;AAAM,KAAM,EAAE;AACR,KAAM,QAAQ;UAEH,OAAO;SACf,EAAE;AACV;AAEK,UAAW,MAAO,SAAQ,OAAO;;;;;AAKtC;AAEK,KAAM,SAAS,GACf,QAAQ;AAEJ,iBAAa,SAAS;AACzB,IACD,KAAK,CAAC,SAAS,IACf,MAAM;AAEN,KAAM,UAAU;AAEZ,iBAAa,SAAS;AACzB,IACD,KAAK,CAAC,UAAU,IAChB,MAAM;AAEN,KAAM,IAAI;AACZ,iBAAa,IAAI,GAAG,QAAQ;;AAG1B,KAAM,MAAM;AACd;eACW,UAAU;;;UAIR,gBAAgB;;AAEhC;UAEgB,UAAU;;;AAG1B;;AC9CK,UAAW,WAAW;;;;;;AAMxB;;;;;AAKA;;AAEI;;;;;;;;;;;;;;AAcP;;UCvBgB,SAAS;;;;;;YAMd,UAAU;AACrB;AAED,cAGa,kBAAkB;AAC3B,SAAGA,EAAA,CAAA,cAAA;AAEH,cAAU,WAAW;;yCAHZ,kBAAkB;6CAAlB,kBAAkB;AAuB9B;;AC/BD,cAGa,UAAU;yBACA,UAAA;2BACE,YAAA;8BACG,eAAA;iCACG,kBAAA;AAE3B,aAAOA,EAAA,CAAA,cAAA;AACP,YAAMA,EAAA,CAAA,cAAA;;AAUN;AAIA;;AA6BA;AAIA,sCAAkC,EAAE;AAIpC,mGAMW,UAAU;AAsBrB;;AAA4F;6BASnE,MAAM;4CAgBf,UAAU;AAmB1B,4BAAwB,UAAU;AAMlC,8BAA0B,UAAU;yCAxI3B,UAAU;6CAAV,UAAU;AA6ItB;;;;","names":["_angular_core"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base-service.d.ts","sources":["../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/fetch/base.fetch.service.ts","../../../projects/ng-dsv/base/service/search/base.search.service.ts"],"mappings":";;;;AAGA,uBACsB,WAAW;yBACV,UAAA;4BACG,aAAA;qBAEP,aAAA,CAAA,cAAA;;oDAJG,WAAW;sDAAX,WAAW;AAShC;;ACTD,uBACsB,gBAAgB,WAAW,MAAM,GAAG,MAAM,YAAY,WAAW;kBAGvE,aAAA,CAAA,cAAA;8BAEc,QAAQ;AAIlC;;oDATkB,gBAAgB;sDAAhB,gBAAgB;AA0BrC;;AC1BD,uBACsB,iBAAiB,WAAW,MAAM,UAAU,gBAAgB;AAC9E,WAAK,aAAA,CAAA,cAAA;AAEL,UAAI,aAAA,CAAA,cAAA;AACJ,YAAM,aAAA,CAAA,cAAA;AACN,eAAS,aAAA,CAAA,cAAA;AACT,eAAS,aAAA,CAAA,cAAA;AAET;;AASA;;;AA+CA;oDAhEkB,iBAAiB;wDAAjB,iBAAiB;AAmEtC;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base.d.ts","sources":["../../../projects/ng-dsv/base/component/base.component.ts","../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/seo/seo.service.ts","../../../projects/ng-dsv/base/container/base.container.ts","../../../projects/ng-dsv/base/container/main/base.main.container.ts","../../../projects/ng-dsv/base/container/route/base.route.container.ts","../../../projects/ng-dsv/base/service/fetch/base.fetch.service.ts","../../../projects/ng-dsv/base/service/search/base.search.service.ts","../../../projects/ng-dsv/base/container/search/base.search.container.ts","../../../projects/ng-dsv/base/utils/base.utils.ts"],"mappings":";;;;;;;;;AAGA,uBAAsB,aAAa;AAC/B,YAAM,aAAA,CAAA,cAAA;AACT;;ACFD,uBACsB,WAAW;yBACV,UAAA;4BACG,aAAA;qBAEP,aAAA,CAAA,cAAA;;oDAJG,WAAW;sDAAX,WAAW;AAShC;;ACTD,cACa,UAAW,SAAQ,WAAW;AACvC,oBAAqB,KAAA;AACrB,mBAAoB,IAAA;AAEpB;oDAJS,UAAU;wDAAV,UAAU;AAWtB;;ACZD,uBAAsB,aAAa;0BACX,WAAA;yBACD,UAAA;AACtB;;ACHD,uBAAsB,iBAAiB;0BACf,WAAA;4BACE,aAAA;AAEtB,sBAAgB,aAAA,CAAA,cAAA;;AAUnB;;ACbD,uBAAsB,kBAAmB,SAAQ,aAAa;AAC1D,oBAAc,cAAA;AAEd,iBAAW,aAAA,CAAA,MAAA,CAAA,eAAA,CAAA,MAAA;AACd;;ACLD,uBACsB,gBAAgB,WAAW,MAAM,GAAG,MAAM,YAAY,WAAW;kBAGvE,aAAA,CAAA,cAAA;8BAEc,QAAQ;AAIlC;;oDATkB,gBAAgB;sDAAhB,gBAAgB;AA0BrC;;AC1BD,uBACsB,iBAAiB,WAAW,MAAM,UAAU,gBAAgB;AAC9E,WAAK,aAAA,CAAA,cAAA;AAEL,UAAI,aAAA,CAAA,cAAA;AACJ,YAAM,aAAA,CAAA,cAAA;AACN,eAAS,aAAA,CAAA,cAAA;AACT,eAAS,aAAA,CAAA,cAAA;AAET;;AASA;;;AA+CA;oDAhEkB,iBAAiB;wDAAjB,iBAAiB;AAmEtC;;AClED,uBAAsB,mBAAmB,WAAW,iBAAiB,CAAC,CAAC,aAAa,MAAM;0BAClE,WAAA;yBACD,UAAA;AAEnB;AAEY;AAeZ;;AASH;;ACnCD,cAAa,UAAU,gBAAiB,gBAAgB;AAKxD,cAAa,aAAa;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-date.d.ts","sources":["../../../projects/ng-dsv/date/utils/date.utils.ts"],"mappings":"AAAA,cAAa,UAAU;AAavB,iBAAgB,gBAAgB;AAKhC,iBAAgB,aAAa;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-avatar.d.ts","sources":["../../../projects/ng-dsv/ds/avatar/component/avatar.component.ts"],"mappings":";;;AAIA,cAMa,kBAAmB,SAAQ,kBAAkB;AACtD,YAAM,aAAA,CAAA,WAAA;AACN,cAAQ,aAAA,CAAA,gBAAA;AAER,kBAAY,aAAA,CAAA,cAAA;AACZ,aAAO,aAAA,CAAA,cAAA;AACP,gBAAU,aAAA,CAAA,cAAA;;;;oDAND,kBAAkB;sDAAlB,kBAAkB;AA4B9B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.d.ts","sources":["../../../projects/ng-dsv/ds/button/component/button.component.ts"],"mappings":";;;AAIA,cAMa,kBAAmB,SAAQ,kBAAkB;AACtD,aAAO,aAAA,CAAA,WAAA;AACP,UAAI,aAAA,CAAA,WAAA;AACJ,aAAO,aAAA,CAAA,WAAA;AACP,cAAQ,aAAA,CAAA,WAAA;AACR,aAAO,aAAA,CAAA,WAAA;AACP,UAAI,aAAA,CAAA,WAAA;AAEJ,aAAO,aAAA,CAAA,WAAA;AAEP,cAAQ,aAAA,CAAA,gBAAA;;mBAcO,KAAK;oDAxBX,kBAAkB;sDAAlB,kBAAkB;AA+B9B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.d.ts","sources":["../../../projects/ng-dsv/ds/card/component/card.component.ts"],"mappings":";;AAIA,cASa,gBAAgB;AACzB,YAAM,aAAA,CAAA,WAAA;AACN,eAAS,aAAA,CAAA,WAAA;AACT,cAAQ,aAAA,CAAA,WAAA;AACR,WAAK,aAAA,CAAA,WAAA;AACL,SAAG,aAAA,CAAA,WAAA;oDALM,gBAAgB;sDAAhB,gBAAgB;AAM5B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-chip.d.ts","sources":["../../../projects/ng-dsv/ds/chip/component/chip.component.ts"],"mappings":";;;AAMA,cAMa,gBAAiB,SAAQ,kBAAkB;AACpD,UAAI,aAAA,CAAA,WAAA;AAEJ,YAAM,aAAA,CAAA,gBAAA;AAEN,cAAQ,aAAA,CAAA,cAAA;;;oDALC,gBAAgB;sDAAhB,gBAAgB;AAqB5B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-container.d.ts","sources":["../../../projects/ng-dsv/ds/container/component/container.component.ts"],"mappings":";;AAKA,cASa,qBAAqB;AAC9B,YAAM,aAAA,CAAA,WAAA;AAEN,WAAK,aAAA,CAAA,MAAA;oDAHI,qBAAqB;sDAArB,qBAAqB;AAQjC;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-reactive.d.ts","sources":["../../../projects/ng-dsv/ds/form/reactive/checkbox/component/form.reactive.checkbox.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/base/base.form.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/component/form.reactive.component.ts","../../../projects/ng-dsv/ds/form/reactive/input/component/form.reactive.input.component.ts","../../../projects/ng-dsv/ds/form/reactive/searchbar/component/reactive.searchbar.component.ts","../../../projects/ng-dsv/ds/form/reactive/select/component/form.reactive.select.component.ts"],"mappings":";;;;;;AAIA,cASa,6BAA6B;AACtC,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AACJ,WAAK,aAAA,CAAA,WAAA;AACL,eAAS,aAAA,CAAA,WAAA;AAET,oBAAc,aAAA,CAAA,gBAAA;;oDALL,6BAA6B;sDAA7B,6BAA6B;AAUzC;;ACpBD,uBACsB,yBAAyB;AAC3C,oCAA8B,WAAA;AAC9B,oBAAiB,SAAS;oDAFR,yBAAyB;sDAAzB,yBAAyB;AAG9C;;ACCD,cAMa,qBAAqB;AAC9B,kBAAY,YAAA;AAEZ,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AAEJ,aAAO,aAAA,CAAA,WAAA;AACP,eAAS,aAAA,CAAA,WAAA;AACT,eAAS,aAAA,CAAA,WAAA;AAET,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;;oDATC,qBAAqB;sDAArB,qBAAqB;AA2BjC;;ACnCD,cAMa,0BAA0B;AACnC,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AACJ,WAAK,aAAA,CAAA,WAAA;AACL,UAAI,aAAA,CAAA,WAAA,CAAA,UAAA;AACJ,eAAS,aAAA,CAAA,WAAA;AACT,cAAQ,aAAA,CAAA,WAAA;AACR,UAAI,aAAA,CAAA,WAAA;AAEJ,kBAAY,aAAA,CAAA,gBAAA;;oDARH,0BAA0B;sDAA1B,0BAA0B;AAatC;;AClBD,cAMa,0BAA2B,SAAQ,yBAAyB;AACrE,YAAM,aAAA,CAAA,WAAA;AACN,oBAAc,aAAA,CAAA,gBAAA;;;oDAFL,0BAA0B;sDAA1B,0BAA0B;AAgBtC;;ACvBD,cASa,2BAA2B;AACpC,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AACJ,WAAK,aAAA,CAAA,WAAA;AACL,eAAS,aAAA,CAAA,WAAA;UAEL,aAAA,CAAA,WAAA,EAAA,MAAA;;AAA4C;AAEhD,oBAAc,aAAA,CAAA,gBAAA;;oDAPL,2BAA2B;sDAA3B,2BAA2B;AAYvC;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts","sources":["../../../projects/ng-dsv/ds/form/signal/base/form.signal.input.base.ts","../../../projects/ng-dsv/ds/form/signal/checkbox/component/form.signal.checkbox.component.ts","../../../projects/ng-dsv/ds/form/signal/error/component/form.signal.error.component.ts","../../../projects/ng-dsv/ds/form/signal/form/component/form.signal.component.ts","../../../projects/ng-dsv/ds/form/signal/input/component/form.signal.input.component.ts","../../../projects/ng-dsv/ds/form/signal/label/component/form.signal.label.component.ts","../../../projects/ng-dsv/ds/form/signal/form/base/base.form.signal.component.ts","../../../projects/ng-dsv/ds/form/signal/searchbar/component/form.signal.searchbar.component.ts","../../../projects/ng-dsv/ds/form/signal/select/component/form.signal.select.component.ts","../../../projects/ng-dsv/ds/form/signal/utils/form.signal.utils.ts"],"mappings":";;;;;;;AAGA,uBACsB,mBAAmB;AACrC,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AACJ,eAAS,aAAA,CAAA,WAAA;AACT,WAAK,aAAA,CAAA,WAAA;AACL,eAAS,aAAA,CAAA,WAAA;AACT,iBAAW,aAAA,CAAA,WAAA;AACX,cAAQ,aAAA,CAAA,WAAA;AACR,WAAK,aAAA,CAAA,WAAA;AAEL,aAAO,aAAA,CAAA,cAAA;AAEP,kBAAY,aAAA,CAAA,gBAAA;AACZ,oBAAc,aAAA,CAAA,gBAAA;;;iBAauE,SAAS;;;AAc9F;oDAvCkB,mBAAmB;sDAAnB,mBAAmB;AAgDxC;;AC/CD,cASa,2BAA2B,YAAY,mBAAmB;wBAEkB,SAAS;oDAFrF,2BAA2B;sDAA3B,2BAA2B;AAOvC;;ACjBD,cAMa,wBAAwB;AACjC,YAAM,aAAA,CAAA,WAAA,CAAA,eAAA;AACN,eAAS,aAAA,CAAA,WAAA;AAET,WAAK,aAAA,CAAA,cAAA;;;oDAJI,wBAAwB;sDAAxB,wBAAwB;AA+CpC;;AChDD,cAMa,mBAAmB;AAC5B,kBAAY,YAAA;AAEZ,UAAI,aAAA,CAAA,WAAA,CAAA,SAAA;AAEJ,aAAO,aAAA,CAAA,WAAA;AACP,eAAS,aAAA,CAAA,WAAA;AACT,eAAS,aAAA,CAAA,WAAA;AAET,kBAAY,aAAA,CAAA,gBAAA;AACZ,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;AAER,oBAAc,aAAA,CAAA,MAAA;;oBAME,KAAK;oDAlBZ,mBAAmB;sDAAnB,mBAAmB;AAoC/B;;AC5CD,cAMa,wBAAwB,YAAY,mBAAmB;AAChE,UAAI,aAAA,CAAA,WAAA,CAAA,UAAA;AACJ,UAAI,aAAA,CAAA,WAAA;oDAFK,wBAAwB;sDAAxB,wBAAwB;AAGpC;;ACbD,cAKa,wBAAwB;AACjC,WAAK,aAAA,CAAA,WAAA;AACL,UAAI,aAAA,CAAA,WAAA;AACJ,YAAM,aAAA,CAAA,WAAA,CAAA,UAAA;AACN,UAAI,aAAA,CAAA,WAAA;AAEJ,gBAAU,aAAA,CAAA,cAAA;;oDAND,wBAAwB;sDAAxB,wBAAwB;AAapC;;ACnBD,uBACsB,uBAAuB;oDAAvB,uBAAuB;sDAAvB,uBAAuB;AAAG;;ACEhD,cAMa,4BAA6B,SAAQ,uBAAuB;AACrE,YAAM,aAAA,CAAA,WAAA;AACN,oBAAc,aAAA,CAAA,gBAAA;UAEV,sBAAA,CAAA,SAAA;;AAA2C;;;oDAJtC,4BAA4B;sDAA5B,4BAA4B;AAgBxC;;ACpBD,cASa,yBAAyB,YAAY,mBAAmB;AACjE,cAAQ,aAAA,CAAA,WAAA;UAEJ,aAAA,CAAA,WAAA,EAAA,MAAA;;AAA4C;oDAHvC,yBAAyB;sDAAzB,yBAAyB;AAIrC;;AClBD,cAAa,YAAY,UAAW,iBAAiB;;;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-header.d.ts","sources":["../../../projects/ng-dsv/ds/header/component/header.component.ts"],"mappings":";;AAKA,cAMa,kBAAkB;AAC3B;AACA;AAEA,SAAG,aAAA,CAAA,WAAA;AACH,eAAS,aAAA,CAAA,WAAA;AACT,cAAQ,aAAA,CAAA,WAAA;AAER,oBAAc,aAAA,CAAA,MAAA;;oBAME,KAAK;oDAdZ,kBAAkB;sDAAlB,kBAAkB;AAmB9B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-img.d.ts","sources":["../../../projects/ng-dsv/ds/img/component/img.component.ts"],"mappings":";;AAGA,cAMa,eAAe;AACxB,SAAG,aAAA,CAAA,WAAA;AACH,SAAG,aAAA,CAAA,WAAA;AACH,WAAK,aAAA,CAAA,WAAA;AAEL,WAAK,aAAA,CAAA,WAAA;AACL,YAAM,aAAA,CAAA,WAAA;AAEN,UAAI,aAAA,CAAA,cAAA;AACJ,WAAK,aAAA,CAAA,cAAA;AAEL,iBAAW,aAAA,CAAA,MAAA;;;oDAXF,eAAe;sDAAf,eAAe;AAoB3B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-item.d.ts","sources":["../../../projects/ng-dsv/ds/item/component/item.component.ts"],"mappings":";;AAIA,cAKa,gBAAgB;AACzB;AAEA,UAAI,aAAA,CAAA,WAAA;AACJ,UAAI,aAAA,CAAA,WAAA;AACJ,SAAG,aAAA,CAAA,WAAA;AACH,WAAK,aAAA,CAAA,WAAA;AAEL,cAAQ,aAAA,CAAA,gBAAA;AAER,gBAAU,aAAA,CAAA,cAAA;;mBAQK,KAAK;oDAlBX,gBAAgB;sDAAhB,gBAAgB;AA0B5B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-linear-progress.d.ts","sources":["../../../projects/ng-dsv/ds/linear-progress/component/linear-progress.component.ts"],"mappings":";;AAEA,cAKa,uBAAuB;AAChC,UAAI,aAAA,CAAA,WAAA;AACJ,WAAK,aAAA,CAAA,WAAA;AACL,mBAAa,aAAA,CAAA,WAAA;oDAHJ,uBAAuB;sDAAvB,uBAAuB;AAInC;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-list.d.ts","sources":["../../../projects/ng-dsv/ds/list/item/component/drag/list.item.drag.component.ts","../../../projects/ng-dsv/ds/list/list/dto/list.dto.ts","../../../projects/ng-dsv/ds/list/list/service/list.drag.service.ts","../../../projects/ng-dsv/ds/list/item/component/list.item.component.ts","../../../projects/ng-dsv/ds/list/list/component/list.component.ts"],"mappings":";;;;AAKA,cAMa,qBAAqB;8BACN,eAAA;AAExB,aAAOA,EAAA,CAAA,WAAA,CAAA,iBAAA;6BAEkB,UAAU;wBAOf,UAAU;yCAZrB,qBAAqB;2CAArB,qBAAqB;AAejC;;UC1BgB,eAAe;;;AAG/B;;ACDD,cACa,eAAe;AACxB,kBAAYA,EAAA,CAAA,cAAA;AACZ,mBAAaA,EAAA,CAAA,cAAA;yCAFJ,eAAe;6CAAf,eAAe;AAG3B;;ACFD,cAMa,iBAAiB;8BACF,eAAA;AAExB,WAAKA,EAAA,CAAA,WAAA;AAEL,mBAAaA,EAAA,CAAA,gBAAA,CAAA,eAAA;oBAECA,EAAA,CAAA,MAAA,CAAA,UAAA;AACd,aAAS,WAAW;;6BAIK,UAAU;AAKnC,sCAAkC,SAAS;sBAKzB,SAAS;AAK3B,uCAAmC,SAAS;;wBAiBxB,UAAU;uBA4BX,UAAU;sBAsBX,UAAU;yCA9FnB,iBAAiB;2CAAjB,iBAAiB;AAyH7B;;ACjID,cAMa,aAAa;yCAAb,aAAa;2CAAb,aAAa;AAAG;;;;","names":["_angular_core"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-menu.d.ts","sources":["../../../projects/ng-dsv/ds/menu/component/button/menu.button.component.ts","../../../projects/ng-dsv/ds/menu/dto/menu.contextual.ts","../../../projects/ng-dsv/ds/menu/component/contextual/menu.contextual.component.ts","../../../projects/ng-dsv/ds/menu/component/menu.component.ts","../../../projects/ng-dsv/ds/menu/service/menu.service.ts"],"mappings":";;;;AAKA,cAMa,sBAAsB;AAC/B;;oDADS,sBAAsB;sDAAtB,sBAAsB;AAMlC;;ACjBD,cAAa,UAAU;AACvB,cAAa,WAAW;AACxB,cAAa,UAAU;AAEjB,KAAM,uBAAuB,UAAU,UAAU,UAAU,WAAW,UAAU,UAAU;UAE/E,iBAAiB;;;;;;AAMjC;;ACHD,cAKa,0BAA0B;yBAChB,UAAA;AAEnB,iBAAW,aAAA,CAAA,WAAA,CAAA,uBAAA;AACX,aAAO,aAAA,CAAA,WAAA,CAAA,iBAAA;AAEP,cAAQ,aAAA,CAAA,gBAAA;AACR,mBAAa,aAAA,CAAA,gBAAA;AAEb,aAAO,aAAA,CAAA,cAAA;AACP,oBAAc,aAAA,CAAA,cAAA;AAEd,yBAAqB,UAAU;mBAOhB,UAAU;yBASJ,UAAU;;;oDA5BtB,0BAA0B;sDAA1B,0BAA0B;AA6CtC;;ACpDD,cAMa,gBAAgB;8BACD,eAAA;0BACJ,WAAA;yBACD,UAAA;AAEnB,gBAAU,aAAA,CAAA,WAAA;;0BAsBY,KAAK;oDA3BlB,gBAAgB;sDAAhB,gBAAgB;AAoC5B;;AC/CD,cAGa,WAAW;AACpB,gBAAU,aAAA,CAAA,cAAA;;;oDADD,WAAW;wDAAX,WAAW;AAUvB;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-modal.d.ts","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts"],"mappings":";;;;AAEA,cACa,YAAY;AACrB;AAEA;;;;oDAHS,YAAY;wDAAZ,YAAY;AAkBxB;;ACfD,cAMa,mBAAmB;AAC5B,QAAE,aAAA,CAAA,WAAA;AACF,eAAS,aAAA,CAAA,WAAA;AACT,UAAI,aAAA,CAAA,WAAA;AACJ,YAAM,aAAA,CAAA,WAAA;AACN,iBAAW,aAAA,CAAA,WAAA;AACX,cAAQ,aAAA,CAAA,gBAAA;AAER,YAAM,aAAA,CAAA,cAAA;AAEN,kBAAY,YAAA;;AAQZ;AAKA;oDAvBS,mBAAmB;sDAAnB,mBAAmB;AA0B/B;;ACjCD,cAKa,oBAAoB;AAC7B,kBAAY,YAAA;AAEZ,QAAE,aAAA,CAAA,WAAA;AACF,UAAI,aAAA,CAAA,WAAA;AACJ,aAAO,aAAA,CAAA,WAAA,CAAA,iBAAA;AACP,UAAI,aAAA,CAAA,WAAA;AACJ,WAAK,aAAA,CAAA,WAAA,CAAA,SAAA;AAEL,cAAQ,aAAA,CAAA,gBAAA;AAER;oDAXS,oBAAoB;sDAApB,oBAAoB;AAehC;;ACpBD,cAMa,cAAc;AACvB,QAAE,aAAA,CAAA,WAAA;AACF,eAAS,aAAA,CAAA,WAAA;AACT,WAAK,aAAA,CAAA,WAAA;AACL,cAAQ,aAAA,CAAA,WAAA;AAER,YAAM,aAAA,CAAA,cAAA;AAEN,kBAAY,YAAA;AACZ,iBAAW,WAAA;;;AAkBX;oDA3BS,cAAc;sDAAd,cAAc;AA8B1B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-paginate.d.ts","sources":["../../../projects/ng-dsv/ds/paginate/component/paginate.component.ts"],"mappings":";;AAGA,cAMa,iBAAiB;AAC1B,UAAI,aAAA,CAAA,WAAA;AACJ,SAAG,aAAA,CAAA,WAAA;AAEH,cAAQ,aAAA,CAAA,gBAAA;;oDAJC,iBAAiB;sDAAjB,iBAAiB;AAS7B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-scroll.d.ts","sources":["../../../projects/ng-dsv/ds/scroll/component/button/button.scroll-top.component.ts","../../../projects/ng-dsv/ds/scroll/component/scroll.infinite.component.ts","../../../projects/ng-dsv/ds/scroll/service/scroll.service.ts","../../../projects/ng-dsv/ds/scroll/utils/scroll.utils.ts"],"mappings":";;;;;;AAGA,cAMa,wBAAwB;AACjC,YAAM,aAAA,CAAA,WAAA;AAEN,cAAQ,aAAA,CAAA,gBAAA;AAER,UAAI,aAAA,CAAA,cAAA;;oDALK,wBAAwB;sDAAxB,wBAAwB;AAYpC;;ACfD,cAWa,uBAAuB;4BACV,aAAA;yBACH,UAAA;4BACG,aAAA;2BAED,aAAA,CAAA,WAAA;sBACL,aAAA,CAAA,WAAA;AAChB;uBAEiB,aAAA,CAAA,gBAAA;mBAEJ,aAAA,CAAA,cAAA;kBACD,aAAA,CAAA,cAAA;;AAoCZ;AAUA;;;oDA1DS,uBAAuB;sDAAvB,uBAAuB;AAgGnC;;AC7GD,UAAU,cAAc;;;AAGvB;AAED,cACa,aAAc,SAAQ,WAAW;qBAC3B,eAAA,CAAA,MAAA;uBACE,GAAA;sBACD,aAAA,CAAA,cAAA,CAAA,GAAA,SAAA,GAAA,SAAA,cAAA;AAEhB;AAQA;wCAUoC,cAAc;;oDAvBzC,aAAa;wDAAb,aAAa;AAkCzB;;AC5CD,cAAa,eAAe;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-skeleton.d.ts","sources":["../../../projects/ng-dsv/ds/skeleton/component/skeleton.component.ts"],"mappings":";;AAEA,cAMa,qBAAqB;yCAArB,qBAAqB;2CAArB,qBAAqB;AAAG;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-tab.d.ts","sources":["../../../projects/ng-dsv/ds/tab/tab/dto/tab.dto.ts","../../../projects/ng-dsv/ds/tab/tab/component/tab.component.ts","../../../projects/ng-dsv/ds/tab/tabs/component/tabs.component.ts"],"mappings":";;UAAiB,MAAM;;;;AAItB;;ACCD,cAMa,YAAY;AACrB,SAAG,aAAA,CAAA,WAAA,CAAA,MAAA;AACH,gBAAU,aAAA,CAAA,WAAA;AAEV,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;AAER,mBAAe,KAAK,OAAO,MAAM;oDANxB,YAAY;sDAAZ,YAAY;AAYxB;;ACnBD,cAMa,aAAa;AACtB,UAAI,aAAA,CAAA,WAAA,CAAA,MAAA;AACJ,YAAM,aAAA,CAAA,WAAA;AAEN,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;iBAEK,MAAM;oDANV,aAAa;sDAAb,aAAa;AASzB;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-table.d.ts","sources":["../../../projects/ng-dsv/ds/table/dto/table.dto.ts","../../../projects/ng-dsv/ds/table/component/table.component.ts","../../../projects/ng-dsv/ds/table/utils/table.utils.ts"],"mappings":";;;;UAAiB,QAAQ;;;;;;AAMxB;;ACED,cAMa,cAAc;AACvB,SAAG,aAAA,CAAA,WAAA;AAEH,WAAK,aAAA,CAAA,WAAA,CAAA,QAAA;AACL,WAAK,aAAA,CAAA,WAAA,CAAA,UAAA;AAEL,SAAG,aAAA,CAAA,WAAA;AAEH,eAAS,aAAA,CAAA,cAAA;AACT,WAAK,aAAA,CAAA,cAAA;;oDATI,cAAc;sDAAd,cAAc;AA6B1B;;ACxCD,cAAa,SAAS,UAAW,UAAU;;;;;;AAoB3C,cAAa,QAAQ,QAAS,UAAU;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-theme.d.ts","sources":["../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.ts","../../../projects/ng-dsv/ds/theme/component/switch/dsv.theme.switch.component.ts","../../../projects/ng-dsv/ds/theme/service/dsv.theme.service.ts"],"mappings":";;;;AAEA,cAKa,iBAAiB;yCAAjB,iBAAiB;2CAAjB,iBAAiB;AAAG;;ACF3B,KAAM,KAAK;;;;AAKjB,cAKa,uBAAuB;AAChC;;;yCADS,uBAAuB;2CAAvB,uBAAuB;AAUnC;;KCrBW,SAAS;AAErB,cAGa,YAAY;AACrB,qBAAe,eAAA;AACf,oBAAc,cAAA;AAEd,eAASA,EAAA,CAAA,cAAA,CAAA,SAAA;;;yCAJA,YAAY;6CAAZ,YAAY;AAwBxB;;;;","names":["_angular_core"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-toast.d.ts","sources":["../../../projects/ng-dsv/ds/toast/dto/toast.dto.ts","../../../projects/ng-dsv/ds/toast/service/toast.service.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.ts"],"mappings":";;AAAM,KAAM,SAAS;UAEJ,QAAQ;;;;WAId,SAAS;;;;AAInB;;ACPD,cAAa,UAAU;AACvB,cAAa,gBAAgB;AAC7B,cAAa,gBAAgB;AAE7B,cAGa,YAAY;AACrB,gBAAU,aAAA,CAAA,cAAA,CAAA,QAAA;AACV,YAAM,aAAA,CAAA,cAAA,CAAA,QAAA;AAEN,cAAQ,aAAA,CAAA,cAAA;qBAES,QAAQ;wBAWL,QAAQ;;;oDAjBnB,YAAY;wDAAZ,YAAY;AAwDxB;;AC9DD,cAMa,iBAAiB;AAC1B,qCAA+B,YAAA;AAE/B,cAAQ,aAAA,CAAA,WAAA;AACR,SAAG,aAAA,CAAA,WAAA;;oDAJM,iBAAiB;sDAAjB,iBAAiB;AAe7B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-tooltip.d.ts","sources":["../../../projects/ng-dsv/ds/tooltip/dto/tooltip.dto.ts","../../../projects/ng-dsv/ds/tooltip/component/tooltip.component.ts","../../../projects/ng-dsv/ds/tooltip/utils/tooltip.utils.ts"],"mappings":";;;AAAM,KAAM,eAAe;AAE3B,aAAY,mBAAmB;AAC3B;AACA;AACA;AACA;AACH;;ACHD,cAMa,mBAAmB;AAC5B,UAAI,aAAA,CAAA,WAAA;AACJ,cAAQ,aAAA,CAAA,WAAA,CAAA,eAAA;AAER,aAAO,aAAA,CAAA,cAAA;AACP,aAAO,aAAA,CAAA,cAAA;AAEP,mBAAa,aAAA,CAAA,cAAA,CAAA,eAAA;AAGb,gBAAa,UAAU,CAAC,WAAW;;;;;oDAV1B,mBAAmB;sDAAnB,mBAAmB;AAuC/B;;AC/CD,cAAa,gBAAgB;AAC7B,cAAa,mBAAmB;AAChC,cAAa,iBAAiB;AAC9B,cAAa,kBAAkB;AAE/B,cAAa,kBAAkB,aAAc,eAAe,QAAQ,OAAO,KAAA,eAAA,GAAA,mBAiB1E;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-environment.d.ts","sources":["../../../projects/ng-dsv/environment/dto/environment.dto.ts","../../../projects/ng-dsv/environment/service/environment.service.ts"],"mappings":";;;UAAiB,cAAc;;;AAG9B;;ACED,cACa,kBAAkB;yBACR,UAAA;kBAEP,aAAA,CAAA,cAAA,CAAA,cAAA;AACZ,aAAO,aAAA,CAAA,cAAA;AAEP,eAAW,OAAO,CAAC,cAAc;oDANxB,kBAAkB;wDAAlB,kBAAkB;AAW9B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-modules-admin.d.ts","sources":["../../../projects/ng-dsv/modules/admin/dto/admin.dto.ts","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/modules/admin/service/admin.service.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.ts","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/modules/admin/dto/admin.default.dto.ts"],"mappings":";;;;;;;;;UAEiB,aAAa;;;;;;AAM7B;UAEgB,YAAY;;;;;;;;;;;;;;AAc5B;AAEK,UAAW,OAAQ,SAAQ,YAAY;;;;;;UAMnC,aAAa;;AAEtB;UAEgB,WAAW;;;;;AAKxB;WACO,QAAQ;UACT,OAAO;AAChB;UACgB,eAAe;;UAEtB,WAAW;AACpB;;ACnCD,cAaa,kBAAmB,SAAQ,yBAAyB;AAC7D,aAAO,aAAA,CAAA,WAAA;AACP,UAAI,aAAA,CAAA,WAAA,CAAA,MAAA;AACJ,cAAQ,aAAA,CAAA,WAAA,CAAA,OAAA;AAER,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;;mBAuBO,MAAM;AAIrB,oCAAiC,EAAE;AAInC,uCAAoC,MAAM;oDApCjC,kBAAkB;sDAAlB,kBAAkB;AA0C9B;;AChED,cAGa,YAAY;AACrB,gBAAU,UAAA;AAEV,UAAI,aAAA,CAAA,cAAA,CAAA,eAAA;AAEJ,WAAK,aAAA,CAAA,cAAA,CAAA,MAAA,SAAA,WAAA,CAAA,MAAA;AACL,UAAI,aAAA,CAAA,cAAA,CAAA,MAAA;AAEJ,UAAI,aAAA,CAAA,cAAA,CAAA,MAAA;AACJ,YAAM,aAAA,CAAA,cAAA,CAAA,MAAA;AAEN,yGAMsB,WAAW,CAAC,MAAM;AAsBxC,iCAA6B,MAAM;AAOnC,gCAA4B,MAAM;AAOlC;oDArDS,YAAY;wDAAZ,YAAY;AA2DxB;;AC1DD,cAMa,yBAAyB;AAClC,kBAAY,YAAA;AACZ,kBAAY,YAAA;AAEZ,UAAI,aAAA,CAAA,WAAA,CAAA,aAAA;AAEJ,YAAM,aAAA,CAAA,cAAA;AACN,WAAK,aAAA,CAAA,cAAA,CAAA,MAAA;AAEL,cAAQ,aAAA,CAAA,gBAAA,CAAA,MAAA;;mBAUO,MAAM;;sBAQF,MAAM;oDA3BhB,yBAAyB;sDAAzB,yBAAyB;AA+BrC;;ACnCD,cAMa,kBAAmB,SAAQ,kBAAkB;AACtD,kBAAY,YAAA;AACZ,qBAAe,eAAA;AAEf,UAAI,aAAA,CAAA,cAAA,CAAA,MAAA;AACJ,SAAG,aAAA,CAAA,cAAA;AACH,eAAS,aAAA,CAAA,cAAA,CAAA,WAAA;;;mBAuBM,MAAM;oDA7BZ,kBAAkB;sDAAlB,kBAAkB;AAwC9B;;AC3CD,cAca,oBAAqB,SAAQ,kBAAkB;AACxD,kBAAY,YAAA;AACZ,qBAAe,eAAA;AAEf,UAAI,aAAA,CAAA,cAAA,CAAA,MAAA;AACJ,SAAG,aAAA,CAAA,cAAA;AACH,eAAS,aAAA,CAAA,cAAA,CAAA,WAAA;AAET,UAAI,aAAA,CAAA,cAAA,CAAA,MAAA;;AAiCJ;oDAzCS,oBAAoB;sDAApB,oBAAoB;AAoDhC;;AC7ED,cAAa,SAAS;;;;;;;;;;;;;AAKtB,cAAa,iBAAiB;;;;;;;AAQ9B,cAAa,WAAW;;;;;;;;;;;;;;;AAyBxB,cAAa,UAAU,EAAE,WAAW;AAqEpC,cAAa,aAAa,EAAE,WAAW;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-modules-auth.d.ts","sources":["../../../projects/ng-dsv/modules/auth/component/auth.component.ts","../../../projects/ng-dsv/modules/auth/dto/user.dto.ts","../../../projects/ng-dsv/modules/auth/guard/auth.guard.ts","../../../projects/ng-dsv/modules/auth/interceptor/auth.interceptor.ts","../../../projects/ng-dsv/modules/auth/service/auth.service.ts","../../../projects/ng-dsv/modules/auth/service/auth.google.service.ts","../../../projects/ng-dsv/modules/auth/utils/auth.utils.ts"],"mappings":";;;;;;;;;AAMA,cAMa,aAAa;0BACF,WAAA;gCACM,iBAAA;AAE1B,wBAAkB,aAAA,CAAA,gBAAA,CAAA,EAAA;AAClB,oBAAc,aAAA,CAAA,gBAAA;;;oDALL,aAAa;sDAAb,aAAa;AA0BzB;;ACpCK,UAAW,OAAQ,SAAQ,MAAM;;;;;;;AAOtC;AAEK,UAAW,aAAc,SAAQ,gBAAgB;WAC5C,OAAO;AACjB;UAEgB,aAAa;;AAE7B;;ACVD,cAAa,SAAS,EAAE,aAkCvB;;ACnCD,cAAa,eAAe,QAAS,WAAW,iBAAiB,aAAa,KAAA,IAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,SAAA;;ACD9E,cAGa,WAAY,SAAQ,WAAW;AACxC,mBAAa,aAAA,CAAA,cAAA,CAAA,OAAA;AACb,eAAS,aAAA,CAAA,cAAA;AACT,sBAAgB,aAAA,CAAA,cAAA;AAEhB,oBAAe,aAAa;;;;oDALnB,WAAW;wDAAX,WAAW;AAsDvB;;ACxDD,cAGa,iBAAiB;0BACN,WAAA;iCACO,kBAAA;wBAET,aAAA,CAAA,cAAA,CAAA,GAAA;mBAEL,aAAA,CAAA,cAAA;;;;;AAgC4C;;oDAtChD,iBAAiB;wDAAjB,iBAAiB;AA+C7B;;ACtDD,cAAa,OAAO,8BAA+B,MAAM;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-platform.d.ts","sources":["../../../projects/ng-dsv/platform/service/platform.service.ts"],"mappings":";;AAGA,cAGa,eAAe;AACxB;;yCADS,eAAe;6CAAf,eAAe;AAM3B;;;;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-router.d.ts","sources":["../../../projects/ng-dsv/router/service/router.service.ts"],"mappings":";;;AAKA,cAGa,aAAa;qBACP,MAAA;AAEf,gBAAUA,EAAA,CAAA,MAAA;yCAHD,aAAa;6CAAb,aAAa;AAUzB;;;;","names":["_angular_core"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-storage.d.ts","sources":["../../../projects/ng-dsv/storage/service/storage.service.ts","../../../projects/ng-dsv/storage/utils/storage.utils.ts","../../../projects/ng-dsv/storage/store/store.ts","../../../projects/ng-dsv/storage/store/store.map.ts"],"mappings":";;;AAGA,cAGa,cAAc;AACvB,8BAA+B,eAAA;AAE/B,aAAO,aAAA,CAAA,cAAA;;;;AAyBP;AAMA;oDAlCS,cAAc;wDAAd,cAAc;AAuC1B;;AC7CD,cAAa,eAAe;;ACG5B,cAAa,KAAK;AACd,UAAI,aAAA,CAAA,cAAA;AAEJ;AAOA;;AAaH;;ACxBD,cAAa,QAAQ;AACjB;mBAEa,aAAA,CAAA,MAAA,CAAA,GAAA;qBACE,aAAA,CAAA,MAAA;mBACF,aAAA,CAAA,MAAA;mBACA,aAAA,CAAA,MAAA;AAEb;AAIA;;AAQA,2BAAuB,OAAO;;AAgB9B;AAQA;AAGH;;;;","names":[]}