@dignite-ng/expand.dynamic-form 3.0.0-rc.6 → 3.0.0-rc.7

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 (166) hide show
  1. package/esm2022/dignite-ng-expand.dynamic-form.mjs +5 -0
  2. package/esm2022/lib/components/dynamic/dynamic.component.mjs +106 -0
  3. package/esm2022/lib/components/dynamic/index.mjs +2 -0
  4. package/esm2022/lib/components/form/date-edit/date-edit-config.component.mjs +90 -0
  5. package/esm2022/lib/components/form/date-edit/date-edit-config.mjs +12 -0
  6. package/esm2022/lib/components/form/date-edit/date-edit-control.component.mjs +99 -0
  7. package/esm2022/lib/components/form/date-edit/index.mjs +3 -0
  8. package/esm2022/lib/components/form/form-control-group.mjs +60 -0
  9. package/esm2022/lib/components/form/index.mjs +7 -0
  10. package/esm2022/lib/components/form/numeric-edit/index.mjs +3 -0
  11. package/esm2022/lib/components/form/numeric-edit/numberic-edit-config.component.mjs +60 -0
  12. package/esm2022/lib/components/form/numeric-edit/numberic-edit-config.mjs +25 -0
  13. package/esm2022/lib/components/form/numeric-edit/numberic-edit-control.component.mjs +106 -0
  14. package/esm2022/lib/components/form/select/index.mjs +3 -0
  15. package/esm2022/lib/components/form/select/select-config.component.mjs +93 -0
  16. package/esm2022/lib/components/form/select/select-config.mjs +19 -0
  17. package/esm2022/lib/components/form/select/select-control.component.mjs +87 -0
  18. package/esm2022/lib/components/form/switch/index.mjs +3 -0
  19. package/esm2022/lib/components/form/switch/switch-config.component.mjs +61 -0
  20. package/esm2022/lib/components/form/switch/switch-config.mjs +14 -0
  21. package/esm2022/lib/components/form/switch/switch-control.component.mjs +80 -0
  22. package/esm2022/lib/components/form/text-edit/index.mjs +4 -0
  23. package/esm2022/lib/components/form/text-edit/text-edit-config.component.mjs +63 -0
  24. package/esm2022/lib/components/form/text-edit/text-edit-config.mjs +18 -0
  25. package/esm2022/lib/components/form/text-edit/text-edit.component.mjs +89 -0
  26. package/esm2022/lib/components/index.mjs +3 -0
  27. package/esm2022/lib/dynamic-form.module.mjs +92 -0
  28. package/esm2022/lib/enums/date-edit-interfaces.mjs +16 -0
  29. package/esm2022/lib/enums/text-edit-mode.mjs +8 -0
  30. package/esm2022/lib/interfaces/form-config-interfaces.mjs +2 -0
  31. package/esm2022/lib/interfaces/index.mjs +2 -0
  32. package/esm2022/lib/services/df-api.service.mjs +82 -0
  33. package/esm2022/lib/services/index.mjs +2 -0
  34. package/esm2022/public-api.mjs +7 -0
  35. package/fesm2022/dignite-ng-expand.dynamic-form.mjs +1209 -0
  36. package/fesm2022/dignite-ng-expand.dynamic-form.mjs.map +1 -0
  37. package/index.d.ts +5 -0
  38. package/lib/components/dynamic/dynamic.component.d.ts +38 -0
  39. package/lib/components/dynamic/index.d.ts +1 -0
  40. package/lib/components/form/date-edit/date-edit-config.component.d.ts +29 -0
  41. package/lib/components/form/date-edit/date-edit-config.d.ts +9 -0
  42. package/lib/components/form/date-edit/date-edit-control.component.d.ts +33 -0
  43. package/lib/components/form/date-edit/index.d.ts +2 -0
  44. package/lib/components/form/form-control-group.d.ts +6 -0
  45. package/lib/components/form/index.d.ts +6 -0
  46. package/lib/components/form/numeric-edit/index.d.ts +2 -0
  47. package/lib/components/form/numeric-edit/numberic-edit-config.component.d.ts +23 -0
  48. package/lib/components/form/numeric-edit/numberic-edit-config.d.ts +11 -0
  49. package/lib/components/form/numeric-edit/numberic-edit-control.component.d.ts +34 -0
  50. package/lib/components/form/select/index.d.ts +2 -0
  51. package/lib/components/form/select/select-config.component.d.ts +31 -0
  52. package/lib/components/form/select/select-config.d.ts +7 -0
  53. package/lib/components/form/select/select-control.component.d.ts +29 -0
  54. package/lib/components/form/switch/index.d.ts +2 -0
  55. package/lib/components/form/switch/switch-config.component.d.ts +23 -0
  56. package/lib/components/form/switch/switch-config.d.ts +5 -0
  57. package/lib/components/form/switch/switch-control.component.d.ts +28 -0
  58. package/lib/components/form/text-edit/index.d.ts +3 -0
  59. package/lib/components/form/text-edit/text-edit-config.component.d.ts +25 -0
  60. package/lib/components/form/text-edit/text-edit-config.d.ts +7 -0
  61. package/lib/components/form/text-edit/text-edit.component.d.ts +30 -0
  62. package/lib/components/index.d.ts +2 -0
  63. package/lib/dynamic-form.module.d.ts +24 -0
  64. package/lib/enums/date-edit-interfaces.d.ts +5 -0
  65. package/lib/enums/text-edit-mode.d.ts +4 -0
  66. package/{src/lib/interfaces/form-config-interfaces.ts → lib/interfaces/form-config-interfaces.d.ts} +2 -7
  67. package/lib/interfaces/index.d.ts +1 -0
  68. package/lib/services/df-api.service.d.ts +18 -0
  69. package/lib/services/index.d.ts +1 -0
  70. package/package.json +15 -2
  71. package/{src/public-api.ts → public-api.d.ts} +0 -4
  72. package/ng-package.json +0 -7
  73. package/src/lib/components/dynamic/dynamic.component.html +0 -2
  74. package/src/lib/components/dynamic/dynamic.component.scss +0 -0
  75. package/src/lib/components/dynamic/dynamic.component.spec.ts +0 -21
  76. package/src/lib/components/dynamic/dynamic.component.ts +0 -121
  77. package/src/lib/components/dynamic/index.ts +0 -1
  78. package/src/lib/components/form/date-edit/date-edit-config.component.html +0 -40
  79. package/src/lib/components/form/date-edit/date-edit-config.component.scss +0 -0
  80. package/src/lib/components/form/date-edit/date-edit-config.component.spec.ts +0 -21
  81. package/src/lib/components/form/date-edit/date-edit-config.component.ts +0 -87
  82. package/src/lib/components/form/date-edit/date-edit-config.ts +0 -14
  83. package/src/lib/components/form/date-edit/date-edit-control.component.html +0 -26
  84. package/src/lib/components/form/date-edit/date-edit-control.component.scss +0 -0
  85. package/src/lib/components/form/date-edit/date-edit-control.component.spec.ts +0 -21
  86. package/src/lib/components/form/date-edit/date-edit-control.component.ts +0 -101
  87. package/src/lib/components/form/date-edit/index.ts +0 -2
  88. package/src/lib/components/form/form-control-group.ts +0 -64
  89. package/src/lib/components/form/index.ts +0 -6
  90. package/src/lib/components/form/numeric-edit/index.ts +0 -2
  91. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.html +0 -31
  92. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.scss +0 -0
  93. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.spec.ts +0 -21
  94. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.ts +0 -57
  95. package/src/lib/components/form/numeric-edit/numberic-edit-config.ts +0 -28
  96. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.html +0 -13
  97. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.scss +0 -0
  98. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.spec.ts +0 -21
  99. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.ts +0 -119
  100. package/src/lib/components/form/select/index.ts +0 -2
  101. package/src/lib/components/form/select/select-config.component.html +0 -59
  102. package/src/lib/components/form/select/select-config.component.scss +0 -0
  103. package/src/lib/components/form/select/select-config.component.spec.ts +0 -21
  104. package/src/lib/components/form/select/select-config.component.ts +0 -90
  105. package/src/lib/components/form/select/select-config.ts +0 -24
  106. package/src/lib/components/form/select/select-control.component.html +0 -32
  107. package/src/lib/components/form/select/select-control.component.scss +0 -32
  108. package/src/lib/components/form/select/select-control.component.spec.ts +0 -21
  109. package/src/lib/components/form/select/select-control.component.ts +0 -86
  110. package/src/lib/components/form/switch/index.ts +0 -2
  111. package/src/lib/components/form/switch/switch-config.component.html +0 -17
  112. package/src/lib/components/form/switch/switch-config.component.scss +0 -0
  113. package/src/lib/components/form/switch/switch-config.component.spec.ts +0 -21
  114. package/src/lib/components/form/switch/switch-config.component.ts +0 -58
  115. package/src/lib/components/form/switch/switch-config.ts +0 -17
  116. package/src/lib/components/form/switch/switch-control.component.html +0 -13
  117. package/src/lib/components/form/switch/switch-control.component.scss +0 -0
  118. package/src/lib/components/form/switch/switch-control.component.spec.ts +0 -21
  119. package/src/lib/components/form/switch/switch-control.component.ts +0 -81
  120. package/src/lib/components/form/text-edit/index.ts +0 -3
  121. package/src/lib/components/form/text-edit/text-edit-config.component.html +0 -32
  122. package/src/lib/components/form/text-edit/text-edit-config.component.scss +0 -0
  123. package/src/lib/components/form/text-edit/text-edit-config.component.spec.ts +0 -21
  124. package/src/lib/components/form/text-edit/text-edit-config.component.ts +0 -59
  125. package/src/lib/components/form/text-edit/text-edit-config.ts +0 -24
  126. package/src/lib/components/form/text-edit/text-edit.component.html +0 -17
  127. package/src/lib/components/form/text-edit/text-edit.component.scss +0 -0
  128. package/src/lib/components/form/text-edit/text-edit.component.spec.ts +0 -21
  129. package/src/lib/components/form/text-edit/text-edit.component.ts +0 -91
  130. package/src/lib/components/index.ts +0 -2
  131. package/src/lib/dynamic-form.module.ts +0 -74
  132. package/src/lib/enums/date-edit-interfaces.ts +0 -16
  133. package/src/lib/enums/index.ts +0 -2
  134. package/src/lib/enums/text-edit-mode.ts +0 -7
  135. package/src/lib/interfaces/index.ts +0 -1
  136. package/src/lib/proxy/README.md +0 -17
  137. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  138. package/src/lib/proxy/dignite/file-explorer/directories/index.ts +0 -2
  139. package/src/lib/proxy/dignite/file-explorer/directories/models.ts +0 -35
  140. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -86
  141. package/src/lib/proxy/dignite/file-explorer/files/index.ts +0 -2
  142. package/src/lib/proxy/dignite/file-explorer/files/models.ts +0 -57
  143. package/src/lib/proxy/dignite/file-explorer/index.ts +0 -3
  144. package/src/lib/proxy/dignite/index.ts +0 -2
  145. package/src/lib/proxy/generate-proxy.json +0 -11810
  146. package/src/lib/proxy/index.ts +0 -4
  147. package/src/lib/proxy/microsoft/asp-net-core/index.ts +0 -2
  148. package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +0 -1
  149. package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +0 -12
  150. package/src/lib/proxy/microsoft/extensions/index.ts +0 -2
  151. package/src/lib/proxy/microsoft/extensions/primitives/index.ts +0 -1
  152. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +0 -9
  153. package/src/lib/proxy/microsoft/index.ts +0 -4
  154. package/src/lib/proxy/microsoft/net/http/headers/index.ts +0 -1
  155. package/src/lib/proxy/microsoft/net/http/headers/models.ts +0 -7
  156. package/src/lib/proxy/microsoft/net/http/index.ts +0 -2
  157. package/src/lib/proxy/microsoft/net/index.ts +0 -2
  158. package/src/lib/proxy/volo/abp/content/index.ts +0 -1
  159. package/src/lib/proxy/volo/abp/content/models.ts +0 -6
  160. package/src/lib/proxy/volo/abp/index.ts +0 -2
  161. package/src/lib/proxy/volo/index.ts +0 -2
  162. package/src/lib/services/df-api.service.ts +0 -75
  163. package/src/lib/services/index.ts +0 -1
  164. package/tsconfig.lib.json +0 -14
  165. package/tsconfig.lib.prod.json +0 -10
  166. package/tsconfig.spec.json +0 -14
@@ -0,0 +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 { 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 = ['', [Validators.required]];\r\n //最大值\r\n 'NumericEditField.Max': any = ['', [Validators.required]];\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:any[] = []\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\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)));\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:any[] = [];\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:any = 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\" class=\"selectcontrol\">\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 <nz-select class=\"form-select form-select-multiple\" [nzMaxTagCount]=\"1\"\n nzShowSearch nzMode=\"multiple\"\n formControlName=\"{{_fields.field.name}}\">\n <nz-option *ngFor=\"let item of _fields.field.formConfiguration['Select.Options']\"\n [nzLabel]=\"item.Text\" [nzValue]=\"item.Value\"></nz-option>\n </nz-select>\n </ng-container>\n <ng-template #elseTemplate>\n <select class=\"form-select\" [multiple]=\"false\" formControlName=\"{{_fields.field.name}}\">\n <option [value]=\"\">{{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\"\n *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\n\r\n\r\nexport function AddFieldControlGroup(array = []) {\r\n\r\n for (const element of array) {\r\n let find = FieldControlGroup.find((control) => {\r\n return control.name === element.name;\r\n });\r\n if(!find){\r\n FieldControlGroup.push(element);\r\n }\r\n }\r\n return FieldControlGroup;\r\n}\r\n","import { Component, Inject, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldControlGroupInterfaces } from '../../interfaces';\nimport { AddFieldControlGroup, } 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 /**选择的表单信息 */\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 constructor(@Inject('MERGED_FORM_CONFIG') private mergedConfig: any[]) {}\n\n /**数据加载完成 */\n async dataLoaded(val) {\n let _fieldControlGroup: any[] = AddFieldControlGroup(this.mergedConfig);\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 /**表单控件组中的项 */\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 \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}\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';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\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 NzSelectModule,\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 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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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@dignite-ng/expand.dynamic-form" />
5
+ export * from './public-api';
@@ -0,0 +1,38 @@
1
+ import { ViewContainerRef } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { FieldControlGroupInterfaces } from '../../interfaces';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicComponent {
6
+ private mergedConfig;
7
+ /**选择的表单信息 */
8
+ _selected: any;
9
+ set selected(v: any);
10
+ /**表单控件类型 */
11
+ _type: string;
12
+ set type(v: string);
13
+ /**语言 */
14
+ _culture: FormGroup | undefined;
15
+ set culture(v: any);
16
+ /**父级字段名称,用于为表单设置控件赋值 */
17
+ _parentFiledName: any;
18
+ set parentFiledName(v: any);
19
+ /**字段配置列表 */
20
+ _fields: any;
21
+ set fields(v: any);
22
+ /**表单实体 */
23
+ _entity: FormGroup | undefined;
24
+ set entity(v: any);
25
+ /**表单控件模板-动态表单配置组件 */
26
+ FormControlRef?: ViewContainerRef;
27
+ /**表单控件模板-动态表单组件 */
28
+ FormComponentsRef?: ViewContainerRef;
29
+ constructor(mergedConfig: any[]);
30
+ /**数据加载完成 */
31
+ dataLoaded(val: any): Promise<void>;
32
+ /**加载动态表单配置组件 */
33
+ loadfieldConfigComponent(FieldControlItem?: FieldControlGroupInterfaces): void;
34
+ /**加载动态表单组件 */
35
+ loadfieldComponent(FieldControlItem?: FieldControlGroupInterfaces): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicComponent, "df-dynamic", never, { "selected": { "alias": "selected"; "required": false; }; "type": { "alias": "type"; "required": false; }; "culture": { "alias": "culture"; "required": false; }; "parentFiledName": { "alias": "parentFiledName"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; }, {}, never, never, false, never>;
38
+ }
@@ -0,0 +1 @@
1
+ export * from './dynamic.component';
@@ -0,0 +1,29 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { DateEditInterfaces } from '../../../enums/date-edit-interfaces';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DateEditConfigComponent {
6
+ private fb;
7
+ constructor(fb: FormBuilder);
8
+ private _dataPipe;
9
+ _DateEditInterfaces: typeof DateEditInterfaces;
10
+ /**表单控件类型 */
11
+ _type: any;
12
+ set type(v: any);
13
+ /**选择的表单信息 */
14
+ _selected: any;
15
+ set selected(v: any);
16
+ /**表单实体 */
17
+ _Entity: FormGroup | undefined;
18
+ set Entity(v: FormGroup);
19
+ dateTimeType: any;
20
+ get formConfiguration(): FormGroup;
21
+ submitclick: ElementRef;
22
+ private cdr;
23
+ dataLoaded(): Promise<void>;
24
+ AfterInit(): Promise<unknown>;
25
+ /**切换时间类型 */
26
+ timeTypeChange(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateEditConfigComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateEditConfigComponent, "df-date-edit-config", never, { "type": { "alias": "type"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "Entity": { "alias": "Entity"; "required": false; }; }, {}, never, never, false, never>;
29
+ }
@@ -0,0 +1,9 @@
1
+ export declare class DateEditConfig {
2
+ /**日期格式 */
3
+ 'DateEdit.InputMode': any;
4
+ /**最小值 */
5
+ 'DateEdit.Min': any;
6
+ /**最大值 */
7
+ 'DateEdit.Max': any;
8
+ constructor();
9
+ }
@@ -0,0 +1,33 @@
1
+ import { ElementRef, ChangeDetectorRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { DateEditInterfaces } from '../../../enums/date-edit-interfaces';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DateEditControlComponent {
6
+ private fb;
7
+ private cdr;
8
+ constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
9
+ private _dataPipe;
10
+ _DateEditInterfaces: typeof DateEditInterfaces;
11
+ /**字段配置列表 */
12
+ _fields: any;
13
+ set fields(v: any);
14
+ /**父级字段名称,用于为表单设置控件赋值 */
15
+ _parentFiledName: any;
16
+ set parentFiledName(v: any);
17
+ /**父级字段名称,用于为表单设置控件赋值 */
18
+ _selected: any;
19
+ set selected(v: any);
20
+ /**表单实体 */
21
+ _entity: FormGroup | undefined;
22
+ set entity(v: any);
23
+ get entity(): any;
24
+ submitclick: ElementRef;
25
+ get extraProperties(): FormGroup;
26
+ get fieldInput(): import("@angular/forms").AbstractControl<any, any>;
27
+ /**数据加载完成 */
28
+ dataLoaded(): Promise<void>;
29
+ AfterInit(): Promise<unknown>;
30
+ ngOnDestroy(): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateEditControlComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateEditControlComponent, "df-date-edit-control", never, { "fields": { "alias": "fields"; "required": false; }; "parentFiledName": { "alias": "parentFiledName"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; }, {}, never, never, false, never>;
33
+ }
@@ -0,0 +1,2 @@
1
+ export * from './date-edit-config.component';
2
+ export * from './date-edit-control.component';
@@ -0,0 +1,6 @@
1
+ import { FieldControlGroupInterfaces } from '../../interfaces';
2
+ /**
3
+ * 表单控件分组-包含配置,控件,显示的数组
4
+ */
5
+ export declare const FieldControlGroup: FieldControlGroupInterfaces[];
6
+ export declare function AddFieldControlGroup(array?: any[]): FieldControlGroupInterfaces[];
@@ -0,0 +1,6 @@
1
+ export * from './text-edit';
2
+ export * from './switch';
3
+ export * from './numeric-edit';
4
+ export * from './date-edit';
5
+ export * from './form-control-group';
6
+ export * from './select';
@@ -0,0 +1,2 @@
1
+ export * from './numberic-edit-config.component';
2
+ export * from './numberic-edit-control.component';
@@ -0,0 +1,23 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NumbericEditConfigComponent {
5
+ private fb;
6
+ constructor(fb: FormBuilder);
7
+ /**表单控件类型 */
8
+ _type: any;
9
+ set type(v: any);
10
+ /**选择的表单信息 */
11
+ _selected: any;
12
+ set selected(v: any);
13
+ /**表单实体 */
14
+ _Entity: FormGroup | undefined;
15
+ set Entity(v: FormGroup);
16
+ get formConfiguration(): FormGroup;
17
+ submitclick?: ElementRef;
18
+ private cdr;
19
+ dataLoaded(): Promise<void>;
20
+ AfterInit(): Promise<unknown>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<NumbericEditConfigComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumbericEditConfigComponent, "df-numberic-edit-config", never, { "type": { "alias": "type"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "Entity": { "alias": "Entity"; "required": false; }; }, {}, never, never, false, never>;
23
+ }
@@ -0,0 +1,11 @@
1
+ export declare class NumbericEditConfig {
2
+ /**占位符 */
3
+ 'NumericEditField.Placeholder': any;
4
+ /**最小值 */
5
+ 'NumericEditField.Min': any;
6
+ 'NumericEditField.Max': any;
7
+ 'NumericEditField.Decimals': any;
8
+ 'NumericEditField.Step': any;
9
+ 'FormatSpecifier': any;
10
+ constructor(data?: NumbericEditConfig);
11
+ }
@@ -0,0 +1,34 @@
1
+ import { ElementRef, ChangeDetectorRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup, ValidatorFn } from '@angular/forms';
3
+ import { AbstractControl } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ export declare function maxDecimalPlacesValidator(maxDecimalPlaces: number): ValidatorFn;
6
+ export declare class NumbericEditControlComponent {
7
+ private fb;
8
+ private cdr;
9
+ constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
10
+ get entity(): any;
11
+ /**字段配置列表 */
12
+ _fields: any;
13
+ set fields(v: any);
14
+ /**父级字段名称,用于为表单设置控件赋值 */
15
+ _parentFiledName: any;
16
+ set parentFiledName(v: any);
17
+ /**父级字段名称,用于为表单设置控件赋值 */
18
+ _selected: any;
19
+ set selected(v: any);
20
+ /**表单实体 */
21
+ _entity: FormGroup | undefined;
22
+ set entity(v: any);
23
+ submitclick: ElementRef;
24
+ get extraProperties(): FormGroup;
25
+ get fieldInput(): AbstractControl<any, any>;
26
+ /**数据加载完成 */
27
+ dataLoaded(): Promise<void>;
28
+ AfterInit(): Promise<unknown>;
29
+ ngOnDestroy(): void;
30
+ /**数字框输入 */
31
+ inputchange(event: any): void;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<NumbericEditControlComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumbericEditControlComponent, "df-numberic-edit-control", never, { "fields": { "alias": "fields"; "required": false; }; "parentFiledName": { "alias": "parentFiledName"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; }, {}, never, never, false, never>;
34
+ }
@@ -0,0 +1,2 @@
1
+ export * from './select-config.component';
2
+ export * from './select-control.component';
@@ -0,0 +1,31 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
3
+ import { DfApiService } from '../../../services';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SelectConfigComponent {
6
+ private fb;
7
+ private _DfApiService;
8
+ constructor(fb: FormBuilder, _DfApiService: DfApiService);
9
+ /**表单控件类型 */
10
+ _type: any;
11
+ set type(v: any);
12
+ /**选择的表单信息 */
13
+ _selected: any;
14
+ set selected(v: any);
15
+ /**表单实体 */
16
+ _Entity: FormGroup | undefined;
17
+ set Entity(v: FormGroup);
18
+ get formConfiguration(): FormGroup;
19
+ get SelectOptions(): FormArray;
20
+ submitclick: ElementRef;
21
+ private cdr;
22
+ dataLoaded(): Promise<void>;
23
+ /**增加选项 */
24
+ addSelectOptions(): void;
25
+ /**删除某个选项 */
26
+ deleteSelectOptions(index: any): void;
27
+ AfterInit(): Promise<unknown>;
28
+ textChange(event: any, index: any): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectConfigComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectConfigComponent, "df-select-config", never, { "type": { "alias": "type"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "Entity": { "alias": "Entity"; "required": false; }; }, {}, never, never, false, never>;
31
+ }
@@ -0,0 +1,7 @@
1
+ export declare class SelectConfig {
2
+ /**空值文本 */
3
+ 'Select.NullText': any;
4
+ 'Select.Multiple': any;
5
+ 'Select.Options': any;
6
+ constructor(data?: SelectConfig);
7
+ }
@@ -0,0 +1,29 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SelectControlComponent {
5
+ private fb;
6
+ constructor(fb: FormBuilder);
7
+ /**字段配置列表 */
8
+ _fields: any;
9
+ set fields(v: any);
10
+ /**父级字段名称,用于为表单设置控件赋值 */
11
+ _parentFiledName: any;
12
+ set parentFiledName(v: any);
13
+ /**父级字段名称,用于为表单设置控件赋值 */
14
+ _selected: any;
15
+ set selected(v: any);
16
+ /**表单实体 */
17
+ _entity: FormGroup | undefined;
18
+ set entity(v: any);
19
+ submitclick: ElementRef;
20
+ get extraProperties(): FormGroup;
21
+ private cdr;
22
+ /**数据加载完成 */
23
+ dataLoaded(): Promise<void>;
24
+ formConfiguration: any;
25
+ AfterInit(): Promise<unknown>;
26
+ ngOnDestroy(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectControlComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectControlComponent, "df-select-control", never, { "fields": { "alias": "fields"; "required": false; }; "parentFiledName": { "alias": "parentFiledName"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; }, {}, never, never, false, never>;
29
+ }
@@ -0,0 +1,2 @@
1
+ export * from './switch-config.component';
2
+ export * from './switch-control.component';
@@ -0,0 +1,23 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SwitchConfigComponent {
5
+ private fb;
6
+ constructor(fb: FormBuilder);
7
+ /**表单控件类型 */
8
+ _type: any;
9
+ set type(v: any);
10
+ /**表单实体 */
11
+ _Entity: FormGroup | undefined;
12
+ set Entity(v: FormGroup);
13
+ /**选择的表单信息 */
14
+ _selected: any;
15
+ set selected(v: any);
16
+ get formConfiguration(): FormGroup;
17
+ submitclick: ElementRef;
18
+ private cdr;
19
+ dataLoaded(): Promise<void>;
20
+ AfterInit(): Promise<unknown>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<SwitchConfigComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<SwitchConfigComponent, "df-switch-config", never, { "type": { "alias": "type"; "required": false; }; "Entity": { "alias": "Entity"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, never, false, never>;
23
+ }
@@ -0,0 +1,5 @@
1
+ export declare class SwitchConfig {
2
+ /**默认值 */
3
+ 'Switch.Default': any;
4
+ constructor(data?: SwitchConfig);
5
+ }