From a9451fec66c1e77e3c850655ef91d7da9f42eff3 Mon Sep 17 00:00:00 2001 From: Syed Ameen Date: Thu, 11 Jul 2024 14:40:29 +0530 Subject: [PATCH 1/5] event emitter for dynamic select --- .../main-form/main-form.component.html | 36 +++++++++++++------ .../main-form/main-form.component.ts | 18 ++++++++-- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html index e082ef7..cf476b0 100644 --- a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html +++ b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html @@ -38,16 +38,32 @@ {{ control?.label }} - - {{ option.label }} - - + [value]="control?.value" + [placeholder]="control?.placeHolder" + [formControlName]="control?.name" + [required]="control?.validators?.required" + [compareWith]="compareWith" + (selectionChange)="onSelectChange($event, control)" + (focus)="onSelectFocus(control?.name)" + *ngIf="shouldEmitEvents()" + > + + {{ option.label }} + + + + + {{ option.label }} + + + diff --git a/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts b/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts index 8d6071d..a607d21 100644 --- a/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts +++ b/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts @@ -1,4 +1,4 @@ -import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { ThemePalette } from '@angular/material/core'; import { MatDatepicker } from '@angular/material/datepicker'; @@ -63,9 +63,12 @@ export interface DynamicFormData { export class MainFormComponent implements OnInit { @Input() formJson: any; @Input() classFlex: any ; + @Output() onChange = new EventEmitter<{ event: any, control: any }>(); + @Output() onFocus = new EventEmitter(); + myForm: FormGroup = this.fb.group({}); resources:any; - @ViewChild('subform') subform: MainFormComponent | undefined + @ViewChild('subform') subform: MainFormComponent | undefined; public showSpinners = true; public showSeconds = false; @@ -202,4 +205,15 @@ constructor(private fb: FormBuilder,public dialog: MatDialog) {} }); } + onSelectChange(event: any, control: any) { + this.onChange.emit({event, control}); + } + + onSelectFocus(controlName: any) { + this.onFocus.emit(controlName); + } + + shouldEmitEvents(): boolean { + return this.onChange.length > 0 || this.onFocus.length > 0; + } } From e1093372d0c2993b2d7bca45baa21b5a047bb67f Mon Sep 17 00:00:00 2001 From: Syed Ameen Date: Tue, 3 Sep 2024 12:03:25 +0530 Subject: [PATCH 2/5] emit value for select data --- projects/dynamic-form/package.json | 4 ++-- .../main-form/main-form.component.html | 16 +--------------- .../components/main-form/main-form.component.ts | 4 ---- .../src/app/app.compnent.spec.data.ts | 12 +++++++++--- 4 files changed, 12 insertions(+), 24 deletions(-) diff --git a/projects/dynamic-form/package.json b/projects/dynamic-form/package.json index 0f1ec0a..bce3232 100644 --- a/projects/dynamic-form/package.json +++ b/projects/dynamic-form/package.json @@ -1,6 +1,6 @@ { - "name": "@elevate/dynamic-form", - "version": "0.0.1", + "name": "elevate-dynamic-form", + "version": "0.0.13", "peerDependencies": { "@angular/common": "^17.3.4", "@angular/core": "^17.3.4", diff --git a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html index cf476b0..f1f8e1a 100644 --- a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html +++ b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html @@ -44,21 +44,7 @@ [required]="control?.validators?.required" [compareWith]="compareWith" (selectionChange)="onSelectChange($event, control)" - (focus)="onSelectFocus(control?.name)" - *ngIf="shouldEmitEvents()" - > - - {{ option.label }} - - - + (focus)="onSelectFocus(control?.name)"> {{ option.label }} diff --git a/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts b/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts index a607d21..221fce1 100644 --- a/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts +++ b/projects/dynamic-form/src/lib/components/main-form/main-form.component.ts @@ -212,8 +212,4 @@ constructor(private fb: FormBuilder,public dialog: MatDialog) {} onSelectFocus(controlName: any) { this.onFocus.emit(controlName); } - - shouldEmitEvents(): boolean { - return this.onChange.length > 0 || this.onFocus.length > 0; - } } diff --git a/projects/form-demo-app/src/app/app.compnent.spec.data.ts b/projects/form-demo-app/src/app/app.compnent.spec.data.ts index 6b61ce7..ab9af59 100644 --- a/projects/form-demo-app/src/app/app.compnent.spec.data.ts +++ b/projects/form-demo-app/src/app/app.compnent.spec.data.ts @@ -87,7 +87,14 @@ export const sampleData = [ { "name": "recommended_for", "label": "Recommended for", - "value":"", + "value": [{ + "label": "Block education officer", + "value": "beo" + }, + { + "label": "Cluster officials", + "value": "co" + }], "type": "chip", "disabled": false, "errorMessage": { @@ -124,8 +131,7 @@ export const sampleData = [ "addNewPopupSubHeader": "Who is this session for?", "showSelectAll": true, "showAddOption": true - }, - "multiple": true + } }, { "name": "range_value", From 8648323df6774adaf39cf3f814131c519d867380 Mon Sep 17 00:00:00 2001 From: Syed Ameen Date: Fri, 17 Jan 2025 13:04:46 +0530 Subject: [PATCH 3/5] multi language selection transtation --- .../main-form/main-form.component.html | 54 +++++++++-------- .../main-form/main-form.component.ts | 1 + .../src/lib/dynamic-form.module.ts | 7 ++- .../lib/pipes/language-translate.pipe.spec.ts | 8 +++ .../src/lib/pipes/language-translate.pipe.ts | 22 +++++++ projects/dynamic-form/src/public-api.ts | 3 +- .../src/app/app.compnent.spec.data.ts | 58 +++++++++---------- .../form-demo-app/src/app/app.component.html | 2 +- .../form-demo-app/src/app/app.component.ts | 3 +- 9 files changed, 93 insertions(+), 65 deletions(-) create mode 100644 projects/dynamic-form/src/lib/pipes/language-translate.pipe.spec.ts create mode 100644 projects/dynamic-form/src/lib/pipes/language-translate.pipe.ts diff --git a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html index f1f8e1a..e841ee6 100644 --- a/projects/dynamic-form/src/lib/components/main-form/main-form.component.html +++ b/projects/dynamic-form/src/lib/components/main-form/main-form.component.html @@ -4,10 +4,10 @@ *ngIf="control?.type === 'text' || control?.type === 'password'" floatLabel="always" > - {{ control?.label }} + {{ control?.label | languageTranslate: language }} - {{ control?.label }} + {{ control?.label | languageTranslate: language }}