@ng-vagabond-lab/ng-dsv 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,4 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, ElementRef } from '@angular/core';
3
2
  import * as _angular_forms_signals from '@angular/forms/signals';
4
3
  import { FieldTree } from '@angular/forms/signals';
5
4
  import { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';
@@ -32,13 +31,20 @@ declare class FormSignalComponent {
32
31
  }
33
32
 
34
33
  type INPUT_TYPE = "text" | "password" | "textarea" | "email" | "number" | "date" | "time" | "datetime-local" | "month" | "week" | "url" | "search" | "tel" | "color" | "range" | "file" | "hidden";
35
- declare class FormSignalInputComponent extends FormSignalInputBase implements AfterViewInit {
36
- input: ElementRef<HTMLInputElement>;
34
+ declare class FormSignalInputComponent {
37
35
  type: _angular_core.InputSignal<string>;
38
36
  icon: _angular_core.InputSignal<string | undefined>;
39
- ngAfterViewInit(): void;
37
+ form: _angular_core.InputSignal<() => _angular_forms_signals.FieldState<any, string | number>>;
38
+ fieldName: _angular_core.InputSignal<string>;
39
+ withLabel: _angular_core.InputSignal<boolean>;
40
+ required: _angular_core.InputSignal<boolean>;
41
+ isError: _angular_core.WritableSignal<boolean>;
42
+ onSend: _angular_core.OutputEmitterRef<string>;
43
+ constructor();
44
+ getSignal(): FieldTree<any, string | number>;
45
+ doOnSend(): void;
40
46
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormSignalInputComponent, never>;
41
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormSignalInputComponent, "dsv-form-signal-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
47
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormSignalInputComponent, "dsv-form-signal-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": true; "isSignal": true; }; "fieldName": { "alias": "fieldName"; "required": true; "isSignal": true; }; "withLabel": { "alias": "withLabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "onSend": "onSend"; }, never, never, true, never>;
42
48
  }
43
49
 
44
50
  declare class FormSignalLabelComponent<T> {
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, signal, output, effect, Component, inject, HostBinding, ViewChild } from '@angular/core';
2
+ import { input, signal, output, effect, Component, inject, HostBinding } from '@angular/core';
3
3
  import { submit, Field } from '@angular/forms/signals';
4
4
  import { RouterLink } from '@angular/router';
5
5
  import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
@@ -91,15 +91,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.1", ng
91
91
  args: ['class']
92
92
  }] } });
93
93
 
94
- class FormSignalInputComponent extends FormSignalInputBase {
95
- input;
94
+ class FormSignalInputComponent {
96
95
  type = input('text', ...(ngDevMode ? [{ debugName: "type" }] : []));
97
96
  icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
98
- ngAfterViewInit() {
99
- this.input.nativeElement.type = this.type();
97
+ form = input.required(...(ngDevMode ? [{ debugName: "form" }] : []));
98
+ fieldName = input.required(...(ngDevMode ? [{ debugName: "fieldName" }] : []));
99
+ withLabel = input(true, ...(ngDevMode ? [{ debugName: "withLabel" }] : []));
100
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
101
+ isError = signal(false, ...(ngDevMode ? [{ debugName: "isError" }] : []));
102
+ onSend = output();
103
+ constructor() {
104
+ effect(() => {
105
+ this.isError.set(this.getSignal()?.().errors().length > 0);
106
+ });
107
+ }
108
+ getSignal() {
109
+ return this.form()?.[this.fieldName()];
110
+ }
111
+ doOnSend() {
112
+ const signal = this.getSignal();
113
+ if (signal) {
114
+ const value = signal().value();
115
+ console.log(signal, signal().errors(), value);
116
+ this.onSend.emit(value);
117
+ }
100
118
  }
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.1", ngImport: i0, type: FormSignalInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-rc.1", type: FormSignalInputComponent, isStandalone: true, selector: "dsv-form-signal-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n @if (withLabel()) {\n <dsv-form-signal-label [label]=\"fieldName()\" [fieldName]=\"getSignal()\" />\n }\n @if (type() === \"textarea\") {\n <textarea\n [id]=\"fieldName()\"\n [field]=\"getSignal()\"\n class=\"form-control\"\n ></textarea>\n } @else if (getSignal()) {\n <!-- [type]=\"type()\" -->\n <input\n #input\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [field]=\"getSignal()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (getSignal()) {\n <dsv-signal-form-error [errors]=\"getSignal()().errors()\" />\n }\n</div>\n", styles: [":host{width:100%}:host>div{display:flex;flex-direction:column;position:relative}:host>div .form-control{font-family:inherit;display:block;width:calc(100% - 20px);margin:0;padding:6px 6px 6px 10px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d}: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:1000;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;min-height:90px}::ng-deep .dark .form-control{color-scheme:dark;background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n"], dependencies: [{ kind: "directive", type: Field, selector: "[field]", inputs: ["field"] }, { kind: "component", type: FormSignalLabelComponent, selector: "dsv-form-signal-label", inputs: ["label", "show", "fieldName"] }, { kind: "component", type: FormSignalErrorComponent, selector: "dsv-signal-form-error", inputs: ["errors"] }] });
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.1", ngImport: i0, type: FormSignalInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-rc.1", type: FormSignalInputComponent, isStandalone: true, selector: "dsv-form-signal-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, fieldName: { classPropertyName: "fieldName", publicName: "fieldName", isSignal: true, isRequired: true, transformFunction: null }, withLabel: { classPropertyName: "withLabel", publicName: "withLabel", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSend: "onSend" }, ngImport: i0, template: "<div>\n @if (withLabel()) {\n <dsv-form-signal-label [label]=\"fieldName()\" [fieldName]=\"getSignal()\" />\n }\n @if (type() === \"textarea\") {\n <textarea\n [id]=\"fieldName()\"\n [field]=\"getSignal()\"\n class=\"form-control\"\n ></textarea>\n } @else if (getSignal()) {\n <!-- [type]=\"type()\" -->\n <input\n #input\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [field]=\"getSignal()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (getSignal()) {\n <dsv-signal-form-error [errors]=\"getSignal()().errors()\" />\n }\n</div>\n", styles: [":host{width:100%}:host>div{display:flex;flex-direction:column;position:relative}:host>div .form-control{font-family:inherit;display:block;width:calc(100% - 20px);margin:0;padding:6px 6px 6px 10px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d}: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:1000;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;min-height:90px}::ng-deep .dark .form-control{color-scheme:dark;background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n"], dependencies: [{ kind: "directive", type: Field, selector: "[field]", inputs: ["field"] }, { kind: "component", type: FormSignalLabelComponent, selector: "dsv-form-signal-label", inputs: ["label", "show", "fieldName"] }, { kind: "component", type: FormSignalErrorComponent, selector: "dsv-signal-form-error", inputs: ["errors"] }] });
103
121
  }
104
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.1", ngImport: i0, type: FormSignalInputComponent, decorators: [{
105
123
  type: Component,
@@ -108,10 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.1", ng
108
126
  FormSignalLabelComponent,
109
127
  FormSignalErrorComponent
110
128
  ], template: "<div>\n @if (withLabel()) {\n <dsv-form-signal-label [label]=\"fieldName()\" [fieldName]=\"getSignal()\" />\n }\n @if (type() === \"textarea\") {\n <textarea\n [id]=\"fieldName()\"\n [field]=\"getSignal()\"\n class=\"form-control\"\n ></textarea>\n } @else if (getSignal()) {\n <!-- [type]=\"type()\" -->\n <input\n #input\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [field]=\"getSignal()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (getSignal()) {\n <dsv-signal-form-error [errors]=\"getSignal()().errors()\" />\n }\n</div>\n", styles: [":host{width:100%}:host>div{display:flex;flex-direction:column;position:relative}:host>div .form-control{font-family:inherit;display:block;width:calc(100% - 20px);margin:0;padding:6px 6px 6px 10px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:5px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;outline-color:#0000004d}: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:1000;top:10px;left:7px}:host>div textarea{overflow:auto;scrollbar-width:thin;resize:vertical}:host>div textarea.form-control{height:auto;min-height:90px}::ng-deep .dark .form-control{color-scheme:dark;background-color:var(--background-dark)!important;color:var(--text-dark)!important}\n"] }]
111
- }], propDecorators: { input: [{
112
- type: ViewChild,
113
- args: ['input']
114
- }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
129
+ }], ctorParameters: () => [], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: true }] }], fieldName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldName", required: true }] }], withLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "withLabel", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], onSend: [{ type: i0.Output, args: ["onSend"] }] } });
115
130
 
116
131
  class FormSignalLabelComponent {
117
132
  label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-signal.mjs","sources":["../../../projects/ng-dsv/ds/form/signal/base/form.signal.input.base.ts","../../../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/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/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/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/ng-vagabond-lab-ng-dsv-ds-form-signal.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from \"@angular/core\";\nimport { FieldTree } from \"@angular/forms/signals\";\n\n@Component({\n template: ``\n})\nexport abstract class FormSignalInputBase {\n form = input.required<FieldTree<any, string | number>>();\n fieldName = input.required<string>();\n withLabel = input<boolean>(true);\n required = input<boolean>(false);\n\n isError = signal<boolean>(false);\n\n onSend = output<string>();\n\n constructor() {\n effect(() => {\n this.isError.set(this.getSignal()?.().errors().length > 0);\n });\n }\n\n getSignal() {\n return this.form()?.[this.fieldName() as keyof FieldTree<any, string | number>] as FieldTree<any, string | number>;\n }\n\n doOnSend() {\n const signal = this.getSignal();\n if (signal) {\n const value = signal().value();\n console.log(signal, signal().errors(), value);\n this.onSend.emit(value as string);\n }\n }\n}\n","import { Component, 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 { 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: 'app-form-signal',\n imports: [DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form.signal.component.html',\n styleUrl: '../../../legacy/form/component/form.component.scss',\n})\nexport class FormSignalComponent {\n toastService = inject(ToastService);\n\n form = input.required<FieldTree<any, string | number>>();\n\n urlBack = input<string>();\n textValid = input<string>('ENREGISTRER');\n formValid = input<string>('Formulaire envoyé !');\n\n callback = output<ApiDto>();\n\n onSubmit(event: Event) {\n event.preventDefault();\n submit(this.form(), async (form) => {\n if (form().valid()) {\n console.log(form().value());\n this.toastService.showToast({\n text: this.formValid(),\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)\" class=\"form-container\">\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\" [class.hidden]=\"!(urlBack() && textValid() !== '')\">\n @if (urlBack()) {\n <dsv-button\n color=\"default\"\n variant=\"outlined\"\n [routerLink]=\"urlBack()\"\n [prevent]=\"false\"\n >{{ \"RETOUR\" | translate }}</dsv-button\n >\n }\n @if (textValid() && textValid() !== \"\") {\n <dsv-button type=\"submit\" color=\"primary\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, HostBinding, input } from \"@angular/core\";\nimport { ValidationErrorWithField } from \"@angular/forms/signals\";\nimport { TranslatePipe } from \"@ngx-translate/core\";\n\n@Component({\n selector: 'dsv-signal-form-error',\n imports: [TranslatePipe],\n templateUrl: './form.signal.error.component.html',\n styleUrls: ['../../../legacy/error/component/form.error.component.scss']\n})\nexport class FormSignalErrorComponent {\n errors = input.required<ValidationErrorWithField[]>();\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes: string[] = ['text', 'error'];\n return classes.join(' ');\n }\n\n isRequired() {\n return this.errors().some(error => error.kind === 'required');\n }\n}","@if (errors().length > 0) {\n @if (isRequired()) {\n <div>{{ \"Le champ est obligatoire.\" | translate }}</div>\n }\n}\n","import { AfterViewInit, Component, ElementRef, input, ViewChild } from '@angular/core';\nimport { Field } from '@angular/forms/signals';\nimport { FormSignalInputBase } from '../../base/form.signal.input.base';\nimport { FormSignalErrorComponent } from '../../error/component/form.signal.error.component';\nimport { FormSignalLabelComponent } from '../../public-api';\n\nexport type INPUT_TYPE = \"text\" | \"password\" | \"textarea\" | \"email\" | \"number\" | \"date\" | \"time\" | \"datetime-local\" |\n \"month\" | \"week\" | \"url\" | \"search\" | \"tel\" | \"color\" | \"range\" | \"file\" | \"hidden\";\n\n@Component({\n selector: 'dsv-form-signal-input',\n imports: [\n Field,\n FormSignalLabelComponent,\n FormSignalErrorComponent\n ],\n templateUrl: './form.signal.input.component.html',\n styleUrl: '../../../legacy/input/component/form.input.component.scss',\n})\nexport class FormSignalInputComponent extends FormSignalInputBase implements AfterViewInit {\n @ViewChild('input')\n input!: ElementRef<HTMLInputElement>;\n\n type = input<string>('text');\n icon = input<string>();\n\n ngAfterViewInit() {\n this.input.nativeElement.type = this.type();\n }\n\n}\n","<div>\n @if (withLabel()) {\n <dsv-form-signal-label [label]=\"fieldName()\" [fieldName]=\"getSignal()\" />\n }\n @if (type() === \"textarea\") {\n <textarea\n [id]=\"fieldName()\"\n [field]=\"getSignal()\"\n class=\"form-control\"\n ></textarea>\n } @else if (getSignal()) {\n <!-- [type]=\"type()\" -->\n <input\n #input\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [field]=\"getSignal()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (getSignal()) {\n <dsv-signal-form-error [errors]=\"getSignal()().errors()\" />\n }\n</div>\n","import { Component, effect, input, signal } from \"@angular/core\";\nimport { FieldTree } from \"@angular/forms/signals\";\n\n@Component({\n selector: 'dsv-form-signal-label',\n templateUrl: './form.signal.label.component.html',\n styleUrls: ['../../../legacy/label/component/form.label.component.scss'],\n})\nexport class FormSignalLabelComponent<T> {\n label = input.required<string>();\n show = input<boolean>(true);\n fieldName = input<FieldTree<T, string | number>>();\n\n isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n //this.isRequired.set(this.field()?.hasValidator?.(Validators.required) ?? false);\n })\n }\n}","@if (show()) {\n <label\n [for]=\"label()\"\n class=\"text\"\n [class.error]=\"fieldName()?.()?.errors()?.length! > 0\"\n >\n {{ label() }} {{ isRequired() ? \"*\" : \"\" }}\n </label>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-form-signal.mjs","sources":["../../../projects/ng-dsv/ds/form/signal/base/form.signal.input.base.ts","../../../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/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/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/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/ng-vagabond-lab-ng-dsv-ds-form-signal.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from \"@angular/core\";\nimport { FieldTree } from \"@angular/forms/signals\";\n\n@Component({\n template: ``\n})\nexport abstract class FormSignalInputBase {\n form = input.required<FieldTree<any, string | number>>();\n fieldName = input.required<string>();\n withLabel = input<boolean>(true);\n required = input<boolean>(false);\n\n isError = signal<boolean>(false);\n\n onSend = output<string>();\n\n constructor() {\n effect(() => {\n this.isError.set(this.getSignal()?.().errors().length > 0);\n });\n }\n\n getSignal() {\n return this.form()?.[this.fieldName() as keyof FieldTree<any, string | number>] as FieldTree<any, string | number>;\n }\n\n doOnSend() {\n const signal = this.getSignal();\n if (signal) {\n const value = signal().value();\n console.log(signal, signal().errors(), value);\n this.onSend.emit(value as string);\n }\n }\n}\n","import { Component, 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 { 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: 'app-form-signal',\n imports: [DsvButtonComponent, RouterLink, TranslatePipe],\n templateUrl: './form.signal.component.html',\n styleUrl: '../../../legacy/form/component/form.component.scss',\n})\nexport class FormSignalComponent {\n toastService = inject(ToastService);\n\n form = input.required<FieldTree<any, string | number>>();\n\n urlBack = input<string>();\n textValid = input<string>('ENREGISTRER');\n formValid = input<string>('Formulaire envoyé !');\n\n callback = output<ApiDto>();\n\n onSubmit(event: Event) {\n event.preventDefault();\n submit(this.form(), async (form) => {\n if (form().valid()) {\n console.log(form().value());\n this.toastService.showToast({\n text: this.formValid(),\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)\" class=\"form-container\">\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"form-buttons\" [class.hidden]=\"!(urlBack() && textValid() !== '')\">\n @if (urlBack()) {\n <dsv-button\n color=\"default\"\n variant=\"outlined\"\n [routerLink]=\"urlBack()\"\n [prevent]=\"false\"\n >{{ \"RETOUR\" | translate }}</dsv-button\n >\n }\n @if (textValid() && textValid() !== \"\") {\n <dsv-button type=\"submit\" color=\"primary\">{{\n textValid()! | translate\n }}</dsv-button>\n }\n </div>\n</form>\n","import { Component, HostBinding, input } from \"@angular/core\";\nimport { ValidationErrorWithField } from \"@angular/forms/signals\";\nimport { TranslatePipe } from \"@ngx-translate/core\";\n\n@Component({\n selector: 'dsv-signal-form-error',\n imports: [TranslatePipe],\n templateUrl: './form.signal.error.component.html',\n styleUrls: ['../../../legacy/error/component/form.error.component.scss']\n})\nexport class FormSignalErrorComponent {\n errors = input.required<ValidationErrorWithField[]>();\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes: string[] = ['text', 'error'];\n return classes.join(' ');\n }\n\n isRequired() {\n return this.errors().some(error => error.kind === 'required');\n }\n}","@if (errors().length > 0) {\n @if (isRequired()) {\n <div>{{ \"Le champ est obligatoire.\" | translate }}</div>\n }\n}\n","import { Component, effect, input, output, signal } from '@angular/core';\nimport { Field, FieldTree } from '@angular/forms/signals';\nimport { FormSignalErrorComponent } from '../../error/component/form.signal.error.component';\nimport { FormSignalLabelComponent } from '../../public-api';\n\nexport type INPUT_TYPE = \"text\" | \"password\" | \"textarea\" | \"email\" | \"number\" | \"date\" | \"time\" | \"datetime-local\" |\n \"month\" | \"week\" | \"url\" | \"search\" | \"tel\" | \"color\" | \"range\" | \"file\" | \"hidden\";\n\n@Component({\n selector: 'dsv-form-signal-input',\n imports: [\n Field,\n FormSignalLabelComponent,\n FormSignalErrorComponent\n ],\n templateUrl: './form.signal.input.component.html',\n styleUrl: '../../../legacy/input/component/form.input.component.scss',\n})\nexport class FormSignalInputComponent {\n\n type = input<string>('text');\n icon = input<string>();\n\n form = input.required<FieldTree<any, string | number>>();\n fieldName = input.required<string>();\n withLabel = input<boolean>(true);\n required = input<boolean>(false);\n\n isError = signal<boolean>(false);\n\n onSend = output<string>();\n\n constructor() {\n effect(() => {\n this.isError.set(this.getSignal()?.().errors().length > 0);\n });\n }\n\n getSignal() {\n return this.form()?.[this.fieldName() as keyof FieldTree<any, string | number>] as FieldTree<any, string | number>;\n }\n\n doOnSend() {\n const signal = this.getSignal();\n if (signal) {\n const value = signal().value();\n console.log(signal, signal().errors(), value);\n this.onSend.emit(value as string);\n }\n }\n\n}\n","<div>\n @if (withLabel()) {\n <dsv-form-signal-label [label]=\"fieldName()\" [fieldName]=\"getSignal()\" />\n }\n @if (type() === \"textarea\") {\n <textarea\n [id]=\"fieldName()\"\n [field]=\"getSignal()\"\n class=\"form-control\"\n ></textarea>\n } @else if (getSignal()) {\n <!-- [type]=\"type()\" -->\n <input\n #input\n [id]=\"fieldName()\"\n class=\"form-control\"\n [class.error]=\"isError()\"\n [field]=\"getSignal()\"\n [class.icon]=\"icon()\"\n (blur)=\"doOnSend()\"\n (keydown.enter)=\"doOnSend()\"\n />\n }\n @if (icon()) {\n <i [class]=\"icon()\"></i>\n }\n @if (getSignal()) {\n <dsv-signal-form-error [errors]=\"getSignal()().errors()\" />\n }\n</div>\n","import { Component, effect, input, signal } from \"@angular/core\";\nimport { FieldTree } from \"@angular/forms/signals\";\n\n@Component({\n selector: 'dsv-form-signal-label',\n templateUrl: './form.signal.label.component.html',\n styleUrls: ['../../../legacy/label/component/form.label.component.scss'],\n})\nexport class FormSignalLabelComponent<T> {\n label = input.required<string>();\n show = input<boolean>(true);\n fieldName = input<FieldTree<T, string | number>>();\n\n isRequired = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n //this.isRequired.set(this.field()?.hasValidator?.(Validators.required) ?? false);\n })\n }\n}","@if (show()) {\n <label\n [for]=\"label()\"\n class=\"text\"\n [class.error]=\"fieldName()?.()?.errors()?.length! > 0\"\n >\n {{ label() }} {{ isRequired() ? \"*\" : \"\" }}\n </label>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-vagabond-lab/ng-dsv",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.0.0",
6
6
  "@angular/core": "^20.0.0"
@@ -55,14 +55,14 @@
55
55
  "types": "./ds/avatar/index.d.ts",
56
56
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs"
57
57
  },
58
- "./ds/card": {
59
- "types": "./ds/card/index.d.ts",
60
- "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs"
61
- },
62
58
  "./ds/button": {
63
59
  "types": "./ds/button/index.d.ts",
64
60
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs"
65
61
  },
62
+ "./ds/card": {
63
+ "types": "./ds/card/index.d.ts",
64
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs"
65
+ },
66
66
  "./ds/chip": {
67
67
  "types": "./ds/chip/index.d.ts",
68
68
  "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs"