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

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 (184) hide show
  1. package/esm2022/dignite-ng-expand.dynamic-form.mjs +5 -0
  2. package/esm2022/lib/components/dynamic/dynamic-config.component.mjs +11 -0
  3. package/esm2022/lib/components/dynamic/dynamic-control.component.mjs +11 -0
  4. package/esm2022/lib/components/dynamic/dynamic-view.component.mjs +57 -0
  5. package/esm2022/lib/components/dynamic/dynamic.component.mjs +106 -0
  6. package/esm2022/lib/components/dynamic/index.mjs +5 -0
  7. package/esm2022/lib/components/form/date-edit/date-edit-config.component.mjs +90 -0
  8. package/esm2022/lib/components/form/date-edit/date-edit-config.mjs +12 -0
  9. package/esm2022/lib/components/form/date-edit/date-edit-control.component.mjs +99 -0
  10. package/esm2022/lib/components/form/date-edit/date-edit-view.component.mjs +40 -0
  11. package/esm2022/lib/components/form/date-edit/index.mjs +3 -0
  12. package/esm2022/lib/components/form/form-control-group.mjs +65 -0
  13. package/esm2022/lib/components/form/index.mjs +7 -0
  14. package/esm2022/lib/components/form/numeric-edit/index.mjs +3 -0
  15. package/esm2022/lib/components/form/numeric-edit/numberic-edit-config.component.mjs +60 -0
  16. package/esm2022/lib/components/form/numeric-edit/numberic-edit-config.mjs +25 -0
  17. package/esm2022/lib/components/form/numeric-edit/numberic-edit-control.component.mjs +106 -0
  18. package/esm2022/lib/components/form/numeric-edit/numeric-edit-view.component.mjs +39 -0
  19. package/esm2022/lib/components/form/select/index.mjs +3 -0
  20. package/esm2022/lib/components/form/select/select-config.component.mjs +93 -0
  21. package/esm2022/lib/components/form/select/select-config.mjs +19 -0
  22. package/esm2022/lib/components/form/select/select-control.component.mjs +87 -0
  23. package/esm2022/lib/components/form/select/select-view.component.mjs +44 -0
  24. package/esm2022/lib/components/form/switch/index.mjs +3 -0
  25. package/esm2022/lib/components/form/switch/switch-config.component.mjs +61 -0
  26. package/esm2022/lib/components/form/switch/switch-config.mjs +14 -0
  27. package/esm2022/lib/components/form/switch/switch-control.component.mjs +80 -0
  28. package/esm2022/lib/components/form/switch/switch-view.component.mjs +40 -0
  29. package/esm2022/lib/components/form/text-edit/index.mjs +4 -0
  30. package/esm2022/lib/components/form/text-edit/text-edit-config.component.mjs +63 -0
  31. package/esm2022/lib/components/form/text-edit/text-edit-config.mjs +18 -0
  32. package/esm2022/lib/components/form/text-edit/text-edit-view.component.mjs +39 -0
  33. package/esm2022/lib/components/form/text-edit/text-edit.component.mjs +89 -0
  34. package/esm2022/lib/components/index.mjs +3 -0
  35. package/esm2022/lib/dynamic-form.module.mjs +122 -0
  36. package/esm2022/lib/enums/date-edit-interfaces.mjs +16 -0
  37. package/esm2022/lib/enums/text-edit-mode.mjs +8 -0
  38. package/esm2022/lib/interfaces/form-config-interfaces.mjs +2 -0
  39. package/esm2022/lib/interfaces/index.mjs +2 -0
  40. package/esm2022/lib/services/df-api.service.mjs +82 -0
  41. package/esm2022/lib/services/form-control.service.mjs +33 -0
  42. package/esm2022/lib/services/index.mjs +2 -0
  43. package/esm2022/public-api.mjs +7 -0
  44. package/fesm2022/dignite-ng-expand.dynamic-form.mjs +1518 -0
  45. package/fesm2022/dignite-ng-expand.dynamic-form.mjs.map +1 -0
  46. package/index.d.ts +5 -0
  47. package/lib/components/dynamic/dynamic-config.component.d.ts +5 -0
  48. package/lib/components/dynamic/dynamic-control.component.d.ts +5 -0
  49. package/lib/components/dynamic/dynamic-view.component.d.ts +24 -0
  50. package/lib/components/dynamic/dynamic.component.d.ts +38 -0
  51. package/lib/components/dynamic/index.d.ts +4 -0
  52. package/lib/components/form/date-edit/date-edit-config.component.d.ts +29 -0
  53. package/lib/components/form/date-edit/date-edit-config.d.ts +9 -0
  54. package/lib/components/form/date-edit/date-edit-control.component.d.ts +33 -0
  55. package/lib/components/form/date-edit/date-edit-view.component.d.ts +17 -0
  56. package/lib/components/form/date-edit/index.d.ts +2 -0
  57. package/lib/components/form/form-control-group.d.ts +6 -0
  58. package/lib/components/form/index.d.ts +6 -0
  59. package/lib/components/form/numeric-edit/index.d.ts +2 -0
  60. package/lib/components/form/numeric-edit/numberic-edit-config.component.d.ts +23 -0
  61. package/lib/components/form/numeric-edit/numberic-edit-config.d.ts +11 -0
  62. package/lib/components/form/numeric-edit/numberic-edit-control.component.d.ts +34 -0
  63. package/lib/components/form/numeric-edit/numeric-edit-view.component.d.ts +17 -0
  64. package/lib/components/form/select/index.d.ts +2 -0
  65. package/lib/components/form/select/select-config.component.d.ts +31 -0
  66. package/lib/components/form/select/select-config.d.ts +7 -0
  67. package/lib/components/form/select/select-control.component.d.ts +29 -0
  68. package/lib/components/form/select/select-view.component.d.ts +17 -0
  69. package/lib/components/form/switch/index.d.ts +2 -0
  70. package/lib/components/form/switch/switch-config.component.d.ts +23 -0
  71. package/lib/components/form/switch/switch-config.d.ts +5 -0
  72. package/lib/components/form/switch/switch-control.component.d.ts +28 -0
  73. package/lib/components/form/switch/switch-view.component.d.ts +17 -0
  74. package/lib/components/form/text-edit/index.d.ts +3 -0
  75. package/lib/components/form/text-edit/text-edit-config.component.d.ts +25 -0
  76. package/lib/components/form/text-edit/text-edit-config.d.ts +7 -0
  77. package/lib/components/form/text-edit/text-edit-view.component.d.ts +17 -0
  78. package/lib/components/form/text-edit/text-edit.component.d.ts +30 -0
  79. package/lib/components/index.d.ts +2 -0
  80. package/lib/dynamic-form.module.d.ts +32 -0
  81. package/lib/enums/date-edit-interfaces.d.ts +5 -0
  82. package/lib/enums/text-edit-mode.d.ts +4 -0
  83. package/{src/lib/interfaces/form-config-interfaces.ts → lib/interfaces/form-config-interfaces.d.ts} +2 -7
  84. package/lib/interfaces/index.d.ts +1 -0
  85. package/lib/services/df-api.service.d.ts +18 -0
  86. package/lib/services/form-control.service.d.ts +9 -0
  87. package/lib/services/index.d.ts +1 -0
  88. package/package.json +15 -2
  89. package/{src/public-api.ts → public-api.d.ts} +0 -4
  90. package/ng-package.json +0 -7
  91. package/src/lib/components/dynamic/dynamic.component.html +0 -2
  92. package/src/lib/components/dynamic/dynamic.component.scss +0 -0
  93. package/src/lib/components/dynamic/dynamic.component.spec.ts +0 -21
  94. package/src/lib/components/dynamic/dynamic.component.ts +0 -121
  95. package/src/lib/components/dynamic/index.ts +0 -1
  96. package/src/lib/components/form/date-edit/date-edit-config.component.html +0 -40
  97. package/src/lib/components/form/date-edit/date-edit-config.component.scss +0 -0
  98. package/src/lib/components/form/date-edit/date-edit-config.component.spec.ts +0 -21
  99. package/src/lib/components/form/date-edit/date-edit-config.component.ts +0 -87
  100. package/src/lib/components/form/date-edit/date-edit-config.ts +0 -14
  101. package/src/lib/components/form/date-edit/date-edit-control.component.html +0 -26
  102. package/src/lib/components/form/date-edit/date-edit-control.component.scss +0 -0
  103. package/src/lib/components/form/date-edit/date-edit-control.component.spec.ts +0 -21
  104. package/src/lib/components/form/date-edit/date-edit-control.component.ts +0 -101
  105. package/src/lib/components/form/date-edit/index.ts +0 -2
  106. package/src/lib/components/form/form-control-group.ts +0 -64
  107. package/src/lib/components/form/index.ts +0 -6
  108. package/src/lib/components/form/numeric-edit/index.ts +0 -2
  109. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.html +0 -31
  110. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.scss +0 -0
  111. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.spec.ts +0 -21
  112. package/src/lib/components/form/numeric-edit/numberic-edit-config.component.ts +0 -57
  113. package/src/lib/components/form/numeric-edit/numberic-edit-config.ts +0 -28
  114. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.html +0 -13
  115. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.scss +0 -0
  116. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.spec.ts +0 -21
  117. package/src/lib/components/form/numeric-edit/numberic-edit-control.component.ts +0 -119
  118. package/src/lib/components/form/select/index.ts +0 -2
  119. package/src/lib/components/form/select/select-config.component.html +0 -59
  120. package/src/lib/components/form/select/select-config.component.scss +0 -0
  121. package/src/lib/components/form/select/select-config.component.spec.ts +0 -21
  122. package/src/lib/components/form/select/select-config.component.ts +0 -90
  123. package/src/lib/components/form/select/select-config.ts +0 -24
  124. package/src/lib/components/form/select/select-control.component.html +0 -32
  125. package/src/lib/components/form/select/select-control.component.scss +0 -32
  126. package/src/lib/components/form/select/select-control.component.spec.ts +0 -21
  127. package/src/lib/components/form/select/select-control.component.ts +0 -86
  128. package/src/lib/components/form/switch/index.ts +0 -2
  129. package/src/lib/components/form/switch/switch-config.component.html +0 -17
  130. package/src/lib/components/form/switch/switch-config.component.scss +0 -0
  131. package/src/lib/components/form/switch/switch-config.component.spec.ts +0 -21
  132. package/src/lib/components/form/switch/switch-config.component.ts +0 -58
  133. package/src/lib/components/form/switch/switch-config.ts +0 -17
  134. package/src/lib/components/form/switch/switch-control.component.html +0 -13
  135. package/src/lib/components/form/switch/switch-control.component.scss +0 -0
  136. package/src/lib/components/form/switch/switch-control.component.spec.ts +0 -21
  137. package/src/lib/components/form/switch/switch-control.component.ts +0 -81
  138. package/src/lib/components/form/text-edit/index.ts +0 -3
  139. package/src/lib/components/form/text-edit/text-edit-config.component.html +0 -32
  140. package/src/lib/components/form/text-edit/text-edit-config.component.scss +0 -0
  141. package/src/lib/components/form/text-edit/text-edit-config.component.spec.ts +0 -21
  142. package/src/lib/components/form/text-edit/text-edit-config.component.ts +0 -59
  143. package/src/lib/components/form/text-edit/text-edit-config.ts +0 -24
  144. package/src/lib/components/form/text-edit/text-edit.component.html +0 -17
  145. package/src/lib/components/form/text-edit/text-edit.component.scss +0 -0
  146. package/src/lib/components/form/text-edit/text-edit.component.spec.ts +0 -21
  147. package/src/lib/components/form/text-edit/text-edit.component.ts +0 -91
  148. package/src/lib/components/index.ts +0 -2
  149. package/src/lib/dynamic-form.module.ts +0 -74
  150. package/src/lib/enums/date-edit-interfaces.ts +0 -16
  151. package/src/lib/enums/index.ts +0 -2
  152. package/src/lib/enums/text-edit-mode.ts +0 -7
  153. package/src/lib/interfaces/index.ts +0 -1
  154. package/src/lib/proxy/README.md +0 -17
  155. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  156. package/src/lib/proxy/dignite/file-explorer/directories/index.ts +0 -2
  157. package/src/lib/proxy/dignite/file-explorer/directories/models.ts +0 -35
  158. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -86
  159. package/src/lib/proxy/dignite/file-explorer/files/index.ts +0 -2
  160. package/src/lib/proxy/dignite/file-explorer/files/models.ts +0 -57
  161. package/src/lib/proxy/dignite/file-explorer/index.ts +0 -3
  162. package/src/lib/proxy/dignite/index.ts +0 -2
  163. package/src/lib/proxy/generate-proxy.json +0 -11810
  164. package/src/lib/proxy/index.ts +0 -4
  165. package/src/lib/proxy/microsoft/asp-net-core/index.ts +0 -2
  166. package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +0 -1
  167. package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +0 -12
  168. package/src/lib/proxy/microsoft/extensions/index.ts +0 -2
  169. package/src/lib/proxy/microsoft/extensions/primitives/index.ts +0 -1
  170. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +0 -9
  171. package/src/lib/proxy/microsoft/index.ts +0 -4
  172. package/src/lib/proxy/microsoft/net/http/headers/index.ts +0 -1
  173. package/src/lib/proxy/microsoft/net/http/headers/models.ts +0 -7
  174. package/src/lib/proxy/microsoft/net/http/index.ts +0 -2
  175. package/src/lib/proxy/microsoft/net/index.ts +0 -2
  176. package/src/lib/proxy/volo/abp/content/index.ts +0 -1
  177. package/src/lib/proxy/volo/abp/content/models.ts +0 -6
  178. package/src/lib/proxy/volo/abp/index.ts +0 -2
  179. package/src/lib/proxy/volo/index.ts +0 -2
  180. package/src/lib/services/df-api.service.ts +0 -75
  181. package/src/lib/services/index.ts +0 -1
  182. package/tsconfig.lib.json +0 -14
  183. package/tsconfig.lib.prod.json +0 -10
  184. package/tsconfig.spec.json +0 -14
@@ -1,40 +0,0 @@
1
- <form [formGroup]="_Entity">
2
- <div formGroupName="formConfiguration">
3
- <div class="mb-3">
4
- <label class="form-label">{{'DigniteAbpForms::DateEditMode' | abpLocalization}}</label>
5
- <div>
6
- <div class="form-check form-check-inline">
7
- <input class="form-check-input" type="radio" [value]="_DateEditInterfaces.Date"
8
- formControlName="DateEdit.InputMode" id="flexRadioDefault1" (change)="timeTypeChange()">
9
- <label class="form-check-label" for="flexRadioDefault1">
10
- {{'DigniteAbpForms::Date' | abpLocalization}}
11
- </label>
12
- </div>
13
- <div class="form-check form-check-inline">
14
- <input class="form-check-input" type="radio" [value]="_DateEditInterfaces.DateTime"
15
- formControlName="DateEdit.InputMode" id="flexRadioDefault2" (change)="timeTypeChange()">
16
- <label class="form-check-label" for="flexRadioDefault2">
17
- {{'DigniteAbpForms::DateTime' | abpLocalization}}
18
- </label>
19
- </div>
20
- <div class="form-check form-check-inline">
21
- <input class="form-check-input" type="radio" [value]="_DateEditInterfaces.Month"
22
- formControlName="DateEdit.InputMode" id="flexRadioDefault3" (change)="timeTypeChange()">
23
- <label class="form-check-label" for="flexRadioDefault3">
24
- {{'DigniteAbpForms::Month' | abpLocalization}}
25
- </label>
26
- </div>
27
- </div>
28
- </div>
29
- <div class="mb-3">
30
- <label class="form-label">{{'DigniteAbpForms::Min' | abpLocalization}}</label>
31
- <input [type]="dateTimeType" class="form-control" step="1" formControlName="DateEdit.Min">
32
- </div>
33
- <div class="mb-3">
34
- <label class="form-label">{{'DigniteAbpForms::Max' | abpLocalization}}</label>
35
- <input [type]="dateTimeType" class="form-control" step="1" formControlName="DateEdit.Max">
36
- </div>
37
- <button type="submit" (abpInit)="submitclick?.nativeElement?.click()" style="display: none;"
38
- #submitclick></button>
39
- </div>
40
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { DateEditConfigComponent } from './date-edit-config.component';
4
-
5
- describe('DateEditConfigComponent', () => {
6
- let component: DateEditConfigComponent;
7
- let fixture: ComponentFixture<DateEditConfigComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [DateEditConfigComponent]
12
- });
13
- fixture = TestBed.createComponent(DateEditConfigComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,87 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
- import { DateEditConfig } from './date-edit-config';
4
- import { DateEditInterfaces } from '../../../enums/date-edit-interfaces';
5
- import { DatePipe } from '@angular/common';
6
-
7
- @Component({
8
- selector: 'df-date-edit-config',
9
- templateUrl: './date-edit-config.component.html',
10
- styleUrls: ['./date-edit-config.component.scss'],
11
- })
12
- export class DateEditConfigComponent {
13
- constructor(private fb: FormBuilder) {}
14
- private _dataPipe = inject(DatePipe);
15
- _DateEditInterfaces = DateEditInterfaces;
16
- /**表单控件类型 */
17
- _type: any;
18
- @Input()
19
- public set type(v: any) {
20
- this._type = v;
21
- }
22
-
23
- /**选择的表单信息 */
24
- _selected: any;
25
- @Input()
26
- public set selected(v: any) {
27
- this._selected = v;
28
- }
29
- /**表单实体 */
30
- _Entity: FormGroup | undefined;
31
- @Input()
32
- public set Entity(v: FormGroup) {
33
- this._Entity = v;
34
- this.dataLoaded();
35
- }
36
-
37
- dateTimeType: any = 'date';
38
- get formConfiguration() {
39
- return this._Entity.get('formConfiguration') as FormGroup;
40
- }
41
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
42
-
43
- private cdr = inject(ChangeDetectorRef);
44
- async dataLoaded() {
45
- if (this._Entity && this._type) {
46
- await this.AfterInit();
47
- this.cdr.detectChanges(); // 手动触发变更检测
48
- this.submitclick?.nativeElement?.click();
49
- }
50
- }
51
-
52
- AfterInit() {
53
- return new Promise((resolve, rejects) => {
54
- this._Entity.setControl('formConfiguration', this.fb.group(new DateEditConfig()));
55
- if (this._selected && this._selected.formControlName == this._type) {
56
- this.formConfiguration.patchValue({
57
- ...this._selected.formConfiguration,
58
- });
59
- this.timeTypeChange()
60
- }
61
- resolve(true);
62
- });
63
- }
64
- /**切换时间类型 */
65
- timeTypeChange() {
66
- let type = this.formConfiguration.value['DateEdit.InputMode'];
67
- let Min = this.formConfiguration.value['DateEdit.Min'];
68
- let Max = this.formConfiguration.value['DateEdit.Max'];
69
- if (type == DateEditInterfaces.Date) {
70
- this.dateTimeType = 'date';
71
- Min = this._dataPipe.transform(Min, 'yyyy-MM-dd');
72
- Max = this._dataPipe.transform(Max, 'yyyy-MM-dd');
73
- } else if (type == DateEditInterfaces.DateTime) {
74
- this.dateTimeType = 'datetime-local';
75
- Min = this._dataPipe.transform(Min, 'yyyy-MM-dd HH:mm:ss');
76
- Max = this._dataPipe.transform(Max, 'yyyy-MM-dd HH:mm:ss');
77
- } else if (type == DateEditInterfaces.Month) {
78
- this.dateTimeType = 'month';
79
- Min = this._dataPipe.transform(Min, 'yyyy-MM');
80
- Max = this._dataPipe.transform(Max, 'yyyy-MM');
81
- }
82
- this.formConfiguration.patchValue({
83
- 'DateEdit.Min': Min,
84
- 'DateEdit.Max': Max,
85
- });
86
- }
87
- }
@@ -1,14 +0,0 @@
1
- import { FormControl, Validators } from "@angular/forms";
2
- import { DateEditInterfaces } from "../../../enums/date-edit-interfaces";
3
-
4
- export class DateEditConfig {
5
- /**日期格式 */
6
- 'DateEdit.InputMode': any = [DateEditInterfaces.Date, []];
7
- /**最小值 */
8
- 'DateEdit.Min': any = ['', []];
9
- /**最大值 */
10
- 'DateEdit.Max': any = ['', []];
11
-
12
- constructor() {
13
- }
14
- }
@@ -1,26 +0,0 @@
1
- <form [formGroup]="_entity">
2
- <div [formGroupName]="_parentFiledName">
3
- <div class="mb-3">
4
- <label class="form-label" *ngIf="_fields.displayName">{{ _fields.displayName }}</label>
5
-
6
- <ng-container *ngIf="_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Date">
7
- <input type="date" class="form-control" step="1" formControlName="{{_fields.field.name}}"
8
- [min]="_fields.field.formConfiguration['DateEdit.Min']"
9
- [max]="_fields.field.formConfiguration['DateEdit.Max']" />
10
- </ng-container>
11
- <ng-container
12
- *ngIf="_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.DateTime">
13
- <input type="datetime-local" class="form-control" step="1" formControlName="{{_fields.field.name}}"
14
- [min]="_fields.field.formConfiguration['DateEdit.Min']"
15
- [max]="_fields.field.formConfiguration['DateEdit.Max']" />
16
- </ng-container>
17
- <ng-container *ngIf="_fields.field.formConfiguration['DateEdit.InputMode'] === _DateEditInterfaces.Month">
18
- <input type="month" class="form-control" step="1" formControlName="{{_fields.field.name}}"
19
- [min]="_fields.field.formConfiguration['DateEdit.Min']"
20
- [max]="_fields.field.formConfiguration['DateEdit.Max']" />
21
- </ng-container>
22
- <small class="form-text text-muted d-block" *ngIf="_fields.field.description">{{_fields.field.description}}</small>
23
- </div>
24
- </div>
25
- <button type="submit" style="display: none;" #submitclick></button>
26
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { DateEditControlComponent } from './date-edit-control.component';
4
-
5
- describe('DateEditControlComponent', () => {
6
- let component: DateEditControlComponent;
7
- let fixture: ComponentFixture<DateEditControlComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [DateEditControlComponent]
12
- });
13
- fixture = TestBed.createComponent(DateEditControlComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,101 +0,0 @@
1
- import { Component, ElementRef, Input, ViewChild, ChangeDetectorRef, inject } from '@angular/core';
2
- import { FormBuilder, FormGroup, Validators } from '@angular/forms';
3
- import { DateEditInterfaces } from '../../../enums/date-edit-interfaces';
4
- import { DatePipe } from '@angular/common';
5
-
6
- @Component({
7
- selector: 'df-date-edit-control',
8
- templateUrl: './date-edit-control.component.html',
9
- styleUrls: ['./date-edit-control.component.scss'],
10
- })
11
- export class DateEditControlComponent {
12
- constructor(private fb: FormBuilder, private cdr: ChangeDetectorRef) {}
13
- private _dataPipe = inject(DatePipe);
14
- _DateEditInterfaces = DateEditInterfaces;
15
-
16
- /**字段配置列表 */
17
- _fields: any = '';
18
- @Input()
19
- public set fields(v: any) {
20
- this._fields = v;
21
- }
22
-
23
- /**父级字段名称,用于为表单设置控件赋值 */
24
- _parentFiledName: any;
25
- @Input()
26
- public set parentFiledName(v: any) {
27
- this._parentFiledName = v;
28
- }
29
- /**父级字段名称,用于为表单设置控件赋值 */
30
- _selected: any;
31
- @Input()
32
- public set selected(v: any) {
33
- this._selected = v;
34
- }
35
-
36
- /**表单实体 */
37
- _entity: FormGroup | undefined;
38
- @Input()
39
- public set entity(v: any) {
40
- this._entity = v;
41
- this.dataLoaded();
42
- }
43
-
44
- public get entity(): any {
45
- return this._entity;
46
- }
47
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
48
-
49
- get extraProperties() {
50
- return this._entity.get('extraProperties') as FormGroup;
51
- }
52
- get fieldInput() {
53
- return this.extraProperties.get(this._fields.field.name);
54
- }
55
- /**数据加载完成 */
56
- async dataLoaded() {
57
- if (this._fields && this._entity) {
58
- await this.AfterInit();
59
-
60
- this.cdr.detectChanges();
61
- this.submitclick.nativeElement.click();
62
- }
63
- }
64
-
65
- AfterInit() {
66
- return new Promise((resolve, rejects) => {
67
- let ValidatorsArray = [];
68
- let formConfiguration = this._fields.field.formConfiguration;
69
- if (this._fields.required) {
70
- ValidatorsArray.push(Validators.required);
71
- }
72
- if (formConfiguration['DateEdit.Min']) {
73
- ValidatorsArray.push(Validators.min(formConfiguration['DateEdit.Min']));
74
- }
75
- if (formConfiguration['DateEdit.Max']) {
76
- ValidatorsArray.push(Validators.max(formConfiguration['DateEdit.Max']));
77
- }
78
- let controlName = this._selected;
79
- if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Date) {
80
- controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd');
81
- }
82
- if (
83
- this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.DateTime
84
- ) {
85
- controlName = this._dataPipe.transform(this._selected, 'yyyy-MM-dd HH:mm:ss');
86
- }
87
- if (this._fields.field.formConfiguration['DateEdit.InputMode'] === DateEditInterfaces.Month) {
88
- controlName = this._dataPipe.transform(this._selected, 'yyyy-MM');
89
- }
90
- let newControl = this.fb.control(controlName, ValidatorsArray);
91
- this.extraProperties.setControl(this._fields.field.name, newControl);
92
-
93
- resolve(true);
94
- });
95
- }
96
- ngOnDestroy(): void {
97
- //Called once, before the instance is destroyed.
98
- //Add 'implements OnDestroy' to the class.
99
- this.extraProperties.removeControl(this._fields.field.name);
100
- }
101
- }
@@ -1,2 +0,0 @@
1
- export * from './date-edit-config.component'
2
- export * from './date-edit-control.component'
@@ -1,64 +0,0 @@
1
- import { FieldControlGroupInterfaces } from '../../interfaces';
2
- // import { CkEditorConfigComponent, CkEditorControlComponent } from "./ck-editor";
3
- import { DateEditConfigComponent } from './date-edit/date-edit-config.component';
4
- import { DateEditControlComponent } from './date-edit/date-edit-control.component';
5
- import { NumbericEditConfigComponent } from './numeric-edit/numberic-edit-config.component';
6
- import { NumbericEditControlComponent } from './numeric-edit/numberic-edit-control.component';
7
- import { SelectConfigComponent, SelectControlComponent } from './select';
8
- import { SwitchConfigComponent, SwitchControlComponent } from './switch';
9
- import { TextEditComponent, TextEditConfigComponent } from './text-edit';
10
-
11
- /**
12
- * 表单控件分组-包含配置,控件,显示的数组
13
- */
14
- export const FieldControlGroup: FieldControlGroupInterfaces[] = [
15
- {
16
- displayName: '文本框',
17
- name: 'TextEdit',
18
- fieldConfigComponent: TextEditConfigComponent,
19
- fieldComponent: TextEditComponent,
20
- // fieldViewComponent:TextBoxViewComponent,
21
- },
22
- {
23
- displayName: '开关',
24
- name: 'Switch',
25
- fieldConfigComponent: SwitchConfigComponent,
26
- fieldComponent: SwitchControlComponent,
27
- // fieldViewComponent:TextBoxViewComponent,
28
- },
29
- {
30
- displayName: '选择',
31
- name: 'Select',
32
- fieldConfigComponent: SelectConfigComponent,
33
- fieldComponent: SelectControlComponent,
34
- // fieldViewComponent:TextBoxViewComponent,
35
- },
36
- {
37
- displayName: '数字',
38
- name: 'NumericEdit',
39
- fieldConfigComponent: NumbericEditConfigComponent,
40
- fieldComponent: NumbericEditControlComponent,
41
- // fieldViewComponent:TextBoxViewComponent,
42
- },
43
- {
44
- displayName: '日期',
45
- name: 'DateEdit',
46
- fieldConfigComponent: DateEditConfigComponent,
47
- fieldComponent: DateEditControlComponent,
48
- // fieldViewComponent:TextBoxViewComponent,
49
- },
50
- ];
51
-
52
-
53
- export function AddFieldControlGroup(array = []) {
54
-
55
- for (const element of array) {
56
- let find = FieldControlGroup.find((control) => {
57
- return control.name === element.name;
58
- });
59
- if(!find){
60
- FieldControlGroup.push(element);
61
- }
62
- }
63
- return FieldControlGroup;
64
- }
@@ -1,6 +0,0 @@
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'
@@ -1,2 +0,0 @@
1
- export * from './numberic-edit-config.component'
2
- export * from './numberic-edit-control.component'
@@ -1,31 +0,0 @@
1
- <form [formGroup]="_Entity">
2
- <div formGroupName="formConfiguration">
3
- <div class="mb-3">
4
- <label class="form-label">{{'DigniteAbpForms::Placeholder' | abpLocalization}}</label>
5
- <input type="text" class="form-control" formControlName="NumericEditField.Placeholder">
6
- </div>
7
- <div class="mb-3">
8
- <label class="form-label">{{'DigniteAbpForms::Min' | abpLocalization}}</label>
9
- <input type="text" class="form-control" formControlName="NumericEditField.Min">
10
- </div>
11
- <div class="mb-3">
12
- <label class="form-label">{{'DigniteAbpForms::Max' | abpLocalization}}</label>
13
- <input type="text" class="form-control" formControlName="NumericEditField.Max">
14
- </div>
15
- <div class="mb-3">
16
- <label class="form-label">{{'DigniteAbpForms::NumericDecimals' | abpLocalization}}</label>
17
- <input type="text" class="form-control" formControlName="NumericEditField.Decimals">
18
- </div>
19
- <div class="mb-3">
20
- <label class="form-label">{{'DigniteAbpForms::NumericStep' | abpLocalization}}</label>
21
- <input type="text" class="form-control" formControlName="NumericEditField.Step">
22
- <small class="form-text text-muted d-block">{{'DigniteAbpForms::NumericStepHelp'|abpLocalization}}</small>
23
- </div>
24
- <div class="mb-3">
25
- <label class="form-label">{{'DigniteAbpForms::FormatSpecifier' | abpLocalization}}</label>
26
- <input type="text" class="form-control" formControlName="FormatSpecifier">
27
- <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>
28
- </div>
29
- <button type="submit" (abpInit)="submitclick?.nativeElement?.click()" style="display: none;" #submitclick></button>
30
- </div>
31
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { NumbericEditConfigComponent } from './numberic-edit-config.component';
4
-
5
- describe('NumbericEditConfigComponent', () => {
6
- let component: NumbericEditConfigComponent;
7
- let fixture: ComponentFixture<NumbericEditConfigComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [NumbericEditConfigComponent]
12
- });
13
- fixture = TestBed.createComponent(NumbericEditConfigComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,57 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { NumbericEditConfig } from './numberic-edit-config';
4
-
5
- @Component({
6
- selector: 'df-numberic-edit-config',
7
- templateUrl: './numberic-edit-config.component.html',
8
- styleUrls: ['./numberic-edit-config.component.scss'],
9
- })
10
- export class NumbericEditConfigComponent {
11
- constructor(private fb: FormBuilder) {}
12
- /**表单控件类型 */
13
- _type: any;
14
- @Input()
15
- public set type(v: any) {
16
- this._type = v;
17
- // this.dataLoaded()
18
- }
19
-
20
- /**选择的表单信息 */
21
- _selected: any;
22
- @Input()
23
- public set selected(v: any) {
24
- this._selected = v ? v : v == false ? v : '';
25
- }
26
- /**表单实体 */
27
- _Entity: FormGroup | undefined;
28
- @Input()
29
- public set Entity(v: FormGroup) {
30
- this._Entity = v;
31
- this.dataLoaded();
32
- }
33
- get formConfiguration() {
34
- return this._Entity.get('formConfiguration') as FormGroup;
35
- }
36
- @ViewChild('submitclick', { static: false }) submitclick?: ElementRef;
37
- private cdr = inject(ChangeDetectorRef);
38
- async dataLoaded() {
39
- if (this._Entity && this._type) {
40
- await this.AfterInit();
41
- this.cdr.detectChanges(); // 手动触发变更检测
42
- this.submitclick?.nativeElement?.click();
43
- }
44
- }
45
-
46
- AfterInit() {
47
- return new Promise((resolve, rejects) => {
48
- this._Entity.setControl('formConfiguration', this.fb.group(new NumbericEditConfig()));
49
- if (this._selected && this._selected.formControlName == this._type) {
50
- this.formConfiguration.patchValue({
51
- ...this._selected.formConfiguration,
52
- });
53
- }
54
- resolve(true);
55
- });
56
- }
57
- }
@@ -1,28 +0,0 @@
1
- import { FormControl, Validators } from "@angular/forms";
2
-
3
- export class NumbericEditConfig {
4
- /**占位符 */
5
- 'NumericEditField.Placeholder': any = ['', []];
6
- /**最小值 */
7
- 'NumericEditField.Min': any = ['', [Validators.required]];
8
- //最大值
9
- 'NumericEditField.Max': any = ['', [Validators.required]];
10
- // 小数位数
11
- 'NumericEditField.Decimals': any = [2, []];
12
- //步长
13
- 'NumericEditField.Step': any = ['', []];
14
- //格式说明符
15
- 'FormatSpecifier': any = ['', []];
16
-
17
- constructor(data?: NumbericEditConfig) {
18
- if (data) {
19
- for (const key in data) {
20
- if (data.hasOwnProperty(key)) {
21
- this[key] = data[key];
22
- }
23
- }
24
- }
25
-
26
-
27
- }
28
- }
@@ -1,13 +0,0 @@
1
- <form [formGroup]="_entity">
2
- <div [formGroupName]="_parentFiledName">
3
- <div class="mb-3">
4
- <label class="form-label" *ngIf="_fields.displayName">{{ _fields.displayName }}</label>
5
- <input type="number" class="form-control" formControlName="{{_fields.field.name}}"
6
- [placeholder]="_fields.field.formConfiguration['NumericEditField.Placeholder']||''"
7
- [step]="_fields.field.formConfiguration['NumericEditField.Step']" (input)="inputchange($event)" />
8
- <small class="form-text text-muted d-block" *ngIf="_fields.field.description">{{_fields.field.description}}</small>
9
- </div>
10
-
11
- </div>
12
- <button type="submit" style="display: none;" #submitclick></button>
13
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { NumbericEditControlComponent } from './numberic-edit-control.component';
4
-
5
- describe('NumbericEditControlComponent', () => {
6
- let component: NumbericEditControlComponent;
7
- let fixture: ComponentFixture<NumbericEditControlComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [NumbericEditControlComponent]
12
- });
13
- fixture = TestBed.createComponent(NumbericEditControlComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });