@ng-vagabond-lab/ng-dsv 0.2.12 → 0.2.14

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 (82) hide show
  1. package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +16 -11
  2. package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs.map +1 -1
  3. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +34 -24
  4. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
  5. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +29 -25
  6. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
  7. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +3 -3
  8. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs.map +1 -1
  9. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +15 -9
  10. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map +1 -1
  11. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +11 -7
  12. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map +1 -1
  13. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +26 -16
  14. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -1
  15. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +16 -14
  16. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -1
  17. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +7 -5
  18. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs.map +1 -1
  19. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs +22 -14
  20. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs.map +1 -1
  21. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +7 -5
  22. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs.map +1 -1
  23. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +35 -22
  24. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs.map +1 -1
  25. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +70 -47
  26. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs.map +1 -1
  27. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +81 -54
  28. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs.map +1 -1
  29. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +11 -7
  30. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs.map +1 -1
  31. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs +19 -11
  32. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs.map +1 -1
  33. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +15 -9
  34. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs.map +1 -1
  35. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs +9 -6
  36. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs.map +1 -1
  37. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs +6 -6
  38. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs.map +1 -1
  39. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +22 -17
  40. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs.map +1 -1
  41. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +24 -18
  42. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
  43. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +46 -29
  44. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
  45. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +7 -5
  46. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map +1 -1
  47. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +33 -21
  48. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
  49. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs +3 -3
  50. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs.map +1 -1
  51. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +14 -10
  52. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs.map +1 -1
  53. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +15 -9
  54. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs.map +1 -1
  55. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +11 -10
  56. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
  57. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +16 -11
  58. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -1
  59. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +15 -9
  60. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs.map +1 -1
  61. package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +7 -5
  62. package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs.map +1 -1
  63. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +7 -5
  64. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs.map +1 -1
  65. package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +51 -33
  66. package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs.map +1 -1
  67. package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +21 -15
  68. package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs.map +1 -1
  69. package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +5 -4
  70. package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
  71. package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +9 -6
  72. package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs.map +1 -1
  73. package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +13 -11
  74. package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
  75. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +15 -9
  76. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs.map +1 -1
  77. package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +38 -28
  78. package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
  79. package/package.json +1 -1
  80. package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts +1 -1
  81. package/types/ng-vagabond-lab-ng-dsv-base.d.ts +1 -1
  82. package/types/ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts +1 -1
@@ -6,7 +6,8 @@ import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
6
6
  import { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';
7
7
 
8
8
  class ApiResourceService {
9
- url = signal(undefined, ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
9
+ url = signal(undefined, /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
10
11
  resource = httpResource(() => ({
11
12
  url: `${this.url()}`,
12
13
  method: 'GET',
@@ -24,12 +25,13 @@ class ApiResourceService {
24
25
  credentials: 'include',
25
26
  referrer: 'no-referrer',
26
27
  integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',
27
- }), ...(ngDevMode ? [{ debugName: "resource" }] : /* istanbul ignore next */ []));
28
+ }), /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "resource" }] : /* istanbul ignore next */ []));
28
30
  constructor() { }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiResourceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiResourceService, providedIn: 'root' });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiResourceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiResourceService, providedIn: 'root' });
31
33
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiResourceService, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiResourceService, decorators: [{
33
35
  type: Injectable,
34
36
  args: [{
35
37
  providedIn: 'root',
@@ -41,9 +43,12 @@ class ApiService {
41
43
  toastService = inject(ToastService);
42
44
  platformService = inject(PlatformService);
43
45
  environmentService = inject(EnvironmentService);
44
- baseUrl = signal('/api', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
45
- nbLoaded = signal(0, ...(ngDevMode ? [{ debugName: "nbLoaded" }] : /* istanbul ignore next */ []));
46
- blocked = signal(false, ...(ngDevMode ? [{ debugName: "blocked" }] : /* istanbul ignore next */ []));
46
+ baseUrl = signal('/api', /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
48
+ nbLoaded = signal(0, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "nbLoaded" }] : /* istanbul ignore next */ []));
50
+ blocked = signal(false, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "blocked" }] : /* istanbul ignore next */ []));
47
52
  get(url, callback, callbackError = () => { }) {
48
53
  this.doSubscribe(url, this.httpClient.get(this.baseUrl() + url), callback, callbackError);
49
54
  }
@@ -133,10 +138,10 @@ class ApiService {
133
138
  console.error(url, error);
134
139
  }
135
140
  }
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
137
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiService, providedIn: 'root' });
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
142
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiService, providedIn: 'root' });
138
143
  }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ApiService, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ApiService, decorators: [{
140
145
  type: Injectable,
141
146
  args: [{
142
147
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/service/api-resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import { httpResource } from '@angular/common/http';\nimport { Injectable, ResourceRef, signal } from '@angular/core';\nimport { OrderState } from '../public-api';\n\nexport interface ApiFindBy {\n endPoint?: string;\n fields?: string;\n values?: string;\n first?: number;\n max?: number;\n order?: OrderState;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiResourceService<T> {\n readonly url = signal<string | undefined>(undefined);\n\n readonly resource: ResourceRef<T | undefined> = httpResource(() => ({\n url: `${this.url()}`,\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n params: {},\n reportProgress: true,\n transferCache: true,\n keepalive: true,\n mode: 'same-origin',\n redirect: 'error',\n priority: 'high',\n cache: 'force-cache',\n credentials: 'include',\n referrer: 'no-referrer',\n integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',\n }));\n\n constructor() {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n readonly httpClient = inject(HttpClient);\n readonly toastService = inject(ToastService);\n readonly platformService = inject(PlatformService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly baseUrl = signal<string>('/api');\n readonly nbLoaded = signal<number>(0);\n readonly blocked = signal<boolean>(false);\n\n get<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, this.httpClient.get<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n post<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n withCredentials: boolean = false,\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n this.httpClient.post<TResponse>(this.baseUrl() + url, data, { withCredentials }),\n callback,\n callbackError,\n );\n }\n\n put<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n this.httpClient.put<TResponse>(this.baseUrl() + url, data),\n callback,\n callbackError,\n );\n }\n\n delete<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, this.httpClient.delete<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n findById<T>(endPoint: string, id: ID, callback: (data: T) => void) {\n this.get<T>(endPoint + '/' + id, callback);\n }\n\n findBy<T>(\n endPoint: string,\n fields: string,\n values: string,\n first: number,\n max: number,\n order: OrderState,\n callback: (data: T) => void,\n ) {\n const orderType: string = order.orderAsc ? '' : 'Desc';\n const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n const fieldsComplete = fields + orderConst;\n this.get<T>(\n endPoint +\n '?fields=' +\n encodeURI(fieldsComplete) +\n '&values=' +\n encodeURI(values) +\n '&first=' +\n first +\n '&max=' +\n max,\n (data: T) => {\n callback(data);\n },\n );\n }\n\n countBy(endPoint: string, fields: string, values: string, callback: (data: { count: number }) => void) {\n return this.get<{ count: number }>(\n endPoint + '?fields=' + encodeURI(fields) + '&values=' + values,\n (data: { count: number }) => {\n callback(data);\n },\n );\n }\n\n createOrUpdate<T extends ApiDto>(endPoint: string, data: T, callback: (data: T) => void, toast?: string) {\n if (this.blocked()) {\n return;\n }\n this.blocked.set(true);\n if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n this.toastService.showToast({\n text: toast ?? 'UPDATE_OK',\n type: 'success',\n closeAll: true,\n });\n callback(dateReturn);\n this.blocked.set(false);\n },\n () => {\n this.blocked.set(false);\n },\n );\n } else {\n this.post<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });\n callback(dateReturn);\n this.blocked.set(false);\n },\n false,\n () => {\n this.blocked.set(false);\n },\n );\n }\n }\n\n doSubscribe<T>(\n url: string,\n observable: Observable<T>,\n callback: (data: T) => void,\n callbackError: () => void = () => {},\n ) {\n this.nbLoaded.update((loaded) => loaded + 1);\n observable.subscribe({\n next: (res) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.error(url, error);\n callbackError();\n },\n });\n }\n\n info(url: string, data: JSONObject | null) {\n if (this.platformService.isPlatformBrowser()) {\n console.log(url, data);\n }\n }\n\n error(url: string, error: JSONObject) {\n if (this.platformService.isPlatformBrowser()) {\n console.error(url, error);\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-api.mjs","sources":["../../../projects/ng-dsv/api/service/api-resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import { httpResource } from '@angular/common/http';\nimport { Injectable, ResourceRef, signal } from '@angular/core';\nimport { OrderState } from '../public-api';\n\nexport interface ApiFindBy {\n endPoint?: string;\n fields?: string;\n values?: string;\n first?: number;\n max?: number;\n order?: OrderState;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiResourceService<T> {\n readonly url = signal<string | undefined>(undefined);\n\n readonly resource: ResourceRef<T | undefined> = httpResource(() => ({\n url: `${this.url()}`,\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n params: {},\n reportProgress: true,\n transferCache: true,\n keepalive: true,\n mode: 'same-origin',\n redirect: 'error',\n priority: 'high',\n cache: 'force-cache',\n credentials: 'include',\n referrer: 'no-referrer',\n integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',\n }));\n\n constructor() {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n readonly httpClient = inject(HttpClient);\n readonly toastService = inject(ToastService);\n readonly platformService = inject(PlatformService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly baseUrl = signal<string>('/api');\n readonly nbLoaded = signal<number>(0);\n readonly blocked = signal<boolean>(false);\n\n get<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, this.httpClient.get<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n post<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n withCredentials: boolean = false,\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n this.httpClient.post<TResponse>(this.baseUrl() + url, data, { withCredentials }),\n callback,\n callbackError,\n );\n }\n\n put<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n this.httpClient.put<TResponse>(this.baseUrl() + url, data),\n callback,\n callbackError,\n );\n }\n\n delete<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, this.httpClient.delete<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n findById<T>(endPoint: string, id: ID, callback: (data: T) => void) {\n this.get<T>(endPoint + '/' + id, callback);\n }\n\n findBy<T>(\n endPoint: string,\n fields: string,\n values: string,\n first: number,\n max: number,\n order: OrderState,\n callback: (data: T) => void,\n ) {\n const orderType: string = order.orderAsc ? '' : 'Desc';\n const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n const fieldsComplete = fields + orderConst;\n this.get<T>(\n endPoint +\n '?fields=' +\n encodeURI(fieldsComplete) +\n '&values=' +\n encodeURI(values) +\n '&first=' +\n first +\n '&max=' +\n max,\n (data: T) => {\n callback(data);\n },\n );\n }\n\n countBy(endPoint: string, fields: string, values: string, callback: (data: { count: number }) => void) {\n return this.get<{ count: number }>(\n endPoint + '?fields=' + encodeURI(fields) + '&values=' + values,\n (data: { count: number }) => {\n callback(data);\n },\n );\n }\n\n createOrUpdate<T extends ApiDto>(endPoint: string, data: T, callback: (data: T) => void, toast?: string) {\n if (this.blocked()) {\n return;\n }\n this.blocked.set(true);\n if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n this.toastService.showToast({\n text: toast ?? 'UPDATE_OK',\n type: 'success',\n closeAll: true,\n });\n callback(dateReturn);\n this.blocked.set(false);\n },\n () => {\n this.blocked.set(false);\n },\n );\n } else {\n this.post<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });\n callback(dateReturn);\n this.blocked.set(false);\n },\n false,\n () => {\n this.blocked.set(false);\n },\n );\n }\n }\n\n doSubscribe<T>(\n url: string,\n observable: Observable<T>,\n callback: (data: T) => void,\n callbackError: () => void = () => {},\n ) {\n this.nbLoaded.update((loaded) => loaded + 1);\n observable.subscribe({\n next: (res) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.error(url, error);\n callbackError();\n },\n });\n }\n\n info(url: string, data: JSONObject | null) {\n if (this.platformService.isPlatformBrowser()) {\n console.log(url, data);\n }\n }\n\n error(url: string, error: JSONObject) {\n if (this.platformService.isPlatformBrowser()) {\n console.error(url, error);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -12,28 +12,30 @@ class BaseService {
12
12
  platformService = inject(PlatformService);
13
13
  i18nService = inject(I18nService);
14
14
  translateService = this.i18nService.translateService;
15
- loaded = signal(true, ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
15
+ loaded = signal(true, /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
16
17
  isPlatformBrowser() {
17
18
  return this.platformService.isPlatformBrowser();
18
19
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseService, isStandalone: true, ngImport: i0 });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseService, isStandalone: true, ngImport: i0 });
21
22
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseService, decorators: [{
23
24
  type: Directive
24
25
  }] });
25
26
 
26
27
  class BaseApiService extends BaseService {
27
28
  apiService = inject(ApiService);
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseApiService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
29
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseApiService, isStandalone: true, usesInheritance: true, ngImport: i0 });
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseApiService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseApiService, isStandalone: true, usesInheritance: true, ngImport: i0 });
30
31
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseApiService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseApiService, decorators: [{
32
33
  type: Directive
33
34
  }] });
34
35
 
35
36
  class BaseFetchService extends BaseApiService {
36
- ssr = signal(true, ...(ngDevMode ? [{ debugName: "ssr" }] : /* istanbul ignore next */ []));
37
+ ssr = signal(true, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "ssr" }] : /* istanbul ignore next */ []));
37
39
  getStateKey(url) {
38
40
  return makeStateKey(url);
39
41
  }
@@ -53,22 +55,30 @@ class BaseFetchService extends BaseApiService {
53
55
  this.transferState.set(key, data);
54
56
  }
55
57
  }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseFetchService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
57
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseFetchService, isStandalone: true, usesInheritance: true, ngImport: i0 });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseFetchService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
59
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseFetchService, isStandalone: true, usesInheritance: true, ngImport: i0 });
58
60
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseFetchService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseFetchService, decorators: [{
60
62
  type: Directive
61
63
  }] });
62
64
 
63
65
  class BaseSearchService extends BaseFetchService {
64
- datas = signal([], ...(ngDevMode ? [{ debugName: "datas" }] : /* istanbul ignore next */ []));
65
- total = signal(undefined, ...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
66
- page = signal(1, ...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
67
- search = signal('', ...(ngDevMode ? [{ debugName: "search" }] : /* istanbul ignore next */ []));
68
- lastSearch = signal('', ...(ngDevMode ? [{ debugName: "lastSearch" }] : /* istanbul ignore next */ []));
69
- lasturl = signal('', ...(ngDevMode ? [{ debugName: "lasturl" }] : /* istanbul ignore next */ []));
70
- isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
71
- stopFetch = signal(false, ...(ngDevMode ? [{ debugName: "stopFetch" }] : /* istanbul ignore next */ []));
66
+ datas = signal([], /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "datas" }] : /* istanbul ignore next */ []));
68
+ total = signal(undefined, /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
70
+ page = signal(1, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
72
+ search = signal('', /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "search" }] : /* istanbul ignore next */ []));
74
+ lastSearch = signal('', /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "lastSearch" }] : /* istanbul ignore next */ []));
76
+ lasturl = signal('', /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "lasturl" }] : /* istanbul ignore next */ []));
78
+ isLoading = signal(false, /* @ts-ignore */
79
+ ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
80
+ stopFetch = signal(false, /* @ts-ignore */
81
+ ...(ngDevMode ? [{ debugName: "stopFetch" }] : /* istanbul ignore next */ []));
72
82
  getUrl() {
73
83
  let url = this.getEndPoint();
74
84
  const params = this.getParams();
@@ -78,7 +88,7 @@ class BaseSearchService extends BaseFetchService {
78
88
  getParams() {
79
89
  return '';
80
90
  }
81
- fetchByPage(search, page) {
91
+ fetchByPage(search, page, force = false) {
82
92
  this.search.set(search);
83
93
  if (search !== this.lastSearch()) {
84
94
  this.lastSearch.set(search);
@@ -92,7 +102,7 @@ class BaseSearchService extends BaseFetchService {
92
102
  }
93
103
  this.page.set(page);
94
104
  const url = this.getUrl() + search;
95
- if (this.lasturl() === url) {
105
+ if (this.lasturl() === url && !force) {
96
106
  return;
97
107
  }
98
108
  this.lasturl.set(url);
@@ -127,10 +137,10 @@ class BaseSearchService extends BaseFetchService {
127
137
  afterFetch(data) {
128
138
  return;
129
139
  }
130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseSearchService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
131
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseSearchService, isStandalone: true, usesInheritance: true, ngImport: i0 });
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseSearchService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
141
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseSearchService, isStandalone: true, usesInheritance: true, ngImport: i0 });
132
142
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseSearchService, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseSearchService, decorators: [{
134
144
  type: Directive
135
145
  }] });
136
146
 
@@ -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/base/base-api.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 { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { I18nService } from '@ng-vagabond-lab/ng-dsv/i18n';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive()\nexport abstract class BaseService {\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n readonly platformService = inject(PlatformService);\n readonly i18nService = inject(I18nService);\n readonly translateService = this.i18nService.translateService;\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser(): boolean {\n return this.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from './base.service';\n\n@Directive()\nexport abstract class BaseApiService extends BaseService {\n readonly apiService = inject(ApiService);\n}\n","import { Directive, makeStateKey, signal, StateKey } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseApiService } from '../base/base-api.service';\n\n@Directive()\nexport abstract class BaseFetchService<A extends ApiDto | ApiDto[]> extends BaseApiService {\n readonly ssr = signal<boolean>(true);\n\n getStateKey(url: string): StateKey<A> {\n return makeStateKey<A>(url);\n }\n\n getDataFromState(url: string): A | null {\n const key = this.getStateKey(url);\n let data = null;\n if (this.transferState.hasKey(key)) {\n data = this.transferState.get(key, null);\n this.transferState.remove(key);\n this.apiService.info('load state', data);\n }\n return data;\n }\n\n setDataToState(url: string, data: A | null): void {\n if (!this.isPlatformBrowser()) {\n const key = this.getStateKey(url);\n this.transferState.set(key, data);\n }\n }\n}\n","import { Directive, 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@Directive()\nexport abstract class BaseSearchService<T extends ApiDto> extends BaseFetchService<T[]> {\n readonly datas = signal<T[]>([]);\n readonly total = signal<number | undefined>(undefined);\n\n readonly page = signal<number>(1);\n readonly search = signal<string>('');\n readonly lastSearch = signal<string>('');\n readonly lasturl = signal<string>('');\n readonly isLoading = signal<boolean>(false);\n readonly 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): void {\n this.search.set(search);\n if (search !== this.lastSearch()) {\n this.lastSearch.set(search);\n page = 1;\n }\n if (page === 1) {\n this.stopFetch.set(false);\n }\n if (this.stopFetch()) {\n return;\n }\n this.page.set(page);\n const url = this.getUrl() + search;\n\n if (this.lasturl() === url) {\n return;\n }\n this.lasturl.set(url);\n\n const data = this.getDataFromState(url);\n if (data) {\n this.updateData(page, data);\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n\n this.apiService.get<PageableDto<T[]>>(\n url,\n (data) => {\n this.page.set(page + 1);\n this.total.set(data.totalElements);\n this.setDataToState(url, data.content);\n this.isLoading.set(false);\n this.updateData(page, data.content);\n },\n () => {\n this.isLoading.set(false);\n this.stopFetch.set(true);\n },\n );\n }\n\n updateData(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/base/base-api.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 { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { I18nService } from '@ng-vagabond-lab/ng-dsv/i18n';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive()\nexport abstract class BaseService {\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n readonly platformService = inject(PlatformService);\n readonly i18nService = inject(I18nService);\n readonly translateService = this.i18nService.translateService;\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser(): boolean {\n return this.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from './base.service';\n\n@Directive()\nexport abstract class BaseApiService extends BaseService {\n readonly apiService = inject(ApiService);\n}\n","import { Directive, makeStateKey, signal, StateKey } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseApiService } from '../base/base-api.service';\n\n@Directive()\nexport abstract class BaseFetchService<A extends ApiDto | ApiDto[]> extends BaseApiService {\n readonly ssr = signal<boolean>(true);\n\n getStateKey(url: string): StateKey<A> {\n return makeStateKey<A>(url);\n }\n\n getDataFromState(url: string): A | null {\n const key = this.getStateKey(url);\n let data = null;\n if (this.transferState.hasKey(key)) {\n data = this.transferState.get(key, null);\n this.transferState.remove(key);\n this.apiService.info('load state', data);\n }\n return data;\n }\n\n setDataToState(url: string, data: A | null): void {\n if (!this.isPlatformBrowser()) {\n const key = this.getStateKey(url);\n this.transferState.set(key, data);\n }\n }\n}\n","import { Directive, 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@Directive()\nexport abstract class BaseSearchService<T extends ApiDto> extends BaseFetchService<T[]> {\n readonly datas = signal<T[]>([]);\n readonly total = signal<number | undefined>(undefined);\n\n readonly page = signal<number>(1);\n readonly search = signal<string>('');\n readonly lastSearch = signal<string>('');\n readonly lasturl = signal<string>('');\n readonly isLoading = signal<boolean>(false);\n readonly 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, force: boolean = false): void {\n this.search.set(search);\n if (search !== this.lastSearch()) {\n this.lastSearch.set(search);\n page = 1;\n }\n if (page === 1) {\n this.stopFetch.set(false);\n }\n if (this.stopFetch()) {\n return;\n }\n this.page.set(page);\n const url = this.getUrl() + search;\n\n if (this.lasturl() === url && !force) {\n return;\n }\n this.lasturl.set(url);\n\n const data = this.getDataFromState(url);\n if (data) {\n this.updateData(page, data);\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n\n this.apiService.get<PageableDto<T[]>>(\n url,\n (data) => {\n this.page.set(page + 1);\n this.total.set(data.totalElements);\n this.setDataToState(url, data.content);\n this.isLoading.set(false);\n this.updateData(page, data.content);\n },\n () => {\n this.isLoading.set(false);\n this.stopFetch.set(true);\n },\n );\n }\n\n updateData(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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"}
@@ -18,23 +18,24 @@ class BaseService {
18
18
  platformService = inject(PlatformService);
19
19
  i18nService = inject(I18nService);
20
20
  translateService = this.i18nService.translateService;
21
- loaded = signal(true, ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
21
+ loaded = signal(true, /* @ts-ignore */
22
+ ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
22
23
  isPlatformBrowser() {
23
24
  return this.platformService.isPlatformBrowser();
24
25
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseService, isStandalone: true, ngImport: i0 });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseService, isStandalone: true, ngImport: i0 });
27
28
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseService, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseService, decorators: [{
29
30
  type: Directive
30
31
  }] });
31
32
 
32
33
  class BaseApiService extends BaseService {
33
34
  apiService = inject(ApiService);
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseApiService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
35
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseApiService, isStandalone: true, usesInheritance: true, ngImport: i0 });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseApiService, deps: null, target: i0.ɵɵFactoryTarget.Directive });
36
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseApiService, isStandalone: true, usesInheritance: true, ngImport: i0 });
36
37
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseApiService, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseApiService, decorators: [{
38
39
  type: Directive
39
40
  }] });
40
41
 
@@ -49,10 +50,10 @@ class SeoService extends BaseApiService {
49
50
  this.meta.updateTag({ name: 'description', content: description });
50
51
  image && this.meta.updateTag({ property: 'og:image', content: image });
51
52
  }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: SeoService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
53
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: SeoService, providedIn: 'root' });
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SeoService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
54
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SeoService, providedIn: 'root' });
54
55
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: SeoService, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SeoService, decorators: [{
56
57
  type: Injectable,
57
58
  args: [{ providedIn: 'root' }]
58
59
  }] });
@@ -61,11 +62,13 @@ class BaseContainer {
61
62
  authService = inject(AuthService);
62
63
  seoService = inject(SeoService);
63
64
  routerService = inject(RouterService);
64
- requiredRole = signal('', ...(ngDevMode ? [{ debugName: "requiredRole" }] : /* istanbul ignore next */ []));
65
+ requiredRole = signal('', /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "requiredRole" }] : /* istanbul ignore next */ []));
65
67
  hasAccess = computed(() => {
66
68
  const role = this.requiredRole();
67
69
  return !role || this.authService.hasRole(role);
68
- }, ...(ngDevMode ? [{ debugName: "hasAccess" }] : /* istanbul ignore next */ []));
70
+ }, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "hasAccess" }] : /* istanbul ignore next */ []));
69
72
  constructor() {
70
73
  effect(() => {
71
74
  if (!this.hasAccess()) {
@@ -73,17 +76,18 @@ class BaseContainer {
73
76
  }
74
77
  });
75
78
  }
76
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
77
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseContainer, isStandalone: true, ngImport: i0 });
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
80
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseContainer, isStandalone: true, ngImport: i0 });
78
81
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseContainer, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseContainer, decorators: [{
80
83
  type: Directive
81
84
  }], ctorParameters: () => [] });
82
85
 
83
86
  class BaseMainContainer {
84
87
  authService = inject(AuthService);
85
88
  routerService = inject(RouterService);
86
- initRefreshToken = signal(false, ...(ngDevMode ? [{ debugName: "initRefreshToken" }] : /* istanbul ignore next */ []));
89
+ initRefreshToken = signal(false, /* @ts-ignore */
90
+ ...(ngDevMode ? [{ debugName: "initRefreshToken" }] : /* istanbul ignore next */ []));
87
91
  constructor() {
88
92
  effect(() => {
89
93
  if (this.authService.isPlatformBrowser() && !this.initRefreshToken()) {
@@ -92,20 +96,20 @@ class BaseMainContainer {
92
96
  }
93
97
  });
94
98
  }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseMainContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseMainContainer, isStandalone: true, ngImport: i0 });
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseMainContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
100
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseMainContainer, isStandalone: true, ngImport: i0 });
97
101
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseMainContainer, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseMainContainer, decorators: [{
99
103
  type: Directive
100
104
  }], ctorParameters: () => [] });
101
105
 
102
106
  class BaseRouteContainer extends BaseContainer {
103
107
  activatedRoute = inject(ActivatedRoute);
104
108
  routeParams = toSignal(this.activatedRoute.params);
105
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseRouteContainer, deps: null, target: i0.ɵɵFactoryTarget.Directive });
106
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseRouteContainer, isStandalone: true, usesInheritance: true, ngImport: i0 });
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseRouteContainer, deps: null, target: i0.ɵɵFactoryTarget.Directive });
110
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseRouteContainer, isStandalone: true, usesInheritance: true, ngImport: i0 });
107
111
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseRouteContainer, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseRouteContainer, decorators: [{
109
113
  type: Directive
110
114
  }] });
111
115
 
@@ -136,10 +140,10 @@ class BaseSearchContainer extends BaseContainer {
136
140
  scrollToTop(this.element, SCROLL_CLASS);
137
141
  this.doFetch(search);
138
142
  }
139
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseSearchContainer, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
140
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: BaseSearchContainer, isStandalone: true, usesInheritance: true, ngImport: i0 });
143
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseSearchContainer, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
144
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: BaseSearchContainer, isStandalone: true, usesInheritance: true, ngImport: i0 });
141
145
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: BaseSearchContainer, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: BaseSearchContainer, decorators: [{
143
147
  type: Directive
144
148
  }], ctorParameters: () => [{ type: undefined }] });
145
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/service/base/base.service.ts","../../../projects/ng-dsv/base/service/base/base-api.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 { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { I18nService } from '@ng-vagabond-lab/ng-dsv/i18n';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive()\nexport abstract class BaseService {\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n readonly platformService = inject(PlatformService);\n readonly i18nService = inject(I18nService);\n readonly translateService = this.i18nService.translateService;\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser(): boolean {\n return this.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from './base.service';\n\n@Directive()\nexport abstract class BaseApiService extends BaseService {\n readonly apiService = inject(ApiService);\n}\n","import { inject, Injectable, makeStateKey } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { BaseApiService } from '../base/base-api.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseApiService {\n readonly environmentService = inject(EnvironmentService);\n readonly title = inject(Title);\n readonly meta = inject(Meta);\n\n setMeta(title: string, description: string, image?: string): void {\n const newTitle = this.environmentService.config()?.APP_NAME + ' - ' + 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, Directive, effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { SeoService } from '../service/seo/seo.service';\n\n@Directive()\nexport abstract class BaseContainer {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n readonly routerService = inject(RouterService);\n\n protected requiredRole = signal<string>('');\n\n readonly hasAccess = computed<boolean>(() => {\n const role = this.requiredRole();\n return !role || this.authService.hasRole(role);\n });\n\n constructor() {\n effect(() => {\n if (!this.hasAccess()) {\n this.routerService.router.navigate(['/']);\n }\n });\n }\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Directive()\nexport abstract class BaseMainContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n\n readonly 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 { Directive, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseContainer } from '../base.container';\n\n@Directive()\nexport abstract class BaseRouteContainer extends BaseContainer {\n readonly activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n readonly routeParams = toSignal(this.activatedRoute.params);\n}\n","import { Directive, effect, ElementRef, inject } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { SCROLL_CLASS, scrollToTop } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { BaseSearchService } from '../../service';\nimport { BaseContainer } from '../base.container';\n\n@Directive()\nexport abstract class BaseSearchContainer<\n T extends BaseSearchService<U>,\n U extends ApiDto,\n> extends BaseContainer {\n readonly element = inject(ElementRef);\n\n readonly service: T | undefined = undefined;\n\n constructor(searchService: T) {\n super();\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.authService.canFetch(this.service.ssr())\n ) {\n this.doFetch();\n }\n if (this.service?.datas()?.length! > 0) {\n this.service?.isLoading.set(false);\n }\n });\n }\n\n doFetch(search: string | undefined = this.service?.search()): void {\n this.service?.fetchByPage(search as string, this.service?.page());\n }\n\n doSearch(search: string): void {\n this.service?.page.set(1);\n scrollToTop(this.element, SCROLL_CLASS);\n this.doFetch(search);\n }\n}\n","import { OutputEmitterRef } from '@angular/core';\n\nexport const isCallback = <T>(callback: OutputEmitterRef<T>): boolean => {\n const listeners = callback['listeners' as keyof OutputEmitterRef<T>];\n return listeners?.length > 0;\n};\n\nexport const generateArray = (length: number = 20): number[] => 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/service/base/base.service.ts","../../../projects/ng-dsv/base/service/base/base-api.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 { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { I18nService } from '@ng-vagabond-lab/ng-dsv/i18n';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive()\nexport abstract class BaseService {\n readonly toastService = inject(ToastService);\n readonly transferState = inject(TransferState);\n readonly platformService = inject(PlatformService);\n readonly i18nService = inject(I18nService);\n readonly translateService = this.i18nService.translateService;\n\n readonly loaded = signal<boolean>(true);\n\n isPlatformBrowser(): boolean {\n return this.platformService.isPlatformBrowser();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { ApiService } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseService } from './base.service';\n\n@Directive()\nexport abstract class BaseApiService extends BaseService {\n readonly apiService = inject(ApiService);\n}\n","import { inject, Injectable, makeStateKey } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { BaseApiService } from '../base/base-api.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseApiService {\n readonly environmentService = inject(EnvironmentService);\n readonly title = inject(Title);\n readonly meta = inject(Meta);\n\n setMeta(title: string, description: string, image?: string): void {\n const newTitle = this.environmentService.config()?.APP_NAME + ' - ' + 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, Directive, effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { SeoService } from '../service/seo/seo.service';\n\n@Directive()\nexport abstract class BaseContainer {\n readonly authService = inject(AuthService);\n readonly seoService = inject(SeoService);\n readonly routerService = inject(RouterService);\n\n protected requiredRole = signal<string>('');\n\n readonly hasAccess = computed<boolean>(() => {\n const role = this.requiredRole();\n return !role || this.authService.hasRole(role);\n });\n\n constructor() {\n effect(() => {\n if (!this.hasAccess()) {\n this.routerService.router.navigate(['/']);\n }\n });\n }\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Directive()\nexport abstract class BaseMainContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n\n readonly 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 { Directive, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseContainer } from '../base.container';\n\n@Directive()\nexport abstract class BaseRouteContainer extends BaseContainer {\n readonly activatedRoute = inject<ActivatedRoute>(ActivatedRoute);\n\n readonly routeParams = toSignal(this.activatedRoute.params);\n}\n","import { Directive, effect, ElementRef, inject } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { SCROLL_CLASS, scrollToTop } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { BaseSearchService } from '../../service';\nimport { BaseContainer } from '../base.container';\n\n@Directive()\nexport abstract class BaseSearchContainer<\n T extends BaseSearchService<U>,\n U extends ApiDto,\n> extends BaseContainer {\n readonly element = inject(ElementRef);\n\n readonly service: T | undefined = undefined;\n\n constructor(searchService: T) {\n super();\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.authService.canFetch(this.service.ssr())\n ) {\n this.doFetch();\n }\n if (this.service?.datas()?.length! > 0) {\n this.service?.isLoading.set(false);\n }\n });\n }\n\n doFetch(search: string | undefined = this.service?.search()): void {\n this.service?.fetchByPage(search as string, this.service?.page());\n }\n\n doSearch(search: string): void {\n this.service?.page.set(1);\n scrollToTop(this.element, SCROLL_CLASS);\n this.doFetch(search);\n }\n}\n","import { OutputEmitterRef } from '@angular/core';\n\nexport const isCallback = <T>(callback: OutputEmitterRef<T>): boolean => {\n const listeners = callback['listeners' as keyof OutputEmitterRef<T>];\n return listeners?.length > 0;\n};\n\nexport const generateArray = (length: number = 20): number[] => 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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"}
@@ -5,10 +5,10 @@ class DateFormatPipe {
5
5
  transform(value, showTime = false, technical = false) {
6
6
  return formatDate(value, showTime, technical);
7
7
  }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: DateFormatPipe, isStandalone: true, name: "formatDate" });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: DateFormatPipe, isStandalone: true, name: "formatDate" });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DateFormatPipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DateFormatPipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  name: 'formatDate',
@@ -1 +1 @@
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, showTime: boolean = false, technical: boolean = false): string {\n return formatDate(value, showTime, technical);\n }\n}\n","export const formatDate = (\n value: string | Date,\n showTime: boolean = false,\n technical: boolean = false,\n): string => {\n const date = new Date(value);\n\n if (Number.isNaN(date.getTime())) {\n return '—';\n }\n\n if (technical) {\n const pad = (n: number) => String(n).padStart(2, '0');\n return `${pad(date.getDate())}/${pad(date.getMonth() + 1)}/${date.getFullYear()} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n }\n\n const datePart = date.toLocaleDateString('fr-FR', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n\n if (!showTime) {\n return datePart;\n }\n\n const timePart = date.toLocaleTimeString('fr-FR', {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return `${datePart} à ${timePart}`;\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:00Z`;\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,EAAE,WAAoB,KAAK,EAAE,YAAqB,KAAK,EAAA;QAC1E,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;IACjD;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;;;ACNM,MAAM,UAAU,GAAG,CACtB,KAAoB,EACpB,QAAA,GAAoB,KAAK,EACzB,SAAA,GAAqB,KAAK,KAClB;AACR,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC9B,QAAA,OAAO,GAAG;IACd;IAEA,IAAI,SAAS,EAAE;AACX,QAAA,MAAM,GAAG,GAAG,CAAC,CAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACrD,OAAO,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAE;IACjK;AAEA,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC9C,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,SAAS;AAClB,KAAA,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE;AACX,QAAA,OAAO,QAAQ;IACnB;AAEA,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC9C,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACpB,KAAA,CAAC;AAEF,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,QAAQ,EAAE;AACtC;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,YAAY;AAC7D;;AC1CA;;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, showTime: boolean = false, technical: boolean = false): string {\n return formatDate(value, showTime, technical);\n }\n}\n","export const formatDate = (\n value: string | Date,\n showTime: boolean = false,\n technical: boolean = false,\n): string => {\n const date = new Date(value);\n\n if (Number.isNaN(date.getTime())) {\n return '—';\n }\n\n if (technical) {\n const pad = (n: number) => String(n).padStart(2, '0');\n return `${pad(date.getDate())}/${pad(date.getMonth() + 1)}/${date.getFullYear()} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n }\n\n const datePart = date.toLocaleDateString('fr-FR', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n\n if (!showTime) {\n return datePart;\n }\n\n const timePart = date.toLocaleTimeString('fr-FR', {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return `${datePart} à ${timePart}`;\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:00Z`;\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,EAAE,WAAoB,KAAK,EAAE,YAAqB,KAAK,EAAA;QAC1E,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;IACjD;uGAHS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;ACNM,MAAM,UAAU,GAAG,CACtB,KAAoB,EACpB,QAAA,GAAoB,KAAK,EACzB,SAAA,GAAqB,KAAK,KAClB;AACR,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC9B,QAAA,OAAO,GAAG;IACd;IAEA,IAAI,SAAS,EAAE;AACX,QAAA,MAAM,GAAG,GAAG,CAAC,CAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACrD,OAAO,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAE;IACjK;AAEA,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC9C,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,SAAS;AAClB,KAAA,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE;AACX,QAAA,OAAO,QAAQ;IACnB;AAEA,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC9C,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACpB,KAAA,CAAC;AAEF,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,QAAQ,EAAE;AACtC;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,YAAY;AAC7D;;AC1CA;;AAEG;;;;"}
@@ -3,12 +3,18 @@ import { input, viewChild, signal, afterNextRender, effect, Component } from '@a
3
3
  import { TranslatePipe } from '@ngx-translate/core';
4
4
 
5
5
  class DsvAccordionComponent {
6
- open = input(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
7
- titleText = input('', ...(ngDevMode ? [{ debugName: "titleText" }] : /* istanbul ignore next */ []));
8
- color = input('', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
9
- checkboxRef = viewChild('accordionContent', ...(ngDevMode ? [{ debugName: "checkboxRef" }] : /* istanbul ignore next */ []));
10
- isOpen = signal(this.open(), ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
11
- hasContent = signal(false, ...(ngDevMode ? [{ debugName: "hasContent" }] : /* istanbul ignore next */ []));
6
+ open = input(false, /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
8
+ titleText = input('', /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "titleText" }] : /* istanbul ignore next */ []));
10
+ color = input('', /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
12
+ checkboxRef = viewChild('accordionContent', /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "checkboxRef" }] : /* istanbul ignore next */ []));
14
+ isOpen = signal(this.open(), /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
16
+ hasContent = signal(false, /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "hasContent" }] : /* istanbul ignore next */ []));
12
18
  constructor() {
13
19
  afterNextRender(() => {
14
20
  const contentEl = document.querySelector('dsv-accordion > *:not([class*="dsv-accordion-header"])');
@@ -25,10 +31,10 @@ class DsvAccordionComponent {
25
31
  }
26
32
  this.isOpen.update((tootle) => !tootle);
27
33
  }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "checkboxRef", first: true, predicate: ["accordionContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<a class=\"dsv-accordion-header\" [class.disabled]=\"!hasContent()\" (click)=\"doToogle()\">\n <div>\n {{ titleText() | translate }}\n <ng-content select=\".dsv-accordion-header\"></ng-content>\n </div>\n <i\n [class]=\"isOpen() ? 'ri-arrow-up-s-line' : 'ri-arrow-down-s-line'\"\n [class.disabled]=\"!hasContent()\"\n ></i>\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <div class=\"dsv-accordion-inner\">\n <ng-content #accordionContent></ng-content>\n </div>\n</div>\n", styles: [":host{--accordion-header-padding: 5px 10px;--accordion-text-display: flex;--accordion-text-padding: 0px 10px;--accordion-text-width: calc(100% - 20px) ;margin:10px;padding:10px;width:calc(100% - 40px);background-color:var(--background-card);position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:var(--accordion-header-padding);position:relative}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-header i.disabled{color:var(--subtitle)}:host .dsv-accordion-header.disabled{cursor:default;pointer-events:none}:host .dsv-accordion-text{display:grid;padding:var(--accordion-text-padding);width:var(--accordion-text-width);overflow:hidden;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease-out,opacity .25s ease-out}:host .dsv-accordion-text.open{grid-template-rows:1fr;opacity:1}:host .dsv-accordion-text:empty{display:none}:host .dsv-accordion-text .dsv-accordion-inner{overflow:hidden;display:var(--accordion-text-display)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.1", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "checkboxRef", first: true, predicate: ["accordionContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<a class=\"dsv-accordion-header\" [class.disabled]=\"!hasContent()\" (click)=\"doToogle()\">\n <div>\n {{ titleText() | translate }}\n <ng-content select=\".dsv-accordion-header\"></ng-content>\n </div>\n <i\n [class]=\"isOpen() ? 'ri-arrow-up-s-line' : 'ri-arrow-down-s-line'\"\n [class.disabled]=\"!hasContent()\"\n ></i>\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <div class=\"dsv-accordion-inner\">\n <ng-content #accordionContent></ng-content>\n </div>\n</div>\n", styles: [":host{--accordion-header-padding: 5px 10px;--accordion-text-display: flex;--accordion-text-padding: 0px 10px;--accordion-text-width: calc(100% - 20px) ;margin:10px;padding:10px;width:calc(100% - 40px);background-color:var(--background-card);position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:var(--accordion-header-padding);position:relative}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-header i.disabled{color:var(--subtitle)}:host .dsv-accordion-header.disabled{cursor:default;pointer-events:none}:host .dsv-accordion-text{display:grid;padding:var(--accordion-text-padding);width:var(--accordion-text-width);overflow:hidden;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease-out,opacity .25s ease-out}:host .dsv-accordion-text.open{grid-template-rows:1fr;opacity:1}:host .dsv-accordion-text:empty{display:none}:host .dsv-accordion-text .dsv-accordion-inner{overflow:hidden;display:var(--accordion-text-display)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
30
36
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DsvAccordionComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvAccordionComponent, decorators: [{
32
38
  type: Component,
33
39
  args: [{ selector: 'dsv-accordion', imports: [TranslatePipe], template: "<a class=\"dsv-accordion-header\" [class.disabled]=\"!hasContent()\" (click)=\"doToogle()\">\n <div>\n {{ titleText() | translate }}\n <ng-content select=\".dsv-accordion-header\"></ng-content>\n </div>\n <i\n [class]=\"isOpen() ? 'ri-arrow-up-s-line' : 'ri-arrow-down-s-line'\"\n [class.disabled]=\"!hasContent()\"\n ></i>\n</a>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen() === true\">\n <div class=\"dsv-accordion-inner\">\n <ng-content #accordionContent></ng-content>\n </div>\n</div>\n", styles: [":host{--accordion-header-padding: 5px 10px;--accordion-text-display: flex;--accordion-text-padding: 0px 10px;--accordion-text-width: calc(100% - 20px) ;margin:10px;padding:10px;width:calc(100% - 40px);background-color:var(--background-card);position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:var(--accordion-header-padding);position:relative}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-header i.disabled{color:var(--subtitle)}:host .dsv-accordion-header.disabled{cursor:default;pointer-events:none}:host .dsv-accordion-text{display:grid;padding:var(--accordion-text-padding);width:var(--accordion-text-width);overflow:hidden;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease-out,opacity .25s ease-out}:host .dsv-accordion-text.open{grid-template-rows:1fr;opacity:1}:host .dsv-accordion-text:empty{display:none}:host .dsv-accordion-text .dsv-accordion-inner{overflow:hidden;display:var(--accordion-text-display)}\n"] }]
34
40
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], checkboxRef: [{ type: i0.ViewChild, args: ['accordionContent', { isSignal: true }] }] } });