@ng-vagabond-lab/ng-dsv 0.2.28 → 0.2.30
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 +47 -0
- package/assets/style.scss +26 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +6 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +10 -4
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +16 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-card.d.ts +2 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-form-reactive.d.ts +1 -0
- package/types/ng-vagabond-lab-ng-dsv-ds-tab.d.ts +2 -1
package/assets/global.scss
CHANGED
|
@@ -86,6 +86,12 @@ a {
|
|
|
86
86
|
cursor: pointer;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
a,
|
|
90
|
+
button,
|
|
91
|
+
li {
|
|
92
|
+
-webkit-tap-highlight-color: transparent;
|
|
93
|
+
}
|
|
94
|
+
|
|
89
95
|
.text-justify {
|
|
90
96
|
text-align: justify;
|
|
91
97
|
}
|
|
@@ -123,4 +129,45 @@ hr {
|
|
|
123
129
|
transform: scale(4);
|
|
124
130
|
opacity: 0;
|
|
125
131
|
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#main-section:has(.scroll:not(.list-overflow .scroll)) app-footer {
|
|
135
|
+
display: none;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
#main-section {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
height: calc(100%);
|
|
142
|
+
|
|
143
|
+
&>*>dsv-card,
|
|
144
|
+
&>*>div,
|
|
145
|
+
&>*>dsv-form-reactive-searchbar {
|
|
146
|
+
margin: 5px 5px 5px 5px !important;
|
|
147
|
+
width: calc(100% - 10px) !important;
|
|
148
|
+
|
|
149
|
+
& h2 {
|
|
150
|
+
padding-left: 3px !important;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
&>*>dsv-scroll-infinite {
|
|
155
|
+
padding: 0 5px !important;
|
|
156
|
+
width: calc(100% - 10px) !important;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@media screen and (min-width: 900px) {
|
|
160
|
+
&>* {
|
|
161
|
+
max-width: 900px;
|
|
162
|
+
margin: 0px auto;
|
|
163
|
+
width: 100%;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@media screen and (max-width: 900px) {
|
|
168
|
+
&>* {
|
|
169
|
+
margin: 0px 5px;
|
|
170
|
+
width: calc(100% - 10px);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
126
173
|
}
|
package/assets/style.scss
CHANGED
|
@@ -129,4 +129,30 @@ dsv-tooltip>*:not(.dsv-tooltip) {
|
|
|
129
129
|
white-space: nowrap;
|
|
130
130
|
overflow: hidden;
|
|
131
131
|
text-overflow: ellipsis;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.markdown {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
gap: 5px;
|
|
138
|
+
|
|
139
|
+
h1,
|
|
140
|
+
h2,
|
|
141
|
+
h3 {
|
|
142
|
+
margin: 10px 0;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
hr {
|
|
146
|
+
margin: 10px 0;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
ul {
|
|
150
|
+
margin: 0;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
blockquote {
|
|
155
|
+
border-left: 3px solid var(--primary);
|
|
156
|
+
padding-left: 10px;
|
|
157
|
+
margin: 0;
|
|
132
158
|
}
|
|
@@ -12,15 +12,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
12
12
|
}] });
|
|
13
13
|
|
|
14
14
|
class DsvCardComponent {
|
|
15
|
+
border = input(false, /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "border" }] : /* istanbul ignore next */ []));
|
|
15
17
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: DsvCardComponent, isStandalone: true, selector: "dsv-card", inputs: { border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.border": "border()" }, classAttribute: "dsv-card" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;font-size:1rem;margin:0;padding:0;width:100%;color:var(--text);background-color:var(--background-card);position:relative}:host.border{border:1px solid var(--border);border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
17
19
|
}
|
|
18
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvCardComponent, decorators: [{
|
|
19
21
|
type: Component,
|
|
20
22
|
args: [{ selector: 'dsv-card', imports: [CommonModule], host: {
|
|
21
23
|
class: 'dsv-card',
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
'[class.border]': 'border()',
|
|
25
|
+
}, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-direction:column;font-size:1rem;margin:0;padding:0;width:100%;color:var(--text);background-color:var(--background-card);position:relative}:host.border{border:1px solid var(--border);border-radius:4px}\n"] }]
|
|
26
|
+
}], propDecorators: { border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }] } });
|
|
24
27
|
|
|
25
28
|
class DsvCardHeaderComponent {
|
|
26
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.mjs","sources":["../../../projects/ng-dsv/ds/card/component/action/card-action.component.ts","../../../projects/ng-dsv/ds/card/component/action/card-action.component.html","../../../projects/ng-dsv/ds/card/component/card.component.ts","../../../projects/ng-dsv/ds/card/component/card.component.html","../../../projects/ng-dsv/ds/card/component/header/card-header.component.ts","../../../projects/ng-dsv/ds/card/component/header/card-header.component.html","../../../projects/ng-dsv/ds/card/component/img/card-img.component.ts","../../../projects/ng-dsv/ds/card/component/img/card-img.component.html","../../../projects/ng-dsv/ds/card/ng-vagabond-lab-ng-dsv-ds-card.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-action',\n imports: [],\n templateUrl: './card-action.component.html',\n styleUrl: './card-action.component.scss',\n})\nexport class DsvCardActionComponent {}\n","<ng-content />\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card',\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n host: {\n class: 'dsv-card',\n },\n})\nexport class DsvCardComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-header',\n imports: [],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class DsvCardHeaderComponent {}\n","<ng-content></ng-content>\n<div class=\"subtitle\">\n <ng-content select=\".card-subtitle\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-img',\n imports: [],\n templateUrl: './card-img.component.html',\n styleUrl: './card-img.component.scss',\n})\nexport class DsvCardImgComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('description');\n}\n","<img [src]=\"src()\" [alt]=\"alt()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAQa,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2ECRnC,kBACA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA;;;
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.mjs","sources":["../../../projects/ng-dsv/ds/card/component/action/card-action.component.ts","../../../projects/ng-dsv/ds/card/component/action/card-action.component.html","../../../projects/ng-dsv/ds/card/component/card.component.ts","../../../projects/ng-dsv/ds/card/component/card.component.html","../../../projects/ng-dsv/ds/card/component/header/card-header.component.ts","../../../projects/ng-dsv/ds/card/component/header/card-header.component.html","../../../projects/ng-dsv/ds/card/component/img/card-img.component.ts","../../../projects/ng-dsv/ds/card/component/img/card-img.component.html","../../../projects/ng-dsv/ds/card/ng-vagabond-lab-ng-dsv-ds-card.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-action',\n imports: [],\n templateUrl: './card-action.component.html',\n styleUrl: './card-action.component.scss',\n})\nexport class DsvCardActionComponent {}\n","<ng-content />\n","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-card',\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n host: {\n class: 'dsv-card',\n '[class.border]': 'border()',\n },\n})\nexport class DsvCardComponent {\n readonly border = input<boolean>(false);\n}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-header',\n imports: [],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class DsvCardHeaderComponent {}\n","<ng-content></ng-content>\n<div class=\"subtitle\">\n <ng-content select=\".card-subtitle\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-img',\n imports: [],\n templateUrl: './card-img.component.html',\n styleUrl: './card-img.component.scss',\n})\nexport class DsvCardImgComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('description');\n}\n","<img [src]=\"src()\" [alt]=\"alt()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -121,15 +121,21 @@ class DsvFormReactiveInputComponent {
|
|
|
121
121
|
icon = input(/* @ts-ignore */
|
|
122
122
|
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
123
123
|
callbackSend = output();
|
|
124
|
+
checkClear(event) {
|
|
125
|
+
const target = event.target;
|
|
126
|
+
if (target.value === '') {
|
|
127
|
+
this.onEnter();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
124
130
|
onEnter() {
|
|
125
131
|
this.callbackSend.emit(this.form().value[this.field()]);
|
|
126
132
|
}
|
|
127
133
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormReactiveInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: DsvFormReactiveInputComponent, isStandalone: true, selector: "dsv-form-reactive-input", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSend: "callbackSend" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n", styles: [":host{--input-width: calc(100% - 12px) ;--input-max-width: auto;--input-opacity: 1;--input-flex-direction: column;--input-align-center: false;--input-justify-content: false;--input-gap: 0;--input-height: auto;--input-min-height: 90px;--input-max-height: 150px;width:100%}:host>div{display:flex;flex-direction:var(--input-flex-direction);gap:var(--input-gap);align-items:var(--input-align-center);justify-content:var(--input-justify-content);position:relative;gap:2px}:host>div .form-control{font-family:inherit;display:block;margin:0;padding:5px;width:var(--input-width);max-width:var(--input-max-width);font-size:1rem;line-height:1.5;color:var(--text);background-color:var(--background-card);background-clip:padding-box;border:1px solid var(--border);border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d;opacity:var(--input-opacity)}:host>div .form-control.icon{padding-left:25px}:host>div .form-control.error{border:1px solid var(--error)}:host>div .form-control:disabled{opacity:.6}:host>div i{position:absolute;z-index:1;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;height:var(--input-height);min-height:var(--input-min-height);max-height:var(--input-max-height)}:host-context(body.dark) .form-control{color-scheme:dark}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DsvFormReactiveLabelComponent, selector: "dsv-form-reactive-label", inputs: ["label", "field", "show"] }, { kind: "component", type: DsvFormReactiveErrorComponent, selector: "dsv-form-reactive-error", inputs: ["field"] }] });
|
|
134
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: DsvFormReactiveInputComponent, isStandalone: true, selector: "dsv-form-reactive-input", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSend: "callbackSend" }, ngImport: i0, template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n (input)=\"checkClear($event)\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n", styles: [":host{--input-width: calc(100% - 12px) ;--input-max-width: auto;--input-opacity: 1;--input-flex-direction: column;--input-align-center: false;--input-justify-content: false;--input-gap: 0;--input-height: auto;--input-min-height: 90px;--input-max-height: 150px;width:100%}:host>div{display:flex;flex-direction:var(--input-flex-direction);gap:var(--input-gap);align-items:var(--input-align-center);justify-content:var(--input-justify-content);position:relative;gap:2px}:host>div .form-control{font-family:inherit;display:block;margin:0;padding:5px;width:var(--input-width);max-width:var(--input-max-width);font-size:1rem;line-height:1.5;color:var(--text);background-color:var(--background-card);background-clip:padding-box;border:1px solid var(--border);border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d;opacity:var(--input-opacity)}:host>div .form-control.icon{padding-left:25px}:host>div .form-control.error{border:1px solid var(--error)}:host>div .form-control:disabled{opacity:.6}:host>div i{position:absolute;z-index:1;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;height:var(--input-height);min-height:var(--input-min-height);max-height:var(--input-max-height)}:host-context(body.dark) .form-control{color-scheme:dark}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DsvFormReactiveLabelComponent, selector: "dsv-form-reactive-label", inputs: ["label", "field", "show"] }, { kind: "component", type: DsvFormReactiveErrorComponent, selector: "dsv-form-reactive-error", inputs: ["field"] }] });
|
|
129
135
|
}
|
|
130
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormReactiveInputComponent, decorators: [{
|
|
131
137
|
type: Component,
|
|
132
|
-
args: [{ selector: 'dsv-form-reactive-input', imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent], template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n", styles: [":host{--input-width: calc(100% - 12px) ;--input-max-width: auto;--input-opacity: 1;--input-flex-direction: column;--input-align-center: false;--input-justify-content: false;--input-gap: 0;--input-height: auto;--input-min-height: 90px;--input-max-height: 150px;width:100%}:host>div{display:flex;flex-direction:var(--input-flex-direction);gap:var(--input-gap);align-items:var(--input-align-center);justify-content:var(--input-justify-content);position:relative;gap:2px}:host>div .form-control{font-family:inherit;display:block;margin:0;padding:5px;width:var(--input-width);max-width:var(--input-max-width);font-size:1rem;line-height:1.5;color:var(--text);background-color:var(--background-card);background-clip:padding-box;border:1px solid var(--border);border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d;opacity:var(--input-opacity)}:host>div .form-control.icon{padding-left:25px}:host>div .form-control.error{border:1px solid var(--error)}:host>div .form-control:disabled{opacity:.6}:host>div i{position:absolute;z-index:1;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;height:var(--input-height);min-height:var(--input-min-height);max-height:var(--input-max-height)}:host-context(body.dark) .form-control{color-scheme:dark}\n"] }]
|
|
138
|
+
args: [{ selector: 'dsv-form-reactive-input', imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent], template: "<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n (input)=\"checkClear($event)\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n", styles: [":host{--input-width: calc(100% - 12px) ;--input-max-width: auto;--input-opacity: 1;--input-flex-direction: column;--input-align-center: false;--input-justify-content: false;--input-gap: 0;--input-height: auto;--input-min-height: 90px;--input-max-height: 150px;width:100%}:host>div{display:flex;flex-direction:var(--input-flex-direction);gap:var(--input-gap);align-items:var(--input-align-center);justify-content:var(--input-justify-content);position:relative;gap:2px}:host>div .form-control{font-family:inherit;display:block;margin:0;padding:5px;width:var(--input-width);max-width:var(--input-max-width);font-size:1rem;line-height:1.5;color:var(--text);background-color:var(--background-card);background-clip:padding-box;border:1px solid var(--border);border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d;opacity:var(--input-opacity)}:host>div .form-control.icon{padding-left:25px}:host>div .form-control.error{border:1px solid var(--error)}:host>div .form-control:disabled{opacity:.6}:host>div i{position:absolute;z-index:1;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;height:var(--input-height);min-height:var(--input-min-height);max-height:var(--input-max-height)}:host-context(body.dark) .form-control{color-scheme:dark}\n"] }]
|
|
133
139
|
}], propDecorators: { form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: true }] }], field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], withLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "withLabel", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], callbackSend: [{ type: i0.Output, args: ["callbackSend"] }] } });
|
|
134
140
|
|
|
135
141
|
class DsvFormReactiveSearchbarComponent extends DsvBaseFormReactiveComponent {
|
|
@@ -148,11 +154,11 @@ class DsvFormReactiveSearchbarComponent extends DsvBaseFormReactiveComponent {
|
|
|
148
154
|
this.callbackSearch.emit(value);
|
|
149
155
|
}
|
|
150
156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormReactiveSearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: DsvFormReactiveSearchbarComponent, isStandalone: true, selector: "dsv-form-reactive-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSearch: "callbackSearch" }, usesInheritance: true, ngImport: i0, template: "<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n", styles: [":host{display:flex;
|
|
157
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: DsvFormReactiveSearchbarComponent, isStandalone: true, selector: "dsv-form-reactive-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSearch: "callbackSearch" }, usesInheritance: true, ngImport: i0, template: "<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n", styles: [":host{display:flex;-webkit-user-select:none;user-select:none}:host dsv-form-reactive-input,:host dsv-form-signal-input{--input-width: 100% !important}\n"], dependencies: [{ 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"] }] });
|
|
152
158
|
}
|
|
153
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormReactiveSearchbarComponent, decorators: [{
|
|
154
160
|
type: Component,
|
|
155
|
-
args: [{ selector: 'dsv-form-reactive-searchbar', imports: [DsvFormReactiveComponent, DsvFormReactiveInputComponent], template: "<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n", styles: [":host{display:flex;
|
|
161
|
+
args: [{ selector: 'dsv-form-reactive-searchbar', imports: [DsvFormReactiveComponent, DsvFormReactiveInputComponent], template: "<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n", styles: [":host{display:flex;-webkit-user-select:none;user-select:none}:host dsv-form-reactive-input,:host dsv-form-signal-input{--input-width: 100% !important}\n"] }]
|
|
156
162
|
}], ctorParameters: () => [], propDecorators: { search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }], callbackSearch: [{ type: i0.Output, args: ["callbackSearch"] }] } });
|
|
157
163
|
|
|
158
164
|
class FormReactiveSelectComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs","sources":["../../../projects/ng-dsv/ds/form/reactive/label/component/form-reactive-label.component.ts","../../../projects/ng-dsv/ds/form/reactive/label/component/form-reactive-label.component.html","../../../projects/ng-dsv/ds/form/reactive/checkbox/component/form-reactive-checkbox.component.ts","../../../projects/ng-dsv/ds/form/reactive/checkbox/component/form-reactive-checkbox.component.html","../../../projects/ng-dsv/ds/form/reactive/form/base/base-form.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/component/form-reactive.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/component/form-reactive.component.html","../../../projects/ng-dsv/ds/form/reactive/error/component/form-reactive-error.component.ts","../../../projects/ng-dsv/ds/form/reactive/error/component/form-reactive-error.component.html","../../../projects/ng-dsv/ds/form/reactive/input/component/form-reactive-input.component.ts","../../../projects/ng-dsv/ds/form/reactive/input/component/form-reactive-input.component.html","../../../projects/ng-dsv/ds/form/reactive/searchbar/component/form-reactive-searchbar.component.ts","../../../projects/ng-dsv/ds/form/reactive/searchbar/component/form-reactive-searchbar.component.html","../../../projects/ng-dsv/ds/form/reactive/select/component/form-reactive-select.component.ts","../../../projects/ng-dsv/ds/form/reactive/select/component/form-reactive-select.component.html","../../../projects/ng-dsv/ds/form/reactive/ng-vagabond-lab-ng-dsv-ds-form-reactive.ts"],"sourcesContent":["import { Component, effect, input, signal } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\n\n@Component({\n selector: 'dsv-form-reactive-label',\n templateUrl: './form-reactive-label.component.html',\n styleUrls: ['./form-reactive-label.component.scss'],\n})\nexport class DsvFormReactiveLabelComponent {\n readonly label = input.required<string>();\n readonly field = input<AbstractControl>();\n readonly show = input<boolean>(true);\n\n readonly isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isRequired.set(this.field()?.hasValidator?.(Validators.required) ?? false);\n });\n }\n}\n","@if (show()) {\n <label\n [for]=\"label()\"\n class=\"text\"\n [class.error]=\"field()?.touched && field()?.invalid\"\n >\n {{ label() }} {{ isRequired() ? '*' : '' }}\n </label>\n}\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-checkbox',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent],\n templateUrl: './form-reactive-checkbox.component.html',\n styleUrls: [\n '../../input/component/form-reactive-input.component.scss',\n './form-reactive-checkbox.component.scss',\n ],\n})\nexport class DsvFormReactiveCheckboxComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly withLabel = input<boolean>(true);\n\n readonly callbackChange = output<string>();\n\n doChange(): void {\n this.callbackChange.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n <dsv-form-reactive-label\n [label]=\"field()\"\n [field]=\"form().get(field())!\"\n [show]=\"withLabel()\"\n />\n <div>\n <input\n type=\"checkbox\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n />\n </div>\n</div>\n","import { Directive, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Directive()\nexport abstract class DsvBaseFormReactiveComponent {\n protected readonly formBuilder = inject(FormBuilder);\n protected form!: FormGroup;\n}\n","import { Component, inject, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-reactive',\n imports: [ReactiveFormsModule, DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form-reactive.component.html',\n styleUrl: './form-reactive.component.scss',\n})\nexport class DsvFormReactiveComponent {\n readonly toastService = inject(ToastService);\n\n readonly form = input.required<FormGroup>();\n\n readonly urlBack = input<string>();\n readonly textValid = input<string>('ENREGISTRER');\n readonly formValid = input<string>('Formulaire envoyé !');\n\n readonly callback = output<ApiDto>();\n\n onSubmit(): void {\n this.form().markAllAsTouched();\n if (this.form().valid) {\n this.callback.emit(this.form().value);\n if (this.textValid() !== '') {\n this.toastService.showToast({\n text: this.formValid(),\n });\n }\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error',\n });\n }\n }\n}\n","<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\">\n <div class=\"form-scroll\">\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\" [class.hidden]=\"!(urlBack() && textValid() !== '')\">\n @if (urlBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" [routerLink]=\"urlBack()\" [prevent]=\"false\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (textValid() && textValid() !== '') {\n <dsv-button type=\"submit\" color=\"secondary\">{{ textValid()! | translate }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-reactive-error',\n imports: [TranslatePipe],\n templateUrl: './form-reactive-error.component.html',\n styleUrls: ['./form-reactive-error.component.scss'],\n host: {\n class: 'text error',\n },\n})\nexport class DsvFormReactiveErrorComponent {\n readonly field = input.required<AbstractControl<any, any>>();\n}\n","@if (field().touched && field().invalid) {\n @if (field().errors?.['required']) {\n <div>{{ 'Le champ est obligatoire.' | translate }}</div>\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { INPUT_TYPE } from '@ng-vagabond-lab/ng-dsv/type';\nimport { DsvFormReactiveErrorComponent } from '../../error/component/form-reactive-error.component';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-input',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent],\n templateUrl: './form-reactive-input.component.html',\n styleUrl: './form-reactive-input.component.scss',\n})\nexport class DsvFormReactiveInputComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly type = input<INPUT_TYPE>('text');\n readonly withLabel = input<boolean>(true);\n readonly required = input<boolean>(false);\n readonly icon = input<string>();\n\n readonly callbackSend = output<string>();\n\n onEnter(): void {\n this.callbackSend.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n","import { Component, effect, input, output } from '@angular/core';\nimport {\n DsvBaseFormReactiveComponent,\n DsvFormReactiveComponent,\n DsvFormReactiveInputComponent,\n} from '../../public-api';\n\n@Component({\n selector: 'dsv-form-reactive-searchbar',\n imports: [DsvFormReactiveComponent, DsvFormReactiveInputComponent],\n templateUrl: './form-reactive-searchbar.component.html',\n styleUrls: ['./form-reactive-searchbar.component.scss'],\n})\nexport class DsvFormReactiveSearchbarComponent extends DsvBaseFormReactiveComponent {\n readonly search = input<string>('');\n readonly callbackSearch = output<string>();\n\n constructor() {\n super();\n effect(() => {\n this.form = this.formBuilder.group({\n search: [this.search()],\n });\n });\n }\n\n onSend(value: string): void {\n this.callbackSearch.emit(value);\n }\n}\n","<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvFormReactiveErrorComponent } from '../../error/component/form-reactive-error.component';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-select',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent],\n templateUrl: './form-reactive-select.component.html',\n styleUrls: [\n '../../input/component/form-reactive-input.component.scss',\n './form-reactive-select.component.scss',\n ],\n})\nexport class FormReactiveSelectComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly withLabel = input<boolean>(true);\n\n readonly list = input<(ApiDto & { name: string })[]>([]);\n\n readonly callbackChange = output<string>();\n\n doChange(): void {\n this.callbackChange.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n <dsv-form-reactive-label\n [label]=\"field()\"\n [field]=\"form().get(field())!\"\n [show]=\"withLabel()\"\n />\n <div>\n <select\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n >\n @for (list of list(); track list.id) {\n <option [value]=\"list.id\">\n {{ list.name }}\n </option>\n }\n </select>\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;MAQa,6BAA6B,CAAA;IAC7B,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;AAChC,IAAA,KAAK,GAAG,KAAK;yFAAmB;IAChC,IAAI,GAAG,KAAK,CAAU,IAAI;6EAAC;IAE3B,UAAU,GAAG,MAAM,CAAU,KAAK;mFAAC;AAE5C,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;AACnF,QAAA,CAAC,CAAC;IACN;uGAXS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,mcCR1C,8NASA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,CAAA;;2FDDa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACI,yBAAyB,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA;;;MES1B,gCAAgC,CAAA;IAChC,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAa;IAClC,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;IAChC,SAAS,GAAG,KAAK,CAAU,IAAI;kFAAC;IAEhC,cAAc,GAAG,MAAM,EAAU;IAE1C,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D;uGATS,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb7C,oXAeA,EAAA,MAAA,EAAA,CAAA,61CAAA,EAAA,y6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTc,mBAAmB,8zBAAE,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAOnD,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAT5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,OAAA,EAC7B,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,oXAAA,EAAA,MAAA,EAAA,CAAA,61CAAA,EAAA,y6BAAA,CAAA,EAAA;;;MEF3C,4BAA4B,CAAA;AAC3B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1C,IAAA,IAAI;uGAFI,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADjD;;;MCWY,wBAAwB,CAAA;AACxB,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAEnC,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAa;AAElC,IAAA,OAAO,GAAG,KAAK;2FAAU;IACzB,SAAS,GAAG,KAAK,CAAS,aAAa;kFAAC;IACxC,SAAS,GAAG,KAAK,CAAS,qBAAqB;kFAAC;IAEhD,QAAQ,GAAG,MAAM,EAAU;IAEpC,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AACrC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACxB,oBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;AACzB,iBAAA,CAAC;YACN;QACJ;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACxB,gBAAA,IAAI,EAAE,6BAA6B;AACnC,gBAAA,IAAI,EAAE,OAAO;AAChB,aAAA,CAAC;QACN;IACJ;uGA1BS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdrC,0nBAeA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLc,mBAAmB,icAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAInE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,mBAAmB,EAAA,OAAA,EACpB,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,0nBAAA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA;;;MEGpE,6BAA6B,CAAA;IAC7B,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAA6B;uGADnD,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1C,oKAKA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDCc,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAOd,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBATzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAC1B,CAAC,aAAa,CAAC,EAAA,IAAA,EAGlB;AACF,wBAAA,KAAK,EAAE,YAAY;AACtB,qBAAA,EAAA,QAAA,EAAA,oKAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA;;;MECQ,6BAA6B,CAAA;IAC7B,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAa;IAClC,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;IAChC,IAAI,GAAG,KAAK,CAAa,MAAM;6EAAC;IAChC,SAAS,GAAG,KAAK,CAAU,IAAI;kFAAC;IAChC,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;AAChC,IAAA,IAAI,GAAG,KAAK;wFAAU;IAEtB,YAAY,GAAG,MAAM,EAAU;IAExC,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D;uGAZS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,o2BCZ1C,89BA6BA,EAAA,MAAA,EAAA,CAAA,61CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrBc,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,6BAA6B,wGAAE,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIlF,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAC1B,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,89BAAA,EAAA,MAAA,EAAA,CAAA,61CAAA,CAAA,EAAA;;;AEK1F,MAAO,iCAAkC,SAAQ,4BAA4B,CAAA;IACtE,MAAM,GAAG,KAAK,CAAS,EAAE;+EAAC;IAC1B,cAAc,GAAG,MAAM,EAAU;AAE1C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC/B,gBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1B,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC;uGAfS,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb9C,0TAaA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJc,wBAAwB,4IAAE,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIxD,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,OAAA,EAC9B,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,0TAAA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA;;;MEMzD,2BAA2B,CAAA;IAC3B,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAa;IAClC,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;IAChC,SAAS,GAAG,KAAK,CAAU,IAAI;kFAAC;IAEhC,IAAI,GAAG,KAAK,CAAgC,EAAE;6EAAC;IAE/C,cAAc,GAAG,MAAM,EAAU;IAE1C,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D;uGAXS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,mnBCfxC,guBAuBA,EAAA,MAAA,EAAA,CAAA,61CAAA,EAAA,yMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfc,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,0JAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,6BAA6B,wGAAE,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAOlF,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,WAC3B,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,guBAAA,EAAA,MAAA,EAAA,CAAA,61CAAA,EAAA,yMAAA,CAAA,EAAA;;;AERhG;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs","sources":["../../../projects/ng-dsv/ds/form/reactive/label/component/form-reactive-label.component.ts","../../../projects/ng-dsv/ds/form/reactive/label/component/form-reactive-label.component.html","../../../projects/ng-dsv/ds/form/reactive/checkbox/component/form-reactive-checkbox.component.ts","../../../projects/ng-dsv/ds/form/reactive/checkbox/component/form-reactive-checkbox.component.html","../../../projects/ng-dsv/ds/form/reactive/form/base/base-form.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/component/form-reactive.component.ts","../../../projects/ng-dsv/ds/form/reactive/form/component/form-reactive.component.html","../../../projects/ng-dsv/ds/form/reactive/error/component/form-reactive-error.component.ts","../../../projects/ng-dsv/ds/form/reactive/error/component/form-reactive-error.component.html","../../../projects/ng-dsv/ds/form/reactive/input/component/form-reactive-input.component.ts","../../../projects/ng-dsv/ds/form/reactive/input/component/form-reactive-input.component.html","../../../projects/ng-dsv/ds/form/reactive/searchbar/component/form-reactive-searchbar.component.ts","../../../projects/ng-dsv/ds/form/reactive/searchbar/component/form-reactive-searchbar.component.html","../../../projects/ng-dsv/ds/form/reactive/select/component/form-reactive-select.component.ts","../../../projects/ng-dsv/ds/form/reactive/select/component/form-reactive-select.component.html","../../../projects/ng-dsv/ds/form/reactive/ng-vagabond-lab-ng-dsv-ds-form-reactive.ts"],"sourcesContent":["import { Component, effect, input, signal } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\n\n@Component({\n selector: 'dsv-form-reactive-label',\n templateUrl: './form-reactive-label.component.html',\n styleUrls: ['./form-reactive-label.component.scss'],\n})\nexport class DsvFormReactiveLabelComponent {\n readonly label = input.required<string>();\n readonly field = input<AbstractControl>();\n readonly show = input<boolean>(true);\n\n readonly isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isRequired.set(this.field()?.hasValidator?.(Validators.required) ?? false);\n });\n }\n}\n","@if (show()) {\n <label\n [for]=\"label()\"\n class=\"text\"\n [class.error]=\"field()?.touched && field()?.invalid\"\n >\n {{ label() }} {{ isRequired() ? '*' : '' }}\n </label>\n}\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-checkbox',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent],\n templateUrl: './form-reactive-checkbox.component.html',\n styleUrls: [\n '../../input/component/form-reactive-input.component.scss',\n './form-reactive-checkbox.component.scss',\n ],\n})\nexport class DsvFormReactiveCheckboxComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly withLabel = input<boolean>(true);\n\n readonly callbackChange = output<string>();\n\n doChange(): void {\n this.callbackChange.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n <dsv-form-reactive-label\n [label]=\"field()\"\n [field]=\"form().get(field())!\"\n [show]=\"withLabel()\"\n />\n <div>\n <input\n type=\"checkbox\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [id]=\"field()\"\n />\n </div>\n</div>\n","import { Directive, inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Directive()\nexport abstract class DsvBaseFormReactiveComponent {\n protected readonly formBuilder = inject(FormBuilder);\n protected form!: FormGroup;\n}\n","import { Component, inject, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-reactive',\n imports: [ReactiveFormsModule, DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form-reactive.component.html',\n styleUrl: './form-reactive.component.scss',\n})\nexport class DsvFormReactiveComponent {\n readonly toastService = inject(ToastService);\n\n readonly form = input.required<FormGroup>();\n\n readonly urlBack = input<string>();\n readonly textValid = input<string>('ENREGISTRER');\n readonly formValid = input<string>('Formulaire envoyé !');\n\n readonly callback = output<ApiDto>();\n\n onSubmit(): void {\n this.form().markAllAsTouched();\n if (this.form().valid) {\n this.callback.emit(this.form().value);\n if (this.textValid() !== '') {\n this.toastService.showToast({\n text: this.formValid(),\n });\n }\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error',\n });\n }\n }\n}\n","<form [formGroup]=\"form()\" (ngSubmit)=\"onSubmit()\">\n <div class=\"form-scroll\">\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\" [class.hidden]=\"!(urlBack() && textValid() !== '')\">\n @if (urlBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" [routerLink]=\"urlBack()\" [prevent]=\"false\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (textValid() && textValid() !== '') {\n <dsv-button type=\"submit\" color=\"secondary\">{{ textValid()! | translate }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-reactive-error',\n imports: [TranslatePipe],\n templateUrl: './form-reactive-error.component.html',\n styleUrls: ['./form-reactive-error.component.scss'],\n host: {\n class: 'text error',\n },\n})\nexport class DsvFormReactiveErrorComponent {\n readonly field = input.required<AbstractControl<any, any>>();\n}\n","@if (field().touched && field().invalid) {\n @if (field().errors?.['required']) {\n <div>{{ 'Le champ est obligatoire.' | translate }}</div>\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { INPUT_TYPE } from '@ng-vagabond-lab/ng-dsv/type';\nimport { DsvFormReactiveErrorComponent } from '../../error/component/form-reactive-error.component';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-input',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent],\n templateUrl: './form-reactive-input.component.html',\n styleUrl: './form-reactive-input.component.scss',\n})\nexport class DsvFormReactiveInputComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly type = input<INPUT_TYPE>('text');\n readonly withLabel = input<boolean>(true);\n readonly required = input<boolean>(false);\n readonly icon = input<string>();\n\n readonly callbackSend = output<string>();\n\n checkClear(event: Event) {\n const target = event.target as HTMLInputElement;\n if (target.value === '') {\n this.onEnter();\n }\n }\n\n onEnter(): void {\n this.callbackSend.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n @if (withLabel()) {\n <dsv-form-reactive-label [label]=\"field()\" [field]=\"form().get(field())!\" />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n ></textarea>\n } @else {\n <input\n [id]=\"field()\"\n [type]=\"type()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n [class.icon]=\"icon()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n (change)=\"onEnter()\"\n (keydown.enter)=\"onEnter()\"\n (input)=\"checkClear($event)\"\n step=\"1\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n</div>\n","import { Component, effect, input, output } from '@angular/core';\nimport {\n DsvBaseFormReactiveComponent,\n DsvFormReactiveComponent,\n DsvFormReactiveInputComponent,\n} from '../../public-api';\n\n@Component({\n selector: 'dsv-form-reactive-searchbar',\n imports: [DsvFormReactiveComponent, DsvFormReactiveInputComponent],\n templateUrl: './form-reactive-searchbar.component.html',\n styleUrls: ['./form-reactive-searchbar.component.scss'],\n})\nexport class DsvFormReactiveSearchbarComponent extends DsvBaseFormReactiveComponent {\n readonly search = input<string>('');\n readonly callbackSearch = output<string>();\n\n constructor() {\n super();\n effect(() => {\n this.form = this.formBuilder.group({\n search: [this.search()],\n });\n });\n }\n\n onSend(value: string): void {\n this.callbackSearch.emit(value);\n }\n}\n","<dsv-form-reactive\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-reactive-input\n [form]=\"form\"\n field=\"search\"\n type=\"search\"\n icon=\"icon ri-search-line\"\n [withLabel]=\"false\"\n (callbackSend)=\"onSend($event)\"\n />\n</dsv-form-reactive>\n","import { Component, input, output } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvFormReactiveErrorComponent } from '../../error/component/form-reactive-error.component';\nimport { DsvFormReactiveLabelComponent } from '../../label/component/form-reactive-label.component';\n\n@Component({\n selector: 'dsv-form-reactive-select',\n imports: [ReactiveFormsModule, DsvFormReactiveLabelComponent, DsvFormReactiveErrorComponent],\n templateUrl: './form-reactive-select.component.html',\n styleUrls: [\n '../../input/component/form-reactive-input.component.scss',\n './form-reactive-select.component.scss',\n ],\n})\nexport class FormReactiveSelectComponent {\n readonly form = input.required<FormGroup>();\n readonly field = input.required<string>();\n readonly withLabel = input<boolean>(true);\n\n readonly list = input<(ApiDto & { name: string })[]>([]);\n\n readonly callbackChange = output<string>();\n\n doChange(): void {\n this.callbackChange.emit(this.form().value[this.field()]);\n }\n}\n","<div [formGroup]=\"form()\">\n <dsv-form-reactive-label\n [label]=\"field()\"\n [field]=\"form().get(field())!\"\n [show]=\"withLabel()\"\n />\n <div>\n <select\n [id]=\"field()\"\n [formControlName]=\"field()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n [class.error]=\"form().get(field())?.touched && form().get(field())?.invalid\"\n >\n @for (list of list(); track list.id) {\n <option [value]=\"list.id\">\n {{ list.name }}\n </option>\n }\n </select>\n <dsv-form-reactive-error [field]=\"form().get(field())!\" />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -227,11 +227,11 @@ class DsvFormSignalSearchbarComponent extends DsvBaseFormSignalComponent {
|
|
|
227
227
|
this.callbackSearch.emit(value);
|
|
228
228
|
}
|
|
229
229
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormSignalSearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
230
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: DsvFormSignalSearchbarComponent, isStandalone: true, selector: "dsv-form-signal-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSearch: "callbackSearch" }, usesInheritance: true, ngImport: i0, template: "<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n", styles: [":host{display:flex;
|
|
230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: DsvFormSignalSearchbarComponent, isStandalone: true, selector: "dsv-form-signal-searchbar", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callbackSearch: "callbackSearch" }, usesInheritance: true, ngImport: i0, template: "<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n", styles: [":host{display:flex;-webkit-user-select:none;user-select:none}:host dsv-form-reactive-input,:host dsv-form-signal-input{--input-width: 100% !important}\n"], dependencies: [{ kind: "component", type: DsvFormSignalComponent, selector: "dsv-form-signal", inputs: ["form", "urlBack", "textValid", "formValid"], outputs: ["callbackBack", "callback"] }, { kind: "component", type: DsvFormSignalInputComponent, selector: "dsv-form-signal-input", inputs: ["type", "icon", "withError"] }] });
|
|
231
231
|
}
|
|
232
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvFormSignalSearchbarComponent, decorators: [{
|
|
233
233
|
type: Component,
|
|
234
|
-
args: [{ selector: 'dsv-form-signal-searchbar', imports: [DsvFormSignalComponent, DsvFormSignalInputComponent], template: "<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n", styles: [":host{display:flex;
|
|
234
|
+
args: [{ selector: 'dsv-form-signal-searchbar', imports: [DsvFormSignalComponent, DsvFormSignalInputComponent], template: "<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n", styles: [":host{display:flex;-webkit-user-select:none;user-select:none}:host dsv-form-reactive-input,:host dsv-form-signal-input{--input-width: 100% !important}\n"] }]
|
|
235
235
|
}], ctorParameters: () => [], propDecorators: { search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }], callbackSearch: [{ type: i0.Output, args: ["callbackSearch"] }] } });
|
|
236
236
|
|
|
237
237
|
class DsvFormSignalSelectComponent extends DsvBaseFormSignalInputComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-signal.mjs","sources":["../../../projects/ng-dsv/ds/form/signal/form/base/input/base-form-signal-input.component.ts","../../../projects/ng-dsv/ds/form/signal/label/component/form-signal-label.component.ts","../../../projects/ng-dsv/ds/form/signal/label/component/form-signal-label.component.html","../../../projects/ng-dsv/ds/form/signal/checkbox/component/form-signal-checkbox.component.ts","../../../projects/ng-dsv/ds/form/signal/checkbox/component/form-signal-checkbox.component.html","../../../projects/ng-dsv/ds/form/signal/error/component/form-signal-error.component.ts","../../../projects/ng-dsv/ds/form/signal/error/component/form-signal-error.component.html","../../../projects/ng-dsv/ds/form/signal/form/component/form-signal.component.ts","../../../projects/ng-dsv/ds/form/signal/form/component/form-signal.component.html","../../../projects/ng-dsv/ds/form/signal/input/component/form-signal-input.component.ts","../../../projects/ng-dsv/ds/form/signal/input/component/form-signal-input.component.html","../../../projects/ng-dsv/ds/form/signal/form/base/base-form-signal.component.ts","../../../projects/ng-dsv/ds/form/signal/searchbar/component/form-signal-searchbar.component.ts","../../../projects/ng-dsv/ds/form/signal/searchbar/component/form-signal-searchbar.component.html","../../../projects/ng-dsv/ds/form/signal/select/component/form-signal-select.component.ts","../../../projects/ng-dsv/ds/form/signal/select/component/form-signal-select.component.html","../../../projects/ng-dsv/ds/form/signal/utils/form-signal.utils.ts","../../../projects/ng-dsv/ds/form/signal/ng-vagabond-lab-ng-dsv-ds-form-signal.ts"],"sourcesContent":["import { Directive, effect, input, output, signal } from '@angular/core';\nimport { FieldTree } from '@angular/forms/signals';\n\n@Directive()\nexport abstract class DsvBaseFormSignalInputComponent<T> {\n readonly form = input.required<FieldTree<T, string | number>>();\n readonly fieldName = input.required<string>();\n readonly label = input<string>();\n readonly withLabel = input<boolean>(true);\n readonly placeholder = input<string>('');\n readonly required = input<boolean>(false);\n readonly debug = input<boolean>(false);\n\n readonly isError = signal<boolean>(false);\n\n readonly callbackSend = output<string>();\n readonly callbackChange = output<string>();\n\n constructor() {\n effect(() => {\n this.getSignal() &&\n this.isError.set(this.getSignal()().touched() && this.getSignal()().errors().length > 0);\n });\n }\n\n isTouched(): boolean {\n return this.getSignal()().touched() ?? false;\n }\n\n getSignal(): FieldTree<string, string | number> {\n return this.form()?.[this.fieldName() as keyof FieldTree<T, string | number>] as FieldTree<\n string,\n string | number\n >;\n }\n\n doOnSend(): void {\n this.getValue() && this.callbackSend.emit(this.getValue());\n }\n\n doChange(): void {\n this.callbackChange.emit(this.getValue());\n }\n\n protected getValue(): string {\n const signal = this.getSignal();\n if (signal) {\n const value = signal().value();\n this.debug() && console.log(signal, signal().errors(), value);\n return value;\n }\n return '';\n }\n}\n","import { Component, effect, input, signal } from '@angular/core';\nimport { FieldState } from '@angular/forms/signals';\n\n@Component({\n selector: 'dsv-form-signal-label',\n templateUrl: './form-signal-label.component.html',\n styleUrls: ['../../../reactive/label/component/form-reactive-label.component.scss'],\n})\nexport class DsvFormSignalLabelComponent<T> {\n readonly label = input.required<string>();\n readonly name = input.required<string>();\n readonly signal = input.required<FieldState<T>>();\n readonly show = input<boolean>(true);\n\n readonly isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isRequired.set(this.signal().required());\n });\n }\n}\n","@if (show()) {\n <label\n [for]=\"name()\"\n class=\"text\"\n [class.error]=\"signal().touched() && signal().errors().length! > 0\"\n >\n {{ label() }} {{ isRequired() ? '*' : '' }}\n </label>\n}\n","import { Component } from '@angular/core';\nimport { FieldTree, FormField } from '@angular/forms/signals';\nimport { DsvBaseFormSignalInputComponent } from '../../form/base/input/base-form-signal-input.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\n\n@Component({\n selector: 'dsv-form-signal-checkbox',\n imports: [FormField, DsvFormSignalLabelComponent],\n templateUrl: './form-signal-checkbox.component.html',\n styleUrls: [\n '../../../reactive/input/component/form-reactive-input.component.scss',\n '../../../reactive/checkbox/component/form-reactive-checkbox.component.scss',\n ],\n})\nexport class DsvFormSignalCheckboxComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n getBooleanSignal(): FieldTree<boolean, string | number> {\n return this.form()?.[this.fieldName() as keyof FieldTree<T, string | number>] as FieldTree<\n boolean,\n string | number\n >;\n }\n}\n","<div>\n @if (getSignal()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n [show]=\"withLabel()\"\n />\n <div>\n <input\n type=\"checkbox\"\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [formField]=\"getBooleanSignal()\"\n (change)=\"doChange()\"\n />\n </div>\n }\n</div>\n","import { Component, effect, input, signal } from '@angular/core';\nimport { ValidationError } from '@angular/forms/signals';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-signal-error',\n imports: [TranslatePipe],\n templateUrl: './form-signal-error.component.html',\n styleUrls: ['../../../reactive/error/component/form-reactive-error.component.scss'],\n host: {\n class: 'text error',\n },\n})\nexport class FormSignalErrorComponent {\n errors = input.required<ValidationError[]>();\n isTouched = input<boolean>(false);\n\n error = signal<string>('');\n\n constructor() {\n effect(() => {\n let errorMessage = '';\n this.errors().forEach((error) => {\n switch (error.kind) {\n case 'required':\n errorMessage = 'Le champ est obligatoire.';\n break;\n case 'min':\n errorMessage =\n 'La valeur minimum est de ' + error['min' as keyof ValidationError] + '.';\n break;\n case 'max':\n errorMessage =\n 'La valeur maximum est de ' + error['max' as keyof ValidationError] + '.';\n break;\n case 'minLength':\n errorMessage =\n 'La taille minimum est de ' + error['minLength' as keyof ValidationError] + '.';\n break;\n case 'maxLength':\n errorMessage =\n 'La taille maximum est de ' + error['maxLength' as keyof ValidationError] + '.';\n break;\n case 'email':\n errorMessage = \"Le format n'est pas celui d'un email.\";\n break;\n default:\n errorMessage = error.message ?? 'Erreur inconnue.';\n break;\n }\n });\n this.error.set(errorMessage);\n });\n }\n}\n","@if (errors().length > 0 && isTouched()) {\n @if (error() !== '') {\n <div>{{ error() | translate }}</div>\n }\n}\n","import { Component, computed, inject, input, output } from '@angular/core';\nimport { FieldTree, submit } from '@angular/forms/signals';\nimport { RouterLink } from '@angular/router';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-signal',\n imports: [DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form-signal.component.html',\n styleUrl: '../../../reactive/form/component/form-reactive.component.scss',\n})\nexport class DsvFormSignalComponent<T> {\n readonly toastService = inject(ToastService);\n\n readonly form = input.required<FieldTree<T, string | number>>();\n\n readonly urlBack = input<string>();\n readonly textValid = input<string>('ENREGISTRER');\n readonly formValid = input<string>('');\n\n readonly callbackBack = output<void>();\n readonly callback = output<ApiDto>();\n\n readonly isCallbackBack = computed<boolean>(() => isCallback(this.callbackBack));\n\n onSubmit(event: Event): void {\n event.preventDefault();\n submit(this.form(), async (form) => {\n if (form().valid()) {\n this.callback.emit(form().value() as ApiDto);\n if (this.formValid() !== '') {\n this.toastService.showToast({\n text: this.formValid(),\n });\n }\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error',\n });\n }\n });\n }\n}\n","<form (submit)=\"onSubmit($event)\" novalidate>\n <div class=\"form-scroll\">\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\">\n @if (urlBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" [routerLink]=\"urlBack()\" [prevent]=\"false\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (isCallbackBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" (callback)=\"callbackBack.emit()\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (textValid() && textValid() !== '') {\n <dsv-button type=\"submit\" color=\"secondary\">{{ textValid()! | translate }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input } from '@angular/core';\nimport { FormField } from '@angular/forms/signals';\nimport { INPUT_TYPE } from '@ng-vagabond-lab/ng-dsv/type';\nimport { FormSignalErrorComponent } from '../../error/component/form-signal-error.component';\nimport { DsvBaseFormSignalInputComponent } from '../../form/base/input/base-form-signal-input.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\n\n@Component({\n selector: 'dsv-form-signal-input',\n imports: [FormField, DsvFormSignalLabelComponent, FormSignalErrorComponent],\n templateUrl: './form-signal-input.component.html',\n styleUrl: '../../../reactive/input/component/form-reactive-input.component.scss',\n})\nexport class DsvFormSignalInputComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n readonly type = input<INPUT_TYPE>('text');\n readonly icon = input<string>();\n readonly withError = input<boolean>(true);\n}\n","<div>\n @if (getSignal()) {\n @if (withLabel()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"fieldName()\"\n [formField]=\"getSignal()\"\n [placeholder]=\"placeholder()\"\n class=\"form-control\"\n ></textarea>\n } @else {\n <input\n #input\n [type]=\"type()\"\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [formField]=\"getSignal()\"\n [placeholder]=\"placeholder()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (change)=\"doChange()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (withError()) {\n <dsv-form-signal-error [errors]=\"getSignal()().errors()\" [isTouched]=\"isTouched()\" />\n }\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive()\nexport abstract class DsvBaseFormSignalComponent {}\n","import { Component, effect, input, output, signal } from '@angular/core';\nimport { form } from '@angular/forms/signals';\nimport { DsvBaseFormSignalComponent } from '../../form/base/base-form-signal.component';\nimport { DsvFormSignalComponent, DsvFormSignalInputComponent } from '../../public-api';\n\n@Component({\n selector: 'dsv-form-signal-searchbar',\n imports: [DsvFormSignalComponent, DsvFormSignalInputComponent],\n templateUrl: './form-signal-searchbar.component.html',\n styleUrls: ['../../../reactive/searchbar/component/form-reactive-searchbar.component.scss'],\n})\nexport class DsvFormSignalSearchbarComponent extends DsvBaseFormSignalComponent {\n readonly search = input<string>('');\n readonly callbackSearch = output<string>();\n\n readonly form = form(signal({ search: this.search() }));\n\n constructor() {\n super();\n effect(() => {\n this.form().reset({ search: this.search() });\n });\n }\n\n onSend(value: string): void {\n this.callbackSearch.emit(value);\n }\n}\n","<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n","import { Component, input } from '@angular/core';\nimport { FormField } from '@angular/forms/signals';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { FormSignalErrorComponent } from '../../error/component/form-signal-error.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\nimport { DsvBaseFormSignalInputComponent } from '../../public-api';\n\n@Component({\n selector: 'dsv-form-signal-select',\n imports: [FormField, DsvFormSignalLabelComponent, FormSignalErrorComponent],\n templateUrl: './form-signal-select.component.html',\n styleUrls: [\n '../../../reactive/input/component/form-reactive-input.component.scss',\n '../../../reactive/select/component/form-reactive-select.component.scss',\n ],\n})\nexport class DsvFormSignalSelectComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n readonly multiple = input<boolean>(false);\n readonly list = input<(ApiDto & { name: string })[]>([]);\n}\n","<div>\n @if (getSignal()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n [show]=\"withLabel()\"\n />\n <div class=\"flex-column\">\n <select\n [id]=\"fieldName()\"\n [formField]=\"getSignal()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n [class.error]=\"isError()\"\n [multiple]=\"multiple()\"\n >\n @for (list of list(); track list.id) {\n <option\n [value]=\"list.id\"\n [selected]=\"list.id?.toString() === getSignal()().value().toString()\"\n >\n {{ list.name }}\n </option>\n }\n </select>\n <dsv-form-signal-error [errors]=\"getSignal()().errors()\" [isTouched]=\"isTouched()\" />\n </div>\n }\n</div>\n","import { ChildFieldContext } from '@angular/forms/signals';\n\nexport const requiredTrim = (value: ChildFieldContext<string>): { kind: 'required' } | null =>\n value.value().trim() === '' ? { kind: 'required' } : null;\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-form-signal.mjs","sources":["../../../projects/ng-dsv/ds/form/signal/form/base/input/base-form-signal-input.component.ts","../../../projects/ng-dsv/ds/form/signal/label/component/form-signal-label.component.ts","../../../projects/ng-dsv/ds/form/signal/label/component/form-signal-label.component.html","../../../projects/ng-dsv/ds/form/signal/checkbox/component/form-signal-checkbox.component.ts","../../../projects/ng-dsv/ds/form/signal/checkbox/component/form-signal-checkbox.component.html","../../../projects/ng-dsv/ds/form/signal/error/component/form-signal-error.component.ts","../../../projects/ng-dsv/ds/form/signal/error/component/form-signal-error.component.html","../../../projects/ng-dsv/ds/form/signal/form/component/form-signal.component.ts","../../../projects/ng-dsv/ds/form/signal/form/component/form-signal.component.html","../../../projects/ng-dsv/ds/form/signal/input/component/form-signal-input.component.ts","../../../projects/ng-dsv/ds/form/signal/input/component/form-signal-input.component.html","../../../projects/ng-dsv/ds/form/signal/form/base/base-form-signal.component.ts","../../../projects/ng-dsv/ds/form/signal/searchbar/component/form-signal-searchbar.component.ts","../../../projects/ng-dsv/ds/form/signal/searchbar/component/form-signal-searchbar.component.html","../../../projects/ng-dsv/ds/form/signal/select/component/form-signal-select.component.ts","../../../projects/ng-dsv/ds/form/signal/select/component/form-signal-select.component.html","../../../projects/ng-dsv/ds/form/signal/utils/form-signal.utils.ts","../../../projects/ng-dsv/ds/form/signal/ng-vagabond-lab-ng-dsv-ds-form-signal.ts"],"sourcesContent":["import { Directive, effect, input, output, signal } from '@angular/core';\nimport { FieldTree } from '@angular/forms/signals';\n\n@Directive()\nexport abstract class DsvBaseFormSignalInputComponent<T> {\n readonly form = input.required<FieldTree<T, string | number>>();\n readonly fieldName = input.required<string>();\n readonly label = input<string>();\n readonly withLabel = input<boolean>(true);\n readonly placeholder = input<string>('');\n readonly required = input<boolean>(false);\n readonly debug = input<boolean>(false);\n\n readonly isError = signal<boolean>(false);\n\n readonly callbackSend = output<string>();\n readonly callbackChange = output<string>();\n\n constructor() {\n effect(() => {\n this.getSignal() &&\n this.isError.set(this.getSignal()().touched() && this.getSignal()().errors().length > 0);\n });\n }\n\n isTouched(): boolean {\n return this.getSignal()().touched() ?? false;\n }\n\n getSignal(): FieldTree<string, string | number> {\n return this.form()?.[this.fieldName() as keyof FieldTree<T, string | number>] as FieldTree<\n string,\n string | number\n >;\n }\n\n doOnSend(): void {\n this.getValue() && this.callbackSend.emit(this.getValue());\n }\n\n doChange(): void {\n this.callbackChange.emit(this.getValue());\n }\n\n protected getValue(): string {\n const signal = this.getSignal();\n if (signal) {\n const value = signal().value();\n this.debug() && console.log(signal, signal().errors(), value);\n return value;\n }\n return '';\n }\n}\n","import { Component, effect, input, signal } from '@angular/core';\nimport { FieldState } from '@angular/forms/signals';\n\n@Component({\n selector: 'dsv-form-signal-label',\n templateUrl: './form-signal-label.component.html',\n styleUrls: ['../../../reactive/label/component/form-reactive-label.component.scss'],\n})\nexport class DsvFormSignalLabelComponent<T> {\n readonly label = input.required<string>();\n readonly name = input.required<string>();\n readonly signal = input.required<FieldState<T>>();\n readonly show = input<boolean>(true);\n\n readonly isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isRequired.set(this.signal().required());\n });\n }\n}\n","@if (show()) {\n <label\n [for]=\"name()\"\n class=\"text\"\n [class.error]=\"signal().touched() && signal().errors().length! > 0\"\n >\n {{ label() }} {{ isRequired() ? '*' : '' }}\n </label>\n}\n","import { Component } from '@angular/core';\nimport { FieldTree, FormField } from '@angular/forms/signals';\nimport { DsvBaseFormSignalInputComponent } from '../../form/base/input/base-form-signal-input.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\n\n@Component({\n selector: 'dsv-form-signal-checkbox',\n imports: [FormField, DsvFormSignalLabelComponent],\n templateUrl: './form-signal-checkbox.component.html',\n styleUrls: [\n '../../../reactive/input/component/form-reactive-input.component.scss',\n '../../../reactive/checkbox/component/form-reactive-checkbox.component.scss',\n ],\n})\nexport class DsvFormSignalCheckboxComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n getBooleanSignal(): FieldTree<boolean, string | number> {\n return this.form()?.[this.fieldName() as keyof FieldTree<T, string | number>] as FieldTree<\n boolean,\n string | number\n >;\n }\n}\n","<div>\n @if (getSignal()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n [show]=\"withLabel()\"\n />\n <div>\n <input\n type=\"checkbox\"\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [formField]=\"getBooleanSignal()\"\n (change)=\"doChange()\"\n />\n </div>\n }\n</div>\n","import { Component, effect, input, signal } from '@angular/core';\nimport { ValidationError } from '@angular/forms/signals';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-signal-error',\n imports: [TranslatePipe],\n templateUrl: './form-signal-error.component.html',\n styleUrls: ['../../../reactive/error/component/form-reactive-error.component.scss'],\n host: {\n class: 'text error',\n },\n})\nexport class FormSignalErrorComponent {\n errors = input.required<ValidationError[]>();\n isTouched = input<boolean>(false);\n\n error = signal<string>('');\n\n constructor() {\n effect(() => {\n let errorMessage = '';\n this.errors().forEach((error) => {\n switch (error.kind) {\n case 'required':\n errorMessage = 'Le champ est obligatoire.';\n break;\n case 'min':\n errorMessage =\n 'La valeur minimum est de ' + error['min' as keyof ValidationError] + '.';\n break;\n case 'max':\n errorMessage =\n 'La valeur maximum est de ' + error['max' as keyof ValidationError] + '.';\n break;\n case 'minLength':\n errorMessage =\n 'La taille minimum est de ' + error['minLength' as keyof ValidationError] + '.';\n break;\n case 'maxLength':\n errorMessage =\n 'La taille maximum est de ' + error['maxLength' as keyof ValidationError] + '.';\n break;\n case 'email':\n errorMessage = \"Le format n'est pas celui d'un email.\";\n break;\n default:\n errorMessage = error.message ?? 'Erreur inconnue.';\n break;\n }\n });\n this.error.set(errorMessage);\n });\n }\n}\n","@if (errors().length > 0 && isTouched()) {\n @if (error() !== '') {\n <div>{{ error() | translate }}</div>\n }\n}\n","import { Component, computed, inject, input, output } from '@angular/core';\nimport { FieldTree, submit } from '@angular/forms/signals';\nimport { RouterLink } from '@angular/router';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-form-signal',\n imports: [DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form-signal.component.html',\n styleUrl: '../../../reactive/form/component/form-reactive.component.scss',\n})\nexport class DsvFormSignalComponent<T> {\n readonly toastService = inject(ToastService);\n\n readonly form = input.required<FieldTree<T, string | number>>();\n\n readonly urlBack = input<string>();\n readonly textValid = input<string>('ENREGISTRER');\n readonly formValid = input<string>('');\n\n readonly callbackBack = output<void>();\n readonly callback = output<ApiDto>();\n\n readonly isCallbackBack = computed<boolean>(() => isCallback(this.callbackBack));\n\n onSubmit(event: Event): void {\n event.preventDefault();\n submit(this.form(), async (form) => {\n if (form().valid()) {\n this.callback.emit(form().value() as ApiDto);\n if (this.formValid() !== '') {\n this.toastService.showToast({\n text: this.formValid(),\n });\n }\n } else {\n this.toastService.showToast({\n text: 'Erreur dans le formulaire !',\n type: 'error',\n });\n }\n });\n }\n}\n","<form (submit)=\"onSubmit($event)\" novalidate>\n <div class=\"form-scroll\">\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\">\n @if (urlBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" [routerLink]=\"urlBack()\" [prevent]=\"false\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (isCallbackBack()) {\n <dsv-button color=\"default\" variant=\"outlined\" (callback)=\"callbackBack.emit()\">{{\n 'RETOUR' | translate\n }}</dsv-button>\n }\n @if (textValid() && textValid() !== '') {\n <dsv-button type=\"submit\" color=\"secondary\">{{ textValid()! | translate }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, input } from '@angular/core';\nimport { FormField } from '@angular/forms/signals';\nimport { INPUT_TYPE } from '@ng-vagabond-lab/ng-dsv/type';\nimport { FormSignalErrorComponent } from '../../error/component/form-signal-error.component';\nimport { DsvBaseFormSignalInputComponent } from '../../form/base/input/base-form-signal-input.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\n\n@Component({\n selector: 'dsv-form-signal-input',\n imports: [FormField, DsvFormSignalLabelComponent, FormSignalErrorComponent],\n templateUrl: './form-signal-input.component.html',\n styleUrl: '../../../reactive/input/component/form-reactive-input.component.scss',\n})\nexport class DsvFormSignalInputComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n readonly type = input<INPUT_TYPE>('text');\n readonly icon = input<string>();\n readonly withError = input<boolean>(true);\n}\n","<div>\n @if (getSignal()) {\n @if (withLabel()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n />\n }\n @if (type() === 'textarea') {\n <textarea\n [id]=\"fieldName()\"\n [formField]=\"getSignal()\"\n [placeholder]=\"placeholder()\"\n class=\"form-control\"\n ></textarea>\n } @else {\n <input\n #input\n [type]=\"type()\"\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [formField]=\"getSignal()\"\n [placeholder]=\"placeholder()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (change)=\"doChange()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (withError()) {\n <dsv-form-signal-error [errors]=\"getSignal()().errors()\" [isTouched]=\"isTouched()\" />\n }\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive()\nexport abstract class DsvBaseFormSignalComponent {}\n","import { Component, effect, input, output, signal } from '@angular/core';\nimport { form } from '@angular/forms/signals';\nimport { DsvBaseFormSignalComponent } from '../../form/base/base-form-signal.component';\nimport { DsvFormSignalComponent, DsvFormSignalInputComponent } from '../../public-api';\n\n@Component({\n selector: 'dsv-form-signal-searchbar',\n imports: [DsvFormSignalComponent, DsvFormSignalInputComponent],\n templateUrl: './form-signal-searchbar.component.html',\n styleUrls: ['../../../reactive/searchbar/component/form-reactive-searchbar.component.scss'],\n})\nexport class DsvFormSignalSearchbarComponent extends DsvBaseFormSignalComponent {\n readonly search = input<string>('');\n readonly callbackSearch = output<string>();\n\n readonly form = form(signal({ search: this.search() }));\n\n constructor() {\n super();\n effect(() => {\n this.form().reset({ search: this.search() });\n });\n }\n\n onSend(value: string): void {\n this.callbackSearch.emit(value);\n }\n}\n","<dsv-form-signal\n [form]=\"form\"\n textValid=\"\"\n>\n <dsv-form-signal-input\n [form]=\"form\"\n fieldName=\"search\"\n type=\"search\"\n [withLabel]=\"false\"\n (callbackChange)=\"onSend($event)\"\n (callbackSend)=\"onSend($event)\"\n icon=\"icon ri-search-line\"\n ></dsv-form-signal-input>\n</dsv-form-signal>\n","import { Component, input } from '@angular/core';\nimport { FormField } from '@angular/forms/signals';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { FormSignalErrorComponent } from '../../error/component/form-signal-error.component';\nimport { DsvFormSignalLabelComponent } from '../../label/component/form-signal-label.component';\nimport { DsvBaseFormSignalInputComponent } from '../../public-api';\n\n@Component({\n selector: 'dsv-form-signal-select',\n imports: [FormField, DsvFormSignalLabelComponent, FormSignalErrorComponent],\n templateUrl: './form-signal-select.component.html',\n styleUrls: [\n '../../../reactive/input/component/form-reactive-input.component.scss',\n '../../../reactive/select/component/form-reactive-select.component.scss',\n ],\n})\nexport class DsvFormSignalSelectComponent<T> extends DsvBaseFormSignalInputComponent<T> {\n readonly multiple = input<boolean>(false);\n readonly list = input<(ApiDto & { name: string })[]>([]);\n}\n","<div>\n @if (getSignal()) {\n <dsv-form-signal-label\n [name]=\"fieldName()\"\n [label]=\"label() ?? fieldName()\"\n [signal]=\"getSignal()()\"\n [show]=\"withLabel()\"\n />\n <div class=\"flex-column\">\n <select\n [id]=\"fieldName()\"\n [formField]=\"getSignal()\"\n class=\"form-control\"\n (change)=\"doChange()\"\n [class.error]=\"isError()\"\n [multiple]=\"multiple()\"\n >\n @for (list of list(); track list.id) {\n <option\n [value]=\"list.id\"\n [selected]=\"list.id?.toString() === getSignal()().value().toString()\"\n >\n {{ list.name }}\n </option>\n }\n </select>\n <dsv-form-signal-error [errors]=\"getSignal()().errors()\" [isTouched]=\"isTouched()\" />\n </div>\n }\n</div>\n","import { ChildFieldContext } from '@angular/forms/signals';\n\nexport const requiredTrim = (value: ChildFieldContext<string>): { kind: 'required' } | null =>\n value.value().trim() === '' ? { kind: 'required' } : null;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,11 @@ class DsvHeaderComponent {
|
|
|
18
18
|
this.menuService.toogleMenu();
|
|
19
19
|
}
|
|
20
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: DsvHeaderComponent, isStandalone: true, selector: "dsv-header", inputs: { img: { classPropertyName: "img", publicName: "img", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, withMenu: { classPropertyName: "withMenu", publicName: "withMenu", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;min-height:48px;padding:0 7px 0 3px;box-sizing:border-box;background-color:var(--background-card);color:var(--text);transition:box-shadow .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}:host .header-title{display:flex;gap:10px;align-items:center;flex:1}:host .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;gap:10px}:host .dsv-header-logo img{width:30px;height:30px;cursor:pointer}:host .dsv-header-logo span{font-weight:700;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvMenuButtonComponent, selector: "dsv-menu-button" }, { kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }] });
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: DsvHeaderComponent, isStandalone: true, selector: "dsv-header", inputs: { img: { classPropertyName: "img", publicName: "img", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, withMenu: { classPropertyName: "withMenu", publicName: "withMenu", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;min-height:48px;padding:0 7px 0 3px;box-sizing:border-box;background-color:var(--background-card);color:var(--text);transition:box-shadow .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border)}:host .header-title{display:flex;gap:10px;align-items:center;flex:1}:host .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;gap:10px}:host .dsv-header-logo img{width:30px;height:30px;cursor:pointer}:host .dsv-header-logo span{font-weight:700;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvMenuButtonComponent, selector: "dsv-menu-button" }, { kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }] });
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DsvHeaderComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
|
-
args: [{ selector: 'dsv-header', imports: [CommonModule, DsvMenuButtonComponent, RouterInternalPipe], template: "<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;min-height:48px;padding:0 7px 0 3px;box-sizing:border-box;background-color:var(--background-card);color:var(--text);transition:box-shadow .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}:host .header-title{display:flex;gap:10px;align-items:center;flex:1}:host .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;gap:10px}:host .dsv-header-logo img{width:30px;height:30px;cursor:pointer}:host .dsv-header-logo span{font-weight:700;cursor:pointer}\n"] }]
|
|
25
|
+
args: [{ selector: 'dsv-header', imports: [CommonModule, DsvMenuButtonComponent, RouterInternalPipe], template: "<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;min-height:48px;padding:0 7px 0 3px;box-sizing:border-box;background-color:var(--background-card);color:var(--text);transition:box-shadow .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border)}:host .header-title{display:flex;gap:10px;align-items:center;flex:1}:host .dsv-header-logo{display:flex;justify-content:flex-start;align-items:center;font-size:1.3rem;gap:10px}:host .dsv-header-logo img{width:30px;height:30px;cursor:pointer}:host .dsv-header-logo span{font-weight:700;cursor:pointer}\n"] }]
|
|
26
26
|
}], propDecorators: { img: [{ type: i0.Input, args: [{ isSignal: true, alias: "img", required: false }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: false }] }], withMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "withMenu", required: false }] }] } });
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-header.mjs","sources":["../../../projects/ng-dsv/ds/header/component/header.component.ts","../../../projects/ng-dsv/ds/header/component/header.component.html","../../../projects/ng-dsv/ds/header/ng-vagabond-lab-ng-dsv-ds-header.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { DsvMenuButtonComponent, MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'dsv-header',\n imports: [CommonModule, DsvMenuButtonComponent, RouterInternalPipe],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class DsvHeaderComponent {\n readonly menuService = inject(MenuService);\n\n readonly img = input<string>();\n readonly titleText = input<string>('');\n readonly withMenu = input<boolean>(true);\n\n readonly titleTextParts = computed<string[]>(() => this.titleText().split(' '));\n\n doToogleMenu(): void {\n this.menuService.toogleMenu();\n }\n}\n","<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAWa,kBAAkB,CAAA;AAClB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,GAAG,GAAG,KAAK;uFAAU;IACrB,SAAS,GAAG,KAAK,CAAS,EAAE;kFAAC;IAC7B,QAAQ,GAAG,KAAK,CAAU,IAAI;iFAAC;AAE/B,IAAA,cAAc,GAAG,QAAQ,CAAW,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;uFAAC;IAE/E,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;IACjC;uGAXS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ycCX/B,imBAmBA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-header.mjs","sources":["../../../projects/ng-dsv/ds/header/component/header.component.ts","../../../projects/ng-dsv/ds/header/component/header.component.html","../../../projects/ng-dsv/ds/header/ng-vagabond-lab-ng-dsv-ds-header.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { DsvMenuButtonComponent, MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'dsv-header',\n imports: [CommonModule, DsvMenuButtonComponent, RouterInternalPipe],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class DsvHeaderComponent {\n readonly menuService = inject(MenuService);\n\n readonly img = input<string>();\n readonly titleText = input<string>('');\n readonly withMenu = input<boolean>(true);\n\n readonly titleTextParts = computed<string[]>(() => this.titleText().split(' '));\n\n doToogleMenu(): void {\n this.menuService.toogleMenu();\n }\n}\n","<div class=\"header-title\">\n @if (withMenu()) {\n <dsv-menu-button />\n }\n <a href=\"/\" class=\"dsv-header-logo\" dsvLink>\n @if (img()) {\n <img src=\"{{ img() }}\" alt=\"logo\" />\n }\n <div>\n @for (titleText of titleTextParts(); track titleText; let index = $index) {\n <span class=\"title-{{ index }}\">{{ titleText }}</span>\n @if (index < titleTextParts().length - 1) {\n <span> </span>\n }\n }\n </div>\n </a>\n</div>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAWa,kBAAkB,CAAA;AAClB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,GAAG,GAAG,KAAK;uFAAU;IACrB,SAAS,GAAG,KAAK,CAAS,EAAE;kFAAC;IAC7B,QAAQ,GAAG,KAAK,CAAU,IAAI;iFAAC;AAE/B,IAAA,cAAc,GAAG,QAAQ,CAAW,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;uFAAC;IAE/E,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;IACjC;uGAXS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ycCX/B,imBAmBA,EAAA,MAAA,EAAA,CAAA,moBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDZc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,4DAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIzD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,CAAC,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,imBAAA,EAAA,MAAA,EAAA,CAAA,moBAAA,CAAA,EAAA;;;AEPvE;;AAEG;;;;"}
|