Skip to content

Commit c777dc4

Browse files
Merge pull request #17 from volkmarnissen/swapbytes
Swap Words and Swap Bytes for numbers
2 parents 79625a7 + 084822f commit c777dc4

File tree

7 files changed

+178
-142
lines changed

7 files changed

+178
-142
lines changed

CHANGELOG.md

Lines changed: 44 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,92 @@
11
# Changelog for angular
22

3-
## [Unreleased](https://github.com/modbus2mqtt/angular/tree/HEAD)
3+
## [v0.12.19](https://github.com/volkmarnissen/angular/tree/v0.12.19) (2025-01-16)
44

5-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.22...HEAD)
5+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.18...v0.12.19)
66

7-
**Merged pull requests:**
7+
## [v0.12.18](https://github.com/volkmarnissen/angular/tree/v0.12.18) (2025-01-15)
88

9-
- Baudrate 2400, 4800 is not configurable [\#16](https://github.com/modbus2mqtt/angular/pull/16) ([volkmarnissen](https://github.com/volkmarnissen))
10-
- Enable Display and Input in Hex format for modbus Addresses [\#14](https://github.com/modbus2mqtt/angular/pull/14) ([volkmarnissen](https://github.com/volkmarnissen))
9+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.17...v0.12.18)
1110

12-
## [v0.12.22](https://github.com/modbus2mqtt/angular/tree/v0.12.22) (2025-09-03)
11+
## [v0.12.17](https://github.com/volkmarnissen/angular/tree/v0.12.17) (2025-01-02)
1312

14-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.21...v0.12.22)
13+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.16...v0.12.17)
1514

16-
## [v0.12.21](https://github.com/modbus2mqtt/angular/tree/v0.12.21) (2025-09-03)
15+
## [v0.12.16](https://github.com/volkmarnissen/angular/tree/v0.12.16) (2024-12-31)
1716

18-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.20...v0.12.21)
17+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.15...v0.12.16)
1918

20-
**Merged pull requests:**
19+
## [v0.12.15](https://github.com/volkmarnissen/angular/tree/v0.12.15) (2024-12-30)
2120

22-
- \[Feature\] Add number of processed calls to Modbus Status [\#12](https://github.com/modbus2mqtt/angular/pull/12) ([volkmarnissen](https://github.com/volkmarnissen))
23-
- \[Feature\] Add number of processed calls to Modbus Status [\#11](https://github.com/modbus2mqtt/angular/pull/11) ([volkmarnissen](https://github.com/volkmarnissen))
24-
- Update Changelog [\#10](https://github.com/modbus2mqtt/angular/pull/10) ([volkmarnissen](https://github.com/volkmarnissen))
25-
- \[bug\]Modbus Error Handling, Slave Specification Detection, TCP RTU bridge, Fixes [\#9](https://github.com/modbus2mqtt/angular/pull/9) ([volkmarnissen](https://github.com/volkmarnissen))
26-
- \[bug\]Modbus Error Handling, Slave Specification Detection, TCP RTU bridge, Fixes [\#8](https://github.com/modbus2mqtt/angular/pull/8) ([volkmarnissen](https://github.com/volkmarnissen))
27-
- Angular TcpBridge Fix [\#7](https://github.com/modbus2mqtt/angular/pull/7) ([volkmarnissen](https://github.com/volkmarnissen))
28-
- \[bug\]Modbus Error Handling, Slave Specification Detection, TCP RTU bridge, Fixes [\#6](https://github.com/modbus2mqtt/angular/pull/6) ([volkmarnissen](https://github.com/volkmarnissen))
29-
- Modbus Error Handling and Monitoring [\#5](https://github.com/modbus2mqtt/angular/pull/5) ([volkmarnissen](https://github.com/volkmarnissen))
21+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.14...v0.12.15)
3022

31-
## [v0.12.20](https://github.com/modbus2mqtt/angular/tree/v0.12.20) (2025-04-14)
23+
## [v0.12.14](https://github.com/volkmarnissen/angular/tree/v0.12.14) (2024-12-30)
3224

33-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.19...v0.12.20)
25+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/0.12.14...v0.12.14)
3426

35-
**Merged pull requests:**
27+
## [0.12.14](https://github.com/volkmarnissen/angular/tree/0.12.14) (2024-12-13)
3628

37-
- Please update me [\#4](https://github.com/modbus2mqtt/angular/pull/4) ([volkmarnissen](https://github.com/volkmarnissen))
38-
- Fixed package-lock.json [\#3](https://github.com/modbus2mqtt/angular/pull/3) ([volkmarnissen](https://github.com/volkmarnissen))
39-
- Adding support for discrete inputs [\#2](https://github.com/modbus2mqtt/angular/pull/2) ([arturmietek](https://github.com/arturmietek))
29+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.13...0.12.14)
4030

41-
## [v0.12.19](https://github.com/modbus2mqtt/angular/tree/v0.12.19) (2025-01-16)
31+
## [v0.12.13](https://github.com/volkmarnissen/angular/tree/v0.12.13) (2024-12-13)
4232

43-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.18...v0.12.19)
33+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.12...v0.12.13)
4434

45-
## [v0.12.18](https://github.com/modbus2mqtt/angular/tree/v0.12.18) (2025-01-15)
35+
## [v0.12.12](https://github.com/volkmarnissen/angular/tree/v0.12.12) (2024-12-11)
4636

47-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.17...v0.12.18)
37+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.11...v0.12.12)
4838

49-
## [v0.12.17](https://github.com/modbus2mqtt/angular/tree/v0.12.17) (2025-01-02)
39+
## [v0.12.11](https://github.com/volkmarnissen/angular/tree/v0.12.11) (2024-11-22)
5040

51-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.16...v0.12.17)
41+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.10...v0.12.11)
5242

53-
**Merged pull requests:**
43+
## [v0.12.10](https://github.com/volkmarnissen/angular/tree/v0.12.10) (2024-11-19)
5444

55-
- Adding signed int 32 and unsigned int 32 options to number format [\#1](https://github.com/modbus2mqtt/angular/pull/1) ([arturmietek](https://github.com/arturmietek))
45+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.9...v0.12.10)
5646

57-
## [v0.12.16](https://github.com/modbus2mqtt/angular/tree/v0.12.16) (2024-12-31)
47+
## [v0.12.9](https://github.com/volkmarnissen/angular/tree/v0.12.9) (2024-11-16)
5848

59-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.15...v0.12.16)
49+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.8...v0.12.9)
6050

61-
## [v0.12.15](https://github.com/modbus2mqtt/angular/tree/v0.12.15) (2024-12-30)
51+
## [v0.12.8](https://github.com/volkmarnissen/angular/tree/v0.12.8) (2024-11-14)
6252

63-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.14...v0.12.15)
53+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.7...v0.12.8)
6454

65-
## [v0.12.14](https://github.com/modbus2mqtt/angular/tree/v0.12.14) (2024-12-30)
55+
## [v0.12.7](https://github.com/volkmarnissen/angular/tree/v0.12.7) (2024-10-23)
6656

67-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/0.12.14...v0.12.14)
57+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.6...v0.12.7)
6858

69-
## [0.12.14](https://github.com/modbus2mqtt/angular/tree/0.12.14) (2024-12-13)
59+
## [v0.12.6](https://github.com/volkmarnissen/angular/tree/v0.12.6) (2024-10-16)
7060

71-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.13...0.12.14)
61+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.5...v0.12.6)
7262

73-
## [v0.12.13](https://github.com/modbus2mqtt/angular/tree/v0.12.13) (2024-12-13)
63+
## [v0.12.5](https://github.com/volkmarnissen/angular/tree/v0.12.5) (2024-09-24)
7464

75-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.12...v0.12.13)
65+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.4...v0.12.5)
7666

77-
## [v0.12.12](https://github.com/modbus2mqtt/angular/tree/v0.12.12) (2024-12-11)
67+
## [v0.12.4](https://github.com/volkmarnissen/angular/tree/v0.12.4) (2024-09-16)
7868

79-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.11...v0.12.12)
69+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.3...v0.12.4)
8070

81-
## [v0.12.11](https://github.com/modbus2mqtt/angular/tree/v0.12.11) (2024-11-22)
71+
## [v0.12.3](https://github.com/volkmarnissen/angular/tree/v0.12.3) (2024-09-06)
8272

83-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.10...v0.12.11)
73+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.2...v0.12.3)
8474

85-
## [v0.12.10](https://github.com/modbus2mqtt/angular/tree/v0.12.10) (2024-11-19)
75+
## [v0.12.2](https://github.com/volkmarnissen/angular/tree/v0.12.2) (2024-08-27)
8676

87-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.9...v0.12.10)
77+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.12.0...v0.12.2)
8878

89-
## [v0.12.9](https://github.com/modbus2mqtt/angular/tree/v0.12.9) (2024-11-16)
79+
## [v0.12.0](https://github.com/volkmarnissen/angular/tree/v0.12.0) (2024-08-16)
9080

91-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.8...v0.12.9)
81+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.11.0...v0.12.0)
9282

93-
## [v0.12.8](https://github.com/modbus2mqtt/angular/tree/v0.12.8) (2024-11-14)
83+
## [v0.11.0](https://github.com/volkmarnissen/angular/tree/v0.11.0) (2024-08-05)
9484

95-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.7...v0.12.8)
85+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/v0.10.1...v0.11.0)
9686

97-
## [v0.12.7](https://github.com/modbus2mqtt/angular/tree/v0.12.7) (2024-10-23)
87+
## [v0.10.1](https://github.com/volkmarnissen/angular/tree/v0.10.1) (2024-08-05)
9888

99-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.6...v0.12.7)
100-
101-
## [v0.12.6](https://github.com/modbus2mqtt/angular/tree/v0.12.6) (2024-10-16)
102-
103-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.5...v0.12.6)
104-
105-
## [v0.12.5](https://github.com/modbus2mqtt/angular/tree/v0.12.5) (2024-09-24)
106-
107-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.4...v0.12.5)
108-
109-
## [v0.12.4](https://github.com/modbus2mqtt/angular/tree/v0.12.4) (2024-09-16)
110-
111-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.3...v0.12.4)
112-
113-
## [v0.12.3](https://github.com/modbus2mqtt/angular/tree/v0.12.3) (2024-09-06)
114-
115-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.2...v0.12.3)
116-
117-
## [v0.12.2](https://github.com/modbus2mqtt/angular/tree/v0.12.2) (2024-08-27)
118-
119-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.12.0...v0.12.2)
120-
121-
## [v0.12.0](https://github.com/modbus2mqtt/angular/tree/v0.12.0) (2024-08-16)
122-
123-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.11.0...v0.12.0)
124-
125-
## [v0.11.0](https://github.com/modbus2mqtt/angular/tree/v0.11.0) (2024-08-05)
126-
127-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/v0.10.1...v0.11.0)
128-
129-
## [v0.10.1](https://github.com/modbus2mqtt/angular/tree/v0.10.1) (2024-08-05)
130-
131-
[Full Changelog](https://github.com/modbus2mqtt/angular/compare/0b2169b1bceece9fa4c2c6940ef33dafe96ae43b...v0.10.1)
89+
[Full Changelog](https://github.com/volkmarnissen/angular/compare/0b2169b1bceece9fa4c2c6940ef33dafe96ae43b...v0.10.1)
13290

13391

13492

cypress/fixtures/converters.json

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,7 @@
11
[
2-
{
3-
"name": "number",
4-
"registerTypes": [3, 4]
5-
},
6-
{
7-
"name": "select",
8-
"registerTypes": [3, 4, 1]
9-
},
10-
{
11-
"name": "text",
12-
"registerTypes": [3, 4]
13-
},
14-
{
15-
"name": "binary",
16-
"registerTypes": [1, 3]
17-
},
18-
{
19-
"name": "value",
20-
"registerTypes": [4, 3]
21-
}
2+
"number",
3+
"select",
4+
"text",
5+
"binary",
6+
"value"
227
]

cypress/modbus-error.cy.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@ import {
22
provideHttpClient,
33
withInterceptorsFromDi,
44
} from "@angular/common/http";
5-
import { NoopAnimationsModule } from "@angular/platform-browser/animations";
6-
import { ActivatedRoute, provideRouter } from "@angular/router";
5+
import { provideRouter } from "@angular/router";
76

8-
import { ISpecificationMethods } from "angular/src/app/services/specificationInterface";
97
import { ModbusErrorComponent } from "angular/src/app/modbus-error/modbus-error.component";
108
import {
11-
Iconfiguration,
12-
ImodbusErrorsForSlave,
139
ImodbusStatusForSlave,
1410
ModbusErrorStates,
1511
ModbusTasks,

cypress/specification-entity.cy.ts

Lines changed: 67 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import {
44
beforeEachHelper as beforeEachEntityHelper,
55
mountEntityComponent,
66
setOnEntityNameOrVariableFieldsChangeFunc,
7+
setOnPostModbusEntityFunc
78
} from "./support/entityHelper";
9+
import { ImodbusData, Inumber, Itext } from "@modbus2mqtt/specification.shared";
10+
import { Subject } from "rxjs";
811

912
describe("Entity Component tests", () => {
1013
beforeEach(beforeEachEntityHelper); // mounts entity and opens all expansion panels
@@ -41,40 +44,74 @@ describe("Entity Component tests", () => {
4144
});
4245
it("No Variable Type => no variableConfiguration", () => {
4346
cy.get('mat-select[formControlName="variableType"]')
47+
.click()
48+
.get("mat-option")
49+
.first()
50+
.click()
51+
cy.get('input[formControlName="name"]').type("test")
52+
cy.get('input[formControlName="icon"]').click().then(()=>{setOnEntityNameOrVariableFieldsChangeFunc((entity) => {
53+
expect(entity.variableConfiguration).to.be.undefined;
54+
expect((entity as ImodbusEntityWithName).name).to.be.equal('test');
55+
})})
56+
cy.get('mat-select[formControlName="variableEntity"]').invoke('val')
57+
.then(val=>{
58+
const myVal = val;
59+
expect(myVal).to.equal('');
60+
})
61+
62+
//cy.get('input[formControlName="name"]').should(
63+
// "not.be.null");
64+
65+
});
66+
it("Set Byte Order for Number", () => {
67+
cy.get('mat-select[formControlName="converter"]')
4468
.click()
4569
.get("mat-option")
4670
.first()
47-
.click();
48-
cy.get('input[formControlName="name"]').type("test");
49-
cy.get('input[formControlName="icon"]')
71+
.click().then(() => {
72+
// Validation will be called after value change of any name or variable field
73+
// onVariableEntityValueChange or onEntityNameValueChange
74+
setOnPostModbusEntityFunc((entity) => {
75+
expect((entity!.converterParameters! as Inumber).swapBytes).to.be.true;
76+
return new Subject<ImodbusData>();
77+
});
78+
});;
79+
cy.openAllExpansionPanels()
80+
cy.get('mat-slide-toggle[formControlName="swapBytes"]')
81+
.click()
82+
83+
});
84+
it("Set Byte Order for Text", () => {
85+
cy.get('mat-select[formControlName="converter"]')
5086
.click()
51-
.then(() => {
52-
setOnEntityNameOrVariableFieldsChangeFunc((entity) => {
53-
expect(entity.variableConfiguration).to.be.undefined;
54-
expect((entity as ImodbusEntityWithName).name).to.be.equal("test");
87+
.get("mat-option")
88+
.eq(2)
89+
.click().then(() => {
90+
// Validation will be called after value change of any name or variable field
91+
// onVariableEntityValueChange or onEntityNameValueChange
92+
setOnPostModbusEntityFunc((entity) => {
93+
expect((entity!.converterParameters! as Itext).swapBytes, "swapBytes is not defined").not.to.be.undefined;
94+
expect((entity!.converterParameters! as Itext).swapBytes).to.be.true;
95+
return new Subject<ImodbusData>();
5596
});
56-
});
57-
cy.get('mat-select[formControlName="variableEntity"]')
58-
.invoke("val")
59-
.then((val) => {
60-
const myVal = val;
61-
expect(myVal).to.equal("");
62-
});
63-
64-
//cy.get('input[formControlName="name"]').should(
65-
// "not.be.null");
97+
98+
});;
99+
cy.openAllExpansionPanels()
100+
cy.get('[formControlName= "textSwapBytes"]')
101+
.click()
102+
66103
});
67104
});
68-
describe("Test for Modbus Address", () => {
69-
beforeEach(()=>{mountEntityComponent(true)}); // mounts entity and opens all expansion panels
70-
afterEach(afterEachEntityHelper);
71-
it("Modbus address in hex", () => {
72-
const inputField='input[formControlName="modbusAddress"]'
73-
const matField='mat-form-field input[formControlName="modbusAddress"]'
74-
cy.get(inputField).should('have.value', '0x4');
75-
cy.get(inputField).clear().type('1234').blur().should('have.value', '0x4d2');
76-
cy.get(inputField).clear().type('0X12s32').blur().should('have.value', '0x1232');
77-
cy.get(inputField).clear().type('0xx7')
78-
cy.get(inputField).parent().get( "mat-error").should('contain', 'dec or hex')
79-
})
80-
});
105+
// describe("Test for Modbus Address", () => {
106+
// beforeEach(()=>{mountEntityComponent(true)}); // mounts entity and opens all expansion panels
107+
// afterEach(afterEachEntityHelper);
108+
// it("Modbus address in hex", () => {
109+
// const inputField='input[formControlName="modbusAddress"]'
110+
// const matField='mat-form-field input[formControlName="modbusAddress"]'
111+
// cy.get(inputField).should('have.value', '0x4');
112+
// cy.get(inputField).clear().type('1234').blur().should('have.value', '0x4d2');
113+
// cy.get(inputField).clear().type('0X12s32').blur().should('have.value', '0x1232');
114+
// cy.get(inputField).clear().type('0xx7')
115+
// cy.get(inputField).parent().get( "mat-error").should('contain', 'dec or hex')
116+
// })
117+
// });

cypress/support/entityHelper.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from "@modbus2mqtt/specification.shared";
1313
import { ISpecificationMethods } from "angular/src/app/services/specificationInterface";
1414
import { EntityComponent } from "angular/src/app/specification/entity/entity.component";
15-
import { Subject } from "rxjs";
15+
import { Observable, Subject } from "rxjs";
1616
/**
1717
* specification methods
1818
*/
@@ -68,6 +68,14 @@ export function setOnEntityNameOrVariableFieldsChangeFunc(
6868
if (valFunc) specificationMethods.copy2Translation = valFunc;
6969
else specificationMethods.copy2Translation = () => {};
7070
}
71+
export function setOnPostModbusEntityFunc(
72+
valFunc?: (entity: ImodbusEntity|undefined) => Observable<ImodbusData>
73+
) {
74+
if (valFunc) specificationMethods.postModbusEntity = valFunc;
75+
else specificationMethods.postModbusEntity = () => {return new Subject<ImodbusData>()};
76+
}
77+
78+
7179
let selectEntity: ImodbusEntity = {
7280
id: 1,
7381
modbusValue: [4, 1, 1, 1],
@@ -122,4 +130,5 @@ export function beforeEachHelper() {
122130
export function afterEachEntityHelper() {
123131
// reset specificationMethods
124132
setOnEntityNameOrVariableFieldsChangeFunc();
133+
setOnPostModbusEntityFunc();
125134
}

src/app/specification/entity/entity.component.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,15 @@ <h3 class="smallfield width150pt"> Identification{{entity.readonly?"":"/step"}}<
264264
formControlName="step" (change)="onConverterValueChange()">
265265
</mat-form-field>
266266
</div>
267+
<h3 class="smallfield width150pt"> Byte/Word Order</h3>
268+
<div class="flexrows">
269+
<mat-slide-toggle class="width50 toggleField" formControlName="swapWords"
270+
matTooltip="Swap Words in 32 Bit Values"
271+
(change)="onConverterValueChange()">Swap Word</mat-slide-toggle>
272+
<mat-slide-toggle class="width50 toggleField" formControlName="swapBytes"
273+
matTooltip="Swap Bytes"
274+
(change)="onConverterValueChange()">Swap Bytes</mat-slide-toggle>
275+
</div>
267276
</div>
268277
</form>
269278
</mat-expansion-panel>
@@ -290,6 +299,12 @@ <h3 class="smallfield width150pt"> Identification{{entity.readonly?"":"/step"}}<
290299
matTooltip="Optional: The entity is identified if the mqttvalue matches the regular expression"
291300
formControlName="identExpr" (change)="onConverterValueChange()">
292301
</mat-form-field>
302+
<div >
303+
<mat-slide-toggle class="width50 toggleField" formControlName="textSwapBytes"
304+
matTooltip="Swap Bytes"
305+
(change)="onConverterValueChange()">Swap Bytes</mat-slide-toggle>
306+
</div>
307+
293308
</form>
294309
</mat-expansion-panel>
295310
<mat-expansion-panel

0 commit comments

Comments
 (0)