@ng-vagabond-lab/ng-dsv 0.2.2 → 0.2.4
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/assets/global.scss +1 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +12 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +21 -21
- package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +12 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +9 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +24 -24
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +27 -27
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +12 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +12 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +12 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +49 -58
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +9 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +15 -15
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +9 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +8 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-pipe.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +4 -4
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +9 -10
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +29 -17
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv.mjs +6 -6
- package/package.json +1 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-scroll.d.ts +2 -1
- package/types/ng-vagabond-lab-ng-dsv-module-contact.d.ts +2 -1
- package/types/ng-vagabond-lab-ng-dsv-template.d.ts +11 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-scroll.mjs","sources":["../../../projects/ng-dsv/ds/scroll/component/button/scroll-top-button.component.ts","../../../projects/ng-dsv/ds/scroll/component/button/scroll-top-button.component.html","../../../projects/ng-dsv/ds/scroll/component/scroll-infinite.component.ts","../../../projects/ng-dsv/ds/scroll/component/scroll-infinite.component.html","../../../projects/ng-dsv/ds/scroll/service/scroll.service.ts","../../../projects/ng-dsv/ds/scroll/utils/scroll.utils.ts","../../../projects/ng-dsv/ds/scroll/ng-vagabond-lab-ng-dsv-ds-scroll.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\n\n@Component({\n selector: 'dsv-scroll-top-button',\n imports: [DsvButtonComponent],\n templateUrl: './scroll-top-button.component.html',\n styleUrls: ['./scroll-top-button.component.scss'],\n})\nexport class ButtonScrollTopComponent {\n readonly scroll = input<number>(0);\n\n readonly callback = output<void>();\n\n readonly show = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.show.set(this.scroll() > 400);\n });\n }\n}\n","@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"callback.emit()\"\n ></dsv-button>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport { Scroll } from '@angular/router';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { filter, map } from 'rxjs';\nimport { ButtonScrollTopComponent, ScrollService } from '../public-api';\n\n@Component({\n selector: 'dsv-scroll-infinite',\n imports: [ButtonScrollTopComponent, NgTemplateOutlet],\n templateUrl: './scroll-infinite.component.html',\n styleUrls: ['./scroll-infinite.component.scss'],\n host: {\n '[id]': 'id() ?? uuid()',\n class: 'scroll',\n '(scroll)': 'doScroll()',\n },\n})\nexport class DsvScrollInfiniteContainer {\n readonly scrollService = inject(ScrollService);\n readonly elementRef = inject(ElementRef);\n readonly routerService = inject(RouterService);\n\n readonly bottomOffset = input<number>(100);\n readonly loading = input<boolean | null>(null);\n readonly id = input<string | undefined>();\n //readonly skeletonCount = input<number>(10);\n\n readonly callback = output<void>();\n readonly uuid = signal<string>('');\n readonly top = signal<number>(0);\n readonly skeletonCount = signal<number>(0);\n\n private readonly $loading = signal(false);\n\n readonly skeletonTemplate = contentChild<TemplateRef<void>>('skeleton');\n\n readonly skeletonArray = signal<number[]>([]);\n\n constructor() {\n this.routerService.router.events\n .pipe(\n filter((event): event is Scroll => event instanceof Scroll),\n map((event: Scroll) => event.position),\n )\n .subscribe(() => {\n const value = this.scrollService.getScroll(this.uuid(), this.routerService.currentUrl());\n if (value.top === 0 && value.left === 0) {\n return;\n }\n for (let i = 10; i < 100; i += 10) {\n setTimeout(() => {\n this.restoreScroll(value.top, value.left);\n this.$loading.set(true);\n }, i);\n }\n });\n\n effect(() => {\n if (this.scrollService.isPlatformBrowser() && !this.id()) {\n const all = Array.from(document.querySelectorAll('.scroll'));\n const index = all.indexOf(this.elementRef.nativeElement);\n this.uuid.set(this.scrollService.getRouteUuid(index));\n }\n });\n\n effect(() => {\n if (!this.loading()) {\n this.$loading.set(false);\n }\n });\n\n effect(() => {\n this.skeletonArray.set(Array.from({ length: this.skeletonCount() }, (_, i) => i));\n });\n\n effect(() => {\n let count = 0;\n const small = this.elementRef.nativeElement.classList.contains('small');\n if (this.scrollService.platformService.width() >= 1500) {\n count = small ? 16 : 14;\n } else if (this.scrollService.platformService.width() >= 1150) {\n count = small ? 14 : 12;\n } else if (this.scrollService.platformService.width() >= 900) {\n count = small ? 14 : 10;\n } else if (this.scrollService.platformService.width() >= 650) {\n count = small ? 14 : 8;\n } else if (this.scrollService.platformService.width() >= 350) {\n count = small ? 8 : 6;\n } else if (this.scrollService.platformService.width() >= 200) {\n count = small ? 6 : 3;\n } else {\n count = small ? 4 : 2;\n }\n this.skeletonCount.set(count);\n });\n }\n\n restoreScroll(top: number, left: number): void {\n if (top === 0 && left === 0) {\n return;\n }\n this.top.set(top);\n this.elementRef.nativeElement.scrollTop = top;\n this.elementRef.nativeElement.scrollLeft = left;\n this.resetLoading();\n }\n\n private resetLoading(): void {\n setTimeout(() => {\n this.$loading.set(false);\n }, 500);\n }\n\n scrollToTop(): void {\n this.elementRef.nativeElement.scrollTop = 0;\n this.scrollService.saveScroll(this.uuid(), this.routerService.currentUrl(), 0, 0);\n }\n\n doScroll(): void {\n const value = this.scrollService.getScroll(this.uuid(), this.routerService.currentUrl());\n\n const scrollTop = this.elementRef.nativeElement.scrollTop;\n const scrollLeft = this.elementRef.nativeElement.scrollLeft;\n\n if (scrollTop < value.top - 500 && scrollLeft < value.left - 500) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n const distanceToBottom = element.scrollHeight - element.scrollTop - element.clientHeight;\n\n this.scrollService.saveScroll(\n this.uuid(),\n this.routerService.currentUrl(),\n element.scrollTop,\n element.scrollLeft,\n );\n this.top.set(element.scrollTop);\n\n if (distanceToBottom < this.bottomOffset() && !this.$loading()) {\n this.$loading.set(true);\n this.callback.emit();\n this.resetLoading();\n }\n }\n}\n","<ng-content></ng-content>\n\n@if (loading()) {\n <ng-container>\n @for (_ of skeletonArray(); track _) {\n <ng-container *ngTemplateOutlet=\"skeletonTemplate()\"></ng-container>\n }\n </ng-container>\n}\n\n<dsv-scroll-top-button [scroll]=\"top()\" (callback)=\"scrollToTop()\" />\n","import { inject, Injectable, signal } from '@angular/core';\nimport { BaseApiService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { ScrollPositionDto } from '../dto/scroll-position.dto';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService extends BaseApiService {\n readonly router = inject(RouterService).router;\n readonly routeIds = new Map<string, string>();\n readonly scrolls = signal<Map<string, Map<string, ScrollPositionDto>>>(new Map());\n\n getRouteUuid(index: number = 0): string {\n const key = `${this.router.url}__${index}`;\n if (!this.routeIds.has(key)) {\n this.routeIds.set(key, crypto.randomUUID());\n }\n return this.routeIds.get(key)!;\n }\n\n saveScroll(id: string, url: string, top: number, left: number): void {\n this.scrolls.update((map) => {\n const newMap = new Map(map);\n const urlMap = new Map(newMap.get(id) ?? []);\n urlMap.set(url, { top, left });\n newMap.set(id, urlMap);\n return newMap;\n });\n }\n\n getScroll(id: string, url: string): ScrollPositionDto {\n return this.scrolls().get(id)?.get(url) ?? { top: 0, left: 0 };\n }\n\n clear(id: string): void {\n this.scrolls.update((map) => {\n const newMap = new Map(map);\n newMap.delete(id);\n return newMap;\n });\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const SCROLL_ID = '#main-scroll';\nexport const SCROLL_CLASS = '.scroll';\n\nexport const scrollToTop = (element: ElementRef, name: string = SCROLL_ID): void => {\n element.nativeElement.querySelector(name)?.scrollTo({ top: 0, behavior: 'smooth' });\n};\nexport const scrollToClosestTop = (element: ElementRef, name: string = SCROLL_CLASS): void => {\n element.nativeElement.querySelector(name)?.closest(name)?.scrollTo(0, 0);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-scroll.mjs","sources":["../../../projects/ng-dsv/ds/scroll/component/button/scroll-top-button.component.ts","../../../projects/ng-dsv/ds/scroll/component/button/scroll-top-button.component.html","../../../projects/ng-dsv/ds/scroll/component/scroll-infinite.component.ts","../../../projects/ng-dsv/ds/scroll/component/scroll-infinite.component.html","../../../projects/ng-dsv/ds/scroll/service/scroll.service.ts","../../../projects/ng-dsv/ds/scroll/utils/scroll.utils.ts","../../../projects/ng-dsv/ds/scroll/ng-vagabond-lab-ng-dsv-ds-scroll.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\n\n@Component({\n selector: 'dsv-scroll-top-button',\n imports: [DsvButtonComponent],\n templateUrl: './scroll-top-button.component.html',\n styleUrls: ['./scroll-top-button.component.scss'],\n})\nexport class ButtonScrollTopComponent {\n readonly scroll = input<number>(0);\n\n readonly callback = output<void>();\n\n readonly show = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.show.set(this.scroll() > 400);\n });\n }\n}\n","@if (show()) {\n <dsv-button\n icon=\"ri-arrow-up-line\"\n color=\"default\"\n (callback)=\"callback.emit()\"\n ></dsv-button>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport { NavigationStart, Scroll } from '@angular/router';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { filter, map } from 'rxjs';\nimport { ButtonScrollTopComponent, getVisibleCount, ScrollService } from '../public-api';\n\n@Component({\n selector: 'dsv-scroll-infinite',\n imports: [ButtonScrollTopComponent, NgTemplateOutlet],\n templateUrl: './scroll-infinite.component.html',\n styleUrls: ['./scroll-infinite.component.scss'],\n host: {\n '[id]': 'id() ?? uuid()',\n class: 'scroll',\n '(scroll)': 'doScroll()',\n },\n})\nexport class DsvScrollInfiniteContainer {\n readonly scrollService = inject(ScrollService);\n readonly elementRef = inject(ElementRef);\n readonly routerService = inject(RouterService);\n\n readonly bottomOffset = input<number>(100);\n readonly loading = input<boolean | null>(null);\n readonly id = input<string | undefined>();\n\n readonly callback = output<void>();\n readonly uuid = signal<string>('');\n readonly top = signal<number>(0);\n readonly skeletonCount = signal<number>(0);\n\n private readonly $loading = signal(false);\n\n readonly skeletonTemplate = contentChild<TemplateRef<void>>('skeleton');\n\n readonly skeletonArray = signal<number[]>([]);\n\n constructor() {\n this.routerService.router.events.subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.$loading.set(true);\n }\n });\n this.routerService.router.events\n .pipe(\n filter((event): event is Scroll => event instanceof Scroll),\n map((event: Scroll) => event.position),\n )\n .subscribe(() => {\n const url = this.routerService.currentUrl();\n const value = this.scrollService.getScroll(this.uuid(), url);\n this.restoreScroll(value?.top, value?.left);\n setTimeout(() => {\n this.restoreScroll(value?.top, value?.left);\n this.$loading.set(false);\n }, 100);\n });\n\n effect(() => {\n if (this.scrollService.isPlatformBrowser()) {\n if (this.id()) {\n this.uuid.set(this.id()!);\n } else {\n const all = Array.from(document.querySelectorAll('.scroll'));\n const index = all.indexOf(this.elementRef.nativeElement);\n this.uuid.set(this.scrollService.getRouteUuid(index));\n }\n }\n });\n\n effect(() => {\n if (!this.loading()) {\n this.$loading.set(false);\n }\n });\n\n effect(() => {\n this.skeletonArray.set(Array.from({ length: this.skeletonCount() }, (_, i) => i));\n });\n\n effect(() => {\n const small = this.elementRef.nativeElement.classList.contains('small');\n const count = getVisibleCount(this.scrollService.platformService.width(), small);\n this.skeletonCount.set(count);\n });\n }\n\n restoreScroll(top: number, left: number): void {\n this.top.set(top);\n this.elementRef.nativeElement.scrollTop = top;\n this.elementRef.nativeElement.scrollLeft = left;\n }\n\n private resetLoading(): void {\n setTimeout(() => {\n this.$loading.set(false);\n }, 10);\n }\n\n scrollToTop(): void {\n this.elementRef.nativeElement.scrollTop = 0;\n this.scrollService.saveScroll(this.uuid(), this.routerService.currentUrl(), 0, 0);\n }\n\n doScroll(): void {\n if (this.$loading()) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n\n this.scrollService.saveScroll(\n this.uuid(),\n this.routerService.currentUrl(),\n element.scrollTop,\n element.scrollLeft,\n );\n this.top.set(element.scrollTop);\n\n const distanceToBottom = element.scrollHeight - element.scrollTop - element.clientHeight;\n\n if (distanceToBottom < this.bottomOffset() && !this.$loading()) {\n this.$loading.set(true);\n this.callback.emit();\n this.resetLoading();\n }\n }\n}\n","<ng-content></ng-content>\n\n@if (loading()) {\n <ng-container>\n @for (_ of skeletonArray(); track _) {\n <ng-container *ngTemplateOutlet=\"skeletonTemplate()\"></ng-container>\n }\n </ng-container>\n}\n\n<dsv-scroll-top-button [scroll]=\"top()\" (callback)=\"scrollToTop()\" />\n","import { inject, Injectable, signal } from '@angular/core';\nimport { BaseApiService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { ScrollPositionDto } from '../dto/scroll-position.dto';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollService extends BaseApiService {\n readonly router = inject(RouterService).router;\n readonly routeIds = new Map<string, string>();\n readonly scrolls = signal<Map<string, Map<string, ScrollPositionDto>>>(new Map());\n\n getRouteUuid(index: number = 0): string {\n const key = `${this.router.url}__${index}`;\n if (!this.routeIds.has(key)) {\n this.routeIds.set(key, crypto.randomUUID());\n }\n return this.routeIds.get(key)!;\n }\n\n saveScroll(id: string, url: string, top: number, left: number): void {\n this.scrolls.update((map) => {\n const newMap = new Map(map);\n const urlMap = new Map(newMap.get(id) ?? []);\n urlMap.set(url, { top, left });\n newMap.set(id, urlMap);\n return newMap;\n });\n }\n\n getScroll(id: string, url: string): ScrollPositionDto {\n return this.scrolls().get(id)?.get(url) ?? { top: 0, left: 0 };\n }\n\n clear(id: string): void {\n this.scrolls.update((map) => {\n const newMap = new Map(map);\n newMap.delete(id);\n return newMap;\n });\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const SCROLL_ID = '#main-scroll';\nexport const SCROLL_CLASS = '.scroll';\n\nexport const scrollToTop = (element: ElementRef, name: string = SCROLL_ID): void => {\n element.nativeElement.querySelector(name)?.scrollTo({ top: 0, behavior: 'smooth' });\n};\nexport const scrollToClosestTop = (element: ElementRef, name: string = SCROLL_CLASS): void => {\n element.nativeElement.querySelector(name)?.closest(name)?.scrollTo(0, 0);\n};\n\ntype BreakpointConfig = {\n min: number;\n small: number;\n normal: number;\n};\n\nconst BREAKPOINTS: BreakpointConfig[] = [\n { min: 1500, small: 16, normal: 14 },\n { min: 1150, small: 14, normal: 12 },\n { min: 900, small: 14, normal: 10 },\n { min: 650, small: 14, normal: 8 },\n { min: 350, small: 8, normal: 6 },\n { min: 200, small: 6, normal: 3 },\n { min: 0, small: 4, normal: 2 },\n];\n\nexport function getVisibleCount(width: number, small: boolean): number {\n const config = BREAKPOINTS.find((bp) => width >= bp.min)!;\n\n return small ? config.small : config.normal;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class DsvSekeletonComponent {
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvSekeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: DsvSekeletonComponent, isStandalone: true, selector: "dsv-skeleton", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;background-color:#919191;width:100%;height:100%;border-radius:10px;animation:animation-c7515d 2s ease-in-out .1s infinite}@keyframes animation-c7515d{0%{opacity:1}50%{opacity:.4}to{opacity:1}}\n"] });
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvSekeletonComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'dsv-skeleton', imports: [], template: "<ng-content></ng-content>\n", styles: [":host{display:flex;background-color:#919191;width:100%;height:100%;border-radius:10px;animation:animation-c7515d 2s ease-in-out .1s infinite}@keyframes animation-c7515d{0%{opacity:1}50%{opacity:.4}to{opacity:1}}\n"] }]
|
|
11
11
|
}] });
|
|
@@ -13,10 +13,10 @@ class DsvTabComponent {
|
|
|
13
13
|
this.callback.emit(tab);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: DsvTabComponent, isStandalone: true, selector: "dsv-tab-component", inputs: { tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<button\n [routerLink]=\"tab().url ?? null\"\n [class.selected]=\"isSelected()\"\n (click)=\"doClick($event, tab())\"\n>\n {{ tab().title | translate }}\n</button>\n", styles: [":host button{opacity:.6;align-items:baseline;max-width:max-content!important;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0px;border:0px;margin:0;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.25;letter-spacing:.02857em;text-transform:uppercase;max-width:none;min-width:90px;position:relative;min-height:48px;flex:1 1 0px;padding:12px 16px;overflow:hidden;white-space:normal;text-align:center;flex-direction:column;color:inherit;-webkit-box-flex:1}:host button.selected{opacity:1;border-bottom:2px solid var(--primary)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTabComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'dsv-tab-component', imports: [TranslatePipe, RouterLink], template: "<button\n [routerLink]=\"tab().url ?? null\"\n [class.selected]=\"isSelected()\"\n (click)=\"doClick($event, tab())\"\n>\n {{ tab().title | translate }}\n</button>\n", styles: [":host button{opacity:.6;align-items:baseline;max-width:max-content!important;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0px;border:0px;margin:0;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.25;letter-spacing:.02857em;text-transform:uppercase;max-width:none;min-width:90px;position:relative;min-height:48px;flex:1 1 0px;padding:12px 16px;overflow:hidden;white-space:normal;text-align:center;flex-direction:column;color:inherit;-webkit-box-flex:1}:host button.selected{opacity:1;border-bottom:2px solid var(--primary)}\n"] }]
|
|
22
22
|
}], propDecorators: { tab: [{ type: i0.Input, args: [{ isSignal: true, alias: "tab", required: true }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
@@ -28,10 +28,10 @@ class DsvTabsComponent {
|
|
|
28
28
|
doClick(tab) {
|
|
29
29
|
this.callback.emit(tab);
|
|
30
30
|
}
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DsvTabsComponent, isStandalone: true, selector: "dsv-tabs-component", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<div>\n <div>\n @for (tab of tabs(); track tab.id) {\n <dsv-tab-component\n [tab]=\"tab\"\n [isSelected]=\"active().trim() === tab.id.trim()\"\n (callback)=\"doClick($event)\"\n />\n }\n </div>\n</div>\n", styles: [":host{overflow:hidden;min-height:48px;display:flex;width:100%}:host>div{margin-bottom:0;position:relative;display:inline-block;flex:1 1 auto;overflow:auto;scrollbar-width:thin;overflow-x:hidden;width:100%}:host>div>div{display:flex;overflow:auto;scrollbar-width:thin;margin:0 10px}\n"], dependencies: [{ kind: "component", type: DsvTabComponent, selector: "dsv-tab-component", inputs: ["tab", "isSelected"], outputs: ["callback"] }] });
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTabsComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{ selector: 'dsv-tabs-component', imports: [DsvTabComponent], template: "<div>\n <div>\n @for (tab of tabs(); track tab.id) {\n <dsv-tab-component\n [tab]=\"tab\"\n [isSelected]=\"active().trim() === tab.id.trim()\"\n (callback)=\"doClick($event)\"\n />\n }\n </div>\n</div>\n", styles: [":host{overflow:hidden;min-height:48px;display:flex;width:100%}:host>div{margin-bottom:0;position:relative;display:inline-block;flex:1 1 auto;overflow:auto;scrollbar-width:thin;overflow-x:hidden;width:100%}:host>div>div{display:flex;overflow:auto;scrollbar-width:thin;margin:0 10px}\n"] }]
|
|
37
37
|
}], propDecorators: { tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: true }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: true }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
@@ -27,10 +27,10 @@ class DsvTableComponent {
|
|
|
27
27
|
this.showDatas.set(showDatas);
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DsvTableComponent, isStandalone: true, selector: "dsv-table", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: true, transformFunction: null }, cells: { classPropertyName: "cells", publicName: "cells", isSignal: true, isRequired: true, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (cell of cells(); track cell.name) {\n <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of showDatas(); track $index; let index = $index) {\n <tr>\n @for (cell of cells(); track cell.name; let indexData = $index) {\n <td\n [class.cursor]=\"links()[index]\"\n [routerLink]=\"links()[index]\"\n [style.maxWidth]=\"cell.width\"\n >\n {{ data[indexData + 1] }}\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{overflow:auto;scrollbar-width:thin;width:100%}:host table{table-layout:fixed;min-width:100%;display:table;border-collapse:collapse;border-spacing:0px}:host table thead{display:table-header-group}:host table thead tr{background-color:var(--background-table-tr);color:var(--background-table-tr-text);border:1px solid var(--border);display:table-row;vertical-align:middle;outline:0px;height:32px}:host table thead tr th{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5rem;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid var(--border);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table tbody{display:table-row-group;background-color:var(--background-card)}:host table tbody tr{display:table-row;vertical-align:middle;outline:0px;height:32px}:host table tbody tr td{font-weight:400;font-size:.875rem;line-height:1.43;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid var(--border);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}:host table tbody tr td.cursor{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTableComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: 'dsv-table', imports: [RouterLink, TranslatePipe], template: "<table>\n <thead>\n <tr>\n @for (cell of cells(); track cell.name) {\n <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of showDatas(); track $index; let index = $index) {\n <tr>\n @for (cell of cells(); track cell.name; let indexData = $index) {\n <td\n [class.cursor]=\"links()[index]\"\n [routerLink]=\"links()[index]\"\n [style.maxWidth]=\"cell.width\"\n >\n {{ data[indexData + 1] }}\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: [":host{overflow:auto;scrollbar-width:thin;width:100%}:host table{table-layout:fixed;min-width:100%;display:table;border-collapse:collapse;border-spacing:0px}:host table thead{display:table-header-group}:host table thead tr{background-color:var(--background-table-tr);color:var(--background-table-tr-text);border:1px solid var(--border);display:table-row;vertical-align:middle;outline:0px;height:32px}:host table thead tr th{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5rem;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid var(--border);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table tbody{display:table-row-group;background-color:var(--background-card)}:host table tbody tr{display:table-row;vertical-align:middle;outline:0px;height:32px}:host table tbody tr td{font-weight:400;font-size:.875rem;line-height:1.43;letter-spacing:.01071em;display:table-cell;vertical-align:inherit;border-bottom:1px solid var(--border);text-align:left;padding:6px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}:host table tbody tr td.cursor{cursor:pointer}\n"] }]
|
|
36
36
|
}], ctorParameters: () => [], propDecorators: { url: [{ type: i0.Input, args: [{ isSignal: true, alias: "url", required: true }] }], cells: [{ type: i0.Input, args: [{ isSignal: true, alias: "cells", required: true }] }], datas: [{ type: i0.Input, args: [{ isSignal: true, alias: "datas", required: true }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }] } });
|
|
@@ -13,19 +13,19 @@ class DsvThemeSwitchComponent {
|
|
|
13
13
|
isLightMode() {
|
|
14
14
|
return this.themeService.themeMode() === 'light';
|
|
15
15
|
}
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvThemeSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: DsvThemeSwitchComponent, isStandalone: true, selector: "dsv-theme-switch", ngImport: i0, template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"small\"\n [noHover]=\"true\"\n (callback)=\"switchTheme()\"\n [icon]=\"isLightMode() ? 'ri-contrast-2-line' : 'ri-contrast-2-fill'\"\n>\n</dsv-button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvThemeSwitchComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'dsv-theme-switch', imports: [CommonModule, DsvButtonComponent], template: "<dsv-button\n width=\"large\"\n color=\"inherit\"\n size=\"small\"\n [noHover]=\"true\"\n (callback)=\"switchTheme()\"\n [icon]=\"isLightMode() ? 'ri-contrast-2-line' : 'ri-contrast-2-fill'\"\n>\n</dsv-button>\n" }]
|
|
22
22
|
}] });
|
|
23
23
|
|
|
24
24
|
class DsvThemeComponent {
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvThemeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: DsvThemeComponent, isStandalone: true, selector: "dsv-theme", ngImport: i0, template: "<ng-content></ng-content>\n<div id=\"collapse\"></div>\n", styles: [":host{display:flex;flex:1;flex-direction:column;overflow:hidden;background-color:var(--background);color:var(--text)}:host #collapse{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:#0009}:host #collapse.show{display:inline}:host-context(body.light){--button-text: #ffffff;--background: #dcdcdc;--background-card: #ffffff;--background-header: #dcdcdc;--background-table-tr: #000000;--background-table-tr-text: var(--background-card);--scrollbar: #757575 #f5f5f5;--subtitle: #5a5959;--border: #cbcbcb;--text: #000000;--primary: #007bff;--secondary: #6c757d;--success: #189f37;--info: #1c7fc1;--warning: #a2821f;--error: #ca2535}:host-context(body.dark){--background: #000000;--background-card: #1f1f1f;--background-header: #1f1f1f;--background-table-tr: #DCDCDC;--background-table-tr-text: var(--background-card);--scrollbar: #a9a9a9 #383838;--subtitle: #ffffffb3;--border: #606060;--text: #ffffff;--primary: #007bff;--secondary: #6c757d;--success: #128c2e;--info: #106694;--warning: #ac8a24;--error: #df1126}\n"] });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvThemeComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
30
|
args: [{ selector: 'dsv-theme', template: "<ng-content></ng-content>\n<div id=\"collapse\"></div>\n", styles: [":host{display:flex;flex:1;flex-direction:column;overflow:hidden;background-color:var(--background);color:var(--text)}:host #collapse{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:#0009}:host #collapse.show{display:inline}:host-context(body.light){--button-text: #ffffff;--background: #dcdcdc;--background-card: #ffffff;--background-header: #dcdcdc;--background-table-tr: #000000;--background-table-tr-text: var(--background-card);--scrollbar: #757575 #f5f5f5;--subtitle: #5a5959;--border: #cbcbcb;--text: #000000;--primary: #007bff;--secondary: #6c757d;--success: #189f37;--info: #1c7fc1;--warning: #a2821f;--error: #ca2535}:host-context(body.dark){--background: #000000;--background-card: #1f1f1f;--background-header: #1f1f1f;--background-table-tr: #DCDCDC;--background-table-tr-text: var(--background-card);--scrollbar: #a9a9a9 #383838;--subtitle: #ffffffb3;--border: #606060;--text: #ffffff;--primary: #007bff;--secondary: #6c757d;--success: #128c2e;--info: #106694;--warning: #ac8a24;--error: #df1126}\n"] }]
|
|
31
31
|
}] });
|
|
@@ -50,10 +50,10 @@ class ThemeService {
|
|
|
50
50
|
html.classList.add(newMode);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
54
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
53
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
55
55
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, decorators: [{
|
|
57
57
|
type: Injectable,
|
|
58
58
|
args: [{
|
|
59
59
|
providedIn: 'root',
|
|
@@ -60,10 +60,10 @@ class ToastService {
|
|
|
60
60
|
removeToastFromQueue(uuid) {
|
|
61
61
|
this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));
|
|
62
62
|
}
|
|
63
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
64
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ToastService, providedIn: 'root' });
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ToastService, decorators: [{
|
|
67
67
|
type: Injectable,
|
|
68
68
|
args: [{
|
|
69
69
|
providedIn: 'root',
|
|
@@ -83,10 +83,10 @@ class DsvToastComponent {
|
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
87
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
86
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DsvToastComponent, isStandalone: true, selector: "dsv-toast", inputs: { duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dsv-toast-container\">\n @for (toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [class.open]=\"toast.open\"\n [class.close]=\"!toast.open\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button class=\"close-button\" type=\"button\" (click)=\"toastService.closeToast(toast)\">X</button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.remainingDuration! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n", styles: [".dsv-toast-container{position:fixed;z-index:200;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:200px;max-width:200px;padding:10px 32px 10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;background-color:var(--background-card);color:var(--text);opacity:0;transform:translate(100%);transition:transform .5s ease-out,opacity .5s ease-out}.dsv-toast-container .dsv-toast.open{animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.close{animation:slideOutRight .5s ease-out forwards}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:13px;right:10px;font-size:.75rem;border:0;background:inherit;color:var(--text);cursor:pointer}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid var(--border)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvToastComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'dsv-toast', imports: [CommonModule], template: "<div class=\"dsv-toast-container\">\n @for (toast of toastService.toastShows(); track toast.uuid) {\n <div\n class=\"dsv-toast\"\n [class.open]=\"toast.open\"\n [class.close]=\"!toast.open\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\"\n >\n <button class=\"close-button\" type=\"button\" (click)=\"toastService.closeToast(toast)\">X</button>\n @if (toast.type === 'success') {\n <i class=\"ri-check-fill\"></i>\n } @else if (toast.type === 'info') {\n <i class=\"ri-information-2-line\"></i>\n } @else if (toast.type === 'warning') {\n <i class=\"ri-alert-line\"></i>\n } @else if (toast.type === 'error') {\n <i class=\"ri-close-line\"></i>\n }\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div\n class=\"loader\"\n [style.width]=\"(toast.remainingDuration! / toast.duration!) * 100 + '%'\"\n ></div>\n </div>\n </div>\n }\n</div>\n", styles: [".dsv-toast-container{position:fixed;z-index:200;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:200px;max-width:200px;padding:10px 32px 10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;background-color:var(--background-card);color:var(--text);opacity:0;transform:translate(100%);transition:transform .5s ease-out,opacity .5s ease-out}.dsv-toast-container .dsv-toast.open{animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.close{animation:slideOutRight .5s ease-out forwards}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:13px;right:10px;font-size:.75rem;border:0;background:inherit;color:var(--text);cursor:pointer}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid var(--border)}\n"] }]
|
|
92
92
|
}], ctorParameters: () => [], propDecorators: { duration: [{ type: i0.Input, args: [{ isSignal: true, alias: "duration", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }] } });
|
|
@@ -59,10 +59,10 @@ class DsvTooltipComponent {
|
|
|
59
59
|
this.opacity.set(0.9);
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DsvTooltipComponent, isStandalone: true, selector: "dsv-tooltip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "tooltipBox", first: true, predicate: ["tooltipBox"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n@if (visible()) {\n <div #tooltipBox [class]=\"'dsv-tooltip ' + positionClass()\" [style.opacity]=\"opacity()\">\n {{ text() }}\n </div>\n}\n", styles: [":host{position:relative;display:flex;flex-direction:column}.dsv-tooltip{position:absolute;background-color:#333;color:#fff;padding:6px 10px;border-radius:4px;font-size:.85rem;z-index:10;opacity:.9;min-width:150px;width:100%;max-width:200px;white-space:normal;text-align:center;word-wrap:break-word}.dsv-tooltip.top{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px}.dsv-tooltip.top:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}.dsv-tooltip.bottom{top:100%;left:50%;transform:translate(-50%);margin-top:5px}.dsv-tooltip.bottom:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent black transparent}.dsv-tooltip.left{right:100%;top:50%;transform:translateY(-50%);margin-right:5px}.dsv-tooltip.left:after{content:\" \";position:absolute;top:50%;left:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent transparent transparent black}.dsv-tooltip.right{left:100%;top:50%;transform:translateY(-50%);margin-left:5px}.dsv-tooltip.right:after{content:\" \";position:absolute;top:50%;right:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent black transparent transparent}\n"] });
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DsvTooltipComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
67
|
args: [{ selector: 'dsv-tooltip', imports: [], host: {
|
|
68
68
|
'(window:resize)': 'onResize()',
|
|
@@ -10,10 +10,10 @@ class EnvironmentService {
|
|
|
10
10
|
loadEnv() {
|
|
11
11
|
return lastValueFrom(this.httpClient.get('./env.json').pipe(tap((res) => this.env.set(res))));
|
|
12
12
|
}
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
14
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{ providedIn: 'root' }]
|
|
19
19
|
}] });
|
|
@@ -58,10 +58,10 @@ class AdminService {
|
|
|
58
58
|
this.data.set(data);
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
62
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminService, providedIn: 'root' });
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminService, decorators: [{
|
|
65
65
|
type: Injectable,
|
|
66
66
|
args: [{
|
|
67
67
|
providedIn: 'root',
|
|
@@ -96,10 +96,10 @@ class AdminSearchModalContainer extends BaseContainer {
|
|
|
96
96
|
this.callback.emit(data);
|
|
97
97
|
this.modalService.close('m2m');
|
|
98
98
|
};
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
100
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminSearchModalContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: AdminSearchModalContainer, isStandalone: true, selector: "dsv-admin-search-modal", inputs: { m2em: { classPropertyName: "m2em", publicName: "m2em", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, usesInheritance: true, ngImport: i0, template: "<dsv-modal-button modalName=\"m2m\" icon=\"ri-add-line\" />\n<dsv-modal id=\"m2m\" titleText=\"Ajouter un e\u0301le\u0301ment\">\n <dsv-form-reactive-searchbar [search]=\"search()\" (callbackSearch)=\"doSearch($event)\" />\n <div>\n @for (data of datas(); track data.id) {\n <dsv-item [text]=\"getValue(data, m2em().name)\" (callback)=\"clickItem(data)\" />\n }\n </div>\n</dsv-modal>\n", styles: [":host dsv-modal{--modal-width: 70% !important;--modal-left: 15% !important;--modal-height: 65% !important;--modal-top: 20% !important}\n"], dependencies: [{ kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "nb", "url", "small"], outputs: ["callback"] }, { kind: "component", type: DsvModalButtonComponent, selector: "dsv-modal-button", inputs: ["modalName", "icon", "variant", "text", "color"], outputs: ["callback"] }, { kind: "component", type: DsvModalComponent, selector: "dsv-modal", inputs: ["id", "class", "titleText", "canEchap"] }, { kind: "component", type: DsvFormReactiveSearchbarComponent, selector: "dsv-form-reactive-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }] });
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminSearchModalContainer, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{ selector: 'dsv-admin-search-modal', imports: [
|
|
105
105
|
DsvItemComponent,
|
|
@@ -149,10 +149,10 @@ class AdminFormComponent extends DsvBaseFormReactiveComponent {
|
|
|
149
149
|
this.form.value[name].push(data);
|
|
150
150
|
}
|
|
151
151
|
};
|
|
152
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
153
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: AdminFormComponent, isStandalone: true, selector: "dsv-admin-form", inputs: { urlBack: { classPropertyName: "urlBack", publicName: "urlBack", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, formConf: { classPropertyName: "formConf", publicName: "formConf", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, usesInheritance: true, ngImport: i0, template: "<dsv-form-reactive\n [form]=\"form\"\n [urlBack]=\"urlBack()!\"\n (callback)=\"sendForm($event)\"\n>\n @for (field of formConf(); track field.name) {\n <div [class]=\"'item ' + (field.className ?? '')\">\n @if (\n field.type === 'text' ||\n field.type === 'number' ||\n field.type === 'textarea' ||\n field.type === 'datetime-local'\n ) {\n <dsv-form-reactive-input\n [form]=\"form\"\n [field]=\"field.name\"\n [type]=\"field.type\"\n [required]=\"field.required ?? false\"\n />\n }\n @if (field.type === 'switch') {\n <dsv-form-reactive-checkbox\n [form]=\"form\"\n [field]=\"field.name\"\n />\n }\n @if (field.type === 'm2m') {\n <div class=\"m2m\">\n <div class=\"m2m-content\">\n @for (value of form.value[field.name]; track value.id) {\n <dsv-chip\n color=\"default\"\n [text]=\"value.name\"\n (delete)=\"removeValue(field.name, value.id)()\"\n />\n }\n <dsv-admin-search-modal\n [m2em]=\"field.m2m!\"\n (callback)=\"addValue(field.name)($event)\"\n />\n </div>\n </div>\n }\n </div>\n }\n</dsv-form-reactive>\n", styles: [":host{display:flex;overflow:hidden}:host dsv-form-reactive{--form-flex-direction: row;--form-flex-wrap: wrap;--form-flex-padding: 0 0 0 5px}:host dsv-form-reactive .item{display:flex;width:100%;align-items:end}:host dsv-form-reactive .width50{width:49%}:host dsv-form-reactive .m2m{display:flex;flex:1;overflow:auto;scrollbar-width:thin;padding:10px 0}:host dsv-form-reactive .m2m .m2m-content{align-items:center;gap:10px;flex-wrap:nowrap;display:flex;flex-direction:row;justify-content:end;flex:1}@media(max-width:800px){:host dsv-form-reactive .width50{width:100%!important}:host dsv-form-reactive .m2m{justify-content:baseline!important}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: DsvChipComponent, selector: "dsv-chip", inputs: ["text"], outputs: ["delete"] }, { kind: "component", type: DsvFormReactiveComponent, selector: "dsv-form-reactive", inputs: ["form", "urlBack", "textValid", "formValid"], outputs: ["callback"] }, { kind: "component", type: DsvFormReactiveInputComponent, selector: "dsv-form-reactive-input", inputs: ["form", "field", "type", "withLabel", "required", "icon"], outputs: ["callbackSend"] }, { kind: "component", type: DsvFormReactiveCheckboxComponent, selector: "dsv-form-reactive-checkbox", inputs: ["form", "field", "withLabel"], outputs: ["callbackChange"] }, { kind: "component", type: AdminSearchModalContainer, selector: "dsv-admin-search-modal", inputs: ["m2em"], outputs: ["callback"] }] });
|
|
154
154
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminFormComponent, decorators: [{
|
|
156
156
|
type: Component,
|
|
157
157
|
args: [{ selector: 'dsv-admin-form', imports: [
|
|
158
158
|
ReactiveFormsModule,
|
|
@@ -202,10 +202,10 @@ class AdminFormContainer extends BaseRouteContainer {
|
|
|
202
202
|
this.adminService.post(this.tabConfig()?.name, dataFusion);
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
206
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
205
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminFormContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: AdminFormContainer, isStandalone: true, selector: "dsv-admin-form-container", usesInheritance: true, ngImport: i0, template: "<dsv-card>\n <dsv-card-header>\n <h2>\n {{ adminService.data().id ? 'Modification' : 'Ajout' }}\n </h2>\n </dsv-card-header>\n <dsv-admin-form\n [data]=\"adminService.data()\"\n [formConf]=\"tabConfig()?.form!\"\n [urlBack]=\"'/admin/' + tab()\"\n (callback)=\"sendForm($event)\"\n />\n</dsv-card>\n", styles: [":host{display:flex;width:100%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card" }, { kind: "component", type: DsvCardHeaderComponent, selector: "dsv-card-header" }, { kind: "component", type: AdminFormComponent, selector: "dsv-admin-form", inputs: ["urlBack", "data", "formConf"], outputs: ["callback"] }] });
|
|
207
207
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminFormContainer, decorators: [{
|
|
209
209
|
type: Component,
|
|
210
210
|
args: [{ selector: 'dsv-admin-form-container', imports: [DsvCardComponent, DsvCardHeaderComponent, AdminFormComponent, DsvCardHeaderComponent], template: "<dsv-card>\n <dsv-card-header>\n <h2>\n {{ adminService.data().id ? 'Modification' : 'Ajout' }}\n </h2>\n </dsv-card-header>\n <dsv-admin-form\n [data]=\"adminService.data()\"\n [formConf]=\"tabConfig()?.form!\"\n [urlBack]=\"'/admin/' + tab()\"\n (callback)=\"sendForm($event)\"\n />\n</dsv-card>\n", styles: [":host{display:flex;width:100%;overflow:hidden}\n"] }]
|
|
211
211
|
}], ctorParameters: () => [] });
|
|
@@ -252,10 +252,10 @@ class AdminSearchContainer extends BaseRouteContainer {
|
|
|
252
252
|
this.adminService.search.update((s) => ({ ...s, [this.tabConfig()?.name]: search }));
|
|
253
253
|
this.adminService.get(this.tabConfig()?.name, this.tabConfig()?.findByChamps + '>>' + this.tabConfig()?.sortBy, search, page, this.adminService.tabs()?.max);
|
|
254
254
|
}
|
|
255
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
255
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminSearchContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: AdminSearchContainer, isStandalone: true, selector: "dsv-admin-search", usesInheritance: true, ngImport: i0, template: "<dsv-tabs-component\n [tabs]=\"tabs()\"\n [active]=\"tab()\"\n/>\n<dsv-card>\n <div class=\"admin-header\">\n <span>R\u00E9sulat : {{ adminService.datas()[tab()]?.totalElements }}</span>\n <dsv-button\n variant=\"contained\"\n color=\"primary\"\n icon=\"ri-add-line\"\n [routerLink]=\"'/admin/' + tab() + '/add'\"\n [prevent]=\"false\"\n ></dsv-button>\n </div>\n <dsv-form-signal-searchbar\n [search]=\"adminService.search()[tab()]\"\n (callbackSearch)=\"gotoPage(0, $event)\"\n />\n <dsv-table\n [cells]=\"tabConfig()?.cells!\"\n [datas]=\"adminService.datas()[tab()]?.content!\"\n [max]=\"adminService.tabs().max!\"\n [url]=\"'/admin/' + tab()\"\n ></dsv-table>\n <dsv-paginate\n [page]=\"adminService.page()[this.tabConfig()?.name!]\"\n [max]=\"adminService.datas()[tab()]?.totalPages!\"\n (callback)=\"gotoPage($event)\"\n />\n</dsv-card>\n", styles: [":host{display:flex;flex-direction:column;align-items:center;width:100%}:host .admin-header{padding:10px 0;display:flex;align-items:center;justify-content:space-between}:host dsv-form-reactive-searchbar{margin:0 0 10px}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card" }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "component", type: DsvTabsComponent, selector: "dsv-tabs-component", inputs: ["tabs", "active"], outputs: ["callback"] }, { kind: "component", type: DsvTableComponent, selector: "dsv-table", inputs: ["url", "cells", "datas", "max"] }, { kind: "component", type: DsvPaginateComponent, selector: "dsv-paginate", inputs: ["page", "max"], outputs: ["callback"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: DsvFormSignalSearchbarComponent, selector: "dsv-form-signal-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }] });
|
|
257
257
|
}
|
|
258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AdminSearchContainer, decorators: [{
|
|
259
259
|
type: Component,
|
|
260
260
|
args: [{ selector: 'dsv-admin-search', imports: [
|
|
261
261
|
DsvCardComponent,
|
|
@@ -34,10 +34,10 @@ class AuthComponent {
|
|
|
34
34
|
this.authService.logout();
|
|
35
35
|
this.callbackLogout.emit();
|
|
36
36
|
}
|
|
37
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
38
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: AuthComponent, isStandalone: true, selector: "dsv-auth", outputs: { callbackInitMember: "callbackInitMember", callbackLogout: "callbackLogout" }, ngImport: i0, template: "<button\n id=\"google-signin-button\"\n [class.hidden]=\"!authService.isRefreshTokenLoaded() || authService.userConnected() !== null\"\n></button>\n\n@if (authService.userConnected()) {\n <ng-content />\n <a href=\"/profil\" dsvLink>\n <img [src]=\"authService.userConnected()?.avatar\" alt=\"Profile\" referrerpolicy=\"no-referrer\" />\n </a>\n <dsv-modal-button modalName=\"logout\" icon=\"ri-logout-box-line\" />\n <dsv-modal-alert\n id=\"logout\"\n titleText=\"De\u0301connexion\"\n text=\"Voulez-vous vraiment vous de\u0301connecter ?\"\n button=\"Oui\"\n buttonClose=\"Non\"\n (callback)=\"logout()\"\n ></dsv-modal-alert>\n}\n", styles: [":host{display:flex;gap:10px;flex-flow:nowrap;align-items:center}:host button{margin:0;padding:0;background:transparent;border:0px}:host img{width:30px;height:30px;border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvModalButtonComponent, selector: "dsv-modal-button", inputs: ["modalName", "icon", "variant", "text", "color"], outputs: ["callback"] }, { kind: "component", type: DsvModalAlertComponent, selector: "dsv-modal-alert", inputs: ["id", "titleText", "text", "button", "buttonClose"], outputs: ["callback"] }, { kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }] });
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'dsv-auth', imports: [CommonModule, DsvModalButtonComponent, DsvModalAlertComponent, RouterInternalPipe], template: "<button\n id=\"google-signin-button\"\n [class.hidden]=\"!authService.isRefreshTokenLoaded() || authService.userConnected() !== null\"\n></button>\n\n@if (authService.userConnected()) {\n <ng-content />\n <a href=\"/profil\" dsvLink>\n <img [src]=\"authService.userConnected()?.avatar\" alt=\"Profile\" referrerpolicy=\"no-referrer\" />\n </a>\n <dsv-modal-button modalName=\"logout\" icon=\"ri-logout-box-line\" />\n <dsv-modal-alert\n id=\"logout\"\n titleText=\"De\u0301connexion\"\n text=\"Voulez-vous vraiment vous de\u0301connecter ?\"\n button=\"Oui\"\n buttonClose=\"Non\"\n (callback)=\"logout()\"\n ></dsv-modal-alert>\n}\n", styles: [":host{display:flex;gap:10px;flex-flow:nowrap;align-items:center}:host button{margin:0;padding:0;background:transparent;border:0px}:host img{width:30px;height:30px;border-radius:50%}\n"] }]
|
|
43
43
|
}], ctorParameters: () => [], propDecorators: { callbackInitMember: [{ type: i0.Output, args: ["callbackInitMember"] }], callbackLogout: [{ type: i0.Output, args: ["callbackLogout"] }] } });
|
|
@@ -157,10 +157,10 @@ class AuthService extends BaseApiService {
|
|
|
157
157
|
canFetch(ssr = true) {
|
|
158
158
|
return ((ssr && !this.isPlatformBrowser()) || (this.isPlatformBrowser() && this.isRefreshTokenLoaded()));
|
|
159
159
|
}
|
|
160
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
161
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
161
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthService, decorators: [{
|
|
164
164
|
type: Injectable,
|
|
165
165
|
args: [{
|
|
166
166
|
providedIn: 'root',
|
|
@@ -210,10 +210,10 @@ class AuthGoogleService {
|
|
|
210
210
|
google.accounts.id.prompt();
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
214
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
213
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthGoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
214
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthGoogleService, providedIn: 'root' });
|
|
215
215
|
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthGoogleService, decorators: [{
|
|
217
217
|
type: Injectable,
|
|
218
218
|
args: [{
|
|
219
219
|
providedIn: 'root',
|