@ruc-lib/metaform 3.1.0 → 3.2.0

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.
Files changed (31) hide show
  1. package/README.md +163 -1
  2. package/components/ruc-meta-checkbox-group/ruc-meta-checkbox-group.component.d.ts +18 -0
  3. package/components/ruc-meta-inputs/ruc-meta-inputs.component.d.ts +23 -0
  4. package/components/ruc-meta-radio-group/ruc-meta-radio-group.component.d.ts +20 -0
  5. package/components/ruc-meta-select/ruc-meta-select.component.d.ts +17 -0
  6. package/components/ruc-text-area/ruc-text-area.component.d.ts +19 -0
  7. package/esm2020/components/ruc-meta-checkbox-group/ruc-meta-checkbox-group.component.mjs +42 -0
  8. package/esm2020/components/ruc-meta-inputs/ruc-meta-inputs.component.mjs +54 -0
  9. package/esm2020/components/ruc-meta-radio-group/ruc-meta-radio-group.component.mjs +38 -0
  10. package/esm2020/components/ruc-meta-select/ruc-meta-select.component.mjs +56 -0
  11. package/esm2020/components/ruc-text-area/ruc-text-area.component.mjs +39 -0
  12. package/esm2020/index.mjs +3 -0
  13. package/esm2020/interfaces/metaFormsDefault.mjs +2 -0
  14. package/esm2020/lib/ruclib-metaform/ruclib-metaform.component.mjs +105 -0
  15. package/esm2020/lib/ruclib-metaform.module.mjs +100 -0
  16. package/esm2020/ruc-lib-metaform.mjs +5 -0
  17. package/esm2020/services/ruc-meta-form-validation.service.mjs +29 -0
  18. package/esm2020/services/ruc-meta-form.service.mjs +23 -0
  19. package/fesm2015/ruc-lib-metaform.mjs +432 -0
  20. package/fesm2015/ruc-lib-metaform.mjs.map +1 -0
  21. package/fesm2020/ruc-lib-metaform.mjs +432 -0
  22. package/fesm2020/ruc-lib-metaform.mjs.map +1 -0
  23. package/index.d.ts +2 -125
  24. package/interfaces/metaFormsDefault.d.ts +73 -0
  25. package/lib/ruclib-metaform/ruclib-metaform.component.d.ts +45 -0
  26. package/lib/ruclib-metaform.module.d.ts +27 -0
  27. package/package.json +36 -9
  28. package/services/ruc-meta-form-validation.service.d.ts +12 -0
  29. package/services/ruc-meta-form.service.d.ts +14 -0
  30. package/fesm2022/ruc-lib-metaform.mjs +0 -450
  31. package/fesm2022/ruc-lib-metaform.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruc-lib-metaform.mjs","sources":["../../src/services/ruc-meta-form-validation.service.ts","../../src/components/ruc-meta-inputs/ruc-meta-inputs.component.ts","../../src/components/ruc-meta-inputs/ruc-meta-inputs.component.html","../../src/components/ruc-meta-radio-group/ruc-meta-radio-group.component.ts","../../src/components/ruc-meta-radio-group/ruc-meta-radio-group.component.html","../../src/components/ruc-meta-checkbox-group/ruc-meta-checkbox-group.component.ts","../../src/components/ruc-meta-checkbox-group/ruc-meta-checkbox-group.component.html","../../src/services/ruc-meta-form.service.ts","../../src/components/ruc-meta-select/ruc-meta-select.component.ts","../../src/components/ruc-meta-select/ruc-meta-select.component.html","../../src/components/ruc-text-area/ruc-text-area.component.ts","../../src/components/ruc-text-area/ruc-text-area.component.html","../../src/lib/ruclib-metaform/ruclib-metaform.component.ts","../../src/lib/ruclib-metaform/ruclib-metaform.component.html","../../src/ruc-lib-metaform.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport {MetaFormConfig} from '../interfaces/metaFormsDefault';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RucMetaFormValidationService {\r\n\r\n public defaultErrorMessage = 'Invalid Input';\r\n\r\n constructor() { \r\n }\r\n\r\n nospaceValidator(formData:MetaFormConfig){\r\n const re = / /;\r\n if(formData.value.match(re)){\r\n return { nullTable: true }\r\n }else{\r\n return false;\r\n }\r\n }\r\n\r\n alphaNumericValidator(formData:MetaFormConfig){\r\n const re = '^[a-zA-Z0-9_]+$'\r\n return formData.value ? !formData.value.match(re) : false;\r\n }\r\n\r\n \r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { RucMetaFormValidationService } from '../../services/ruc-meta-form-validation.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\n\r\n@Component({\r\n selector: 'ruc-meta-inputs',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule,\r\n ],\r\n templateUrl: './ruc-meta-inputs.component.html',\r\n styleUrls: ['./ruc-meta-inputs.component.scss'],\r\n providers: [RucMetaFormValidationService]\r\n})\r\nexport class RucMetaInputsComponent implements OnInit {\r\n @Input() rucInputData: any;\r\n @Input() selectedParentId?: any;\r\n @Output() transferUserInput = new EventEmitter<any>();\r\n @Input() customTheme: string | undefined;\r\n errorMessage: string | undefined;\r\n options: string[] = [];\r\n filteredOptions: any;\r\n constructor(public validationService: RucMetaFormValidationService) {}\r\n\r\n ngOnInit(): void {\r\n this.errorMessage = this.validationService.defaultErrorMessage;\r\n this.rucInputData.value === undefined ? '' : this.rucInputData.value;\r\n this.options = this.rucInputData.autocomplete;\r\n }\r\n /**\r\n *\r\n * @param e\r\n */\r\n modelChangeFn(e: any) {\r\n const validate = this.validationService.alphaNumericValidator(\r\n this.rucInputData\r\n );\r\n this.rucInputData.errorMsg = validate;\r\n if (this.rucInputData.autocomplete) {\r\n this.filteredOptions = this._filter(this.rucInputData.value);\r\n }\r\n this.transferUserInput.emit(this.rucInputData);\r\n }\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n return this.options.filter((option) =>\r\n option.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n}\r\n","<mat-form-field class=\"{{customTheme }}\" [ngStyle]=\"{ 'width.%': rucInputData?.width }\" [appearance]=\"rucInputData?.appearance || 'fill'\">\r\n <mat-label>{{rucInputData?.label}}</mat-label>\r\n <input type=\"{{rucInputData?.inputType}}\" color=\"accent\" matInput placeholder=\"{{rucInputData?.placeholder}}\" [(ngModel)]=\"rucInputData.value\"\r\n (ngModelChange)=\"modelChangeFn($event.target)\" required=\"{{rucInputData?.required}}\" size=\"{{rucInputData?.size}}\"\r\n maxlength=\"{{rucInputData?.maxlength}}\" min=\"{{rucInputData?.min}}\" max=\"{{rucInputData?.max}}\" pattern=\"{{rucInputData?.pattern}}\"\r\n step=\"{{rucInputData?.step}}\" autofocus=\"{{rucInputData?.autofocus}}\" width=\"{{rucInputData?.width}}\" height=\"{{rucInputData?.height}}\"\r\n matTooltip=\"{{rucInputData?.tooltip}}\"\r\n [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"!rucInputData?.autocomplete\" [readonly]=\"rucInputData?.readonly\" [matTooltipPosition]=\"rucInputData?.tooltipPosition\"\r\n >\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n @for (option of filteredOptions; track option) {\r\n <mat-option [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n @if (rucInputData?.errorMsg) {\r\n <div class=\"form-error\">\r\n {{rucInputData?.customErrorMessage ? rucInputData?.customErrorMessage : errorMessage}}\r\n </div>\r\n }\r\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { RucMetaFormValidationService } from '../../services/ruc-meta-form-validation.service';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\n@Component({\r\n selector: 'ruc-meta-radio-group',\r\n imports: [\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule\r\n ],\r\n templateUrl: './ruc-meta-radio-group.component.html',\r\n styleUrls: ['./ruc-meta-radio-group.component.scss'],\r\n providers: [RucMetaFormValidationService]\r\n})\r\nexport class RucMetaRadioGroupComponent implements OnInit {\r\n @Input() rucInputData: any;\r\n @Input() customTheme: string | undefined;\r\n @Output() transferUserInput = new EventEmitter<any>();\r\n errorMessage: string | undefined;\r\n radioValue: string | undefined;\r\n constructor(public validationService: RucMetaFormValidationService) {}\r\n\r\n ngOnInit(): void {\r\n this.errorMessage = this.validationService.defaultErrorMessage;\r\n }\r\n /**\r\n *\r\n * @param e\r\n */\r\n modelChangeFn(e: any) {\r\n this.rucInputData.value = e.value;\r\n this.transferUserInput.emit(this.rucInputData);\r\n }\r\n}\r\n","<mat-label>{{rucInputData?.label}}</mat-label>\r\n<mat-radio-group\r\n aria-labelledby=\"radio-group-label\"\r\n class=\"{{customTheme}} radio-group\" [(ngModel)]=\"radioValue\">\r\n @for (item of rucInputData?.groupOptions; track item) {\r\n <mat-radio-button class=\"radio-button\" [value]=\"item.value\"\r\n (change)=\"modelChangeFn($event)\">\r\n {{item?.name}}\r\n </mat-radio-button>\r\n }\r\n</mat-radio-group>\r\n@if (rucInputData?.errorMsg) {\r\n <div class=\"form-error\">\r\n {{rucInputData?.customErrorMessage ? rucInputData?.customErrorMessage : errorMessage}}\r\n </div>\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { RucMetaFormValidationService } from '../../services/ruc-meta-form-validation.service';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\n\r\n@Component({\r\n selector: 'ruc-meta-checkbox-group',\r\n imports: [\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule\r\n ],\r\n templateUrl: './ruc-meta-checkbox-group.component.html',\r\n styleUrls: ['./ruc-meta-checkbox-group.component.scss'],\r\n providers: [RucMetaFormValidationService]\r\n})\r\nexport class RucMetaCheckboxGroupComponent implements OnInit {\r\n @Input() rucInputData: any;\r\n @Output() transferUserInput = new EventEmitter<any>();\r\n errorMessage: string | undefined;\r\n\r\n constructor(public validationService: RucMetaFormValidationService) {}\r\n\r\n ngOnInit(): void {\r\n this.errorMessage = this.validationService.defaultErrorMessage;\r\n }\r\n /**\r\n *\r\n * @param e\r\n */\r\n modelChangeFn(e: any) {\r\n const checkboxValues: any[] = [];\r\n this.rucInputData.groupOptions.forEach((x: any) => {\r\n if (x.value) {\r\n checkboxValues.push(x.name);\r\n }\r\n });\r\n this.rucInputData.value = checkboxValues;\r\n this.transferUserInput.emit(this.rucInputData);\r\n }\r\n}\r\n","<mat-label class=\"margin-\">{{rucInputData?.label}}</mat-label>\r\n<ul class=\"ruc-checkbox\">\r\n @for (item of rucInputData?.groupOptions; track item) {\r\n <li>\r\n <mat-checkbox [(ngModel)]=\"item.value\" (ngModelChange)=\"modelChangeFn($event)\">\r\n {{item?.name}}\r\n </mat-checkbox>\r\n </li>\r\n }\r\n</ul>\r\n@if (rucInputData?.errorMsg) {\r\n <div class=\"form-error\">\r\n {{rucInputData?.customErrorMessage ? rucInputData?.customErrorMessage : errorMessage}}\r\n </div>\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable,Subject, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {MetaFormConfig} from '../interfaces/metaFormsDefault';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RucMetaFormService {\r\n\r\n public metaFormData:MetaFormConfig | undefined;\r\n public currentFormElement: MetaFormConfig | undefined;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public formData: BehaviorSubject<any> = new BehaviorSubject([] as any);\r\n\r\n getFormJson(form: any){\r\n this.formData.next(form);\r\n }\r\n}\r\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { RucMetaFormService } from '../../services/ruc-meta-form.service';\r\nimport { RucMetaFormValidationService } from '../../services/ruc-meta-form-validation.service';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ruc-meta-select',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule,\r\n ],\r\n templateUrl: './ruc-meta-select.component.html',\r\n styleUrls: ['./ruc-meta-select.component.scss'],\r\n providers: [RucMetaFormValidationService, RucMetaFormService]\r\n})\r\nexport class RucMetaSelectComponent implements OnInit {\r\n @Input() rucInputData: any;\r\n errorMessage: string | undefined;\r\n @Output() transferUserInput = new EventEmitter<any>();\r\n constructor(\r\n public service: RucMetaFormService,\r\n public validationService: RucMetaFormValidationService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.errorMessage = this.validationService.defaultErrorMessage;\r\n }\r\n\r\n modelChangeFn(e: any) {\r\n this.rucInputData.groupOptions.forEach((x: any) => {\r\n if (x.value == e.value) {\r\n this.rucInputData.selectedParentId = x.id;\r\n }\r\n });\r\n if (this.rucInputData.dependentFields) {\r\n this.removDependentFieldParentIdFromOther(\r\n this.rucInputData.dependentFields\r\n );\r\n }\r\n this.service.currentFormElement = this.rucInputData;\r\n this.transferUserInput.emit(this.rucInputData);\r\n }\r\n\r\n removDependentFieldParentIdFromOther(child: any) {\r\n child.forEach((x: any) => {\r\n if (x.selectedParentId) {\r\n delete x.selectedParentId;\r\n x.value = '';\r\n if (x.dependentFields) {\r\n this.removDependentFieldParentIdFromOther(x.dependentFields);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"select-label\">\r\n <mat-label>{{rucInputData?.label}}</mat-label>\r\n</div>\r\n<mat-form-field [ngStyle]=\"{ 'width.%': rucInputData?.width }\" matTooltip=\"{{rucInputData?.tooltip}}\" [appearance]=\"rucInputData?.appearance || 'fill'\">\r\n <mat-label>Choose an option</mat-label>\r\n <mat-select (selectionChange)=\"modelChangeFn($event)\" [(ngModel)]=\"rucInputData.value\">\r\n @for (item of rucInputData?.groupOptions; track item) {\r\n <mat-option [value]=\"item.value\" [disabled]=\"item?.disable\"> {{item.name}}</mat-option>\r\n }\r\n </mat-select>\r\n</mat-form-field>\r\n@if (rucInputData?.errorMsg) {\r\n <div class=\"form-error\">\r\n {{rucInputData?.customErrorMessage ? rucInputData?.customErrorMessage : errorMessage}}\r\n </div>\r\n}","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { RucMetaFormValidationService } from '../../services/ruc-meta-form-validation.service';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ruc-text-area',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule,\r\n ],\r\n templateUrl: './ruc-text-area.component.html',\r\n styleUrls: ['./ruc-text-area.component.scss'],\r\n providers: [RucMetaFormValidationService]\r\n})\r\nexport class RucTextAreaComponent implements OnInit {\r\n @Input() rucInputData: any;\r\n @Output() transferUserInput = new EventEmitter<any>();\r\n @Input() customTheme: string | undefined;\r\n errorMessage: string | undefined;\r\n\r\n constructor(public validationService: RucMetaFormValidationService) {}\r\n\r\n ngOnInit(): void {\r\n this.errorMessage = this.validationService.defaultErrorMessage;\r\n }\r\n /**\r\n *\r\n * @param e\r\n */\r\n modelChangeFn(e: any) {\r\n this.transferUserInput.emit(this.rucInputData);\r\n }\r\n}\r\n","<mat-form-field [ngStyle]=\"{ 'width.%': rucInputData?.width }\" [appearance]=\"rucInputData?.appearance || 'fill'\" class=\"{{customTheme}}\">\r\n <mat-label>{{rucInputData?.label}}</mat-label>\r\n <textarea matInput\r\n placeholder=\"{{rucInputData?.placeholder}}\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"{{rucInputData.min}}\"\r\n cdkAutosizeMaxRows=\"{{rucInputData.max}}\"\r\n [readonly]=\"rucInputData?.readonly\"\r\n [(ngModel)]=\"rucInputData.value\"\r\n matTooltip=\"{{rucInputData?.tooltip}}\"\r\n (ngModelChange)=\"modelChangeFn($event.target)\"></textarea>\r\n</mat-form-field>\r\n@if (rucInputData?.errorMsg) {\r\n <div class=\"form-error\">\r\n {{rucInputData?.customErrorMessage ? rucInputData?.customErrorMessage : errorMessage}}\r\n </div>\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {} from '@angular/common/http';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\n// import { RuclibMultiSelectComponent } from '@ruc-lib/multi-select';\r\n// import { RuclibMultiFileUploadComponent } from '@ruc-lib/multi-file-upload';\r\nimport {RuclibMultiSelectComponent} from '@ruc-lib/multi-select';\r\nimport {RuclibMultiFileUploadComponent} from '@ruc-lib/multi-file-upload';\r\nimport { RucMetaInputsComponent } from '../../components/ruc-meta-inputs/ruc-meta-inputs.component';\r\nimport { RucMetaRadioGroupComponent } from '../../components/ruc-meta-radio-group/ruc-meta-radio-group.component';\r\nimport { RucMetaCheckboxGroupComponent } from '../../components/ruc-meta-checkbox-group/ruc-meta-checkbox-group.component';\r\nimport { RucMetaSelectComponent } from '../../components/ruc-meta-select/ruc-meta-select.component';\r\nimport { RucTextAreaComponent } from '../../components/ruc-text-area/ruc-text-area.component';\r\nimport { MetaFormConfig } from '../../interfaces/metaFormsDefault';\r\nimport { Subscription } from 'rxjs';\r\nimport { RucMetaFormService } from '../../services/ruc-meta-form.service';\r\n\r\n@Component({\r\n selector: 'uxp-ruclib-metaform',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n TextFieldModule,\r\n MatStepperModule,\r\n RuclibMultiSelectComponent,\r\n RuclibMultiFileUploadComponent,\r\n RuclibMetaformComponent,\r\n RucMetaInputsComponent,\r\n RucMetaRadioGroupComponent,\r\n RucMetaCheckboxGroupComponent,\r\n RucMetaSelectComponent,\r\n RucTextAreaComponent,\r\n ],\r\n templateUrl: './ruclib-metaform.component.html',\r\n styleUrl: './ruclib-metaform.component.scss',\r\n providers: [RucMetaFormService]\r\n})\r\nexport class RuclibMetaformComponent implements OnInit, OnDestroy {\r\n @Output() rucEvent = new EventEmitter<any>();\r\n @Output() childRucEvent = new EventEmitter<any>();\r\n @Input() rucInputData: MetaFormConfig[] = [];\r\n @Input() childForm?: MetaFormConfig[];\r\n @Input()\r\n customTheme!: string;\r\n @Input() isChild?: boolean;\r\n @Input() selectedParentId: any;\r\n inputObjectDataMultiFileUpload?: any;\r\n metaFormSubscribeInputs: Subscription | undefined;\r\n formData: any;\r\n constructor(public service: RucMetaFormService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.isChild) {\r\n this.service.getFormJson(this.rucInputData);\r\n this.getFormJson();\r\n } else {\r\n this.formData = this.childForm;\r\n }\r\n this.inputObjectDataMultiFileUpload = {\r\n multifileSelection: true,\r\n displayThumbnail: true,\r\n label: 'Choose File',\r\n uploadUrl: '/api/upload',\r\n deleteUrl: '/api/delete',\r\n };\r\n }\r\n\r\n /**\r\n * The purpose of this function to pass data from dependentFields to parent field\r\n * @param getObject\r\n * @param j\r\n */\r\n passEvent(getObject: any, formElement?: any) {\r\n const eventOutput = getObject?.eventOutput\r\n ? getObject.eventOutput\r\n : this.service.currentFormElement;\r\n if (getObject?.eventName == 'onUploading') {\r\n formElement.value = getObject?.eventOutput.name\r\n ? getObject?.eventOutput.name\r\n : getObject?.eventOutput[0].name;\r\n }\r\n this.rucEvent.emit({\r\n eventName: 'metaFormData',\r\n eventOutput: eventOutput,\r\n formData: this.formData,\r\n rucComponentEvent: getObject?.eventName,\r\n });\r\n }\r\n\r\n /**\r\n * Initial function to load for data\r\n */\r\n getFormJson() {\r\n this.metaFormSubscribeInputs = this.service.formData\r\n .asObservable()\r\n .subscribe((formData:any) => {\r\n this.formData = formData;\r\n this.service.metaFormData = this.formData;\r\n });\r\n }\r\n\r\n /**\r\n * This function is to emit form data\r\n * @param event\r\n */\r\n getMetaFormData(event: any) {\r\n this.rucEvent.emit({\r\n eventName: 'metaFormData',\r\n eventOutput: event,\r\n formData: this.formData,\r\n });\r\n }\r\n\r\n /**\r\n * Clear form data\r\n */\r\n clearForm() {\r\n this.formData.map((x: MetaFormConfig) => {\r\n x.value = '';\r\n });\r\n }\r\n\r\n /**\r\n * Destroy the subscriber\r\n */\r\n ngOnDestroy() {\r\n if (this.metaFormSubscribeInputs) {\r\n this.metaFormSubscribeInputs.unsubscribe();\r\n }\r\n }\r\n}\r\n","<form novalidate>\r\n @for (dynamicField of formData; track dynamicField; let j = $index) {\r\n @switch (dynamicField?.fieldType) {\r\n @case ('input') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n @if (\r\n (!selectedParentId && !dynamicField.hasDependentFields) ||\r\n (selectedParentId &&\r\n selectedParentId === dynamicField.dependentFieldParentId)\r\n ) {\r\n <ruc-meta-inputs\r\n [customTheme]=\"customTheme\"\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-inputs>\r\n }\r\n </div>\r\n }\r\n }\r\n @case ('radio') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n @if (\r\n (!selectedParentId && !dynamicField.dependentFields) ||\r\n (selectedParentId &&\r\n selectedParentId === dynamicField.dependentFieldParentId) ||\r\n (!selectedParentId && dynamicField.dependentFields && !isChild)\r\n ) {\r\n <ruc-meta-radio-group\r\n [customTheme]=\"customTheme\"\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-radio-group>\r\n }\r\n </div>\r\n }\r\n }\r\n @case ('checkbox') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n @if (\r\n (!selectedParentId && !dynamicField.dependentFields) ||\r\n (selectedParentId &&\r\n selectedParentId === dynamicField.dependentFieldParentId) ||\r\n (!selectedParentId && dynamicField.dependentFields && !isChild)\r\n ) {\r\n <ruc-meta-checkbox-group\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-checkbox-group>\r\n }\r\n </div>\r\n }\r\n }\r\n @case ('select') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n @if (\r\n (!selectedParentId && !dynamicField.dependentFields) ||\r\n (selectedParentId &&\r\n selectedParentId === dynamicField.dependentFieldParentId) ||\r\n (!selectedParentId && dynamicField.dependentFields && !isChild)\r\n ) {\r\n <ruc-meta-select\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-select>\r\n }\r\n </div>\r\n }\r\n }\r\n @case ('textarea') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <ruc-text-area\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-text-area>\r\n </div>\r\n }\r\n }\r\n @case ('rucMultiSelect') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <uxp-ruclib-multi-select\r\n [rucInputData]=\"dynamicField?.rucMultiselectInput?.rucInputData\"\r\n [dataSource]=\"dynamicField?.rucMultiselectInput?.dataSource\"\r\n [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event)\"\r\n ></uxp-ruclib-multi-select>\r\n </div>\r\n }\r\n }\r\n @case ('rucMultiFileUpload') {\r\n @if (dynamicField.formType !== 'stepper') {\r\n <div\r\n [ngStyle]=\"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <uxp-ruclib-multi-file-upload\r\n [rucInputData]=\"dynamicField?.rucMultiFileUploadInput?.rucInputData\"\r\n [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event, dynamicField)\"\r\n ></uxp-ruclib-multi-file-upload>\r\n </div>\r\n }\r\n }\r\n @default {\r\n @if (dynamicField.hasDependentFields && dynamicField.value) {\r\n <uxp-ruclib-metaform\r\n #dynamicField.id\r\n [rucInputData]=\"formData\"\r\n [childForm]=\"dynamicField.dependentFields\"\r\n [isChild]=\"true\"\r\n [selectedParentId]=\"dynamicField.selectedParentId\"\r\n (rucEvent)=\"passEvent($event, dynamicField.id)\"\r\n ></uxp-ruclib-metaform>\r\n }\r\n }\r\n }\r\n @if (dynamicField.formType === 'stepper') {\r\n <mat-stepper linear #stepper>\r\n @for (stapperField of dynamicField.stepper; track stapperField; let s = $index) {\r\n @switch (stapperField?.fieldType) {\r\n @case ('input') {\r\n @if (stapperField.stepControl !== 'done') {\r\n <mat-step [stepControl]=\"stapperField.stepControl\">\r\n <ng-template matStepLabel>{{\r\n stapperField.stepperlabel\r\n }}</ng-template>\r\n @for (\r\n stepperFormData of stapperField.stepperFormData;\r\n track stepperFormData;\r\n let j = $index\r\n ) {\r\n @switch (stepperFormData?.fieldType) {\r\n @case ('input') {\r\n <div\r\n [ngStyle]=\"{\r\n 'width.%': dynamicField.sameRowColumnWidth - 2\r\n }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <ruc-meta-inputs\r\n [customTheme]=\"customTheme\"\r\n [rucInputData]=\"stepperFormData\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-inputs>\r\n </div>\r\n }\r\n @case ('textarea') {\r\n <div\r\n [ngStyle]=\"{\r\n 'width.%': dynamicField.sameRowColumnWidth - 2\r\n }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <ruc-text-area\r\n [rucInputData]=\"stepperFormData\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-text-area>\r\n </div>\r\n }\r\n @case ('radio') {\r\n <div\r\n [ngStyle]=\"{\r\n 'width.%': dynamicField.sameRowColumnWidth - 2\r\n }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <ruc-meta-radio-group\r\n [customTheme]=\"customTheme\"\r\n [rucInputData]=\"stepperFormData\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-radio-group>\r\n </div>\r\n }\r\n @case ('checkbox') {\r\n <div\r\n [ngStyle]=\"{\r\n 'width.%': dynamicField.sameRowColumnWidth - 2\r\n }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n <ruc-meta-checkbox-group\r\n [rucInputData]=\"stepperFormData\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-checkbox-group>\r\n </div>\r\n }\r\n @case ('select') {\r\n <div\r\n [ngStyle]=\"{\r\n 'width.%': dynamicField.sameRowColumnWidth - 2\r\n }\"\r\n [ngClass]=\"\r\n dynamicField.sameRow === true\r\n ? 'margin-5 column-in-same-row'\r\n : 'margin-5 column-in-new-row'\r\n \"\r\n >\r\n @if (\r\n (!selectedParentId && !dynamicField.dependentFields) ||\r\n (selectedParentId &&\r\n selectedParentId ===\r\n dynamicField.dependentFieldParentId) ||\r\n (!selectedParentId &&\r\n dynamicField.dependentFields &&\r\n !isChild)\r\n ) {\r\n <ruc-meta-select\r\n [rucInputData]=\"dynamicField\"\r\n (transferUserInput)=\"getMetaFormData($event)\"\r\n ></ruc-meta-select>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n <div>\r\n @if (s > 0) {\r\n <button mat-button matStepperPrevious>Back</button>\r\n }\r\n @if (s < dynamicField.stepper.length) {\r\n <button mat-button matStepperNext>Next</button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n }\r\n @default {\r\n @if (stapperField.stepControl === 'done') {\r\n <mat-step>\r\n <ng-template matStepLabel>{{\r\n stapperField.stepControl\r\n }}</ng-template>\r\n <p>{{ stapperField.stepperlabel }}</p>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button (click)=\"stepper.reset()\">\r\n Reset\r\n </button>\r\n </div>\r\n </mat-step>\r\n }\r\n }\r\n }\r\n }\r\n </mat-stepper>\r\n }\r\n }\r\n @if (!isChild) {\r\n <button mat-raised-button color=\"primary\" (click)=\"clearForm()\">\r\n Clear Form\r\n </button>\r\n }\r\n</form>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RucMetaFormValidationService","i8","i2","i3","i4","i1.RucMetaFormService","i2.RucMetaFormValidationService","i5","i7","i6"],"mappings":"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"}