@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
@@ -1,24 +0,0 @@
1
- import { FormArray, FormControl, Validators } from "@angular/forms";
2
-
3
- export class SelectConfig {
4
-
5
-
6
- /**空值文本 */
7
- 'Select.NullText': any = ['', []];
8
- //多选
9
- 'Select.Multiple': any = [false, []];
10
- // 选项
11
- 'Select.Options': any = new FormArray([])
12
-
13
- constructor(data?: SelectConfig) {
14
- if (data) {
15
- for (const key in data) {
16
- if (data.hasOwnProperty(key)) {
17
- this[key] = data[key];
18
- }
19
- }
20
- }
21
-
22
-
23
- }
24
- }
@@ -1,32 +0,0 @@
1
- <form [formGroup]="_entity">
2
- <div formGroupName="extraProperties" class="selectcontrol">
3
- <div class="mb-3">
4
- <label class="form-label" *ngIf="_fields.displayName">{{ _fields.displayName }}</label>
5
- <ng-container *ngIf="formConfiguration['Select.Multiple']; else elseTemplate">
6
- <!-- <select class="form-select" multiple formControlName="{{_fields.field.name}}">
7
- <ng-container *ngFor="let item of _fields.field.formConfiguration['Select.Options'];let i =index">
8
- <option [value]="item.Value">{{item.Text}}</option>
9
- </ng-container>
10
- </select> -->
11
- <nz-select class="form-select form-select-multiple" [nzMaxTagCount]="1"
12
- nzShowSearch nzMode="multiple"
13
- formControlName="{{_fields.field.name}}">
14
- <nz-option *ngFor="let item of _fields.field.formConfiguration['Select.Options']"
15
- [nzLabel]="item.Text" [nzValue]="item.Value"></nz-option>
16
- </nz-select>
17
- </ng-container>
18
- <ng-template #elseTemplate>
19
- <select class="form-select" [multiple]="false" formControlName="{{_fields.field.name}}">
20
- <option [value]="">{{formConfiguration['Select.NullText']}}</option>
21
- <ng-container *ngFor="let item of _fields.field.formConfiguration['Select.Options'];let i =index">
22
- <option [value]="item.Value">{{item.Text}}</option>
23
- </ng-container>
24
- </select>
25
- </ng-template>
26
- <small class="form-text text-muted d-block"
27
- *ngIf="_fields.field.description">{{_fields.field.description}}</small>
28
- </div>
29
-
30
- </div>
31
- <button type="submit" style="display: none;" #submitclick></button>
32
- </form>
@@ -1,32 +0,0 @@
1
- ::ng-deep .selectcontrol {
2
-
3
-
4
- nz-select {
5
- width: 100%;
6
-
7
- .ant-select-selector {
8
- background: transparent !important;
9
- border: none !important;
10
- padding: .275rem 1.25rem !important;
11
- box-shadow: none !important;
12
- height: auto !important
13
- }
14
-
15
- .anticon-search,
16
- .anticon-down {
17
- display: none
18
- }
19
- }
20
- .ant-select-multiple .ant-select-selection-item{
21
- max-width: 40% !important;
22
- }
23
- }
24
-
25
- ::ng-deep .was-validated .form-select-multiple {
26
- border-color: #4fbf67;
27
- padding-right: calc(1.5em + 1.35rem);
28
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%234fbf67' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
29
- background-repeat: no-repeat;
30
- background-position: right calc(0.375em + 0.3375rem) center;
31
- background-size: calc(0.75em + 0.675rem) calc(0.75em + 0.675rem);
32
- }
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { SelectControlComponent } from './select-control.component';
4
-
5
- describe('SelectControlComponent', () => {
6
- let component: SelectControlComponent;
7
- let fixture: ComponentFixture<SelectControlComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [SelectControlComponent]
12
- });
13
- fixture = TestBed.createComponent(SelectControlComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,86 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormGroup, Validators } from '@angular/forms';
3
-
4
- @Component({
5
- selector: 'df-select-control',
6
- templateUrl: './select-control.component.html',
7
- styleUrls: ['./select-control.component.scss'],
8
- })
9
- export class SelectControlComponent {
10
- constructor(private fb: FormBuilder) {}
11
-
12
- /**字段配置列表 */
13
- _fields: any = '';
14
- @Input()
15
- public set fields(v: any) {
16
- this._fields = v;
17
- }
18
-
19
- /**父级字段名称,用于为表单设置控件赋值 */
20
- _parentFiledName: any;
21
- @Input()
22
- public set parentFiledName(v: any) {
23
- this._parentFiledName = v;
24
- }
25
- /**父级字段名称,用于为表单设置控件赋值 */
26
- _selected: any;
27
- @Input()
28
- public set selected(v: any) {
29
- this._selected = v;
30
- }
31
-
32
- /**表单实体 */
33
- _entity: FormGroup | undefined;
34
- @Input()
35
- public set entity(v: any) {
36
- this._entity = v;
37
- this.dataLoaded();
38
- }
39
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
40
-
41
- get extraProperties() {
42
- return this._entity?.get('extraProperties') as FormGroup;
43
- }
44
- private cdr = inject(ChangeDetectorRef);
45
- /**数据加载完成 */
46
- async dataLoaded() {
47
- if (this._fields && this._entity) {
48
- await this.AfterInit();
49
- this.cdr.detectChanges(); // 手动触发变更检测
50
- this.submitclick?.nativeElement?.click();
51
- }
52
- }
53
-
54
- formConfiguration: any = '';
55
- AfterInit() {
56
- return new Promise((resolve, rejects) => {
57
- let ValidatorsArray:any[] = [];
58
- if (this._fields.required) {
59
- ValidatorsArray.push(Validators.required);
60
- }
61
- this.formConfiguration = this._fields.field.formConfiguration;
62
- if (!this._selected) {
63
- const isMultiple = this.formConfiguration['Select.Multiple'];
64
-
65
- let selectValue:any = isMultiple ? [] : '';
66
- this.formConfiguration['Select.Options'].forEach(el => {
67
- if (el.Selected) {
68
- selectValue = isMultiple
69
- ? [...selectValue, el.value || el.Value]
70
- : [el.value || el.Value];
71
- }
72
- });
73
-
74
- this._selected = selectValue;
75
- }
76
- let newControl = this.fb.control(this._selected, ValidatorsArray);
77
- this.extraProperties.setControl(this._fields.field.name, newControl);
78
- resolve(true);
79
- });
80
- }
81
- ngOnDestroy(): void {
82
- //Called once, before the instance is destroyed.
83
- //Add 'implements OnDestroy' to the class.
84
- this.extraProperties.removeControl(this._fields.field.name);
85
- }
86
- }
@@ -1,2 +0,0 @@
1
- export * from './switch-config.component'
2
- export * from './switch-control.component'
@@ -1,17 +0,0 @@
1
- <form [formGroup]="_Entity">
2
- <div formGroupName="formConfiguration">
3
- <div class="mb-3">
4
- <div>
5
- <div class="form-check form-check-inline">
6
- <input class="form-check-input" type="checkbox" formControlName="Switch.Default"
7
- id="flexRadioDefault1">
8
- <label class="form-check-label" for="flexRadioDefault1">
9
- {{'DigniteAbpForms::DefaultValue' | abpLocalization}}
10
- </label>
11
- </div>
12
-
13
- </div>
14
- </div>
15
- <button type="submit" (abpInit)="submitclick?.nativeElement?.click()" style="display: none;" #submitclick></button>
16
- </div>
17
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { SwitchConfigComponent } from './switch-config.component';
4
-
5
- describe('SwitchConfigComponent', () => {
6
- let component: SwitchConfigComponent;
7
- let fixture: ComponentFixture<SwitchConfigComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [SwitchConfigComponent]
12
- });
13
- fixture = TestBed.createComponent(SwitchConfigComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,58 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { SwitchConfig } from './switch-config';
4
- @Component({
5
- selector: 'df-switch-config',
6
- templateUrl: './switch-config.component.html',
7
- styleUrls: ['./switch-config.component.scss'],
8
- })
9
- export class SwitchConfigComponent {
10
- constructor(private fb: FormBuilder) {}
11
- /**表单控件类型 */
12
- _type: any;
13
- @Input()
14
- public set type(v: any) {
15
- this._type = v;
16
- this.dataLoaded();
17
- }
18
- /**表单实体 */
19
- _Entity: FormGroup | undefined;
20
- @Input()
21
- public set Entity(v: FormGroup) {
22
- this._Entity = v;
23
- this.dataLoaded();
24
- }
25
- /**选择的表单信息 */
26
- _selected: any;
27
- @Input()
28
- public set selected(v: any) {
29
- this._selected = v;
30
-
31
- this.dataLoaded();
32
- }
33
- get formConfiguration() {
34
- return this._Entity.get('formConfiguration') as FormGroup;
35
- }
36
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
37
-
38
- private cdr = inject(ChangeDetectorRef);
39
- async dataLoaded() {
40
- if (this._Entity && this._type) {
41
- await this.AfterInit();
42
- this.cdr.detectChanges(); // 手动触发变更检测
43
- this.submitclick?.nativeElement?.click();
44
- }
45
- }
46
-
47
- AfterInit() {
48
- return new Promise((resolve, rejects) => {
49
- this._Entity.setControl('formConfiguration', this.fb.group(new SwitchConfig()));
50
- if (this._selected && this._selected.formControlName == this._type) {
51
- this.formConfiguration.patchValue({
52
- ...this._selected.formConfiguration,
53
- });
54
- }
55
- resolve(true);
56
- });
57
- }
58
- }
@@ -1,17 +0,0 @@
1
- import { FormControl, Validators } from "@angular/forms";
2
-
3
- export class SwitchConfig {
4
-
5
-
6
- /**默认值 */
7
- 'Switch.Default': any = [false, []];
8
- constructor(data?: SwitchConfig) {
9
- if (data) {
10
- for (const key in data) {
11
- if (data.hasOwnProperty(key)) {
12
- this[key] = data[key];
13
- }
14
- }
15
- }
16
- }
17
- }
@@ -1,13 +0,0 @@
1
- <form [formGroup]="_entity">
2
- <div formGroupName="extraProperties">
3
- <div class="mb-3">
4
- <label class="form-label" *ngIf="_fields.displayName">{{ _fields.displayName }}</label>
5
- <div class="form-check form-switch">
6
- <input class="form-check-input" type="checkbox" role="switch" formControlName="{{_fields.field.name}}">
7
- </div>
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 { SwitchControlComponent } from './switch-control.component';
4
-
5
- describe('SwitchControlComponent', () => {
6
- let component: SwitchControlComponent;
7
- let fixture: ComponentFixture<SwitchControlComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [SwitchControlComponent]
12
- });
13
- fixture = TestBed.createComponent(SwitchControlComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,81 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormGroup, Validators } from '@angular/forms';
3
-
4
- @Component({
5
- selector: 'df-switch-control',
6
- templateUrl: './switch-control.component.html',
7
- styleUrls: ['./switch-control.component.scss'],
8
- })
9
- export class SwitchControlComponent {
10
- constructor(private fb: FormBuilder) {}
11
-
12
- /**表单实体 */
13
- _entity: FormGroup | undefined;
14
- @Input()
15
- public set entity(v: any) {
16
- this._entity = v;
17
- this.dataLoaded();
18
- }
19
-
20
- /**字段配置列表 */
21
- _fields: any = '';
22
- @Input()
23
- public set fields(v: any) {
24
- this._fields = v;
25
- this.dataLoaded();
26
- }
27
-
28
- /**父级字段名称,用于为表单设置控件赋值 */
29
- _parentFiledName: any;
30
- @Input()
31
- public set parentFiledName(v: any) {
32
- this._parentFiledName = v;
33
- this.dataLoaded();
34
- }
35
- /** */
36
- _selected: any;
37
- @Input()
38
- public set selected(v: any) {
39
- // ?v:false;
40
- this._selected = v;
41
- this.dataLoaded();
42
- }
43
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
44
-
45
- get extraProperties() {
46
- return this._entity.get('extraProperties') as FormGroup;
47
- }
48
- private cdr = inject(ChangeDetectorRef);
49
- /**数据加载完成 */
50
- async dataLoaded() {
51
- if (this._fields && this._entity) {
52
- await this.AfterInit();
53
- this.cdr.detectChanges(); // 手动触发变更检测
54
- this.submitclick?.nativeElement?.click();
55
- }
56
- }
57
-
58
- AfterInit() {
59
- return new Promise((resolve, rejects) => {
60
- let ValidatorsArray = [];
61
- if (this._fields.required) {
62
- ValidatorsArray.push(Validators.required);
63
- }
64
- let newControl = this.fb.control(
65
- this._selected
66
- ? this._selected
67
- : this._selected === false
68
- ? this._selected
69
- : this._fields.field.formConfiguration['Switch.Default'],
70
- ValidatorsArray
71
- );
72
- this.extraProperties.setControl(this._fields.field.name, newControl);
73
- resolve(true);
74
- });
75
- }
76
- ngOnDestroy(): void {
77
- //Called once, before the instance is destroyed.
78
- //Add 'implements OnDestroy' to the class.
79
- this.extraProperties.removeControl(this._fields.field.name);
80
- }
81
- }
@@ -1,3 +0,0 @@
1
- export * from './text-edit-config.component'
2
- export * from './text-edit-config'
3
- export * from './text-edit.component'
@@ -1,32 +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="TextEdit.Placeholder">
6
- </div>
7
- <div class="mb-3">
8
- <label class="form-label">{{'DigniteAbpForms::TextEditMode' | abpLocalization}}</label>
9
- <div>
10
- <div class="form-check form-check-inline">
11
- <input class="form-check-input" type="radio" [value]="_TextEditMode.SingleLine" formControlName="TextEdit.Mode"
12
- id="flexRadioDefault1">
13
- <label class="form-check-label" for="flexRadioDefault1">
14
- {{'DigniteAbpForms::SingleLine' | abpLocalization}}
15
- </label>
16
- </div>
17
- <div class="form-check form-check-inline">
18
- <input class="form-check-input" type="radio" [value]="_TextEditMode.MultipleLine" formControlName="TextEdit.Mode"
19
- id="flexRadioDefault2">
20
- <label class="form-check-label" for="flexRadioDefault2">
21
- {{'DigniteAbpForms::MultipleLine' | abpLocalization}}
22
- </label>
23
- </div>
24
- </div>
25
- </div>
26
- <div class="mb-3">
27
- <label class="form-label">{{'DigniteAbpForms::CharLimit' | abpLocalization}}</label>
28
- <input type="number" class="form-control" formControlName="TextEdit.CharLimit">
29
- </div>
30
- <button type="submit" (abpInit)="submitclick?.nativeElement?.click()" style="display: none;" #submitclick></button>
31
- </div>
32
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { TextEditConfigComponent } from './text-edit-config.component';
4
-
5
- describe('TextEditConfigComponent', () => {
6
- let component: TextEditConfigComponent;
7
- let fixture: ComponentFixture<TextEditConfigComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [TextEditConfigComponent]
12
- });
13
- fixture = TestBed.createComponent(TextEditConfigComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });
@@ -1,59 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild } from '@angular/core';
2
- import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { TextEditConfig } from './text-edit-config';
4
- import { TextEditMode } from '../../../enums/text-edit-mode';
5
-
6
- @Component({
7
- selector: 'df-text-edit-config',
8
- templateUrl: './text-edit-config.component.html',
9
- styleUrls: ['./text-edit-config.component.scss'],
10
- })
11
- export class TextEditConfigComponent {
12
- constructor(private fb: FormBuilder) {}
13
- _TextEditMode = TextEditMode;
14
- /**表单控件类型 */
15
- _type: any;
16
- @Input()
17
- public set type(v: any) {
18
- this._type = v;
19
- this.dataLoaded();
20
- }
21
- /**表单实体 */
22
- _Entity: FormGroup | undefined;
23
- @Input()
24
- public set Entity(v: FormGroup) {
25
- this._Entity = v;
26
- this.dataLoaded();
27
- }
28
- /**选择的表单信息 */
29
- _selected: any;
30
- @Input()
31
- public set selected(v: any) {
32
- this._selected = v;
33
- this.dataLoaded();
34
- }
35
- get formConfiguration() {
36
- return this._Entity.get('formConfiguration') as FormGroup;
37
- }
38
- @ViewChild('submitclick', { static: true }) submitclick: ElementRef;
39
- private cdr = inject(ChangeDetectorRef);
40
- async dataLoaded() {
41
- if (this._Entity && this._type) {
42
- await this.AfterInit();
43
- this.cdr.detectChanges(); // 手动触发变更检测
44
- this.submitclick?.nativeElement?.click();
45
- }
46
- }
47
-
48
- AfterInit() {
49
- return new Promise((resolve, rejects) => {
50
- this._Entity.setControl('formConfiguration', this.fb.group(new TextEditConfig()));
51
- if (this._selected && this._selected.formControlName == this._type) {
52
- this.formConfiguration.patchValue({
53
- ...this._selected.formConfiguration,
54
- });
55
- }
56
- resolve(true);
57
- });
58
- }
59
- }
@@ -1,24 +0,0 @@
1
- import { FormControl, Validators } from "@angular/forms";
2
-
3
- export class TextEditConfig {
4
-
5
-
6
- /**占位符 */
7
- 'TextEdit.Placeholder': any = ['', []];
8
- //字段类型,单行文本,多行文本
9
- 'TextEdit.Mode': any = [0, []];
10
- // 字数限制
11
- 'TextEdit.CharLimit': any = ['265', []];
12
-
13
- constructor(data?: TextEditConfig) {
14
- if (data) {
15
- for (const key in data) {
16
- if (data.hasOwnProperty(key)) {
17
- this[key] = data[key];
18
- }
19
- }
20
- }
21
-
22
-
23
- }
24
- }
@@ -1,17 +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
- <ng-container *ngIf="_fields.field.formConfiguration['TextEdit.Mode'] ===_TextEditMode.SingleLine">
6
- <input type="text" class="form-control" formControlName="{{_fields.field.name}}"
7
- [placeholder]="_fields.field.formConfiguration['TextEdit.Placeholder']" />
8
- </ng-container>
9
- <ng-container *ngIf="_fields.field.formConfiguration['TextEdit.Mode'] === _TextEditMode.MultipleLine">
10
- <textarea class="form-control" formControlName="{{_fields.field.name}}"
11
- [placeholder]="_fields.field.formConfiguration['TextEdit.Placeholder']" rows="3"></textarea>
12
- </ng-container>
13
- <small class="form-text text-muted d-block" *ngIf="_fields.field.description">{{_fields.field.description}}</small>
14
- </div>
15
- </div>
16
- <button type="submit" style="display: none;" #submitclick></button>
17
- </form>
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { TextEditComponent } from './text-edit.component';
4
-
5
- describe('TextEditComponent', () => {
6
- let component: TextEditComponent;
7
- let fixture: ComponentFixture<TextEditComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [TextEditComponent]
12
- });
13
- fixture = TestBed.createComponent(TextEditComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });