@ng-vagabond-lab/ng-dsv 0.1.138 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +4 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +2 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +18 -16
- package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +4 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +7 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +8 -11
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +5 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +34 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +4 -4
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +2 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +9 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +5 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ng-vagabond-lab-ng-dsv-api.d.ts +1 -1
- package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts +1 -1
- package/types/ng-vagabond-lab-ng-dsv-base.d.ts +2 -8
- package/types/ng-vagabond-lab-ng-dsv-date.d.ts +2 -2
- package/types/ng-vagabond-lab-ng-dsv-ds-button.d.ts +2 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts +0 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-item.d.ts +2 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-scroll.d.ts +3 -2
- package/types/ng-vagabond-lab-ng-dsv-module-auth.d.ts +1 -0
- package/types/ng-vagabond-lab-ng-dsv-platform.d.ts +7 -3
- package/types/ng-vagabond-lab-ng-dsv-router.d.ts +3 -0
|
@@ -79,16 +79,16 @@ class ApiService {
|
|
|
79
79
|
callback(data);
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
createOrUpdate(endPoint, data, callback) {
|
|
82
|
+
createOrUpdate(endPoint, data, callback, toast) {
|
|
83
83
|
if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {
|
|
84
84
|
this.put('/' + endPoint + '/', data, (dateReturn) => {
|
|
85
|
-
this.toastService.showToast({ text: 'UPDATE_OK', type: 'success' });
|
|
85
|
+
this.toastService.showToast({ text: toast ?? 'UPDATE_OK', type: 'success' });
|
|
86
86
|
callback(dateReturn);
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
90
|
this.post('/' + endPoint + '/', data, (dateReturn) => {
|
|
91
|
-
this.toastService.showToast({ text: 'CREATION_OK', type: 'success' });
|
|
91
|
+
this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });
|
|
92
92
|
callback(dateReturn);
|
|
93
93
|
});
|
|
94
94
|
}
|
|
@@ -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\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) {\n if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n this.toastService.showToast({ text: 'UPDATE_OK', type: 'success' });\n callback(dateReturn);\n });\n } else {\n this.post<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n this.toastService.showToast({ text: 'CREATION_OK', type: 'success' });\n callback(dateReturn);\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\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 (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n this.toastService.showToast({ text: toast ?? 'UPDATE_OK', type: 'success' });\n callback(dateReturn);\n });\n } else {\n this.post<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });\n callback(dateReturn);\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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"}
|
|
@@ -66,10 +66,10 @@ class BaseSearchService extends BaseFetchService {
|
|
|
66
66
|
lastSearch = signal('', ...(ngDevMode ? [{ debugName: "lastSearch" }] : /* istanbul ignore next */ []));
|
|
67
67
|
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
68
68
|
stopFetch = signal(false, ...(ngDevMode ? [{ debugName: "stopFetch" }] : /* istanbul ignore next */ []));
|
|
69
|
-
getUrl(
|
|
69
|
+
getUrl() {
|
|
70
70
|
let url = this.getEndPoint();
|
|
71
71
|
const params = this.getParams();
|
|
72
|
-
url += '?page=' + page + params + '&search=';
|
|
72
|
+
url += '?page=' + this.page() + params + '&search=';
|
|
73
73
|
return url;
|
|
74
74
|
}
|
|
75
75
|
getParams() {
|
|
@@ -87,7 +87,8 @@ class BaseSearchService extends BaseFetchService {
|
|
|
87
87
|
if (this.stopFetch()) {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
this.page.set(page);
|
|
91
|
+
const url = this.getUrl();
|
|
91
92
|
const data = this.getDataFromState(url);
|
|
92
93
|
if (data) {
|
|
93
94
|
this.updateData(page, data);
|
|
@@ -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 { 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\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 //abstract fetch(id: number): D;\n\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 isLoading = signal<boolean>(false);\n readonly stopFetch = signal<boolean>(false);\n\n getUrl(
|
|
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 { 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\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 //abstract fetch(id: number): D;\n\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 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();\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 + search,\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.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,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, TransferState, signal, Directive, makeStateKey, Injectable, computed, effect, ElementRef } from '@angular/core';
|
|
3
3
|
import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
|
|
4
4
|
import { RouterService } from '@ng-vagabond-lab/ng-dsv/router';
|
|
5
5
|
import { Title, Meta } from '@angular/platform-browser';
|
|
@@ -10,16 +10,6 @@ import { toSignal } from '@angular/core/rxjs-interop';
|
|
|
10
10
|
import { ActivatedRoute } from '@angular/router';
|
|
11
11
|
import { scrollToTop, SCROLL_CLASS } from '@ng-vagabond-lab/ng-dsv/ds/scroll';
|
|
12
12
|
|
|
13
|
-
// TODO : checker les inject dans les composants ???
|
|
14
|
-
class BaseComponent {
|
|
15
|
-
loaded = signal(false, ...(ngDevMode ? [{ debugName: "loaded" }] : /* istanbul ignore next */ []));
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.12", type: BaseComponent, isStandalone: true, ngImport: i0 });
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: BaseComponent, decorators: [{
|
|
20
|
-
type: Directive
|
|
21
|
-
}] });
|
|
22
|
-
|
|
23
13
|
class BaseService {
|
|
24
14
|
toastService = inject(ToastService);
|
|
25
15
|
transferState = inject(TransferState);
|
|
@@ -155,5 +145,5 @@ const generateArray = (length = 20) => Array.from({ length }, (_, i) => i);
|
|
|
155
145
|
* Generated bundle index. Do not edit.
|
|
156
146
|
*/
|
|
157
147
|
|
|
158
|
-
export {
|
|
148
|
+
export { BaseContainer, BaseMainContainer, BaseRouteContainer, BaseSearchContainer, generateArray, isCallback };
|
|
159
149
|
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-base.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-base.mjs","sources":["../../../projects/ng-dsv/base/component/base.component.ts","../../../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, signal } from '@angular/core';\n\n// TODO : checker les inject dans les composants ???\n@Directive()\nexport abstract class BaseComponent {\n readonly loaded = signal(false);\n}\n","import { Directive, inject, signal, TransferState } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\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\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 { BaseApiService } from '../base/base-api.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseApiService {\n readonly title = inject(Title);\n readonly meta = inject(Meta);\n\n setMeta(titleApp: string, title: string, description: string, image?: string): void {\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, 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 });\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 { 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\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 { BaseApiService } from '../base/base-api.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SeoService extends BaseApiService {\n readonly title = inject(Title);\n readonly meta = inject(Meta);\n\n setMeta(titleApp: string, title: string, description: string, image?: string): void {\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, 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 });\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":";;;;;;;;;;;;MAKsB,WAAW,CAAA;AACpB,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAEzC,IAAA,MAAM,GAAG,MAAM,CAAU,IAAI,6EAAC;IAEvC,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;IACnD;wGATkB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADhC;;;ACCK,MAAgB,cAAe,SAAQ,WAAW,CAAA;AAC3C,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;wGADtB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACCK,MAAO,UAAW,SAAQ,cAAc,CAAA;AACjC,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACrB,IAAA,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAE5B,IAAA,OAAO,CAAC,QAAgB,EAAE,KAAa,EAAE,WAAmB,EAAE,KAAc,EAAA;AACxE,QAAA,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAS,OAAO,CAAC,EAAE,QAAQ,CAAC;AAC/D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClE,QAAA,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1E;wGAVS,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cADG,MAAM,EAAA,CAAA;;4FACnB,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCEZ,aAAa,CAAA;AACtB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAEpC,IAAA,YAAY,GAAG,MAAM,CAAS,EAAE,mFAAC;AAElC,IAAA,SAAS,GAAG,QAAQ,CAAU,MAAK;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;QAChC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAClD,IAAA,CAAC,gFAAC;AAEF,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C;AACJ,QAAA,CAAC,CAAC;IACN;wGAlBkB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCAqB,iBAAiB,CAAA;AAC1B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAErC,IAAA,gBAAgB,GAAG,MAAM,CAAU,KAAK,uFAAC;AAElD,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAClE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YACnC;AACJ,QAAA,CAAC,CAAC;IACN;wGAbkB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBADtC;;;ACEK,MAAgB,kBAAmB,SAAQ,aAAa,CAAA;AACjD,IAAA,cAAc,GAAG,MAAM,CAAiB,cAAc,CAAC;IAEvD,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;wGAHzC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACEK,MAAgB,mBAGpB,SAAQ,aAAa,CAAA;AACV,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAE5B,OAAO,GAAkB,SAAS;AAE3C,IAAA,WAAA,CAAY,aAAgB,EAAA;AACxB,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,aAAa;QAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,MAAK;YACR,IACI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AAC5B,gBAAA,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACzB,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAC/C;gBACE,IAAI,CAAC,OAAO,EAAE;YAClB;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,OAAO,CAAC,MAAA,GAA6B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAA;AACvD,QAAA,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,MAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACrE;AAEA,IAAA,QAAQ,CAAC,MAAc,EAAA;QACnB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,QAAA,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACxB;wGAhCkB,mBAAmB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACJM,MAAM,UAAU,GAAG,CAAI,QAA6B,KAAa;AACpE,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAwC,CAAC;AACpE,IAAA,OAAO,SAAS,EAAE,MAAM,GAAG,CAAC;AAChC;AAEO,MAAM,aAAa,GAAG,CAAC,MAAA,GAAiB,EAAE,KAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;;ACPlG;;AAEG;;;;"}
|
|
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Pipe } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class DateFormatPipe {
|
|
5
|
-
transform(value) {
|
|
6
|
-
return formatDate(value);
|
|
5
|
+
transform(value, showTime = false) {
|
|
6
|
+
return formatDate(value, showTime);
|
|
7
7
|
}
|
|
8
8
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9
9
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.12", ngImport: i0, type: DateFormatPipe, isStandalone: true, name: "formatDate" });
|
|
@@ -16,22 +16,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
const TOKEN_REGEX = new RegExp(Object.keys(FORMAT_TOKENS).join('|'), 'g');
|
|
29
|
-
const formatDate = (dateString, format = 'DD/MM/YYYY HH:mm:ss') => {
|
|
30
|
-
const date = new Date(dateString);
|
|
31
|
-
if (Number.isNaN(date.getTime())) {
|
|
19
|
+
const formatDate = (value, showTime = false) => {
|
|
20
|
+
const date = new Date(value);
|
|
21
|
+
const datePart = date.toLocaleDateString('fr-FR', {
|
|
22
|
+
day: 'numeric',
|
|
23
|
+
month: 'long',
|
|
24
|
+
year: 'numeric',
|
|
25
|
+
});
|
|
26
|
+
if (datePart == 'Invalid Date') {
|
|
32
27
|
return '—';
|
|
33
28
|
}
|
|
34
|
-
|
|
29
|
+
if (!showTime) {
|
|
30
|
+
return `${datePart}`;
|
|
31
|
+
}
|
|
32
|
+
const timePart = date.toLocaleTimeString('fr-FR', {
|
|
33
|
+
hour: '2-digit',
|
|
34
|
+
minute: '2-digit',
|
|
35
|
+
});
|
|
36
|
+
return `${datePart} à ${timePart}`;
|
|
35
37
|
};
|
|
36
38
|
function toDateInputValue(value) {
|
|
37
39
|
if (!value)
|
|
@@ -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): string {\n return formatDate(value);\n }\n}\n","const
|
|
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): string {\n return formatDate(value, showTime);\n }\n}\n","export const formatDate = (value: string | Date, showTime: boolean = false): string => {\n const date = new Date(value);\n const datePart = date.toLocaleDateString('fr-FR', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n\n if (datePart == 'Invalid Date') {\n return '—';\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 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,QAAA,GAAoB,KAAK,EAAA;AAC9C,QAAA,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;IACtC;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,CAAC,KAAoB,EAAE,QAAA,GAAoB,KAAK,KAAY;AAClF,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC5B,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;AAEF,IAAA,IAAI,QAAQ,IAAI,cAAc,EAAE;AAC5B,QAAA,OAAO,GAAG;IACd;IAEA,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE;IACxB;AAEA,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC9C,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACpB,KAAA,CAAC;AACF,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;;AC/BA;;AAEG;;;;"}
|
|
@@ -59,6 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
59
59
|
|
|
60
60
|
class DsvButtonComponent extends DsvBaseColorComponent {
|
|
61
61
|
libelle = input('', ...(ngDevMode ? [{ debugName: "libelle" }] : /* istanbul ignore next */ []));
|
|
62
|
+
routerLink = input(undefined, ...(ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []));
|
|
62
63
|
icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
63
64
|
iconEnd = input('', ...(ngDevMode ? [{ debugName: "iconEnd" }] : /* istanbul ignore next */ []));
|
|
64
65
|
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
@@ -77,19 +78,19 @@ class DsvButtonComponent extends DsvBaseColorComponent {
|
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
80
|
doClick(event) {
|
|
80
|
-
if (this.prevent() && this.type() !== 'submit') {
|
|
81
|
+
if (this.prevent() && !this.routerLink() && this.type() !== 'submit') {
|
|
81
82
|
event.stopPropagation();
|
|
82
83
|
event.preventDefault();
|
|
83
84
|
}
|
|
84
85
|
!this.disabled() && this.callback.emit();
|
|
85
86
|
}
|
|
86
87
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvButtonComponent, isStandalone: true, selector: "dsv-button", inputs: { libelle: { classPropertyName: "libelle", publicName: "libelle", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noHover: { classPropertyName: "noHover", publicName: "noHover", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prevent: { classPropertyName: "prevent", publicName: "prevent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, usesInheritance: true, ngImport: i0, template: "@if (show()) {\n <button\n [class]=\"classes()\"\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n (click)=\"doClick($event)\"\n buttonRipple\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (libelle()) {\n <span>\n {{ libelle() | translate }}\n </span>\n }\n <span>\n <ng-content></ng-content>\n </span>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n </button>\n}\n", styles: [":host{--button-border-radius: 4px;--button-disabled-background: rgb(200, 200, 200);--button-disabled-color: rgba(0, 0, 0);--button-width: auto;--button-min-width: 10px;--button-min-height: 28px;--button-margin: 0px;--button-padding: 2px 4px;--button-font-size: 1rem;--button-icon-size: 1.4rem;--button-line-height: 1.5rem;--button-font-weight: 550;position:relative}:host button.dsv-button{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;box-sizing:border-box;vertical-align:middle;flex-direction:row;gap:5px;align-items:center;justify-content:center;font-weight:var(--button-font-weight);font-size:var(--button-font-size);letter-spacing:.02857em;text-transform:uppercase;outline:0px;margin:var(--button-margin);padding:var(--button-padding);min-width:var(--button-min-width);min-height:var(--button-min-height);width:var(--button-width);line-height:var(--button-line-height);text-decoration:none;border-width:0px;border-radius:var(--button-border-radius);transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}:host button.dsv-button i{font-size:var(--button-icon-size)!important}:host button.dsv-button>span:not(.ripple):empty{display:none}:host button.dsv-button:has(span:not(:empty)){padding:3px 10px}:host button.dsv-button:has(span:not(:empty)) i{font-size:var(--button-font-size)!important}:host button.dsv-button:not(:disabled):not(.no-hover):hover{transform:scale(1);opacity:1.2}:host button.dsv-button:not(:disabled):not(.no-hover):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}:host button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}:host button.dsv-button:disabled{cursor:auto;background:var(--button-disabled-background);color:var(--button-disabled-color)}\n"], dependencies: [{ kind: "directive", type: ButtonRippleDirective, selector: "[buttonRipple]", inputs: ["rippleColor", "rippleDuration"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
88
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvButtonComponent, isStandalone: true, selector: "dsv-button", inputs: { libelle: { classPropertyName: "libelle", publicName: "libelle", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, noHover: { classPropertyName: "noHover", publicName: "noHover", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prevent: { classPropertyName: "prevent", publicName: "prevent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, usesInheritance: true, ngImport: i0, template: "@if (show()) {\n <button\n [class]=\"classes()\"\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n (click)=\"doClick($event)\"\n buttonRipple\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (libelle()) {\n <span>\n {{ libelle() | translate }}\n </span>\n }\n <span>\n <ng-content></ng-content>\n </span>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n </button>\n}\n", styles: [":host{--button-border-radius: 4px;--button-disabled-background: rgb(200, 200, 200);--button-disabled-color: rgba(0, 0, 0);--button-width: auto;--button-min-width: 10px;--button-min-height: 28px;--button-margin: 0px;--button-padding: 2px 4px;--button-font-size: 1rem;--button-icon-size: 1.4rem;--button-line-height: 1.5rem;--button-font-weight: 550;position:relative}:host button.dsv-button{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;box-sizing:border-box;vertical-align:middle;flex-direction:row;gap:5px;align-items:center;justify-content:center;font-weight:var(--button-font-weight);font-size:var(--button-font-size);letter-spacing:.02857em;text-transform:uppercase;outline:0px;margin:var(--button-margin);padding:var(--button-padding);min-width:var(--button-min-width);min-height:var(--button-min-height);width:var(--button-width);line-height:var(--button-line-height);text-decoration:none;border-width:0px;border-radius:var(--button-border-radius);transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}:host button.dsv-button i{font-size:var(--button-icon-size)!important}:host button.dsv-button>span:not(.ripple):empty{display:none}:host button.dsv-button:has(span:not(:empty)){padding:3px 10px}:host button.dsv-button:has(span:not(:empty)) i{font-size:var(--button-font-size)!important}:host button.dsv-button:not(:disabled):not(.no-hover):hover{transform:scale(1);opacity:1.2}:host button.dsv-button:not(:disabled):not(.no-hover):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}:host button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}:host button.dsv-button:disabled{cursor:auto;background:var(--button-disabled-background);color:var(--button-disabled-color)}\n"], dependencies: [{ kind: "directive", type: ButtonRippleDirective, selector: "[buttonRipple]", inputs: ["rippleColor", "rippleDuration"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
88
89
|
}
|
|
89
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvButtonComponent, decorators: [{
|
|
90
91
|
type: Component,
|
|
91
92
|
args: [{ selector: 'dsv-button', imports: [TranslatePipe, ButtonRippleDirective], template: "@if (show()) {\n <button\n [class]=\"classes()\"\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n (click)=\"doClick($event)\"\n buttonRipple\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (libelle()) {\n <span>\n {{ libelle() | translate }}\n </span>\n }\n <span>\n <ng-content></ng-content>\n </span>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n </button>\n}\n", styles: [":host{--button-border-radius: 4px;--button-disabled-background: rgb(200, 200, 200);--button-disabled-color: rgba(0, 0, 0);--button-width: auto;--button-min-width: 10px;--button-min-height: 28px;--button-margin: 0px;--button-padding: 2px 4px;--button-font-size: 1rem;--button-icon-size: 1.4rem;--button-line-height: 1.5rem;--button-font-weight: 550;position:relative}:host button.dsv-button{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;box-sizing:border-box;vertical-align:middle;flex-direction:row;gap:5px;align-items:center;justify-content:center;font-weight:var(--button-font-weight);font-size:var(--button-font-size);letter-spacing:.02857em;text-transform:uppercase;outline:0px;margin:var(--button-margin);padding:var(--button-padding);min-width:var(--button-min-width);min-height:var(--button-min-height);width:var(--button-width);line-height:var(--button-line-height);text-decoration:none;border-width:0px;border-radius:var(--button-border-radius);transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}:host button.dsv-button i{font-size:var(--button-icon-size)!important}:host button.dsv-button>span:not(.ripple):empty{display:none}:host button.dsv-button:has(span:not(:empty)){padding:3px 10px}:host button.dsv-button:has(span:not(:empty)) i{font-size:var(--button-font-size)!important}:host button.dsv-button:not(:disabled):not(.no-hover):hover{transform:scale(1);opacity:1.2}:host button.dsv-button:not(:disabled):not(.no-hover):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}:host button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}:host button.dsv-button:disabled{cursor:auto;background:var(--button-disabled-background);color:var(--button-disabled-color)}\n"] }]
|
|
92
|
-
}], ctorParameters: () => [], propDecorators: { libelle: [{ type: i0.Input, args: [{ isSignal: true, alias: "libelle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconEnd", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], noHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "noHover", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], prevent: [{ type: i0.Input, args: [{ isSignal: true, alias: "prevent", required: false }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
93
|
+
}], ctorParameters: () => [], propDecorators: { libelle: [{ type: i0.Input, args: [{ isSignal: true, alias: "libelle", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconEnd", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], noHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "noHover", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], prevent: [{ type: i0.Input, args: [{ isSignal: true, alias: "prevent", required: false }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
96
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.mjs","sources":["../../../projects/ng-dsv/ds/button/directive/button-riddle.directive.ts","../../../projects/ng-dsv/ds/button/component/button.component.ts","../../../projects/ng-dsv/ds/button/component/button.component.html","../../../projects/ng-dsv/ds/button/ng-vagabond-lab-ng-dsv-ds-button.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive({\n selector: '[buttonRipple]',\n host: {\n '(click)': 'onClick($event)',\n },\n})\nexport class ButtonRippleDirective {\n readonly element = inject(ElementRef<HTMLElement>);\n readonly renderer = inject(Renderer2);\n readonly platformService = inject(PlatformService);\n\n readonly rippleColor = input<string>('rgba(255, 255, 255, 0.35');\n readonly rippleDuration = input<number>(550);\n\n constructor() {\n if (!this.platformService.isPlatformBrowser()) {\n return;\n }\n\n const host = this.element.nativeElement;\n\n const position = getComputedStyle(host).position;\n if (position === 'static') {\n this.renderer.setStyle(host, 'position', 'relative');\n }\n this.renderer.setStyle(host, 'overflow', 'hidden');\n }\n\n onClick(event: MouseEvent): void {\n const host = this.element.nativeElement;\n const rect = host.getBoundingClientRect();\n\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n const circle = this.renderer.createElement('span') as HTMLElement;\n circle.classList.add('ripple');\n\n this.renderer.setStyle(circle, 'position', 'absolute');\n this.renderer.setStyle(circle, 'width', `${size}px`);\n this.renderer.setStyle(circle, 'height', `${size}px`);\n this.renderer.setStyle(circle, 'left', `${x}px`);\n this.renderer.setStyle(circle, 'top', `${y}px`);\n this.renderer.setStyle(circle, 'border-radius', '50%');\n this.renderer.setStyle(circle, 'background', this.rippleColor());\n this.renderer.setStyle(circle, 'transform', 'scale(0)');\n this.renderer.setStyle(circle, 'pointer-events', 'none');\n this.renderer.setStyle(circle, 'animation', `ripple ${this.rippleDuration()}ms linear`);\n\n this.renderer.appendChild(host, circle);\n\n circle.addEventListener('animationend', () => {\n this.renderer.removeChild(host, circle);\n });\n }\n}\n","import { Component, effect, input, output } from '@angular/core';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ButtonRippleDirective } from '../directive/button-riddle.directive';\n\n@Component({\n selector: 'dsv-button',\n imports: [TranslatePipe, ButtonRippleDirective],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DsvButtonComponent extends DsvBaseColorComponent {\n readonly libelle = input<string>('');\n readonly icon = input<string>('');\n readonly iconEnd = input<string>('');\n readonly disabled = input<boolean>(false);\n readonly noHover = input<boolean>(false);\n readonly type = input<string>('button');\n readonly prevent = input<boolean>(true);\n\n readonly callback = output<void>();\n\n constructor() {\n super();\n effect(() => {\n const classes: string[] = [];\n this.icon() && classes.push('icon');\n this.libelle() !== '' && classes.push('padding');\n this.noHover() && classes.push('no-hover');\n\n this.setClasses('dsv-button', classes);\n });\n }\n\n doClick(event: Event): void {\n if (this.prevent() && this.type() !== 'submit') {\n event.stopPropagation();\n event.preventDefault();\n }\n !this.disabled() && this.callback.emit();\n }\n}\n","@if (show()) {\n <button\n [class]=\"classes()\"\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n (click)=\"doClick($event)\"\n buttonRipple\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (libelle()) {\n <span>\n {{ libelle() | translate }}\n </span>\n }\n <span>\n <ng-content></ng-content>\n </span>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.mjs","sources":["../../../projects/ng-dsv/ds/button/directive/button-riddle.directive.ts","../../../projects/ng-dsv/ds/button/component/button.component.ts","../../../projects/ng-dsv/ds/button/component/button.component.html","../../../projects/ng-dsv/ds/button/ng-vagabond-lab-ng-dsv-ds-button.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\n\n@Directive({\n selector: '[buttonRipple]',\n host: {\n '(click)': 'onClick($event)',\n },\n})\nexport class ButtonRippleDirective {\n readonly element = inject(ElementRef<HTMLElement>);\n readonly renderer = inject(Renderer2);\n readonly platformService = inject(PlatformService);\n\n readonly rippleColor = input<string>('rgba(255, 255, 255, 0.35');\n readonly rippleDuration = input<number>(550);\n\n constructor() {\n if (!this.platformService.isPlatformBrowser()) {\n return;\n }\n\n const host = this.element.nativeElement;\n\n const position = getComputedStyle(host).position;\n if (position === 'static') {\n this.renderer.setStyle(host, 'position', 'relative');\n }\n this.renderer.setStyle(host, 'overflow', 'hidden');\n }\n\n onClick(event: MouseEvent): void {\n const host = this.element.nativeElement;\n const rect = host.getBoundingClientRect();\n\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n const circle = this.renderer.createElement('span') as HTMLElement;\n circle.classList.add('ripple');\n\n this.renderer.setStyle(circle, 'position', 'absolute');\n this.renderer.setStyle(circle, 'width', `${size}px`);\n this.renderer.setStyle(circle, 'height', `${size}px`);\n this.renderer.setStyle(circle, 'left', `${x}px`);\n this.renderer.setStyle(circle, 'top', `${y}px`);\n this.renderer.setStyle(circle, 'border-radius', '50%');\n this.renderer.setStyle(circle, 'background', this.rippleColor());\n this.renderer.setStyle(circle, 'transform', 'scale(0)');\n this.renderer.setStyle(circle, 'pointer-events', 'none');\n this.renderer.setStyle(circle, 'animation', `ripple ${this.rippleDuration()}ms linear`);\n\n this.renderer.appendChild(host, circle);\n\n circle.addEventListener('animationend', () => {\n this.renderer.removeChild(host, circle);\n });\n }\n}\n","import { Component, effect, input, output } from '@angular/core';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ButtonRippleDirective } from '../directive/button-riddle.directive';\n\n@Component({\n selector: 'dsv-button',\n imports: [TranslatePipe, ButtonRippleDirective],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DsvButtonComponent extends DsvBaseColorComponent {\n readonly libelle = input<string>('');\n readonly routerLink = input<string | undefined>(undefined);\n readonly icon = input<string>('');\n readonly iconEnd = input<string>('');\n readonly disabled = input<boolean>(false);\n readonly noHover = input<boolean>(false);\n readonly type = input<string>('button');\n readonly prevent = input<boolean>(true);\n\n readonly callback = output<void>();\n\n constructor() {\n super();\n effect(() => {\n const classes: string[] = [];\n this.icon() && classes.push('icon');\n this.libelle() !== '' && classes.push('padding');\n this.noHover() && classes.push('no-hover');\n\n this.setClasses('dsv-button', classes);\n });\n }\n\n doClick(event: Event): void {\n if (this.prevent() && !this.routerLink() && this.type() !== 'submit') {\n event.stopPropagation();\n event.preventDefault();\n }\n !this.disabled() && this.callback.emit();\n }\n}\n","@if (show()) {\n <button\n [class]=\"classes()\"\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n (click)=\"doClick($event)\"\n buttonRipple\n >\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (libelle()) {\n <span>\n {{ libelle() | translate }}\n </span>\n }\n <span>\n <ng-content></ng-content>\n </span>\n @if (iconEnd()) {\n <i [class]=\"iconEnd()\"></i>\n }\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ class DsvChipComponent extends DsvBaseColorComponent {
|
|
|
22
22
|
this.delete.emit();
|
|
23
23
|
}
|
|
24
24
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvChipComponent, isStandalone: true, selector: "dsv-chip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, host: { properties: { "class": "classes()" } }, usesInheritance: true, ngImport: i0, template: "<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n", styles: [":host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;padding:6px 15px;border-radius:15px;font-size:1rem;font-weight:300}:host.with-delete{padding:0 5px 0 20px}:host:empty{display:none}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvChipComponent, isStandalone: true, selector: "dsv-chip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, host: { properties: { "class": "classes()" } }, usesInheritance: true, ngImport: i0, template: "<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n", styles: [":host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;padding:6px 15px;border-radius:15px;font-size:1rem;font-weight:300}:host.with-delete{padding:0 5px 0 20px}:host:empty{display:none}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvChipComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-chip.mjs","sources":["../../../projects/ng-dsv/ds/chip/component/chip.component.ts","../../../projects/ng-dsv/ds/chip/component/chip.component.html","../../../projects/ng-dsv/ds/chip/ng-vagabond-lab-ng-dsv-ds-chip.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-chip',\n imports: [DsvButtonComponent, TranslatePipe],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n host: {\n '[class]': 'classes()',\n },\n})\nexport class DsvChipComponent extends DsvBaseColorComponent {\n readonly text = input<string>('');\n\n readonly delete = output<void>();\n\n readonly isDelete = signal<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n this.isDelete.set(isCallback(this.delete));\n\n this.text();\n const classes: string[] = [this.isDelete() ? 'with-delete' : ''];\n this.setClasses('dsv-chip', classes);\n });\n }\n\n doDelete(): void {\n this.delete.emit();\n }\n}\n","<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAeM,MAAO,gBAAiB,SAAQ,qBAAqB,CAAA;AAC9C,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,2EAAC;IAExB,MAAM,GAAG,MAAM,EAAQ;AAEvB,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,+EAAC;AAE1C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,MAAM,OAAO,GAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,GAAG,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB;wGApBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7B,yMAOA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCc,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-chip.mjs","sources":["../../../projects/ng-dsv/ds/chip/component/chip.component.ts","../../../projects/ng-dsv/ds/chip/component/chip.component.html","../../../projects/ng-dsv/ds/chip/ng-vagabond-lab-ng-dsv-ds-chip.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-chip',\n imports: [DsvButtonComponent, TranslatePipe],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n host: {\n '[class]': 'classes()',\n },\n})\nexport class DsvChipComponent extends DsvBaseColorComponent {\n readonly text = input<string>('');\n\n readonly delete = output<void>();\n\n readonly isDelete = signal<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n this.isDelete.set(isCallback(this.delete));\n\n this.text();\n const classes: string[] = [this.isDelete() ? 'with-delete' : ''];\n this.setClasses('dsv-chip', classes);\n });\n }\n\n doDelete(): void {\n this.delete.emit();\n }\n}\n","<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAeM,MAAO,gBAAiB,SAAQ,qBAAqB,CAAA;AAC9C,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,2EAAC;IAExB,MAAM,GAAG,MAAM,EAAQ;AAEvB,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,+EAAC;AAE1C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,MAAM,OAAO,GAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,GAAG,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB;wGApBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7B,yMAOA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCc,kBAAkB,yKAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;4FAOlC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,CAAC,kBAAkB,EAAE,aAAa,CAAC,EAAA,IAAA,EAGtC;AACF,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA,EAAA,QAAA,EAAA,yMAAA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA;;;AEbL;;AAEG;;;;"}
|