@dignite-ng/expand.dynamic-form 0.0.29 → 3.0.0-rc.2

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 (25) hide show
  1. package/esm2022/lib/components/dynamic/dynamic.component.mjs +10 -8
  2. package/esm2022/lib/components/form/date-edit/date-edit-config.component.mjs +5 -3
  3. package/esm2022/lib/components/form/form-control-group.mjs +26 -14
  4. package/esm2022/lib/components/form/numeric-edit/numberic-edit-config.component.mjs +8 -6
  5. package/esm2022/lib/components/form/select/select-config.component.mjs +5 -3
  6. package/esm2022/lib/components/form/select/select-control.component.mjs +5 -3
  7. package/esm2022/lib/components/form/switch/switch-config.component.mjs +6 -4
  8. package/esm2022/lib/components/form/switch/switch-control.component.mjs +10 -4
  9. package/esm2022/lib/components/form/text-edit/text-edit-config.component.mjs +6 -4
  10. package/esm2022/lib/components/form/text-edit/text-edit.component.mjs +4 -2
  11. package/esm2022/lib/dynamic-form.module.mjs +6 -7
  12. package/fesm2022/dignite-ng-expand.dynamic-form.mjs +64 -32
  13. package/fesm2022/dignite-ng-expand.dynamic-form.mjs.map +1 -1
  14. package/lib/components/dynamic/dynamic.component.d.ts +4 -6
  15. package/lib/components/form/date-edit/date-edit-config.component.d.ts +1 -0
  16. package/lib/components/form/form-control-group.d.ts +2 -2
  17. package/lib/components/form/numeric-edit/numberic-edit-config.component.d.ts +2 -1
  18. package/lib/components/form/select/select-config.component.d.ts +1 -0
  19. package/lib/components/form/select/select-control.component.d.ts +1 -0
  20. package/lib/components/form/switch/switch-config.component.d.ts +1 -0
  21. package/lib/components/form/switch/switch-control.component.d.ts +1 -0
  22. package/lib/components/form/text-edit/text-edit-config.component.d.ts +1 -0
  23. package/lib/components/form/text-edit/text-edit.component.d.ts +1 -0
  24. package/lib/dynamic-form.module.d.ts +1 -2
  25. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dignite-ng-expand.dynamic-form.mjs","sources":["../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.ts","../../../projects/dynamic-form/src/lib/enums/text-edit-mode.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit.component.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit.component.html","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.component.html","../../../projects/dynamic-form/src/lib/components/form/switch/switch-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-control.component.html","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-control.component.html","../../../projects/dynamic-form/src/lib/enums/date-edit-interfaces.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-control.component.html","../../../projects/dynamic-form/src/lib/components/form/select/select-config.ts","../../../projects/dynamic-form/src/lib/services/df-api.service.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-config.component.html","../../../projects/dynamic-form/src/lib/components/form/select/select-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-control.component.html","../../../projects/dynamic-form/src/lib/components/form/form-control-group.ts","../../../projects/dynamic-form/src/lib/components/dynamic/dynamic.component.ts","../../../projects/dynamic-form/src/lib/components/dynamic/dynamic.component.html","../../../projects/dynamic-form/src/lib/dynamic-form.module.ts","../../../projects/dynamic-form/src/public-api.ts","../../../projects/dynamic-form/src/dignite-ng-expand.dynamic-form.ts"],"sourcesContent":["import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class TextEditConfig {\r\n\r\n\r\n /**占位符 */\r\n 'TextEdit.Placeholder': any = ['', []];\r\n //字段类型,单行文本,多行文本\r\n 'TextEdit.Mode': any = [0, []];\r\n // 字数限制\r\n 'TextEdit.CharLimit': any = ['265', []];\r\n\r\n constructor(data?: TextEditConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","export enum TextEditMode {\n // 简单类型\n SingleLine,\n // 复合类型;\n MultipleLine,\n \n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup} from '@angular/forms';\nimport { TextEditConfig } from './text-edit-config';\nimport { TextEditMode } from '../../../enums/text-edit-mode';\n\n@Component({\n selector: 'df-text-edit-config',\n templateUrl: './text-edit-config.component.html',\n styleUrls: ['./text-edit-config.component.scss']\n})\nexport class TextEditConfigComponent {\n constructor(\n private fb: FormBuilder,\n ) { }\n _TextEditMode=TextEditMode\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TextEditConfig()))\n if (this._selected&&this._selected.formControlName==this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n\n\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"TextEdit.Placeholder\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::TextEditMode' | abpLocalization}}</label>\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_TextEditMode.SingleLine\" formControlName=\"TextEdit.Mode\"\n id=\"flexRadioDefault1\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::SingleLine' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_TextEditMode.MultipleLine\" formControlName=\"TextEdit.Mode\"\n id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexRadioDefault2\">\n {{'DigniteAbpForms::MultipleLine' | abpLocalization}}\n </label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::CharLimit' | abpLocalization}}</label>\n <input type=\"number\" class=\"form-control\" formControlName=\"TextEdit.CharLimit\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","/* eslint-disable @angular-eslint/no-empty-lifecycle-method */\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { TextEditMode } from '../../../enums/text-edit-mode';\nimport { TextEditConfig } from './text-edit-config';\n\n@Component({\n selector: 'df-text-edit',\n templateUrl: './text-edit.component.html',\n styleUrls: ['./text-edit.component.scss']\n})\nexport class TextEditComponent {\n\n constructor(\n private fb: FormBuilder,\n ) {\n }\n\n _TextEditMode = TextEditMode\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || '';\n if (v) this.dataLoaded()\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n this._fields.field.formConfiguration={\n ...this.fb.group(new TextEditConfig()).value,\n ...this._fields.field.formConfiguration\n }\n if (this._fields.field.formConfiguration['TextEdit.CharLimit']) {\n ValidatorsArray.push(Validators.maxLength(this._fields.field.formConfiguration['TextEdit.CharLimit']))\n }\n \n let newControl = this.fb.control(this._selected, ValidatorsArray)\n this.extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name)\n }\n\n isObjEmpty = (obj) => Object.keys(obj).length === 0\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ng-container *ngIf=\"_fields.field.formConfiguration['TextEdit.Mode'] ===_TextEditMode.SingleLine\">\n <input type=\"text\" class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['TextEdit.Placeholder']\" />\n </ng-container>\n <ng-container *ngIf=\"_fields.field.formConfiguration['TextEdit.Mode'] === _TextEditMode.MultipleLine\">\n <textarea class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['TextEdit.Placeholder']\" rows=\"3\"></textarea>\n </ng-container>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class SwitchConfig {\r\n\r\n\r\n /**默认值 */\r\n 'Switch.Default': any = [false, []];\r\n constructor(data?: SwitchConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { SwitchConfig } from './switch-config';\n@Component({\n selector: 'df-switch-config',\n templateUrl: './switch-config.component.html',\n styleUrls: ['./switch-config.component.scss']\n})\nexport class SwitchConfigComponent {\n constructor(\n private fb: FormBuilder,\n ) { }\n /**表单控件类型 */\n _type: any\n @Input()\n public set type(v: any) {\n this._type = v\n this.dataLoaded()\n }\n /**表单实体 */\n _Entity: FormGroup | undefined\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded()\n }\n /**选择的表单信息 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v\n\n this.dataLoaded()\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new SwitchConfig()))\n if (this._selected&&this._selected.formControlName==this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration\n })\n }\n resolve(true)\n })\n }\n\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Switch.Default\"\n id=\"flexRadioDefault1\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::DefaultValue' | abpLocalization}}\n </label>\n </div>\n \n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-switch-control',\n templateUrl: './switch-control.component.html',\n styleUrls: ['./switch-control.component.scss']\n})\nexport class SwitchControlComponent {\n\n constructor(\n private fb: FormBuilder,\n ) {\n\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded()\n }\n /** */\n _selected: any\n @Input()\n public set selected(v: any) {\n // ?v:false;\n this._selected = v\n this.dataLoaded()\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit()\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n let newControl = this.fb.control(this._selected?this._selected:this._selected===false?this._selected:this._fields.field.formConfiguration['Switch.Default'], ValidatorsArray)\n this.extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name)\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" formControlName=\"{{_fields.field.name}}\">\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class NumbericEditConfig {\r\n /**占位符 */\r\n 'NumericEditField.Placeholder': any = ['', []];\r\n /**最小值 */\r\n 'NumericEditField.Min': any = ['', []];\r\n //最大值\r\n 'NumericEditField.Max': any = ['', []];\r\n // 小数位数\r\n 'NumericEditField.Decimals': any = [2, []];\r\n //步长\r\n 'NumericEditField.Step': any = ['', []];\r\n //格式说明符\r\n 'FormatSpecifier': any = ['', []];\r\n\r\n constructor(data?: NumbericEditConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NumbericEditConfig } from './numberic-edit-config';\n\n@Component({\n selector: 'df-numberic-edit-config',\n templateUrl: './numberic-edit-config.component.html',\n styleUrls: ['./numberic-edit-config.component.scss'],\n})\nexport class NumbericEditConfigComponent {\n constructor(private fb: FormBuilder) {}\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n // this.dataLoaded()\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v ? v : v == false ? v : '';\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new NumbericEditConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n }\n resolve(true);\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Placeholder\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Min' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Min\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Max' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Max\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NumericDecimals' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Decimals\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NumericStep' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Step\">\n <small class=\"form-text text-muted d-block\">{{'DigniteAbpForms::NumericStepHelp'|abpLocalization}}</small>\n </div>\n \n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::FormatSpecifier' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"FormatSpecifier\">\n <small class=\"form-text text-muted d-block\">See:<a href=\"https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings\" target=\"_blank\">https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings</a></small>\n </div>\n \n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, ChangeDetectionStrategy ,ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { AbstractControl, ValidationErrors } from '@angular/forms'; \n \nexport function maxDecimalPlacesValidator(maxDecimalPlaces: number): ValidatorFn { \n return (control: AbstractControl): ValidationErrors | null => { \n const value = control.value; \n if (typeof value === 'number' && isNaN(value) === false) { \n const decimalPart = value.toString().split('.')[1]; \n if (decimalPart && decimalPart.length > maxDecimalPlaces) { \n return { 'maxDecimalPlaces': { actual: decimalPart.length, max: maxDecimalPlaces } }; \n } \n } \n return null; \n }; \n}\n@Component({\n selector: 'df-numberic-edit-control',\n templateUrl: './numberic-edit-control.component.html',\n styleUrls: ['./numberic-edit-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumbericEditControlComponent {\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef \n ) {\n\n }\n\n\n public get entity(): any {\n return this._entity\n }\n\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n // \n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n \n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n get fieldInput() { return this.extraProperties.get(this._fields.field.name); }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit()\n this.cdr.detectChanges(); \n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n let formConfiguration=this._fields.field.formConfiguration\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n if (formConfiguration['NumericEditField.Min']) {\n ValidatorsArray.push(Validators.min(formConfiguration['NumericEditField.Min']))\n }\n if (formConfiguration['NumericEditField.Max']) {\n ValidatorsArray.push(Validators.max(formConfiguration['NumericEditField.Max']))\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n this.extraProperties.setControl(this._fields.field.name, newControl)\n\n resolve(true)\n })\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name)\n }\n\n /**数字框输入 */\n inputchange(event){\n let val=event.target.value\n const decimalPart = val.toString().split('.')[1]||'';\n let formConfiguration=this._fields.field.formConfiguration\n let Decimals=formConfiguration['NumericEditField.Decimals']\n if(decimalPart.length>Decimals){\n this.fieldInput.patchValue(val.slice(0,val.length-(decimalPart.length-2)).toString())\n }\n }\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <input type=\"number\" class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['NumericEditField.Placeholder']||''\"\n [step]=\"_fields.field.formConfiguration['NumericEditField.Step']\" (input)=\"inputchange($event)\" />\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","export enum DateEditInterfaces {\n /// <summary>\n /// Only date is allowed to be entered.\n /// </summary>\n Date = 0,\n\n /// <summary>\n /// Both date and time are allowed to be entered.\n /// </summary>\n DateTime = 1,\n\n /// <summary>\n /// Allowed to select only year and month.\n /// </summary>\n Month = 2\n}\n","import { FormControl, Validators } from \"@angular/forms\";\r\nimport { DateEditInterfaces } from \"../../../enums/date-edit-interfaces\";\r\n\r\nexport class DateEditConfig {\r\n /**日期格式 */\r\n 'DateEdit.InputMode': any = [DateEditInterfaces.Date, []];\r\n /**最小值 */\r\n 'DateEdit.Min': any = ['', []];\r\n /**最大值 */\r\n 'DateEdit.Max': any = ['', []];\r\n\r\n constructor() {\r\n }\r\n}","import { Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { DateEditConfig } from './date-edit-config';\nimport { DateEditInterfaces } from '../../../enums/date-edit-interfaces';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'df-date-edit-config',\n templateUrl: './date-edit-config.component.html',\n styleUrls: ['./date-edit-config.component.scss'],\n})\nexport class DateEditConfigComponent {\n constructor(private fb: FormBuilder) {}\n private _dataPipe = inject(DatePipe);\n _DateEditInterfaces = DateEditInterfaces;\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n\n dateTimeType: any = 'date';\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new DateEditConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n this.timeTypeChange()\n }\n resolve(true);\n });\n }\n /**切换时间类型 */\n timeTypeChange() {\n let type = this.formConfiguration.value['DateEdit.InputMode'];\n let Min = this.formConfiguration.value['DateEdit.Min'];\n let Max = this.formConfiguration.value['DateEdit.Max'];\n if (type == DateEditInterfaces.Date) {\n this.dateTimeType = 'date';\n Min = this._dataPipe.transform(Min, 'yyyy-MM-dd');\n Max = this._dataPipe.transform(Max, 'yyyy-MM-dd');\n } else if (type == DateEditInterfaces.DateTime) {\n this.dateTimeType = 'datetime-local';\n Min = this._dataPipe.transform(Min, 'yyyy-MM-dd HH:mm:ss');\n Max = this._dataPipe.transform(Max, 'yyyy-MM-dd HH:mm:ss');\n } else if (type == DateEditInterfaces.Month) {\n this.dateTimeType = 'month';\n Min = this._dataPipe.transform(Min, 'yyyy-MM');\n Max = this._dataPipe.transform(Max, 'yyyy-MM');\n }\n this.formConfiguration.patchValue({\n 'DateEdit.Min': Min,\n 'DateEdit.Max': Max,\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::DateEditMode' | abpLocalization}}</label>\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.Date\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault1\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::Date' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.DateTime\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault2\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault2\">\n {{'DigniteAbpForms::DateTime' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.Month\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault3\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault3\">\n {{'DigniteAbpForms::Month' | abpLocalization}}\n </label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Min' | abpLocalization}}</label>\n <input [type]=\"dateTimeType\" class=\"form-control\" step=\"1\" formControlName=\"DateEdit.Min\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Max' | abpLocalization}}</label>\n <input [type]=\"dateTimeType\" class=\"form-control\" step=\"1\" formControlName=\"DateEdit.Max\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, ChangeDetectorRef, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { DateEditInterfaces } from '../../../enums/date-edit-interfaces';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'df-date-edit-control',\n templateUrl: './date-edit-control.component.html',\n styleUrls: ['./date-edit-control.component.scss'],\n})\nexport class DateEditControlComponent {\n constructor(private fb: FormBuilder, private cdr: ChangeDetectorRef) {}\n private _dataPipe = inject(DatePipe);\n _DateEditInterfaces = DateEditInterfaces;\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded();\n }\n\n public get entity(): any {\n return this._entity;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup;\n }\n get fieldInput() {\n return this.extraProperties.get(this._fields.field.name);\n }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit();\n\n this.cdr.detectChanges();\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = [];\n let formConfiguration = this._fields.field.formConfiguration;\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required);\n }\n if (formConfiguration['DateEdit.Min']) {\n ValidatorsArray.push(Validators.min(formConfiguration['DateEdit.Min']));\n }\n if (formConfiguration['DateEdit.Max']) {\n ValidatorsArray.push(Validators.max(formConfiguration['DateEdit.Max']));\n }\n let controlName = this._selected;\n if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Date) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd');\n }\n if (\n this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.DateTime\n ) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd HH:mm:ss');\n }\n if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Month) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM');\n }\n let newControl = this.fb.control(controlName, ValidatorsArray);\n this.extraProperties.setControl(this._fields.field.name, newControl);\n\n resolve(true);\n });\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name);\n }\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n\n <ng-container *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Date\">\n <input type=\"date\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <ng-container\n *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.DateTime\">\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <ng-container *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Month\">\n <input type=\"month\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormArray, FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class SelectConfig {\r\n\r\n\r\n /**空值文本 */\r\n 'Select.NullText': any = ['', []];\r\n //多选\r\n 'Select.Multiple': any = [false, []];\r\n // 选项\r\n 'Select.Options': any = new FormArray([])\r\n\r\n constructor(data?: SelectConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DfApiService {\n\n constructor() { }\n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n // let val = value\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n /**获取图片的本地连接 */\n getImageLacolBase64Url(file: File) {\n return new Promise((resolve, rejects) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n resolve(e.target.result)\n };\n reader.onerror = error => rejects(error);\n })\n }\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { SelectConfig } from './select-config';\nimport { DfApiService } from '../../../services';\n\n@Component({\n selector: 'df-select-config',\n\n templateUrl: './select-config.component.html',\n styleUrls: ['./select-config.component.scss'],\n})\nexport class SelectConfigComponent {\n constructor(private fb: FormBuilder, private _DfApiService: DfApiService) {}\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n get SelectOptions() {\n return this.formConfiguration.controls['Select.Options'] as FormArray;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.submitclick.nativeElement.click();\n }\n }\n /**增加选项 */\n addSelectOptions() {\n this.SelectOptions.push(\n new FormGroup({\n Text: new FormControl('', Validators.required),\n Value: new FormControl('', Validators.required),\n Selected: new FormControl(false),\n })\n );\n }\n /**删除某个选项 */\n deleteSelectOptions(index) {\n this.SelectOptions.removeAt(index);\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new SelectConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['Select.Options']?.forEach(el => {\n this.addSelectOptions();\n });\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n } else {\n this.addSelectOptions();\n }\n resolve(true);\n });\n }\n\n textChange(event, index) {\n let SelectOptionsItem = this.SelectOptions.at(index);\n let value = event.target.value;\n if (SelectOptionsItem.get('Value').value) return;\n SelectOptionsItem.patchValue({\n Value: this._DfApiService.chineseToPinyin(value),\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'DigniteAbpForms::SelectListItemText' | abpLocalization}}</th>\n <th scope=\"col\">{{'DigniteAbpForms::SelectListItemValue' | abpLocalization}}</th>\n <th scope=\"col\">{{'DigniteAbpForms::Selected' | abpLocalization}}</th>\n <th scope=\"col\" style=\"width: 1%;\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addSelectOptions()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"Select.Options\">\n <ng-container *ngFor=\"let item of SelectOptions.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"Text\" (change)=\"textChange($event,i)\"></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"Value\"></td>\n <td>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Selected\" id=\"selected\">\n </div>\n </td>\n <td scope=\"row\" style=\"width: 1%;\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"deleteSelectOptions(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </td>\n </tr> \n </ng-container>\n \n \n </tbody>\n </table>\n </div>\n\n\n\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NullText' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Select.NullText\">\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Select.Multiple\"\n id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'DigniteAbpForms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-select-control',\n templateUrl: './select-control.component.html',\n styleUrls: ['./select-control.component.scss'],\n})\nexport class SelectControlComponent {\n constructor(private fb: FormBuilder) {}\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded();\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup;\n }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit();\n this.submitclick.nativeElement.click();\n }\n }\n formConfiguration: any = '';\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = [];\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required);\n }\n this.formConfiguration = this._fields.field.formConfiguration;\n if (!this._selected) {\n const isMultiple = this.formConfiguration['Select.Multiple'];\n\n let selectValue = isMultiple ? [] : '';\n this.formConfiguration['Select.Options'].forEach(el => {\n if (el.Selected) {\n selectValue = isMultiple\n ? [...selectValue, el.value || el.Value]\n : [el.value || el.Value];\n }\n });\n\n this._selected = selectValue;\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray);\n this.extraProperties.setControl(this._fields.field.name, newControl);\n resolve(true);\n });\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name);\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ng-container *ngIf=\"formConfiguration['Select.Multiple']; else elseTemplate\">\n <select class=\"form-select\" multiple formControlName=\"{{_fields.field.name}}\">\n <ng-container *ngFor=\"let item of _fields.field.formConfiguration['Select.Options'];let i =index\">\n <option [value]=\"item.Value\">{{item.Text}}</option>\n </ng-container>\n </select>\n </ng-container>\n <ng-template #elseTemplate>\n <select class=\"form-select\" [multiple]=\"false\"\n formControlName=\"{{_fields.field.name}}\">\n <option>{{formConfiguration['Select.NullText']}}</option>\n <ng-container *ngFor=\"let item of _fields.field.formConfiguration['Select.Options'];let i =index\">\n <option [value]=\"item.Value\" >{{item.Text}}</option>\n </ng-container>\n </select>\n </ng-template>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FieldControlGroupInterfaces } from \"../../interfaces\";\r\n// import { CkEditorConfigComponent, CkEditorControlComponent } from \"./ck-editor\";\r\nimport { DateEditConfigComponent } from \"./date-edit/date-edit-config.component\";\r\nimport { DateEditControlComponent } from \"./date-edit/date-edit-control.component\";\r\nimport { NumbericEditConfigComponent } from \"./numeric-edit/numberic-edit-config.component\";\r\nimport { NumbericEditControlComponent } from \"./numeric-edit/numberic-edit-control.component\";\r\nimport { SelectConfigComponent, SelectControlComponent } from \"./select\";\r\nimport { SwitchConfigComponent, SwitchControlComponent } from \"./switch\";\r\nimport { TextEditComponent, TextEditConfigComponent } from \"./text-edit\";\r\n\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: FieldControlGroupInterfaces[] = [\r\n {\r\n displayName: '文本框',\r\n name: 'TextEdit',\r\n fieldConfigComponent: TextEditConfigComponent,\r\n fieldComponent: TextEditComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n }, {\r\n displayName: '开关',\r\n name: 'Switch',\r\n fieldConfigComponent: SwitchConfigComponent,\r\n fieldComponent: SwitchControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n }, {\r\n displayName: '选择',\r\n name: 'Select',\r\n fieldConfigComponent: SelectConfigComponent,\r\n fieldComponent: SelectControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n }, {\r\n displayName: '数字',\r\n name: 'NumericEdit',\r\n fieldConfigComponent: NumbericEditConfigComponent,\r\n fieldComponent: NumbericEditControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n }, {\r\n displayName: '日期',\r\n name: 'DateEdit',\r\n fieldConfigComponent: DateEditConfigComponent,\r\n fieldComponent: DateEditControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n];\r\nexport function getExcludeAssignControl(typeName?) {\r\n // return FieldControlGroup.filter(el => el.name !== typeName)\r\n return FieldControlGroup\r\n}\r\n\r\nexport function AddFieldControlGroup(array=[]) {\r\n FieldControlGroup.push(...array)\r\n}","import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport type { FieldControlGroupInterfaces } from '../../interfaces';\nimport { FieldControlGroup } from '../form';\n\n@Component({\n selector: 'df-dynamic',\n templateUrl: './dynamic.component.html',\n styleUrls: ['./dynamic.component.scss'],\n})\nexport class DynamicComponent {\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v === undefined ? '' : v === null ? '' : v;\n }\n\n /**表单控件类型 */\n _type: string;\n @Input()\n public set type(v: string) {\n this._type = v;\n this.dataLoaded(3);\n }\n\n /**语言 */\n _culture: FormGroup | undefined;\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n this.dataLoaded(3);\n }\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormControlRef', { read: ViewContainerRef, static: true })\n FormControlRef: ViewContainerRef;\n\n /**表单控件模板-动态表单组件 */\n @ViewChild('FormComponentsRef', { read: ViewContainerRef, static: true })\n FormComponentsRef: ViewContainerRef;\n\n /**表单控件组 */\n _fieldControlGroup: FieldControlGroupInterfaces[] = FieldControlGroup;\n /**数据加载完成 */\n dataLoaded(val) {\n if (this._entity) {\n if (this._type) {\n let fieldControlItem = this._fieldControlGroup.find(el => el.name === this._type);\n this.loadfieldConfigComponent(fieldControlItem);\n }\n if (this._fields && this._parentFiledName && this._culture) {\n /**表单控件组中的项 */\n let fieldControlItem = this._fieldControlGroup.find(\n el => el.name === this._fields.field.formControlName\n );\n this.loadfieldComponent(fieldControlItem);\n }\n }\n }\n\n /**加载动态表单配置组件 */\n loadfieldConfigComponent(FieldControlItem?: FieldControlGroupInterfaces) {\n //清空了容器中的所有组件\n this.FormControlRef?.clear();\n if (!FieldControlItem || !FieldControlItem.fieldConfigComponent) return;\n //在容器中创建组件\n const { instance } = this.FormControlRef?.createComponent(\n FieldControlItem.fieldConfigComponent\n ); //创建组件模板\n /**向创建的组件模板中传值 */\n \n instance.selected = this._selected;\n instance.type = this._type;\n instance.Entity = this._entity;\n }\n\n /**加载动态表单组件 */\n loadfieldComponent(FieldControlItem?: FieldControlGroupInterfaces) {\n // this.FormControlRef.clear\n //清空了容器中的所有组件\n this.FormComponentsRef?.clear();\n if (!FieldControlItem || !FieldControlItem.fieldComponent) return;\n //在容器中创建组件\n const { instance } = this.FormComponentsRef?.createComponent(FieldControlItem.fieldComponent); //创建组件模板\n /**向创建的组件模板中传值 */\n instance.fields = this._fields;\n instance.parentFiledName = this._parentFiledName;\n instance.selected = this._selected;\n instance.culture = this._culture;\n instance.entity = this._entity;\n }\n}\n","<template #FormControlRef></template>\n<template #FormComponentsRef></template>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\nimport {\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n AddFieldControlGroup,\n DynamicComponent,\n} from './components';\n\n\n\n@NgModule({\n declarations: [\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n DynamicComponent,\n\n ],\n imports: [\n FormsModule,\n CoreModule,\n ThemeSharedModule,\n ReactiveFormsModule,\n NgbDropdownModule,\n NzTreeModule,\n ],\n exports: [\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n DynamicComponent,\n ],\n})\nexport class DynamicFormModule {\n static forRoot(config?: any): ModuleWithProviders<DynamicFormModule> {\n AddFieldControlGroup(config?.cmsFieldControlGroup)\n return {\n ngModule: DynamicFormModule,\n providers: []\n };\n }\n}\n","/*\n * Public API Surface of dynamic-form\n */\n\nexport * from './lib/dynamic-form.module';\nexport * from './lib/components';\nexport * from './lib/interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i2.DfApiService","i3","i4","i5"],"mappings":"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"}
1
+ {"version":3,"file":"dignite-ng-expand.dynamic-form.mjs","sources":["../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.ts","../../../projects/dynamic-form/src/lib/enums/text-edit-mode.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit.component.ts","../../../projects/dynamic-form/src/lib/components/form/text-edit/text-edit.component.html","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-config.component.html","../../../projects/dynamic-form/src/lib/components/form/switch/switch-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/switch/switch-control.component.html","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/numeric-edit/numberic-edit-control.component.html","../../../projects/dynamic-form/src/lib/enums/date-edit-interfaces.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-config.component.html","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/date-edit/date-edit-control.component.html","../../../projects/dynamic-form/src/lib/components/form/select/select-config.ts","../../../projects/dynamic-form/src/lib/services/df-api.service.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-config.component.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-config.component.html","../../../projects/dynamic-form/src/lib/components/form/select/select-control.component.ts","../../../projects/dynamic-form/src/lib/components/form/select/select-control.component.html","../../../projects/dynamic-form/src/lib/components/form/form-control-group.ts","../../../projects/dynamic-form/src/lib/components/dynamic/dynamic.component.ts","../../../projects/dynamic-form/src/lib/components/dynamic/dynamic.component.html","../../../projects/dynamic-form/src/lib/dynamic-form.module.ts","../../../projects/dynamic-form/src/public-api.ts","../../../projects/dynamic-form/src/dignite-ng-expand.dynamic-form.ts"],"sourcesContent":["import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class TextEditConfig {\r\n\r\n\r\n /**占位符 */\r\n 'TextEdit.Placeholder': any = ['', []];\r\n //字段类型,单行文本,多行文本\r\n 'TextEdit.Mode': any = [0, []];\r\n // 字数限制\r\n 'TextEdit.CharLimit': any = ['265', []];\r\n\r\n constructor(data?: TextEditConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","export enum TextEditMode {\n // 简单类型\n SingleLine,\n // 复合类型;\n MultipleLine,\n \n}\n","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { TextEditConfig } from './text-edit-config';\nimport { TextEditMode } from '../../../enums/text-edit-mode';\n\n@Component({\n selector: 'df-text-edit-config',\n templateUrl: './text-edit-config.component.html',\n styleUrls: ['./text-edit-config.component.scss'],\n})\nexport class TextEditConfigComponent {\n constructor(private fb: FormBuilder) {}\n _TextEditMode = TextEditMode;\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n this.dataLoaded();\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new TextEditConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n }\n resolve(true);\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"TextEdit.Placeholder\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::TextEditMode' | abpLocalization}}</label>\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_TextEditMode.SingleLine\" formControlName=\"TextEdit.Mode\"\n id=\"flexRadioDefault1\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::SingleLine' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_TextEditMode.MultipleLine\" formControlName=\"TextEdit.Mode\"\n id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexRadioDefault2\">\n {{'DigniteAbpForms::MultipleLine' | abpLocalization}}\n </label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::CharLimit' | abpLocalization}}</label>\n <input type=\"number\" class=\"form-control\" formControlName=\"TextEdit.CharLimit\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","/* eslint-disable @angular-eslint/no-empty-lifecycle-method */\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\nimport { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { TextEditMode } from '../../../enums/text-edit-mode';\nimport { TextEditConfig } from './text-edit-config';\n\n@Component({\n selector: 'df-text-edit',\n templateUrl: './text-edit.component.html',\n styleUrls: ['./text-edit.component.scss']\n})\nexport class TextEditComponent {\n\n constructor(\n private fb: FormBuilder,\n ) {\n }\n\n _TextEditMode = TextEditMode\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n if (v) this.dataLoaded()\n }\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n if (v) this.dataLoaded()\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n if (v) this.dataLoaded()\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v || '';\n if (v) this.dataLoaded()\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n extraProperties: FormGroup | undefined;\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._fields && this._entity && this._parentFiledName) {\n this.extraProperties = this._entity.get(this._parentFiledName) as FormGroup\n await this.AfterInit()\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n this._fields.field.formConfiguration={\n ...this.fb.group(new TextEditConfig()).value,\n ...this._fields.field.formConfiguration\n }\n if (this._fields.field.formConfiguration['TextEdit.CharLimit']) {\n ValidatorsArray.push(Validators.maxLength(this._fields.field.formConfiguration['TextEdit.CharLimit']))\n }\n \n let newControl = this.fb.control(this._selected, ValidatorsArray)\n this.extraProperties.setControl(this._fields.field.name, newControl)\n resolve(true)\n })\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name)\n }\n\n isObjEmpty = (obj) => Object.keys(obj).length === 0\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ng-container *ngIf=\"_fields.field.formConfiguration['TextEdit.Mode'] ===_TextEditMode.SingleLine\">\n <input type=\"text\" class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['TextEdit.Placeholder']\" />\n </ng-container>\n <ng-container *ngIf=\"_fields.field.formConfiguration['TextEdit.Mode'] === _TextEditMode.MultipleLine\">\n <textarea class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['TextEdit.Placeholder']\" rows=\"3\"></textarea>\n </ng-container>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class SwitchConfig {\r\n\r\n\r\n /**默认值 */\r\n 'Switch.Default': any = [false, []];\r\n constructor(data?: SwitchConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n }\r\n}","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { SwitchConfig } from './switch-config';\n@Component({\n selector: 'df-switch-config',\n templateUrl: './switch-config.component.html',\n styleUrls: ['./switch-config.component.scss'],\n})\nexport class SwitchConfigComponent {\n constructor(private fb: FormBuilder) {}\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n this.dataLoaded();\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new SwitchConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n }\n resolve(true);\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Switch.Default\"\n id=\"flexRadioDefault1\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::DefaultValue' | abpLocalization}}\n </label>\n </div>\n \n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-switch-control',\n templateUrl: './switch-control.component.html',\n styleUrls: ['./switch-control.component.scss'],\n})\nexport class SwitchControlComponent {\n constructor(private fb: FormBuilder) {}\n\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded();\n }\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n this.dataLoaded();\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n this.dataLoaded();\n }\n /** */\n _selected: any;\n @Input()\n public set selected(v: any) {\n // ?v:false;\n this._selected = v;\n this.dataLoaded();\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup;\n }\n private cdr = inject(ChangeDetectorRef);\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = [];\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required);\n }\n let newControl = this.fb.control(\n this._selected\n ? this._selected\n : this._selected === false\n ? this._selected\n : this._fields.field.formConfiguration['Switch.Default'],\n ValidatorsArray\n );\n this.extraProperties.setControl(this._fields.field.name, newControl);\n resolve(true);\n });\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name);\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" formControlName=\"{{_fields.field.name}}\">\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class NumbericEditConfig {\r\n /**占位符 */\r\n 'NumericEditField.Placeholder': any = ['', []];\r\n /**最小值 */\r\n 'NumericEditField.Min': any = ['', []];\r\n //最大值\r\n 'NumericEditField.Max': any = ['', []];\r\n // 小数位数\r\n 'NumericEditField.Decimals': any = [2, []];\r\n //步长\r\n 'NumericEditField.Step': any = ['', []];\r\n //格式说明符\r\n 'FormatSpecifier': any = ['', []];\r\n\r\n constructor(data?: NumbericEditConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NumbericEditConfig } from './numberic-edit-config';\n\n@Component({\n selector: 'df-numberic-edit-config',\n templateUrl: './numberic-edit-config.component.html',\n styleUrls: ['./numberic-edit-config.component.scss'],\n})\nexport class NumbericEditConfigComponent {\n constructor(private fb: FormBuilder) {}\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n // this.dataLoaded()\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v ? v : v == false ? v : '';\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: false }) submitclick?: ElementRef;\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new NumbericEditConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n }\n resolve(true);\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Placeholder\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Min' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Min\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Max' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Max\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NumericDecimals' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Decimals\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NumericStep' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"NumericEditField.Step\">\n <small class=\"form-text text-muted d-block\">{{'DigniteAbpForms::NumericStepHelp'|abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::FormatSpecifier' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"FormatSpecifier\">\n <small class=\"form-text text-muted d-block\">See:<a href=\"https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings\" target=\"_blank\">https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings</a></small>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\" #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, ChangeDetectionStrategy ,ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { AbstractControl, ValidationErrors } from '@angular/forms'; \n \nexport function maxDecimalPlacesValidator(maxDecimalPlaces: number): ValidatorFn { \n return (control: AbstractControl): ValidationErrors | null => { \n const value = control.value; \n if (typeof value === 'number' && isNaN(value) === false) { \n const decimalPart = value.toString().split('.')[1]; \n if (decimalPart && decimalPart.length > maxDecimalPlaces) { \n return { 'maxDecimalPlaces': { actual: decimalPart.length, max: maxDecimalPlaces } }; \n } \n } \n return null; \n }; \n}\n@Component({\n selector: 'df-numberic-edit-control',\n templateUrl: './numberic-edit-control.component.html',\n styleUrls: ['./numberic-edit-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumbericEditControlComponent {\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef \n ) {\n\n }\n\n\n public get entity(): any {\n return this._entity\n }\n\n\n /**字段配置列表 */\n _fields: any = ''\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any\n @Input()\n public set selected(v: any) {\n this._selected = v ;\n // \n }\n\n /**表单实体 */\n _entity: FormGroup | undefined\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded()\n }\n \n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup\n }\n get fieldInput() { return this.extraProperties.get(this._fields.field.name); }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit()\n this.cdr.detectChanges(); \n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = []\n let formConfiguration=this._fields.field.formConfiguration\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required)\n }\n if (formConfiguration['NumericEditField.Min']) {\n ValidatorsArray.push(Validators.min(formConfiguration['NumericEditField.Min']))\n }\n if (formConfiguration['NumericEditField.Max']) {\n ValidatorsArray.push(Validators.max(formConfiguration['NumericEditField.Max']))\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray)\n this.extraProperties.setControl(this._fields.field.name, newControl)\n\n resolve(true)\n })\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name)\n }\n\n /**数字框输入 */\n inputchange(event){\n let val=event.target.value\n const decimalPart = val.toString().split('.')[1]||'';\n let formConfiguration=this._fields.field.formConfiguration\n let Decimals=formConfiguration['NumericEditField.Decimals']\n if(decimalPart.length>Decimals){\n this.fieldInput.patchValue(val.slice(0,val.length-(decimalPart.length-2)).toString())\n }\n }\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <input type=\"number\" class=\"form-control\" formControlName=\"{{_fields.field.name}}\"\n [placeholder]=\"_fields.field.formConfiguration['NumericEditField.Placeholder']||''\"\n [step]=\"_fields.field.formConfiguration['NumericEditField.Step']\" (input)=\"inputchange($event)\" />\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","export enum DateEditInterfaces {\n /// <summary>\n /// Only date is allowed to be entered.\n /// </summary>\n Date = 0,\n\n /// <summary>\n /// Both date and time are allowed to be entered.\n /// </summary>\n DateTime = 1,\n\n /// <summary>\n /// Allowed to select only year and month.\n /// </summary>\n Month = 2\n}\n","import { FormControl, Validators } from \"@angular/forms\";\r\nimport { DateEditInterfaces } from \"../../../enums/date-edit-interfaces\";\r\n\r\nexport class DateEditConfig {\r\n /**日期格式 */\r\n 'DateEdit.InputMode': any = [DateEditInterfaces.Date, []];\r\n /**最小值 */\r\n 'DateEdit.Min': any = ['', []];\r\n /**最大值 */\r\n 'DateEdit.Max': any = ['', []];\r\n\r\n constructor() {\r\n }\r\n}","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { DateEditConfig } from './date-edit-config';\nimport { DateEditInterfaces } from '../../../enums/date-edit-interfaces';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'df-date-edit-config',\n templateUrl: './date-edit-config.component.html',\n styleUrls: ['./date-edit-config.component.scss'],\n})\nexport class DateEditConfigComponent {\n constructor(private fb: FormBuilder) {}\n private _dataPipe = inject(DatePipe);\n _DateEditInterfaces = DateEditInterfaces;\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n\n dateTimeType: any = 'date';\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new DateEditConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n this.timeTypeChange()\n }\n resolve(true);\n });\n }\n /**切换时间类型 */\n timeTypeChange() {\n let type = this.formConfiguration.value['DateEdit.InputMode'];\n let Min = this.formConfiguration.value['DateEdit.Min'];\n let Max = this.formConfiguration.value['DateEdit.Max'];\n if (type == DateEditInterfaces.Date) {\n this.dateTimeType = 'date';\n Min = this._dataPipe.transform(Min, 'yyyy-MM-dd');\n Max = this._dataPipe.transform(Max, 'yyyy-MM-dd');\n } else if (type == DateEditInterfaces.DateTime) {\n this.dateTimeType = 'datetime-local';\n Min = this._dataPipe.transform(Min, 'yyyy-MM-dd HH:mm:ss');\n Max = this._dataPipe.transform(Max, 'yyyy-MM-dd HH:mm:ss');\n } else if (type == DateEditInterfaces.Month) {\n this.dateTimeType = 'month';\n Min = this._dataPipe.transform(Min, 'yyyy-MM');\n Max = this._dataPipe.transform(Max, 'yyyy-MM');\n }\n this.formConfiguration.patchValue({\n 'DateEdit.Min': Min,\n 'DateEdit.Max': Max,\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::DateEditMode' | abpLocalization}}</label>\n <div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.Date\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault1\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpForms::Date' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.DateTime\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault2\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault2\">\n {{'DigniteAbpForms::DateTime' | abpLocalization}}\n </label>\n </div>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"_DateEditInterfaces.Month\"\n formControlName=\"DateEdit.InputMode\" id=\"flexRadioDefault3\" (change)=\"timeTypeChange()\">\n <label class=\"form-check-label\" for=\"flexRadioDefault3\">\n {{'DigniteAbpForms::Month' | abpLocalization}}\n </label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Min' | abpLocalization}}</label>\n <input [type]=\"dateTimeType\" class=\"form-control\" step=\"1\" formControlName=\"DateEdit.Min\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::Max' | abpLocalization}}</label>\n <input [type]=\"dateTimeType\" class=\"form-control\" step=\"1\" formControlName=\"DateEdit.Max\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { Component, ElementRef, Input, ViewChild, ChangeDetectorRef, inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { DateEditInterfaces } from '../../../enums/date-edit-interfaces';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'df-date-edit-control',\n templateUrl: './date-edit-control.component.html',\n styleUrls: ['./date-edit-control.component.scss'],\n})\nexport class DateEditControlComponent {\n constructor(private fb: FormBuilder, private cdr: ChangeDetectorRef) {}\n private _dataPipe = inject(DatePipe);\n _DateEditInterfaces = DateEditInterfaces;\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded();\n }\n\n public get entity(): any {\n return this._entity;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup;\n }\n get fieldInput() {\n return this.extraProperties.get(this._fields.field.name);\n }\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit();\n\n this.cdr.detectChanges();\n this.submitclick.nativeElement.click();\n }\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = [];\n let formConfiguration = this._fields.field.formConfiguration;\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required);\n }\n if (formConfiguration['DateEdit.Min']) {\n ValidatorsArray.push(Validators.min(formConfiguration['DateEdit.Min']));\n }\n if (formConfiguration['DateEdit.Max']) {\n ValidatorsArray.push(Validators.max(formConfiguration['DateEdit.Max']));\n }\n let controlName = this._selected;\n if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Date) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd');\n }\n if (\n this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.DateTime\n ) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd HH:mm:ss');\n }\n if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Month) {\n controlName = this._dataPipe.transform(this._selected, 'yyyy-MM');\n }\n let newControl = this.fb.control(controlName, ValidatorsArray);\n this.extraProperties.setControl(this._fields.field.name, newControl);\n\n resolve(true);\n });\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name);\n }\n}\n","<form [formGroup]=\"_entity\">\n <div [formGroupName]=\"_parentFiledName\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n\n <ng-container *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Date\">\n <input type=\"date\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <ng-container\n *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.DateTime\">\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <ng-container *ngIf=\"_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Month\">\n <input type=\"month\" class=\"form-control\" step=\"1\" formControlName=\"{{_fields.field.name}}\"\n [min]=\"_fields.field.formConfiguration['DateEdit.Min']\"\n [max]=\"_fields.field.formConfiguration['DateEdit.Max']\" />\n </ng-container>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FormArray, FormControl, Validators } from \"@angular/forms\";\r\n\r\nexport class SelectConfig {\r\n\r\n\r\n /**空值文本 */\r\n 'Select.NullText': any = ['', []];\r\n //多选\r\n 'Select.Multiple': any = [false, []];\r\n // 选项\r\n 'Select.Options': any = new FormArray([])\r\n\r\n constructor(data?: SelectConfig) {\r\n if (data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n}","import { Injectable } from '@angular/core';\nimport { pinyin } from 'pinyin-pro';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DfApiService {\n\n constructor() { }\n\n /**\n * 识别中文转化为拼音,固定返回类型\n * 汉字转拼音\n * 大写转小写\n * \n * */\n chineseToPinyin(value: any) {\n //去除字符串中所有的空格\n // let val = value\n let val = value.replaceAll(' ', \"-\")\n let array = val.split('')\n let newArray = []\n array.forEach((el: any, index: any) => {\n //转化为小写\n let elChange = el.toLowerCase()\n let isChinese = (str) => {\n return /^[\\u4e00-\\u9fa5]+$/.test(str);\n }\n if (isChinese(elChange)) {\n const resultWithoutTone = pinyin(elChange, { toneType: 'none', type: 'array' });\n elChange = resultWithoutTone.toString() \n if (index < array.length - 1) elChange+='-'\n };\n newArray.push(elChange)\n });\n let pinyinstr = newArray.join('')\n return pinyinstr || val\n }\n\n /**获取图片的本地连接 */\n getImageLacolBase64Url(file: File) {\n return new Promise((resolve, rejects) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n resolve(e.target.result)\n };\n reader.onerror = error => rejects(error);\n })\n }\n\n /**\n * 深拷贝--方法 */\n deepClone(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n const result = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (obj[key] instanceof RegExp) {\n result[key] = new RegExp(obj[key]);\n } else {\n result[key] = this.deepClone(obj[key]);\n }\n } else {\n result[key] = obj[key];\n }\n }\n }\n return result;\n }\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { SelectConfig } from './select-config';\nimport { DfApiService } from '../../../services';\n\n@Component({\n selector: 'df-select-config',\n\n templateUrl: './select-config.component.html',\n styleUrls: ['./select-config.component.scss'],\n})\nexport class SelectConfigComponent {\n constructor(private fb: FormBuilder, private _DfApiService: DfApiService) {}\n /**表单控件类型 */\n _type: any;\n @Input()\n public set type(v: any) {\n this._type = v;\n }\n\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _Entity: FormGroup | undefined;\n @Input()\n public set Entity(v: FormGroup) {\n this._Entity = v;\n this.dataLoaded();\n }\n get formConfiguration() {\n return this._Entity.get('formConfiguration') as FormGroup;\n }\n get SelectOptions() {\n return this.formConfiguration.controls['Select.Options'] as FormArray;\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n private cdr = inject(ChangeDetectorRef);\n async dataLoaded() {\n if (this._Entity && this._type) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n /**增加选项 */\n addSelectOptions() {\n this.SelectOptions.push(\n new FormGroup({\n Text: new FormControl('', Validators.required),\n Value: new FormControl('', Validators.required),\n Selected: new FormControl(false),\n })\n );\n }\n /**删除某个选项 */\n deleteSelectOptions(index) {\n this.SelectOptions.removeAt(index);\n }\n\n AfterInit() {\n return new Promise((resolve, rejects) => {\n this._Entity.setControl('formConfiguration', this.fb.group(new SelectConfig()));\n if (this._selected && this._selected.formControlName == this._type) {\n this._selected.formConfiguration['Select.Options']?.forEach(el => {\n this.addSelectOptions();\n });\n this.formConfiguration.patchValue({\n ...this._selected.formConfiguration,\n });\n } else {\n this.addSelectOptions();\n }\n resolve(true);\n });\n }\n\n textChange(event, index) {\n let SelectOptionsItem = this.SelectOptions.at(index);\n let value = event.target.value;\n if (SelectOptionsItem.get('Value').value) return;\n SelectOptionsItem.patchValue({\n Value: this._DfApiService.chineseToPinyin(value),\n });\n }\n}\n","<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'DigniteAbpForms::SelectListItemText' | abpLocalization}}</th>\n <th scope=\"col\">{{'DigniteAbpForms::SelectListItemValue' | abpLocalization}}</th>\n <th scope=\"col\">{{'DigniteAbpForms::Selected' | abpLocalization}}</th>\n <th scope=\"col\" style=\"width: 1%;\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addSelectOptions()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"Select.Options\">\n <ng-container *ngFor=\"let item of SelectOptions.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"Text\" (change)=\"textChange($event,i)\"></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"Value\"></td>\n <td>\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Selected\" id=\"selected\">\n </div>\n </td>\n <td scope=\"row\" style=\"width: 1%;\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"deleteSelectOptions(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </td>\n </tr> \n </ng-container>\n \n \n </tbody>\n </table>\n </div>\n\n\n\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::NullText' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Select.NullText\">\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Select.Multiple\"\n id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'DigniteAbpForms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>","import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n@Component({\n selector: 'df-select-control',\n templateUrl: './select-control.component.html',\n styleUrls: ['./select-control.component.scss'],\n})\nexport class SelectControlComponent {\n constructor(private fb: FormBuilder) {}\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n /**父级字段名称,用于为表单设置控件赋值 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v;\n }\n\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n this._entity = v;\n this.dataLoaded();\n }\n @ViewChild('submitclick', { static: true }) submitclick: ElementRef;\n\n get extraProperties() {\n return this._entity.get('extraProperties') as FormGroup;\n }\n private cdr = inject(ChangeDetectorRef);\n /**数据加载完成 */\n async dataLoaded() {\n if (this._fields && this._entity) {\n await this.AfterInit();\n this.cdr.detectChanges(); // 手动触发变更检测\n this.submitclick?.nativeElement?.click();\n }\n }\n \n formConfiguration: any = '';\n AfterInit() {\n return new Promise((resolve, rejects) => {\n let ValidatorsArray = [];\n if (this._fields.required) {\n ValidatorsArray.push(Validators.required);\n }\n this.formConfiguration = this._fields.field.formConfiguration;\n if (!this._selected) {\n const isMultiple = this.formConfiguration['Select.Multiple'];\n\n let selectValue = isMultiple ? [] : '';\n this.formConfiguration['Select.Options'].forEach(el => {\n if (el.Selected) {\n selectValue = isMultiple\n ? [...selectValue, el.value || el.Value]\n : [el.value || el.Value];\n }\n });\n\n this._selected = selectValue;\n }\n let newControl = this.fb.control(this._selected, ValidatorsArray);\n this.extraProperties.setControl(this._fields.field.name, newControl);\n resolve(true);\n });\n }\n ngOnDestroy(): void {\n //Called once, before the instance is destroyed.\n //Add 'implements OnDestroy' to the class.\n this.extraProperties.removeControl(this._fields.field.name);\n }\n}\n","<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ng-container *ngIf=\"formConfiguration['Select.Multiple']; else elseTemplate\">\n <select class=\"form-select\" multiple formControlName=\"{{_fields.field.name}}\">\n <ng-container *ngFor=\"let item of _fields.field.formConfiguration['Select.Options'];let i =index\">\n <option [value]=\"item.Value\">{{item.Text}}</option>\n </ng-container>\n </select>\n </ng-container>\n <ng-template #elseTemplate>\n <select class=\"form-select\" [multiple]=\"false\"\n formControlName=\"{{_fields.field.name}}\">\n <option>{{formConfiguration['Select.NullText']}}</option>\n <ng-container *ngFor=\"let item of _fields.field.formConfiguration['Select.Options'];let i =index\">\n <option [value]=\"item.Value\" >{{item.Text}}</option>\n </ng-container>\n </select>\n </ng-template>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>","import { FieldControlGroupInterfaces } from '../../interfaces';\r\n// import { CkEditorConfigComponent, CkEditorControlComponent } from \"./ck-editor\";\r\nimport { DateEditConfigComponent } from './date-edit/date-edit-config.component';\r\nimport { DateEditControlComponent } from './date-edit/date-edit-control.component';\r\nimport { NumbericEditConfigComponent } from './numeric-edit/numberic-edit-config.component';\r\nimport { NumbericEditControlComponent } from './numeric-edit/numberic-edit-control.component';\r\nimport { SelectConfigComponent, SelectControlComponent } from './select';\r\nimport { SwitchConfigComponent, SwitchControlComponent } from './switch';\r\nimport { TextEditComponent, TextEditConfigComponent } from './text-edit';\r\n\r\n/**\r\n * 表单控件分组-包含配置,控件,显示的数组\r\n */\r\nexport const FieldControlGroup: FieldControlGroupInterfaces[] = [\r\n {\r\n displayName: '文本框',\r\n name: 'TextEdit',\r\n fieldConfigComponent: TextEditConfigComponent,\r\n fieldComponent: TextEditComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n {\r\n displayName: '开关',\r\n name: 'Switch',\r\n fieldConfigComponent: SwitchConfigComponent,\r\n fieldComponent: SwitchControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n {\r\n displayName: '选择',\r\n name: 'Select',\r\n fieldConfigComponent: SelectConfigComponent,\r\n fieldComponent: SelectControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n {\r\n displayName: '数字',\r\n name: 'NumericEdit',\r\n fieldConfigComponent: NumbericEditConfigComponent,\r\n fieldComponent: NumbericEditControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n {\r\n displayName: '日期',\r\n name: 'DateEdit',\r\n fieldConfigComponent: DateEditConfigComponent,\r\n fieldComponent: DateEditControlComponent,\r\n // fieldViewComponent:TextBoxViewComponent,\r\n },\r\n];\r\nlet fielFieldControlGroup=[];\r\nlet ckEditorFieldControlGroup=[];\r\nexport async function getExcludeAssignControl(typeName?) {\r\n if(fielFieldControlGroup.length===0) {\r\n fielFieldControlGroup =await import('@dignite-ng/expand.file-explorer').then((module) => module.fielFieldControlGroup) ;\r\n }\r\n if(ckEditorFieldControlGroup.length===0) {\r\n ckEditorFieldControlGroup =await import('@dignite-ng/expand.ck-editor').then((module) => module.ckEditorFieldControlGroup);\r\n }\r\n \r\n AddFieldControlGroup([...fielFieldControlGroup,...ckEditorFieldControlGroup])\r\n return FieldControlGroup;\r\n}\r\n\r\nexport function AddFieldControlGroup(array = []) {\r\n FieldControlGroup.push(...array);\r\n}\r\n","import { Component, Inject, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldControlGroupInterfaces } from '../../interfaces';\nimport { FieldControlGroup, getExcludeAssignControl } from '../form';\n\n@Component({\n selector: 'df-dynamic',\n templateUrl: './dynamic.component.html',\n styleUrls: ['./dynamic.component.scss'],\n})\nexport class DynamicComponent {\n /**选择的表单信息 */\n _selected: any;\n @Input()\n public set selected(v: any) {\n this._selected = v === undefined ? '' : v === null ? '' : v;\n }\n\n /**表单控件类型 */\n _type: string;\n @Input()\n public set type(v: string) {\n this._type = v;\n if(this._entity) this.dataLoaded(3);\n }\n\n /**语言 */\n _culture: FormGroup | undefined;\n @Input()\n public set culture(v: any) {\n this._culture = v;\n }\n\n /**父级字段名称,用于为表单设置控件赋值 */\n _parentFiledName: any;\n @Input()\n public set parentFiledName(v: any) {\n this._parentFiledName = v;\n }\n\n /**字段配置列表 */\n _fields: any = '';\n @Input()\n public set fields(v: any) {\n this._fields = v;\n }\n /**表单实体 */\n _entity: FormGroup | undefined;\n @Input()\n public set entity(v: any) {\n if (v) {\n this._entity = v;\n this.dataLoaded(3);\n }\n }\n\n /**表单控件模板-动态表单配置组件 */\n @ViewChild('FormControlRef', { read: ViewContainerRef, static: true })\n FormControlRef?: ViewContainerRef;\n\n /**表单控件模板-动态表单组件 */\n @ViewChild('FormComponentsRef', { read: ViewContainerRef, static: true })\n FormComponentsRef?: ViewContainerRef;\n \n\n /**数据加载完成 */\n async dataLoaded(val) {\n // let _fieldControlGroup:any[] = FieldControlGroup;\n let _fieldControlGroup:any[] = new Array(...await getExcludeAssignControl());\n if (this._entity) {\n //加载所有的动态表单组件\n if (this._type) {\n let fieldControlItem = _fieldControlGroup.find(el => el.name === this._type);\n this.loadfieldConfigComponent(fieldControlItem);\n }\n if (this._fields && this._parentFiledName && this._culture) {\n /**表单控件组中的项 */\n let fieldControlItem = _fieldControlGroup.find(\n el => el.name === this._fields.field.formControlName\n );\n this.loadfieldComponent(fieldControlItem);\n }\n }\n }\n\n /**加载动态表单配置组件 */\n loadfieldConfigComponent(FieldControlItem?: FieldControlGroupInterfaces) {\n //清空了容器中的所有组件\n this.FormControlRef?.clear();\n if (!FieldControlItem || !FieldControlItem.fieldConfigComponent) return;\n //在容器中创建组件\n const { instance } = this.FormControlRef?.createComponent(\n FieldControlItem.fieldConfigComponent\n ); //创建组件模板\n /**向创建的组件模板中传值 */\n instance.selected = this._selected;\n instance.type = this._type;\n instance.Entity = this._entity;\n }\n\n /**加载动态表单组件 */\n loadfieldComponent(FieldControlItem?: FieldControlGroupInterfaces) {\n // this.FormControlRef.clear\n //清空了容器中的所有组件\n this.FormComponentsRef?.clear();\n if (!FieldControlItem || !FieldControlItem.fieldComponent) return;\n //在容器中创建组件\n const { instance } = this.FormComponentsRef?.createComponent(FieldControlItem.fieldComponent); //创建组件模板\n /**向创建的组件模板中传值 */\n instance.fields = this._fields;\n instance.parentFiledName = this._parentFiledName;\n instance.selected = this._selected;\n instance.culture = this._culture;\n instance.entity = this._entity;\n }\n}\n","<template #FormControlRef></template>\n<template #FormComponentsRef></template>","import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\n// import { NzTreeModule } from 'ng-zorro-antd/tree';\nimport {\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n AddFieldControlGroup,\n DynamicComponent,\n} from './components';\n\n\n\n@NgModule({\n declarations: [\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n DynamicComponent,\n\n ],\n imports: [\n FormsModule,\n CoreModule,\n ThemeSharedModule,\n ReactiveFormsModule,\n NgbDropdownModule,\n // NzTreeModule,\n ],\n exports: [\n TextEditConfigComponent,\n TextEditComponent,\n SwitchConfigComponent,\n SwitchControlComponent,\n NumbericEditConfigComponent,\n NumbericEditControlComponent,\n DateEditConfigComponent,\n DateEditControlComponent,\n SelectConfigComponent,\n SelectControlComponent,\n DynamicComponent,\n ],\n providers: [\n ],\n})\nexport class DynamicFormModule {\n static forRoot(config?: any): ModuleWithProviders<DynamicFormModule> {\n AddFieldControlGroup(config?.cmsFieldControlGroup)\n return {\n ngModule: DynamicFormModule,\n providers: [\n ]\n };\n }\n\n}\n","/*\n * Public API Surface of dynamic-form\n */\n\nexport * from './lib/dynamic-form.module';\nexport * from './lib/components';\nexport * from './lib/interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i2.DfApiService","i3","i4","i5"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ViewContainerRef } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
- import type { FieldControlGroupInterfaces } from '../../interfaces';
3
+ import { FieldControlGroupInterfaces } from '../../interfaces';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class DynamicComponent {
6
6
  /**选择的表单信息 */
@@ -22,13 +22,11 @@ export declare class DynamicComponent {
22
22
  _entity: FormGroup | undefined;
23
23
  set entity(v: any);
24
24
  /**表单控件模板-动态表单配置组件 */
25
- FormControlRef: ViewContainerRef;
25
+ FormControlRef?: ViewContainerRef;
26
26
  /**表单控件模板-动态表单组件 */
27
- FormComponentsRef: ViewContainerRef;
28
- /**表单控件组 */
29
- _fieldControlGroup: FieldControlGroupInterfaces[];
27
+ FormComponentsRef?: ViewContainerRef;
30
28
  /**数据加载完成 */
31
- dataLoaded(val: any): void;
29
+ dataLoaded(val: any): Promise<void>;
32
30
  /**加载动态表单配置组件 */
33
31
  loadfieldConfigComponent(FieldControlItem?: FieldControlGroupInterfaces): void;
34
32
  /**加载动态表单组件 */
@@ -19,6 +19,7 @@ export declare class DateEditConfigComponent {
19
19
  dateTimeType: any;
20
20
  get formConfiguration(): FormGroup;
21
21
  submitclick: ElementRef;
22
+ private cdr;
22
23
  dataLoaded(): Promise<void>;
23
24
  AfterInit(): Promise<unknown>;
24
25
  /**切换时间类型 */
@@ -1,7 +1,7 @@
1
- import { FieldControlGroupInterfaces } from "../../interfaces";
1
+ import { FieldControlGroupInterfaces } from '../../interfaces';
2
2
  /**
3
3
  * 表单控件分组-包含配置,控件,显示的数组
4
4
  */
5
5
  export declare const FieldControlGroup: FieldControlGroupInterfaces[];
6
- export declare function getExcludeAssignControl(typeName?: any): FieldControlGroupInterfaces[];
6
+ export declare function getExcludeAssignControl(typeName?: any): Promise<FieldControlGroupInterfaces[]>;
7
7
  export declare function AddFieldControlGroup(array?: any[]): void;