ng-dynamic-json-form
Version:
Generate Angular reactive form dynamically using JSON. Support conditional rendering and toggle of validators.
1 lines • 42.9 kB
Source Map (JSON)
{"version":3,"file":"ng-dynamic-json-form-ui-material.mjs","sources":["../../../lib/ui-material/ui-material-checkbox/ui-material-checkbox.component.ts","../../../lib/ui-material/ui-material-checkbox/ui-material-checkbox.component.html","../../../lib/ui-material/ui-material-select/ui-material-select.component.ts","../../../lib/ui-material/ui-material-select/ui-material-select.component.html","../../../lib/ui-material/ui-material-input-mask/ui-material-input-mask.component.ts","../../../lib/ui-material/ui-material-input-mask/ui-material-input-mask.component.html","../../../lib/ui-material/ui-material-input/ui-material-input.component.ts","../../../lib/ui-material/ui-material-input/ui-material-input.component.html","../../../lib/ui-material/ui-material-radio/ui-material-radio.component.ts","../../../lib/ui-material/ui-material-radio/ui-material-radio.component.html","../../../lib/ui-material/ui-material-range/ui-material-range.component.ts","../../../lib/ui-material/ui-material-range/ui-material-range.component.html","../../../lib/ui-material/ui-material-switch/ui-material-switch.component.ts","../../../lib/ui-material/ui-material-switch/ui-material-switch.component.html","../../../lib/ui-material/ui-material-textarea/ui-material-textarea.component.ts","../../../lib/ui-material/ui-material-textarea/ui-material-textarea.component.html","../../../lib/ui-material/ui-material-date/ui-material-date.component.ts","../../../lib/ui-material/ui-material-date/ui-material-date.component.html","../../../lib/ui-material/ui-material-components.constant.ts","../../../lib/ui-material/ng-dynamic-json-form-ui-material.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, computed } from '@angular/core';\r\nimport { FormArray, FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport {\r\n MatCheckbox,\r\n MatCheckboxChange,\r\n MatCheckboxModule,\r\n} from '@angular/material/checkbox';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-checkbox',\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatCheckboxModule,\r\n MatInputModule,\r\n PropsBindingDirective,\r\n ],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-checkbox',\r\n token: MatCheckbox,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-checkbox.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialCheckboxComponent extends CustomControlComponent {\r\n private onChange?: any;\r\n\r\n override control = new FormArray<FormControl>([]);\r\n\r\n options = computed(() => this.data()?.options?.data ?? []);\r\n groupButtonStyles = computed(() => {\r\n const { layout, containerStyles } = this.data()?.options ?? {};\r\n\r\n return `\r\n flex-direction: ${layout ?? 'row'};\r\n align-items: flex-start;\r\n ${containerStyles ?? ''}\r\n `.replace(/\\s{2,}/g, '');\r\n });\r\n\r\n override writeValue(obj: any): void {\r\n this.control.clear();\r\n\r\n if (Array.isArray(obj)) {\r\n obj.forEach((x) => this.addItem(x));\r\n } else {\r\n this.addItem(obj);\r\n }\r\n }\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n toggle(e: MatCheckboxChange): void {\r\n const checked = e.checked;\r\n this.onChange(checked);\r\n }\r\n\r\n onCheckboxChange(e: MatCheckboxChange, index: number): void {\r\n const checked = e.checked;\r\n const value = this.options()\r\n .map((x) => x.value)\r\n .filter((val, i) => (i === index ? checked : this.isChecked(val)));\r\n\r\n this.control.clear();\r\n value?.forEach((x) => this.addItem(x));\r\n this.onChange(this.control.value);\r\n }\r\n\r\n isChecked(val: any): boolean {\r\n return this.control.value.some(\r\n (x) => JSON.stringify(x) === JSON.stringify(val),\r\n );\r\n }\r\n\r\n private addItem(val?: any): void {\r\n const control = new FormControl(val);\r\n this.control.push(control);\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <div\r\n class=\"group-buttons\"\r\n [style]=\"groupButtonStyles()\"\r\n [ngClass]=\"[data.options?.containerClass ?? '']\"\r\n >\r\n <!-- binary checkbox -->\r\n @if (options().length === 1) {\r\n <mat-checkbox\r\n [checked]=\"!control.value.length ? false : control.value[0]\"\r\n [disabled]=\"control.disabled\"\r\n [labelPosition]=\"data.options?.labelPosition ?? 'after'\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-checkbox',\r\n props: data.props,\r\n omit: ['labelPosition'],\r\n },\r\n ]\"\r\n (change)=\"toggle($event)\"\r\n >{{ options()[0].label }}</mat-checkbox\r\n >\r\n }\r\n <!-- muli-select checkbox -->\r\n @if (options().length > 1) {\r\n @for (item of options(); track $index) {\r\n <mat-checkbox\r\n [labelPosition]=\"data.options?.labelPosition ?? 'after'\"\r\n [checked]=\"isChecked(item.value)\"\r\n [disabled]=\"control.disabled\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-checkbox',\r\n props: data.props,\r\n omit: ['labelPosition', 'checked', 'disabled', 'value'],\r\n },\r\n ]\"\r\n (change)=\"onCheckboxChange($event, $index)\"\r\n >{{ item.label }}</mat-checkbox\r\n >\r\n }\r\n }\r\n </div>\r\n}\r\n","import { Component, computed } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelect, MatSelectModule } from '@angular/material/select';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-select',\r\n imports: [ReactiveFormsModule, MatSelectModule, PropsBindingDirective],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-select',\r\n token: MatSelect,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-select.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialSelectComponent extends CustomControlComponent {\r\n private onChange?: any;\r\n\r\n override control = new FormControl(-1);\r\n\r\n options = computed(() => this.data()?.options?.data ?? []);\r\n\r\n onTouched = () => {};\r\n\r\n override writeValue(obj: any): void {\r\n const index = this.options().findIndex(\r\n (x) => JSON.stringify(x.value) === JSON.stringify(obj),\r\n );\r\n\r\n this.control.setValue(index);\r\n }\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n override registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n updateControl(): void {\r\n const index = this.control.value ?? -1;\r\n\r\n if (index > -1) {\r\n const value = this.options().map((x) => x.value)[index];\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-form-field>\r\n <mat-label>{{ data.label }}</mat-label>\r\n <mat-select\r\n [formControl]=\"control\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-select',\r\n props: data.props,\r\n },\r\n ]\"\r\n (openedChange)=\"onTouched()\"\r\n (selectionChange)=\"updateControl()\"\r\n >\r\n @for (item of options(); track $index) {\r\n <mat-option [value]=\"$index\">{{ item.label }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n}\r\n","\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInput, MatInputModule } from '@angular/material/input';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport {\r\n CustomControlComponent,\r\n ImaskValuePatchDirective,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-input-mask',\r\n imports: [\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n IMaskDirective,\r\n ImaskValuePatchDirective,\r\n PropsBindingDirective\r\n],\r\n templateUrl: './ui-material-input-mask.component.html',\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-input',\r\n token: MatInput,\r\n },\r\n {\r\n key: 'imask',\r\n token: IMaskDirective,\r\n },\r\n ]),\r\n ],\r\n styles: []\r\n})\r\nexport class UiMaterialInputMaskComponent extends CustomControlComponent {\r\n override control = new FormControl('');\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-form-field>\r\n <mat-label>{{ data.label }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n imaskValuePatch\r\n [formControl]=\"control\"\r\n [imask]=\"data.inputMask\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-input',\r\n props: data.props,\r\n omit: ['type'],\r\n },\r\n {\r\n key: 'imask',\r\n props: data.props,\r\n },\r\n ]\"\r\n (complete)=\"onChange(control.value)\"\r\n />\r\n </mat-form-field>\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInput, MatInputModule } from '@angular/material/input';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-input',\r\n imports: [\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n PropsBindingDirective,\r\n ],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-input',\r\n token: MatInput,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-input.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialInputComponent extends CustomControlComponent {\r\n override control = new UntypedFormControl('');\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n onInput(e: Event): void {\r\n const value = (e.target as HTMLInputElement).value;\r\n\r\n this.control.setValue(value);\r\n this.onChange(value);\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-form-field>\r\n <mat-label>{{ data.label }}</mat-label>\r\n <input\r\n matInput\r\n [formControl]=\"control\"\r\n [attr.type]=\"data.type ?? 'text'\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-input',\r\n props: data.props,\r\n omit: ['type'],\r\n },\r\n ]\"\r\n (input)=\"onInput($event)\"\r\n />\r\n </mat-form-field>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioGroup, MatRadioModule } from '@angular/material/radio';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-radio',\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatRadioModule,\r\n MatInputModule,\r\n PropsBindingDirective,\r\n ],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-radio-group',\r\n token: MatRadioGroup,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-radio.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialRadioComponent extends CustomControlComponent {\r\n private onChange?: any;\r\n\r\n override control = new FormControl('');\r\n\r\n options = computed(() => this.data()?.options?.data ?? []);\r\n\r\n selectedIndex = signal<number>(-1);\r\n\r\n override writeValue(obj: any): void {\r\n const index = this.options().findIndex(\r\n (x) => JSON.stringify(x.value) === JSON.stringify(obj),\r\n );\r\n\r\n this.selectedIndex.set(index);\r\n }\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n emitValue(i: number): void {\r\n const value = this.options()[i].value;\r\n this.onChange(value);\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-radio-group\r\n [labelPosition]=\"data.options?.labelPosition ?? 'after'\"\r\n [formControl]=\"control\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-radio-group',\r\n props: data.props,\r\n omit: ['labelPosition'],\r\n },\r\n ]\"\r\n >\r\n <div\r\n class=\"group-buttons\"\r\n [style]=\"data.options?.containerStyles\"\r\n [ngClass]=\"[data.options?.containerClass ?? '']\"\r\n [ngStyle]=\"{\r\n 'flex-direction': data.options?.layout,\r\n }\"\r\n >\r\n @for (item of options(); track $index) {\r\n <mat-radio-button\r\n [value]=\"$index\"\r\n [checked]=\"selectedIndex() === $index\"\r\n (change)=\"emitValue($index)\"\r\n >{{ item.label }}</mat-radio-button\r\n >\r\n }\r\n </div>\r\n </mat-radio-group>\r\n}\r\n","\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSlider, MatSliderModule } from '@angular/material/slider';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-range',\r\n imports: [\r\n ReactiveFormsModule,\r\n MatSliderModule,\r\n MatInputModule,\r\n PropsBindingDirective\r\n],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-slider',\r\n token: MatSlider,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-range.component.html',\r\n styles: []\r\n})\r\nexport class UiMaterialRangeComponent extends CustomControlComponent {\r\n override control = new FormControl(0);\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-slider\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-slider',\r\n props: data.props,\r\n },\r\n ]\"\r\n >\r\n <input\r\n matSliderThumb\r\n [formControl]=\"control\"\r\n (input)=\"onChange(control.value)\"\r\n />\r\n </mat-slider>\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {\r\n MatSlideToggle,\r\n MatSlideToggleModule,\r\n} from '@angular/material/slide-toggle';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-switch',\r\n imports: [\r\n ReactiveFormsModule,\r\n MatSlideToggleModule,\r\n MatInputModule,\r\n PropsBindingDirective,\r\n ],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-slide-toggle',\r\n token: MatSlideToggle,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-switch.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialSwitchComponent extends CustomControlComponent {\r\n override control = new FormControl(false);\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-slide-toggle\r\n [labelPosition]=\"data.options?.labelPosition ?? 'after'\"\r\n [formControl]=\"control\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-slide-toggle',\r\n props: data.props,\r\n omit: ['labelPosition'],\r\n },\r\n ]\"\r\n (change)=\"onChange(control.value)\"\r\n >{{ data.options?.data?.[0]?.label }}</mat-slide-toggle\r\n >\r\n}\r\n","import { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\n\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInput, MatInputModule } from '@angular/material/input';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-textarea',\r\n imports: [ReactiveFormsModule, MatInputModule, PropsBindingDirective],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'cdk-textarea-autosize',\r\n token: CdkTextareaAutosize,\r\n },\r\n {\r\n key: 'mat-input',\r\n token: MatInput,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-textarea.component.html',\r\n styles: [],\r\n})\r\nexport class UiMaterialTextareaComponent extends CustomControlComponent {\r\n override control = new FormControl('');\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n onInput(e: Event): void {\r\n const value = (e.target as HTMLInputElement).value;\r\n\r\n this.control.setValue(value);\r\n this.onChange(value);\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{ data.label }}</mat-label>\r\n <textarea\r\n matInput\r\n cdkTextareaAutosize\r\n [formControl]=\"control\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-input',\r\n props: data.props,\r\n },\r\n {\r\n key: 'cdk-textarea-autosize',\r\n props: data.props,\r\n },\r\n ]\"\r\n (input)=\"onInput($event)\"\r\n ></textarea>\r\n </mat-form-field>\r\n}\r\n","\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport {\r\n MatDatepickerInput,\r\n MatDatepickerModule,\r\n} from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {\r\n CustomControlComponent,\r\n PropsBindingDirective,\r\n providePropsBinding,\r\n} from 'ng-dynamic-json-form';\r\n\r\n@Component({\r\n selector: 'ui-material-date',\r\n imports: [\r\n ReactiveFormsModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatNativeDateModule,\r\n MatInputModule,\r\n PropsBindingDirective\r\n],\r\n providers: [\r\n providePropsBinding([\r\n {\r\n key: 'mat-input',\r\n token: MatDatepickerInput,\r\n },\r\n ]),\r\n ],\r\n templateUrl: './ui-material-date.component.html',\r\n styles: []\r\n})\r\nexport class UiMaterialDateComponent extends CustomControlComponent {\r\n override control = new FormControl(new Date());\r\n onChange?: any;\r\n\r\n override registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n","@if (data(); as data) {\r\n <mat-form-field>\r\n <mat-label>{{ data.label }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker\"\r\n [formControl]=\"control\"\r\n [propsBinding]=\"[\r\n {\r\n key: 'mat-input',\r\n props: data.props,\r\n omit: ['matDatepicker'],\r\n },\r\n ]\"\r\n (dateInput)=\"onChange(control.value)\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n}\r\n","import { UiComponents } from 'ng-dynamic-json-form';\r\nimport { UiMaterialCheckboxComponent } from './ui-material-checkbox/ui-material-checkbox.component';\r\nimport { UiMaterialSelectComponent } from './ui-material-select/ui-material-select.component';\r\nimport { UiMaterialInputMaskComponent } from './ui-material-input-mask/ui-material-input-mask.component';\r\nimport { UiMaterialInputComponent } from './ui-material-input/ui-material-input.component';\r\nimport { UiMaterialRadioComponent } from './ui-material-radio/ui-material-radio.component';\r\nimport { UiMaterialRangeComponent } from './ui-material-range/ui-material-range.component';\r\nimport { UiMaterialSwitchComponent } from './ui-material-switch/ui-material-switch.component';\r\nimport { UiMaterialTextareaComponent } from './ui-material-textarea/ui-material-textarea.component';\r\nimport { UiMaterialDateComponent } from './ui-material-date/ui-material-date.component';\r\n\r\nexport const UI_MATERIAL_COMPONENTS: UiComponents = {\r\n checkbox: UiMaterialCheckboxComponent,\r\n date: UiMaterialDateComponent,\r\n password: UiMaterialInputComponent,\r\n number: UiMaterialInputComponent,\r\n email: UiMaterialInputComponent,\r\n radio: UiMaterialRadioComponent,\r\n range: UiMaterialRangeComponent,\r\n select: UiMaterialSelectComponent,\r\n switch: UiMaterialSwitchComponent,\r\n text: UiMaterialInputComponent,\r\n textMask: UiMaterialInputMaskComponent,\r\n textarea: UiMaterialTextareaComponent,\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}