@ng-vagabond-lab/ng-dsv 0.2.2 → 0.2.3
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 +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 +9 -9
- 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 +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-pipe.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +9 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +22 -13
- 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-template.d.ts +6 -1
|
@@ -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',
|
|
@@ -6,10 +6,10 @@ import { RouterExternalPipe } from '@ng-vagabond-lab/ng-dsv/router';
|
|
|
6
6
|
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
7
7
|
|
|
8
8
|
class ContactComponent {
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: ContactComponent, isStandalone: true, selector: "dsv-auth", ngImport: i0, template: "<section class=\"contact-page\">\n <dsv-card>\n <div class=\"content\">\n <div class=\"left-side\">\n <img title=\"vagabond\" alt=\"vagabond\" src=\"/images/vagabond.png\" />\n <h2>vagabond</h2>\n <p>passionn\u00E9 par les technologies du Web<br />20 ans d'exp\u00E9rience</p>\n <div class=\"chips\">\n <dsv-chip text=\"ANGULAR\" color=\"default\" />\n <dsv-chip text=\"QUARKUS\" color=\"default\" />\n <dsv-chip text=\"DOCKER\" color=\"default\" />\n <dsv-chip text=\"GIT\" color=\"default\" />\n </div>\n </div>\n <div class=\"right-side\">\n <div>\n <h2>Me contacter</h2>\n <p>\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </p>\n </div>\n <div>\n <h2>Me suivre</h2>\n <div class=\"follow-buttons\">\n <dsv-button variant=\"outlined\" color=\"default\">\n <a href=\"https://discord.com/invite/TUy5MtVRt7\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/discord.png\"\n />\n Rejoindre mon serveur Discord\n </a>\n </dsv-button>\n <dsv-button variant=\"outlined\" color=\"default\">\n <a href=\"https://github.com/vagabon\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/github.png\"\n />\n Me suivre sur GitHub\n </a>\n </dsv-button>\n <dsv-button>\n <a href=\"https://blog.vagabond.synology.me/\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/blog.png\"\n />\n Suivre mon blog\n </a>\n </dsv-button>\n </div>\n </div>\n </div>\n </div>\n </dsv-card>\n</section>\n\n<section class=\"contact-projects\">\n <dsv-card>\n <h2>\n <i class=\"ri-file-video-line\"></i>\n Movie Keeper\n </h2>\n <div class=\"project-content\">\n <img title=\"logo Movie Keeper\" alt=\"logo Movie Keeper\" width=\"40px\" src=\"/images/icons/mk.png\" />\n <p>\n Movie Keeper est votre espace personnel pour organiser ce que vous regardez. Cr\u00E9ez des listes\n personnalis\u00E9es - films \u00E0 voir, coups de c\u0153ur, top 10, favoris.\n </p>\n </div>\n <a href=\"https://movie-keeper.fr\" title=\"https://movie-keeper.fr\" dsvLinkExternal>\n https://movie-keeper.fr\n </a>\n </dsv-card>\n <dsv-card>\n <h2>\n <i class=\"ri-news-line\"></i>\n Blog & Tools\n </h2>\n <div class=\"project-content\">\n <img\n title=\"logo blog vagabond\"\n alt=\"logo blog vagabond\"\n width=\"40px\"\n src=\"/images/icons/blog.png\"\n />\n <p>\n Mon blog avec la liste des outils que j'utilise pour cr\u00E9\u00E9 mes SaaS.<br />\n Contient \u00E9galement une gestion des todo list \u00E0 partager avec d'autre membre.\n </p>\n </div>\n <a href=\"https://blog.vagabond.synology.me\" title=\"//blog.vagabond.synology.me\" dsvLinkExternal>\n https://blog.vagabond.synology.me\n </a>\n </dsv-card>\n <dsv-card>\n <h2>\n <i class=\"ri-chat-1-line\"></i>\n OwnYourChatbots\n </h2>\n <div class=\"project-content\">\n <img\n title=\"logo blog vagabond\"\n alt=\"logo blog vagabond\"\n width=\"40px\"\n src=\"/images/icons/oyc.png\"\n />\n <p>\n Cr\u00E9ation et entrainement de Chatbot avec une int\u00E9gration par iFrame ou bot Discord.<br />\n Plusieurs mod\u00E8les disponibles: ChatGpt, Mistral et Llama.\n </p>\n </div>\n <a href=\"https://www.ownyourchatbots.com\" title=\"OwnYourChatbots\" dsvLinkExternal>\n https://www.ownyourchatbots.com\n </a>\n </dsv-card>\n</section>\n", styles: [":host p{text-align:justify}:host .content{display:flex}:host .content h2{font-size:1.5rem;font-weight:700!important;margin:10px 0!important}:host .content p{font-size:1.1rem}:host .content .left-side{width:50%;display:flex;flex-direction:column;align-items:center}:host .content .left-side img{width:200px;border-radius:50%;border:3px solid var(--primary);padding:5px}:host .content .left-side p{text-align:center}:host .content .left-side .chips{margin:15px 0;display:flex;flex-wrap:wrap;gap:10px}:host .content .left-side .chips dsv-chip{--chip-padding: 10px;--chip-font-size: .9rem;--chip-font-weight: 550}:host .content .right-side{width:50%;display:flex;flex-direction:column;gap:20px}:host .content .right-side h2{margin-bottom:20px!important}:host .content .right-side .follow-buttons{display:flex;flex-direction:column;gap:10px;margin-top:30px}:host .content .right-side .follow-buttons dsv-button{--button-width: 100%;--button-font-size: .8rem;--button-font-weight: 400;--button-padding: 4px}:host .content .right-side .follow-buttons dsv-button a{display:flex;gap:5px;width:100%!important;color:var(--text)!important;border:0px!important;align-items:center;justify-content:center}@media screen and (max-width:800px){:host .content{flex-direction:column}:host .content .left-side{width:100%!important}:host .content .right-side{text-align:center;align-items:center;width:100%!important}:host .content .right-side>div{width:100%!important}:host .content .right-side p{text-align:center}:host .content .follow-buttons{width:100%}}:host .contact-projects{display:flex;flex-direction:row}:host .contact-projects dsv-card{width:33%}:host .contact-projects h2{display:flex;gap:10px}:host .contact-projects .project-content{display:flex;gap:20px;align-items:center;margin-bottom:10px}@media screen and (max-width:800px){:host .contact-projects{flex-direction:column}:host .contact-projects dsv-card{width:calc(100% - 10px)!important}}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card" }, { kind: "component", type: DsvChipComponent, selector: "dsv-chip", inputs: ["text"], outputs: ["delete"] }, { kind: "directive", type: RouterExternalPipe, selector: "a[dsvLinkExternal]", outputs: ["dsvLinkExternal"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ContactComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'dsv-auth', imports: [DsvCardComponent, DsvChipComponent, RouterExternalPipe, DsvButtonComponent], template: "<section class=\"contact-page\">\n <dsv-card>\n <div class=\"content\">\n <div class=\"left-side\">\n <img title=\"vagabond\" alt=\"vagabond\" src=\"/images/vagabond.png\" />\n <h2>vagabond</h2>\n <p>passionn\u00E9 par les technologies du Web<br />20 ans d'exp\u00E9rience</p>\n <div class=\"chips\">\n <dsv-chip text=\"ANGULAR\" color=\"default\" />\n <dsv-chip text=\"QUARKUS\" color=\"default\" />\n <dsv-chip text=\"DOCKER\" color=\"default\" />\n <dsv-chip text=\"GIT\" color=\"default\" />\n </div>\n </div>\n <div class=\"right-side\">\n <div>\n <h2>Me contacter</h2>\n <p>\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </p>\n </div>\n <div>\n <h2>Me suivre</h2>\n <div class=\"follow-buttons\">\n <dsv-button variant=\"outlined\" color=\"default\">\n <a href=\"https://discord.com/invite/TUy5MtVRt7\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/discord.png\"\n />\n Rejoindre mon serveur Discord\n </a>\n </dsv-button>\n <dsv-button variant=\"outlined\" color=\"default\">\n <a href=\"https://github.com/vagabon\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/github.png\"\n />\n Me suivre sur GitHub\n </a>\n </dsv-button>\n <dsv-button>\n <a href=\"https://blog.vagabond.synology.me/\" dsvLinkExternal>\n <img\n class=\"button-contact\"\n title=\"logo discord\"\n alt=\"logo discord\"\n width=\"20px\"\n src=\"/images/icons/blog.png\"\n />\n Suivre mon blog\n </a>\n </dsv-button>\n </div>\n </div>\n </div>\n </div>\n </dsv-card>\n</section>\n\n<section class=\"contact-projects\">\n <dsv-card>\n <h2>\n <i class=\"ri-file-video-line\"></i>\n Movie Keeper\n </h2>\n <div class=\"project-content\">\n <img title=\"logo Movie Keeper\" alt=\"logo Movie Keeper\" width=\"40px\" src=\"/images/icons/mk.png\" />\n <p>\n Movie Keeper est votre espace personnel pour organiser ce que vous regardez. Cr\u00E9ez des listes\n personnalis\u00E9es - films \u00E0 voir, coups de c\u0153ur, top 10, favoris.\n </p>\n </div>\n <a href=\"https://movie-keeper.fr\" title=\"https://movie-keeper.fr\" dsvLinkExternal>\n https://movie-keeper.fr\n </a>\n </dsv-card>\n <dsv-card>\n <h2>\n <i class=\"ri-news-line\"></i>\n Blog & Tools\n </h2>\n <div class=\"project-content\">\n <img\n title=\"logo blog vagabond\"\n alt=\"logo blog vagabond\"\n width=\"40px\"\n src=\"/images/icons/blog.png\"\n />\n <p>\n Mon blog avec la liste des outils que j'utilise pour cr\u00E9\u00E9 mes SaaS.<br />\n Contient \u00E9galement une gestion des todo list \u00E0 partager avec d'autre membre.\n </p>\n </div>\n <a href=\"https://blog.vagabond.synology.me\" title=\"//blog.vagabond.synology.me\" dsvLinkExternal>\n https://blog.vagabond.synology.me\n </a>\n </dsv-card>\n <dsv-card>\n <h2>\n <i class=\"ri-chat-1-line\"></i>\n OwnYourChatbots\n </h2>\n <div class=\"project-content\">\n <img\n title=\"logo blog vagabond\"\n alt=\"logo blog vagabond\"\n width=\"40px\"\n src=\"/images/icons/oyc.png\"\n />\n <p>\n Cr\u00E9ation et entrainement de Chatbot avec une int\u00E9gration par iFrame ou bot Discord.<br />\n Plusieurs mod\u00E8les disponibles: ChatGpt, Mistral et Llama.\n </p>\n </div>\n <a href=\"https://www.ownyourchatbots.com\" title=\"OwnYourChatbots\" dsvLinkExternal>\n https://www.ownyourchatbots.com\n </a>\n </dsv-card>\n</section>\n", styles: [":host p{text-align:justify}:host .content{display:flex}:host .content h2{font-size:1.5rem;font-weight:700!important;margin:10px 0!important}:host .content p{font-size:1.1rem}:host .content .left-side{width:50%;display:flex;flex-direction:column;align-items:center}:host .content .left-side img{width:200px;border-radius:50%;border:3px solid var(--primary);padding:5px}:host .content .left-side p{text-align:center}:host .content .left-side .chips{margin:15px 0;display:flex;flex-wrap:wrap;gap:10px}:host .content .left-side .chips dsv-chip{--chip-padding: 10px;--chip-font-size: .9rem;--chip-font-weight: 550}:host .content .right-side{width:50%;display:flex;flex-direction:column;gap:20px}:host .content .right-side h2{margin-bottom:20px!important}:host .content .right-side .follow-buttons{display:flex;flex-direction:column;gap:10px;margin-top:30px}:host .content .right-side .follow-buttons dsv-button{--button-width: 100%;--button-font-size: .8rem;--button-font-weight: 400;--button-padding: 4px}:host .content .right-side .follow-buttons dsv-button a{display:flex;gap:5px;width:100%!important;color:var(--text)!important;border:0px!important;align-items:center;justify-content:center}@media screen and (max-width:800px){:host .content{flex-direction:column}:host .content .left-side{width:100%!important}:host .content .right-side{text-align:center;align-items:center;width:100%!important}:host .content .right-side>div{width:100%!important}:host .content .right-side p{text-align:center}:host .content .follow-buttons{width:100%}}:host .contact-projects{display:flex;flex-direction:row}:host .contact-projects dsv-card{width:33%}:host .contact-projects h2{display:flex;gap:10px}:host .contact-projects .project-content{display:flex;gap:20px;align-items:center;margin-bottom:10px}@media screen and (max-width:800px){:host .contact-projects{flex-direction:column}:host .contact-projects dsv-card{width:calc(100% - 10px)!important}}\n"] }]
|
|
15
15
|
}] });
|
|
@@ -12,10 +12,10 @@ class ClickableUrlPipe {
|
|
|
12
12
|
const html = value.replaceAll(URL_PATTERN, (url) => `<a class="text warning" href="${url}" target="_blank" rel="noopener noreferrer">${url}</a>`);
|
|
13
13
|
return this.sanitizer.bypassSecurityTrustHtml(html); // NOSONAR: URLs extracted by URL_PATTERN
|
|
14
14
|
}
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ClickableUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
16
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: ClickableUrlPipe, isStandalone: true, name: "clickableUrl" });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ClickableUrlPipe, decorators: [{
|
|
19
19
|
type: Pipe,
|
|
20
20
|
args: [{
|
|
21
21
|
name: 'clickableUrl',
|
|
@@ -34,10 +34,10 @@ class YoutubeUrlPipe {
|
|
|
34
34
|
const url = `${YOUTUBE_EMBED_BASE}${key}`;
|
|
35
35
|
return this.sanitizer.bypassSecurityTrustResourceUrl(url); // NOSONAR: URL validated by YOUTUBE_KEY_PATTERN
|
|
36
36
|
}
|
|
37
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
38
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: YoutubeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
38
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: YoutubeUrlPipe, isStandalone: true, name: "youtubeUrl" });
|
|
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: YoutubeUrlPipe, decorators: [{
|
|
41
41
|
type: Pipe,
|
|
42
42
|
args: [{
|
|
43
43
|
name: 'youtubeUrl',
|
|
@@ -15,10 +15,10 @@ class PlatformService {
|
|
|
15
15
|
isPlatformBrowser() {
|
|
16
16
|
return isPlatformBrowser(this.platformId);
|
|
17
17
|
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PlatformService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PlatformService, providedIn: 'root' });
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PlatformService, decorators: [{
|
|
22
22
|
type: Injectable,
|
|
23
23
|
args: [{
|
|
24
24
|
providedIn: 'root',
|
|
@@ -12,10 +12,10 @@ class RouterExternalPipe {
|
|
|
12
12
|
event.stopPropagation();
|
|
13
13
|
this.dsvLinkExternal.emit();
|
|
14
14
|
}
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterExternalPipe, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RouterExternalPipe, isStandalone: true, selector: "a[dsvLinkExternal]", outputs: { dsvLinkExternal: "dsvLinkExternal" }, host: { attributes: { "target": "_blank", "rel": "noopener noreferrer" }, listeners: { "click": "onClick($event)" }, classAttribute: "primary text bold" }, ngImport: i0 });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterExternalPipe, decorators: [{
|
|
19
19
|
type: Directive,
|
|
20
20
|
args: [{
|
|
21
21
|
selector: 'a[dsvLinkExternal]',
|
|
@@ -44,10 +44,10 @@ class RouterInternalPipe {
|
|
|
44
44
|
this.dsvLink.emit();
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
48
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterInternalPipe, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RouterInternalPipe, isStandalone: true, selector: "a[dsvLink]", outputs: { dsvLink: "dsvLink" }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "text" }, ngImport: i0 });
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterInternalPipe, decorators: [{
|
|
51
51
|
type: Directive,
|
|
52
52
|
args: [{
|
|
53
53
|
selector: 'a[dsvLink]',
|
|
@@ -95,10 +95,10 @@ class RouterService {
|
|
|
95
95
|
goBack() {
|
|
96
96
|
this.location.back();
|
|
97
97
|
}
|
|
98
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
99
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
98
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
99
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterService, providedIn: 'root' });
|
|
100
100
|
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RouterService, decorators: [{
|
|
102
102
|
type: Injectable,
|
|
103
103
|
args: [{
|
|
104
104
|
providedIn: 'root',
|
|
@@ -36,10 +36,10 @@ class StorageService {
|
|
|
36
36
|
localStorage.clear();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
40
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: StorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: StorageService, providedIn: 'root' });
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: StorageService, decorators: [{
|
|
43
43
|
type: Injectable,
|
|
44
44
|
args: [{
|
|
45
45
|
providedIn: 'root',
|
|
@@ -12,10 +12,10 @@ import { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';
|
|
|
12
12
|
class MenuSlotDirective {
|
|
13
13
|
template = inject(TemplateRef);
|
|
14
14
|
menuSlot = input.required(...(ngDevMode ? [{ debugName: "menuSlot" }] : /* istanbul ignore next */ []));
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
16
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MenuSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.13", type: MenuSlotDirective, isStandalone: true, selector: "[menuSlot]", inputs: { menuSlot: { classPropertyName: "menuSlot", publicName: "menuSlot", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MenuSlotDirective, decorators: [{
|
|
19
19
|
type: Directive,
|
|
20
20
|
args: [{ selector: '[menuSlot]', standalone: true }]
|
|
21
21
|
}], propDecorators: { menuSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuSlot", required: true }] }] } });
|
|
@@ -32,31 +32,40 @@ class MenuContainer {
|
|
|
32
32
|
isActive(url) {
|
|
33
33
|
return this.routerService.currentUrl().includes(url);
|
|
34
34
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MenuContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: MenuContainer, isStandalone: true, selector: "app-menu-container", inputs: { menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "slots", predicate: MenuSlotDirective, isSignal: true }], ngImport: i0, template: "<dsv-menu>\n @for (item of menu()?.content; track item.url) {\n @if (!item.role || authService.hasRole(item.role)) {\n <dsv-item\n [icon]=\"item.icon\"\n [text]=\"item.text\"\n [url]=\"item.url\"\n [class.active]=\"isActive(item.url)\"\n (callback)=\"menuService.closeMenu()\"\n />\n <ng-container *ngTemplateOutlet=\"getSlot(item.id)\"></ng-container>\n }\n }\n</dsv-menu>\n", styles: [":host{display:flex;width:100%;height:100%}:host dsv-menu{padding-top:10px}:host dsv-item.active{text-decoration:underline}\n"], dependencies: [{ kind: "component", type: DsvMenuComponent, selector: "dsv-menu", inputs: ["showFooter"] }, { kind: "component", type: DsvItemComponent, selector: "dsv-item", inputs: ["icon", "text", "nb", "url", "small"], outputs: ["callback"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MenuContainer, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{ selector: 'app-menu-container', imports: [DsvMenuComponent, DsvItemComponent, NgTemplateOutlet], template: "<dsv-menu>\n @for (item of menu()?.content; track item.url) {\n @if (!item.role || authService.hasRole(item.role)) {\n <dsv-item\n [icon]=\"item.icon\"\n [text]=\"item.text\"\n [url]=\"item.url\"\n [class.active]=\"isActive(item.url)\"\n (callback)=\"menuService.closeMenu()\"\n />\n <ng-container *ngTemplateOutlet=\"getSlot(item.id)\"></ng-container>\n }\n }\n</dsv-menu>\n", styles: [":host{display:flex;width:100%;height:100%}:host dsv-menu{padding-top:10px}:host dsv-item.active{text-decoration:underline}\n"] }]
|
|
41
41
|
}], propDecorators: { slots: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MenuSlotDirective), { isSignal: true }] }], menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu", required: false }] }] } });
|
|
42
42
|
|
|
43
|
+
class AccessDeniedComponent {
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: AccessDeniedComponent, isStandalone: true, selector: "lib-access-denied", ngImport: i0, template: "<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Access Denied</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n Vous n'avez pas les droits pour acceder \u00E0 cette page.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n", styles: [":host{width:100%}:host .dsv-card-content>div{margin:40px 0}:host .dsv-card-content .contact{margin:60px 0}:host .dsv-card-content dsv-button{display:flex;justify-content:center}\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: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AccessDeniedComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'lib-access-denied', imports: [DsvCardComponent, DsvButtonComponent, RouterLink], template: "<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Access Denied</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n Vous n'avez pas les droits pour acceder \u00E0 cette page.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n", styles: [":host{width:100%}:host .dsv-card-content>div{margin:40px 0}:host .dsv-card-content .contact{margin:60px 0}:host .dsv-card-content dsv-button{display:flex;justify-content:center}\n"] }]
|
|
50
|
+
}] });
|
|
51
|
+
|
|
43
52
|
class FooterComponent {
|
|
44
53
|
copyright = input(...(ngDevMode ? [undefined, { debugName: "copyright" }] : /* istanbul ignore next */ []));
|
|
45
54
|
withMentions = input(true, ...(ngDevMode ? [{ debugName: "withMentions" }] : /* istanbul ignore next */ []));
|
|
46
55
|
withX = input(true, ...(ngDevMode ? [{ debugName: "withX" }] : /* istanbul ignore next */ []));
|
|
47
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: FooterComponent, isStandalone: true, selector: "app-footer", inputs: { copyright: { classPropertyName: "copyright", publicName: "copyright", isSignal: true, isRequired: false, transformFunction: null }, withMentions: { classPropertyName: "withMentions", publicName: "withMentions", isSignal: true, isRequired: false, transformFunction: null }, withX: { classPropertyName: "withX", publicName: "withX", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<footer>\n <hr />\n <ng-content />\n <div class=\"footer-content\">\n <div>\n <div>\n <a href=\"/contact\" dsvLink>Contact</a>\n </div>\n <div>\n <strong>Mail :</strong>\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n @if (withMentions()) {\n <div>\n <a href=\"/mentions-legales\" dsvLink>Mentions-legales</a>\n </div>\n }\n </div>\n <div>\n <div class=\"created-by\">\n <a href=\"/contact\" dsvLink\n ><img class=\"vagabond\" title=\"vagabond\" alt=\"vagabond\" src=\"images/vagabond.png\"\n /></a>\n <div>\n <a href=\"/contact\" dsvLink>Cr\u00E9\u00E9 par Vagabond</a>\n <div class=\"flex-row gap5\">\n <a href=\"https://github.com/vagabon\" title=\"Github de Vagabond\" dsvLinkExternal>\n <img title=\"logo Github\" alt=\"logo Github\" src=\"/images/icons/github.png\" />\n </a>\n @if (withX()) {\n <a href=\"https://twitter.com/VagabondDev\" title=\"X de Vagabond\" dsvLinkExternal>\n <img title=\"logo X\" alt=\"logo X\" src=\"/images/icons/x.png\" />\n </a>\n }\n <a href=\"https://discord.gg/TUy5MtVRt7\" title=\"Discord de Vagabond\" dsvLinkExternal>\n <img title=\"logo discord\" alt=\"logo discord\" src=\"/images/icons/discord.png\"\n /></a>\n <a href=\"https://blog.vagabond.synology.me\" title=\"Blog de Vagabond\" dsvLinkExternal>\n <img\n title=\"logo blog vagabond\"\n alt=\"Me suivre sur mon blog\"\n src=\"/images/icons/blog.png\"\n /></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"copyright\">Copyright © 2026 {{ copyright() }}</p>\n</footer>\n", styles: ["footer{padding:15px}footer hr{border:none;height:1px;background:linear-gradient(to right,transparent 0%,var(--border) 10%,var(--border) 90%,transparent 100%)}footer a{font-weight:700}footer>p{font-size:1rem;margin-top:10px;text-align:justify}footer .footer-content{margin-top:20px;align-items:flex-start;display:flex}footer .footer-content>div{width:50%;align-items:flex-start;display:flex;flex-direction:column;gap:20px}footer .footer-content>div:nth-child(2){align-items:end}footer .footer-content .created-by{display:flex;align-items:center;background:#c4c4c4;color:var(--text);border-radius:30px;padding:5px 10px}footer .footer-content .created-by img.vagabond{width:60px;height:60px;border-radius:50%}footer .footer-content .created-by>div{display:flex;flex-direction:column;gap:5px;margin:0 10px}footer .footer-content .created-by>div>span{font-weight:700}footer .footer-content .created-by>div>div{display:flex;gap:5px;align-items:center;justify-content:center}footer .footer-content .created-by>div>div a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%}footer .footer-content .created-by>div>div a img{border-radius:10px;width:25px;height:25px}@media screen and (max-width:510px){footer .footer-content{flex-direction:column}footer .footer-content>div{width:100%}footer .footer-content>div:nth-child(2){align-items:flex-end;margin:10px 10px 0}}footer .copyright{margin-top:20px}:host-context(body.dark) .created-by{background-color:#404040!important}\n"], dependencies: [{ kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }, { kind: "directive", type: RouterExternalPipe, selector: "a[dsvLinkExternal]", outputs: ["dsvLinkExternal"] }] });
|
|
49
58
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FooterComponent, decorators: [{
|
|
51
60
|
type: Component,
|
|
52
61
|
args: [{ selector: 'app-footer', imports: [RouterInternalPipe, RouterExternalPipe], template: "<footer>\n <hr />\n <ng-content />\n <div class=\"footer-content\">\n <div>\n <div>\n <a href=\"/contact\" dsvLink>Contact</a>\n </div>\n <div>\n <strong>Mail :</strong>\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n @if (withMentions()) {\n <div>\n <a href=\"/mentions-legales\" dsvLink>Mentions-legales</a>\n </div>\n }\n </div>\n <div>\n <div class=\"created-by\">\n <a href=\"/contact\" dsvLink\n ><img class=\"vagabond\" title=\"vagabond\" alt=\"vagabond\" src=\"images/vagabond.png\"\n /></a>\n <div>\n <a href=\"/contact\" dsvLink>Cr\u00E9\u00E9 par Vagabond</a>\n <div class=\"flex-row gap5\">\n <a href=\"https://github.com/vagabon\" title=\"Github de Vagabond\" dsvLinkExternal>\n <img title=\"logo Github\" alt=\"logo Github\" src=\"/images/icons/github.png\" />\n </a>\n @if (withX()) {\n <a href=\"https://twitter.com/VagabondDev\" title=\"X de Vagabond\" dsvLinkExternal>\n <img title=\"logo X\" alt=\"logo X\" src=\"/images/icons/x.png\" />\n </a>\n }\n <a href=\"https://discord.gg/TUy5MtVRt7\" title=\"Discord de Vagabond\" dsvLinkExternal>\n <img title=\"logo discord\" alt=\"logo discord\" src=\"/images/icons/discord.png\"\n /></a>\n <a href=\"https://blog.vagabond.synology.me\" title=\"Blog de Vagabond\" dsvLinkExternal>\n <img\n title=\"logo blog vagabond\"\n alt=\"Me suivre sur mon blog\"\n src=\"/images/icons/blog.png\"\n /></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"copyright\">Copyright © 2026 {{ copyright() }}</p>\n</footer>\n", styles: ["footer{padding:15px}footer hr{border:none;height:1px;background:linear-gradient(to right,transparent 0%,var(--border) 10%,var(--border) 90%,transparent 100%)}footer a{font-weight:700}footer>p{font-size:1rem;margin-top:10px;text-align:justify}footer .footer-content{margin-top:20px;align-items:flex-start;display:flex}footer .footer-content>div{width:50%;align-items:flex-start;display:flex;flex-direction:column;gap:20px}footer .footer-content>div:nth-child(2){align-items:end}footer .footer-content .created-by{display:flex;align-items:center;background:#c4c4c4;color:var(--text);border-radius:30px;padding:5px 10px}footer .footer-content .created-by img.vagabond{width:60px;height:60px;border-radius:50%}footer .footer-content .created-by>div{display:flex;flex-direction:column;gap:5px;margin:0 10px}footer .footer-content .created-by>div>span{font-weight:700}footer .footer-content .created-by>div>div{display:flex;gap:5px;align-items:center;justify-content:center}footer .footer-content .created-by>div>div a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%}footer .footer-content .created-by>div>div a img{border-radius:10px;width:25px;height:25px}@media screen and (max-width:510px){footer .footer-content{flex-direction:column}footer .footer-content>div{width:100%}footer .footer-content>div:nth-child(2){align-items:flex-end;margin:10px 10px 0}}footer .copyright{margin-top:20px}:host-context(body.dark) .created-by{background-color:#404040!important}\n"] }]
|
|
53
62
|
}], propDecorators: { copyright: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyright", required: false }] }], withMentions: [{ type: i0.Input, args: [{ isSignal: true, alias: "withMentions", required: false }] }], withX: [{ type: i0.Input, args: [{ isSignal: true, alias: "withX", required: false }] }] } });
|
|
54
63
|
|
|
55
64
|
class NotFoundComponent {
|
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: NotFoundComponent, isStandalone: true, selector: "app-not-found", ngImport: i0, template: "<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Page 404</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n La page n'a pas \u00E9t\u00E9 trouv\u00E9e, elle est en construction ou absente du site.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n", styles: [":host{width:100%}:host .dsv-card-content>div{margin:40px 0}:host .dsv-card-content .contact{margin:60px 0}:host .dsv-card-content dsv-button{display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card" }, { kind: "directive", type: RouterExternalPipe, selector: "a[dsvLinkExternal]", outputs: ["dsvLinkExternal"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
58
67
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NotFoundComponent, decorators: [{
|
|
60
69
|
type: Component,
|
|
61
70
|
args: [{ selector: 'app-not-found', imports: [DsvCardComponent, RouterExternalPipe, DsvButtonComponent, RouterLink], template: "<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Page 404</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n La page n'a pas \u00E9t\u00E9 trouv\u00E9e, elle est en construction ou absente du site.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez \u00E9crire \u00E0 l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n", styles: [":host{width:100%}:host .dsv-card-content>div{margin:40px 0}:host .dsv-card-content .contact{margin:60px 0}:host .dsv-card-content dsv-button{display:flex;justify-content:center}\n"] }]
|
|
62
71
|
}] });
|
|
@@ -65,5 +74,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
65
74
|
* Generated bundle index. Do not edit.
|
|
66
75
|
*/
|
|
67
76
|
|
|
68
|
-
export { FooterComponent, MenuContainer, MenuSlotDirective, NotFoundComponent };
|
|
77
|
+
export { AccessDeniedComponent, FooterComponent, MenuContainer, MenuSlotDirective, NotFoundComponent };
|
|
69
78
|
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-template.mjs.map
|