ngx-st-sap-installed-instruments 17.0.13 → 17.0.15
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.
- package/esm2022/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component.mjs +5 -2
- package/esm2022/lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component.mjs +7 -5
- package/fesm2022/ngx-st-sap-installed-instruments.mjs +10 -5
- package/fesm2022/ngx-st-sap-installed-instruments.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -86,6 +86,9 @@ export class SapInstalledInstrumentListTableComponent extends StSubscribeDestroy
|
|
|
86
86
|
this.changeDetectorRef.markForCheck();
|
|
87
87
|
}
|
|
88
88
|
redirectToShowOnMap() {
|
|
89
|
+
const url = window.location.host.search('leco.com') !== -1
|
|
90
|
+
? ''
|
|
91
|
+
: 'https://leco--fcsb.sandbox.lightning.force.com';
|
|
89
92
|
const params = new HttpParams()
|
|
90
93
|
.set('recordIds', this.showOnMapSelection.selected
|
|
91
94
|
.map(instrument => instrument.sfId)
|
|
@@ -94,7 +97,7 @@ export class SapInstalledInstrumentListTableComponent extends StSubscribeDestroy
|
|
|
94
97
|
.set('tooltipField', 'IntrumentName__c')
|
|
95
98
|
.set('zoom', '8')
|
|
96
99
|
.set('color', '#66FF00');
|
|
97
|
-
window.open(`${
|
|
100
|
+
window.open(`${url}/apex/maps__Maps?${params.toString()}`, '_blank');
|
|
98
101
|
}
|
|
99
102
|
toggleAll(checked) {
|
|
100
103
|
if (checked) {
|
|
@@ -147,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
147
150
|
}], sortChanged: [{
|
|
148
151
|
type: Output
|
|
149
152
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0L3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbEQsTUFBTSxPQUFPLHdDQUNYLFNBQVEsMkJBQTJCO0lBTW5DLElBQ0ksU0FBUyxDQUFDLElBQXVDO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBOEJELFlBQ1UsTUFBYyxFQUNkLGNBQThCLEVBQzlCLHVCQUF1RCxFQUN2RCxpQkFBb0M7UUFFNUMsS0FBSyxFQUFFLENBQUM7UUFMQSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBZ0M7UUFDdkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQS9COUMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZDLGVBQVUsR0FDUixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFM0IsaUJBQVksR0FBMkM7WUFDckQsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsTUFBTTtZQUNOLGFBQWE7WUFDYixTQUFTO1lBQ1Qsa0JBQWtCO1lBQ2xCLFFBQVE7U0FDVCxDQUFDO1FBR0YsdUJBQWtCLEdBQUcsSUFBSSxjQUFjLENBQ3JDLElBQUksQ0FDTCxDQUFDO0lBU0YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUMxQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQ25DLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUMvQyxDQUFDO1FBRUYsSUFDRSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQ3JELENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7Z0JBQzVELFlBQVksRUFBRSxLQUFLO2FBQ3BCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQW9DO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNyRCxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVUsRUFBRSxHQUFvQztRQUNqRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQzVCLEdBQUcsQ0FDRixXQUFXLEVBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVE7YUFDN0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzthQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ2I7YUFDQSxHQUFHLENBQUMsY0FBYyxFQUFFLG9CQUFvQixDQUFDO2FBQ3pDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUM7YUFDdkMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7YUFDaEIsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFDOUQsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3hCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLFlBQVksRUFBRSwwQ0FBMEM7WUFDeEQscUJBQXFCLEVBQ25CLG1EQUFtRDtZQUNyRCxZQUFZLEVBQUUsMENBQTBDO1lBQ3hELFVBQVUsRUFBRSx1Q0FBdUM7WUFDbkQsbUJBQW1CLEVBQUUseUNBQXlDO1lBQzlELFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsTUFBTSxFQUFFLG9DQUFvQztZQUM1QyxnQkFBZ0IsRUFBRSw4Q0FBOEM7WUFDaEUsV0FBVyxFQUFFLEVBQUU7U0FDaEIsQ0FBQztJQUNKLENBQUM7K0dBekpVLHdDQUF3QzttR0FBeEMsd0NBQXdDLHFPQUl4QyxZQUFZLHFGQUNaLE9BQU8sdUVDbENwQixvOUVBK0VBOzs0RkRsRGEsd0NBQXdDO2tCQU5wRCxTQUFTOytCQUNFLHlDQUF5QyxtQkFHbEMsdUJBQXVCLENBQUMsTUFBTTtxTEFNSixTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3JCLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFHZCxTQUFTO3NCQURaLEtBQUs7Z0JBTU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdFN1YnNjcmliZURlc3Ryb3lDb21wb25lbnQgfSBmcm9tICduZ3gtc3QtYmFzZS1mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luc3RhbGxlZC1pbnN0cnVtZW50LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0VGFibGVDb21wb25lbnRcclxuICBleHRlbmRzIFN0U3Vic2NyaWJlRGVzdHJveUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0YWJsZURhdGEoZGF0YTogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZU1hcEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzb3J0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcclxuXHJcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+ID1cclxuICAgIG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuXHJcbiAgdGFibGVDb2x1bW5zOiBJbnN0YWxsZWRJbnN0cnVtZW50VGFibGVDb2x1bW5zTW9kZWxbXSA9IFtcclxuICAgICdpbnN0cnVtZW50Tm8nLFxyXG4gICAgJ2luc3RydW1lbnREZXNjcmlwdGlvbicsXHJcbiAgICAnc2VyaWFsTnVtYmVyJyxcclxuICAgICdjdXN0b21lck5vJyxcclxuICAgICdidXNpbmVzc1BhcnRuZXJOYW1lJyxcclxuICAgICdlbmRVc2VyTmFtZScsXHJcbiAgICAnY2l0eScsXHJcbiAgICAndGVycml0b3J5SWQnLFxyXG4gICAgJ2NvdW50cnknLFxyXG4gICAgJ2luc3RhbGxhdGlvbkRhdGUnLFxyXG4gICAgJ3N0YXR1cycsXHJcbiAgXTtcclxuICBtYXBUYWJsZUNvbHVtbnM6IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgc2hvd09uTWFwU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+KFxyXG4gICAgdHJ1ZVxyXG4gICk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzYXBJbnN0YWxsZWRJbnN0cnVtZW50czogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VGFibGVDb2x1bW5zKCk7XHJcbiAgICBpZiAoIXRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudHMudGVycml0b3J5RmlsdGVyKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgIGNvbHVtbiA9PiBjb2x1bW4gIT09ICd0ZXJyaXRvcnlJZCdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG5cclxuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMubmdEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdChyZXMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcXVlcnlQYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoXHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgfHwge31cclxuICAgICk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBxdWVyeVBhcmFtc0tleXMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydhY3RpdmUnXSAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydkaXJlY3Rpb24nXVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc29ydC5zb3J0KHtcclxuICAgICAgICBpZDogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snYWN0aXZlJ10sXHJcbiAgICAgICAgc3RhcnQ6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2RpcmVjdGlvbiddLFxyXG4gICAgICAgIGRpc2FibGVDbGVhcjogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2tlZChyb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGV0YWlscycsIHJvdy5lcXVpcG1lbnRDYXJkTm9dLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJvd1NlbGVjdGlvbihldmVudDogYW55LCByb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xyXG4gICAgICB0aGlzLnNob3dPbk1hcFNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0KHJvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9TaG93T25NYXAoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXHJcbiAgICAgICAgJ3JlY29yZElkcycsXHJcbiAgICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWRcclxuICAgICAgICAgIC5tYXAoaW5zdHJ1bWVudCA9PiBpbnN0cnVtZW50LnNmSWQpXHJcbiAgICAgICAgICAuam9pbignLCcpXHJcbiAgICAgIClcclxuICAgICAgLnNldCgnYmFzZU9iamVjdElkJywgJ2Ewa1FvMDAwMDAybk5hRElBVScpXHJcbiAgICAgIC5zZXQoJ3Rvb2x0aXBGaWVsZCcsICdJbnRydW1lbnROYW1lX19jJylcclxuICAgICAgLnNldCgnem9vbScsICc4JylcclxuICAgICAgLnNldCgnY29sb3InLCAnIzY2RkYwMCcpO1xyXG5cclxuICAgIHdpbmRvdy5vcGVuKFxyXG4gICAgICBgJHt3aW5kb3cucGFyZW50Lm9yaWdpbn0vYXBleC9tYXBzX19NYXBzPyR7cGFyYW1zLnRvU3RyaW5nKCl9YCxcclxuICAgICAgJ19ibGFuaydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBbGwoY2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEuZm9yRWFjaChpbnN0cnVtZW50ID0+IHtcclxuICAgICAgICBpZiAoaW5zdHJ1bWVudC5zZklkKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dPbk1hcFNlbGVjdGlvbi5zZWxlY3QoaW5zdHJ1bWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGFibGVDb2x1bW5zKCkge1xyXG4gICAgaWYgKHRoaXMudXNlTWFwQnV0dG9uKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zLnVuc2hpZnQoJ3NlbGVjdFRvTWFwJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tYXBUYWJsZUNvbHVtbnMgPSB7XHJcbiAgICAgIGluc3RydW1lbnRObzogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50Tm8nLFxyXG4gICAgICBpbnN0cnVtZW50RGVzY3JpcHRpb246XHJcbiAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50RGVzY3JpcHRpb24nLFxyXG4gICAgICBzZXJpYWxOdW1iZXI6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc2VyaWFsTnVtYmVyJyxcclxuICAgICAgY3VzdG9tZXJObzogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5hY2NvdW50Tm8nLFxyXG4gICAgICBidXNpbmVzc1BhcnRuZXJOYW1lOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmFjY291bnROYW1lJyxcclxuICAgICAgZW5kVXNlck5hbWU6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuZW5kQ3VzdG9tZXInLFxyXG4gICAgICBjaXR5OiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmNpdHknLFxyXG4gICAgICB0ZXJyaXRvcnlJZDogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC50ZXJyaXRvcnknLFxyXG4gICAgICBjb3VudHJ5OiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmNvdW50cnknLFxyXG4gICAgICBzdGF0dXM6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc3RhdHVzJyxcclxuICAgICAgaW5zdGFsbGF0aW9uRGF0ZTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0YWxsYXRpb25EYXRlJyxcclxuICAgICAgc2VsZWN0VG9NYXA6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNob3ctb24tbWFwLWFjdGlvbnNcIiAqbmdJZj1cInVzZU1hcEJ1dHRvblwiPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgIHt7ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAge3sgc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgIEBmb3IgKFxyXG4gICAgICBpbnN0cnVtZW50IG9mIHNob3dPbk1hcFNlbGVjdGlvbi5zZWxlY3RlZDtcclxuICAgICAgdHJhY2sgaW5zdHJ1bWVudC5pbnN0cnVtZW50Tm9cclxuICAgICkge1xyXG4gICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNob3dPbk1hcFNlbGVjdGlvbi5kZXNlbGVjdChpbnN0cnVtZW50KVwiPlxyXG4gICAgICAgIHt7IGluc3RydW1lbnQuaW5zdHJ1bWVudE5vIH19XHJcbiAgICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4XCJcclxuICAgICAgICAgID5kZWxldGU8L21hdC1pY29uXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L21hdC1tZW51PlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgKGNsaWNrKT1cInJlZGlyZWN0VG9TaG93T25NYXAoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwic2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFwiXHJcbiAgPlxyXG4gICAge3sgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zaG93T25NYXAnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPHRhYmxlXHJcbiAgbWF0LXRhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgc3R5bGU9XCJ3aWR0aDogMTAwJVwiXHJcbiAgY2xhc3M9XCJuby1ob3ZlclwiXHJcbiAgbWF0U29ydFxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdGFibGVDb2x1bW5zXCI+XHJcbiAgICBAaWYgKGNvbHVtbiAhPT0gJ3NlbGVjdFRvTWFwJykge1xyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICB7eyBtYXBUYWJsZUNvbHVtbnNbY29sdW1uXSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQWxsKCRldmVudC5jaGVja2VkKVwiXHJcbiAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICA8L3RoPlxyXG4gICAgfVxyXG5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgIEBpZiAoY29sdW1uID09PSAnc2VsZWN0VG9NYXAnKSB7XHJcbiAgICAgICAgQGlmIChlbGVtZW50LnNmSWQpIHtcclxuICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwic2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQoZWxlbWVudClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUm93U2VsZWN0aW9uKCRldmVudCwgZWxlbWVudClcIlxyXG4gICAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIH1cclxuICAgICAgfSBAZWxzZSBpZiAoY29sdW1uID09PSAnaW5zdGFsbGF0aW9uRGF0ZScpIHtcclxuICAgICAgICB7eyBlbGVtZW50W2NvbHVtbl0gfCBzdERhdGVGb3JtYXRQaXBlIH19XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIHt7IGVsZW1lbnRbY29sdW1uXSB9fVxyXG4gICAgICB9XHJcbiAgICA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cInRhYmxlQ29sdW1uc1wiPjwvdHI+XHJcbiAgPHRyXHJcbiAgICBtYXQtcm93XHJcbiAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogdGFibGVDb2x1bW5zXCJcclxuICAgIChjbGljayk9XCJyb3dDbGlja2VkKHJvdylcIlxyXG4gID48L3RyPlxyXG48L3RhYmxlPlxyXG48bWF0LXBhZ2luYXRvclxyXG4gIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzEwLCAyMF1cIlxyXG4gIFtzaG93Rmlyc3RMYXN0QnV0dG9uc109XCJ0cnVlXCJcclxuPjwvbWF0LXBhZ2luYXRvcj5cclxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0L3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVB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dUJBQXVCLENBQUMsTUFBTTtxTEFNSixTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3JCLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFHZCxTQUFTO3NCQURaLEtBQUs7Z0JBTU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdFN1YnNjcmliZURlc3Ryb3lDb21wb25lbnQgfSBmcm9tICduZ3gtc3QtYmFzZS1mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luc3RhbGxlZC1pbnN0cnVtZW50LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0VGFibGVDb21wb25lbnRcclxuICBleHRlbmRzIFN0U3Vic2NyaWJlRGVzdHJveUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0YWJsZURhdGEoZGF0YTogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZU1hcEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzb3J0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcclxuXHJcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+ID1cclxuICAgIG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuXHJcbiAgdGFibGVDb2x1bW5zOiBJbnN0YWxsZWRJbnN0cnVtZW50VGFibGVDb2x1bW5zTW9kZWxbXSA9IFtcclxuICAgICdpbnN0cnVtZW50Tm8nLFxyXG4gICAgJ2luc3RydW1lbnREZXNjcmlwdGlvbicsXHJcbiAgICAnc2VyaWFsTnVtYmVyJyxcclxuICAgICdjdXN0b21lck5vJyxcclxuICAgICdidXNpbmVzc1BhcnRuZXJOYW1lJyxcclxuICAgICdlbmRVc2VyTmFtZScsXHJcbiAgICAnY2l0eScsXHJcbiAgICAndGVycml0b3J5SWQnLFxyXG4gICAgJ2NvdW50cnknLFxyXG4gICAgJ2luc3RhbGxhdGlvbkRhdGUnLFxyXG4gICAgJ3N0YXR1cycsXHJcbiAgXTtcclxuICBtYXBUYWJsZUNvbHVtbnM6IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgc2hvd09uTWFwU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+KFxyXG4gICAgdHJ1ZVxyXG4gICk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzYXBJbnN0YWxsZWRJbnN0cnVtZW50czogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VGFibGVDb2x1bW5zKCk7XHJcbiAgICBpZiAoIXRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudHMudGVycml0b3J5RmlsdGVyKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgIGNvbHVtbiA9PiBjb2x1bW4gIT09ICd0ZXJyaXRvcnlJZCdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG5cclxuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMubmdEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdChyZXMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcXVlcnlQYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoXHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgfHwge31cclxuICAgICk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBxdWVyeVBhcmFtc0tleXMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydhY3RpdmUnXSAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydkaXJlY3Rpb24nXVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc29ydC5zb3J0KHtcclxuICAgICAgICBpZDogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snYWN0aXZlJ10sXHJcbiAgICAgICAgc3RhcnQ6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2RpcmVjdGlvbiddLFxyXG4gICAgICAgIGRpc2FibGVDbGVhcjogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2tlZChyb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGV0YWlscycsIHJvdy5lcXVpcG1lbnRDYXJkTm9dLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJvd1NlbGVjdGlvbihldmVudDogYW55LCByb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xyXG4gICAgICB0aGlzLnNob3dPbk1hcFNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0KHJvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9TaG93T25NYXAoKSB7XHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaG9zdC5zZWFyY2goJ2xlY28uY29tJykgIT09IC0xXHJcbiAgICAgICAgPyAnJ1xyXG4gICAgICAgIDogJ2h0dHBzOi8vbGVjby0tZmNzYi5zYW5kYm94LmxpZ2h0bmluZy5mb3JjZS5jb20nO1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFxyXG4gICAgICAgICdyZWNvcmRJZHMnLFxyXG4gICAgICAgIHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkXHJcbiAgICAgICAgICAubWFwKGluc3RydW1lbnQgPT4gaW5zdHJ1bWVudC5zZklkKVxyXG4gICAgICAgICAgLmpvaW4oJywnKVxyXG4gICAgICApXHJcbiAgICAgIC5zZXQoJ2Jhc2VPYmplY3RJZCcsICdhMGtRbzAwMDAwMm5OYURJQVUnKVxyXG4gICAgICAuc2V0KCd0b29sdGlwRmllbGQnLCAnSW50cnVtZW50TmFtZV9fYycpXHJcbiAgICAgIC5zZXQoJ3pvb20nLCAnOCcpXHJcbiAgICAgIC5zZXQoJ2NvbG9yJywgJyM2NkZGMDAnKTtcclxuXHJcbiAgICB3aW5kb3cub3BlbihgJHt1cmx9L2FwZXgvbWFwc19fTWFwcz8ke3BhcmFtcy50b1N0cmluZygpfWAsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUFsbChjaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKGluc3RydW1lbnQgPT4ge1xyXG4gICAgICAgIGlmIChpbnN0cnVtZW50LnNmSWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdChpbnN0cnVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUYWJsZUNvbHVtbnMoKSB7XHJcbiAgICBpZiAodGhpcy51c2VNYXBCdXR0b24pIHtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMudW5zaGlmdCgnc2VsZWN0VG9NYXAnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1hcFRhYmxlQ29sdW1ucyA9IHtcclxuICAgICAgaW5zdHJ1bWVudE5vOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RydW1lbnRObycsXHJcbiAgICAgIGluc3RydW1lbnREZXNjcmlwdGlvbjpcclxuICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RydW1lbnREZXNjcmlwdGlvbicsXHJcbiAgICAgIHNlcmlhbE51bWJlcjogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zZXJpYWxOdW1iZXInLFxyXG4gICAgICBjdXN0b21lck5vOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmFjY291bnRObycsXHJcbiAgICAgIGJ1c2luZXNzUGFydG5lck5hbWU6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYWNjb3VudE5hbWUnLFxyXG4gICAgICBlbmRVc2VyTmFtZTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5lbmRDdXN0b21lcicsXHJcbiAgICAgIGNpdHk6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuY2l0eScsXHJcbiAgICAgIHRlcnJpdG9yeUlkOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnRlcnJpdG9yeScsXHJcbiAgICAgIGNvdW50cnk6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuY291bnRyeScsXHJcbiAgICAgIHN0YXR1czogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXMnLFxyXG4gICAgICBpbnN0YWxsYXRpb25EYXRlOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RhbGxhdGlvbkRhdGUnLFxyXG4gICAgICBzZWxlY3RUb01hcDogJycsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgc2hvdy1vbi1tYXAtYWN0aW9uc1wiICpuZ0lmPVwidXNlTWFwQnV0dG9uXCI+XHJcbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG4gICAge3sgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX06XHJcbiAgICB7eyBzaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgQGZvciAoXHJcbiAgICAgIGluc3RydW1lbnQgb2Ygc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkO1xyXG4gICAgICB0cmFjayBpbnN0cnVtZW50Lmluc3RydW1lbnROb1xyXG4gICAgKSB7XHJcbiAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd09uTWFwU2VsZWN0aW9uLmRlc2VsZWN0KGluc3RydW1lbnQpXCI+XHJcbiAgICAgICAge3sgaW5zdHJ1bWVudC5pbnN0cnVtZW50Tm8gfX1cclxuICAgICAgICA8bWF0LWljb25cclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxyXG4gICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHhcIlxyXG4gICAgICAgICAgPmRlbGV0ZTwvbWF0LWljb25cclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAoY2xpY2spPVwicmVkaXJlY3RUb1Nob3dPbk1hcCgpXCJcclxuICAgIFtkaXNhYmxlZF09XCJzaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSAwXCJcclxuICA+XHJcbiAgICB7eyAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnNob3dPbk1hcCcgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcblxyXG48dGFibGVcclxuICBtYXQtdGFibGVcclxuICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICBjbGFzcz1cIm5vLWhvdmVyXCJcclxuICBtYXRTb3J0XHJcbj5cclxuICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0YWJsZUNvbHVtbnNcIj5cclxuICAgIEBpZiAoY29sdW1uICE9PSAnc2VsZWN0VG9NYXAnKSB7XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIHt7IG1hcFRhYmxlQ29sdW1uc1tjb2x1bW5dIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50LmNoZWNrZWQpXCJcclxuICAgICAgICA+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvdGg+XHJcbiAgICB9XHJcblxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgQGlmIChjb2x1bW4gPT09ICdzZWxlY3RUb01hcCcpIHtcclxuICAgICAgICBAaWYgKGVsZW1lbnQuc2ZJZCkge1xyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzaG93T25NYXBTZWxlY3Rpb24uaXNTZWxlY3RlZChlbGVtZW50KVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VSb3dTZWxlY3Rpb24oJGV2ZW50LCBlbGVtZW50KVwiXHJcbiAgICAgICAgICA+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIGlmIChjb2x1bW4gPT09ICdpbnN0YWxsYXRpb25EYXRlJykge1xyXG4gICAgICAgIHt7IGVsZW1lbnRbY29sdW1uXSB8IHN0RGF0ZUZvcm1hdFBpcGUgfX1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAge3sgZWxlbWVudFtjb2x1bW5dIH19XHJcbiAgICAgIH1cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwidGFibGVDb2x1bW5zXCI+PC90cj5cclxuICA8dHJcclxuICAgIG1hdC1yb3dcclxuICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiB0YWJsZUNvbHVtbnNcIlxyXG4gICAgKGNsaWNrKT1cInJvd0NsaWNrZWQocm93KVwiXHJcbiAgPjwvdHI+XHJcbjwvdGFibGU+XHJcbjxtYXQtcGFnaW5hdG9yXHJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDIwXVwiXHJcbiAgW3Nob3dGaXJzdExhc3RCdXR0b25zXT1cInRydWVcIlxyXG4+PC9tYXQtcGFnaW5hdG9yPlxyXG4iXX0=
|
|
@@ -28,10 +28,12 @@ export class SapInstalledInstrumentListComponent {
|
|
|
28
28
|
}
|
|
29
29
|
this.lastSearchFilters = {
|
|
30
30
|
...filterParams,
|
|
31
|
-
installationDateFrom: filterParams['installationDateFrom']
|
|
32
|
-
new Date(filterParams['installationDateFrom'])
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
installationDateFrom: filterParams['installationDateFrom']
|
|
32
|
+
? new Date(filterParams['installationDateFrom'])
|
|
33
|
+
: null,
|
|
34
|
+
installationDateTo: filterParams['installationDateTo']
|
|
35
|
+
? new Date(filterParams['installationDateTo'])
|
|
36
|
+
: null,
|
|
35
37
|
};
|
|
36
38
|
this.loadInstalledInstruments(this.lastSearchFilters, this.lastSearchSorts);
|
|
37
39
|
}
|
|
@@ -77,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
77
79
|
}], useMapButton: [{
|
|
78
80
|
type: Input
|
|
79
81
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0L3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBZXZCLE1BQU0sT0FBTyxtQ0FBbUM7SUFzQjlDLFlBQ1UsNkJBQTZELEVBQzdELGNBQWlDLEVBQ2pDLE1BQWMsRUFDZCxjQUE4QjtRQUg5QixrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdDO1FBQzdELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBekJsQixVQUFLLEdBQUcsd0JBQXdCLENBQUM7UUFTdkQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHlCQUFvQixHQUFzQyxFQUFFLENBQUM7UUFFckQsc0JBQWlCLEdBRXhCLEVBQUUsQ0FBQztRQUNJLG9CQUFlLEdBQWUsRUFBRSxDQUFDO0lBT3RDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRTFFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDbkUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFFM0QsSUFBSSxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLEdBQUcsWUFBWTtZQUNmLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsSUFBSTtZQUNSLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsSUFBSTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW1DO1FBQ2hELElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUMvRCxJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFXO1FBQ3JCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixVQUF3QyxFQUN4QyxJQUFVO1FBRVYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLFdBQVcsRUFBRTtnQkFDWCxHQUFHLFVBQVU7Z0JBQ2Isb0JBQW9CLEVBQ2xCLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUN0RCxrQkFBa0IsRUFBRSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDdEUsR0FBRyxJQUFJO2FBQ1I7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsNkJBQTZCO2FBQy9CLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7YUFDNUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXBGVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyxnUkNyQmhELDZyQ0FtQ0E7OzRGRGRhLG1DQUFtQztrQkFSL0MsU0FBUzsrQkFDRSxtQ0FBbUM7cUxBUXZCLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFHcEIsV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IEluc3RhbGxlZEluc3RydW1lbnRGb3JtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5zdGFsbGVkLWluc3RydW1lbnQtZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uLy4uLy4uLy4uL2Fzc2V0cy9iYXNlLWNhcmQuc2NzcycsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnZGlzcGxheS1mbGV4LWNvbXBvbmVudCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB0ZXJyaXRvcnlGaWx0ZXI6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1dpdGhDYXJkQ29udGVudCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdXNlTWFwQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gIGluc3RhbGxlZEluc3RydW1lbnRzOiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0U2VhcmNoRmlsdGVyczogSW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbCB8IGFueSA9IDxcclxuICAgIEluc3RhbGxlZEluc3RydW1lbnRGb3JtTW9kZWxcclxuICA+e307XHJcbiAgcHJpdmF0ZSBsYXN0U2VhcmNoU29ydHM6IFNvcnQgPSA8U29ydD57fTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlOiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLnRlcnJpdG9yeUZpbHRlciA9IHRoaXMudGVycml0b3J5RmlsdGVyO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyB8fCB7fTtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBkaXJlY3Rpb24sIC4uLmZpbHRlclBhcmFtcyB9ID0gcXVlcnlQYXJhbXM7XHJcblxyXG4gICAgaWYgKGFjdGl2ZSB8fCBkaXJlY3Rpb24pIHtcclxuICAgICAgdGhpcy5sYXN0U2VhcmNoU29ydHMgPSB7IGFjdGl2ZSwgZGlyZWN0aW9uIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYXN0U2VhcmNoRmlsdGVycyA9IHtcclxuICAgICAgLi4uZmlsdGVyUGFyYW1zLFxyXG4gICAgICBpbnN0YWxsYXRpb25EYXRlRnJvbTogZmlsdGVyUGFyYW1zWydpbnN0YWxsYXRpb25EYXRlRnJvbSddXHJcbiAgICAgICAgPyBuZXcgRGF0ZShmaWx0ZXJQYXJhbXNbJ2luc3RhbGxhdGlvbkRhdGVGcm9tJ10pXHJcbiAgICAgICAgOiBudWxsLFxyXG4gICAgICBpbnN0YWxsYXRpb25EYXRlVG86IGZpbHRlclBhcmFtc1snaW5zdGFsbGF0aW9uRGF0ZVRvJ11cclxuICAgICAgICA/IG5ldyBEYXRlKGZpbHRlclBhcmFtc1snaW5zdGFsbGF0aW9uRGF0ZVRvJ10pXHJcbiAgICAgICAgOiBudWxsLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmxvYWRJbnN0YWxsZWRJbnN0cnVtZW50cyh0aGlzLmxhc3RTZWFyY2hGaWx0ZXJzLCB0aGlzLmxhc3RTZWFyY2hTb3J0cyk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJzQ2hhbmdlZChldmVudDogSW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkSW5zdGFsbGVkSW5zdHJ1bWVudHMoXHJcbiAgICAgIHsgLi4uZXZlbnQsIHNmSWQ6IHRoaXMubGFzdFNlYXJjaEZpbHRlcnNbJ3NmSWQnXSB8fCB1bmRlZmluZWQgfSxcclxuICAgICAgdGhpcy5sYXN0U2VhcmNoU29ydHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzb3J0Q2hhbmdlZChldmVudDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkSW5zdGFsbGVkSW5zdHJ1bWVudHModGhpcy5sYXN0U2VhcmNoRmlsdGVycywgZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkSW5zdGFsbGVkSW5zdHJ1bWVudHMoXHJcbiAgICBzZWFyY2hGb3JtOiBJbnN0YWxsZWRJbnN0cnVtZW50Rm9ybU1vZGVsLFxyXG4gICAgc29ydDogU29ydFxyXG4gICkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAuLi5zZWFyY2hGb3JtLFxyXG4gICAgICAgIGluc3RhbGxhdGlvbkRhdGVGcm9tOlxyXG4gICAgICAgICAgc2VhcmNoRm9ybS5pbnN0YWxsYXRpb25EYXRlRnJvbT8udG9JU09TdHJpbmcoKSB8fCAnJyxcclxuICAgICAgICBpbnN0YWxsYXRpb25EYXRlVG86IHNlYXJjaEZvcm0uaW5zdGFsbGF0aW9uRGF0ZVRvPy50b0lTT1N0cmluZygpIHx8ICcnLFxyXG4gICAgICAgIC4uLnNvcnQsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlcnZpY2VcclxuICAgICAgLmdldEluc3RhbGxlZEluc3RydW1lbnRMaXN0KHNlYXJjaEZvcm0sIHNvcnQpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmxhc3RTZWFyY2hGaWx0ZXJzID0gc2VhcmNoRm9ybTtcclxuICAgICAgICB0aGlzLmxhc3RTZWFyY2hTb3J0cyA9IHNvcnQ7XHJcbiAgICAgICAgdGhpcy5pbnN0YWxsZWRJbnN0cnVtZW50cyA9IHJlcztcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBuby1jdXRcIiAqbmdJZj1cInNob3dXaXRoQ2FyZENvbnRlbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGNhcmQtaGVhZGVyLXdhcm5pbmdcIj5cclxuICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnRpdGxlSW5zdGFsbGVkSW5zdHJ1bWVudExpc3QnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluc3RhbGxlZEluc3RydW1lbnRDb250ZW50XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93V2l0aENhcmRDb250ZW50XCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnN0YWxsZWRJbnN0cnVtZW50Q29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW5zdGFsbGVkSW5zdHJ1bWVudENvbnRlbnQ+XHJcbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHdpZHRoOiAxMDAlXCI+XHJcbiAgICA8YXBwLXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXNlYXJjaFxyXG4gICAgICAoZmlsdGVyc0NoYW5nZWQpPVwiZmlsdGVyc0NoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoPlxyXG5cclxuICAgIDxhcHAtc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGVcclxuICAgICAgW3RhYmxlRGF0YV09XCJpbnN0YWxsZWRJbnN0cnVtZW50c1wiXHJcbiAgICAgIFt1c2VNYXBCdXR0b25dPVwidXNlTWFwQnV0dG9uXCJcclxuICAgICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPjwvYXBwLXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -241,6 +241,9 @@ class SapInstalledInstrumentListTableComponent extends StSubscribeDestroyCompone
|
|
|
241
241
|
this.changeDetectorRef.markForCheck();
|
|
242
242
|
}
|
|
243
243
|
redirectToShowOnMap() {
|
|
244
|
+
const url = window.location.host.search('leco.com') !== -1
|
|
245
|
+
? ''
|
|
246
|
+
: 'https://leco--fcsb.sandbox.lightning.force.com';
|
|
244
247
|
const params = new HttpParams()
|
|
245
248
|
.set('recordIds', this.showOnMapSelection.selected
|
|
246
249
|
.map(instrument => instrument.sfId)
|
|
@@ -249,7 +252,7 @@ class SapInstalledInstrumentListTableComponent extends StSubscribeDestroyCompone
|
|
|
249
252
|
.set('tooltipField', 'IntrumentName__c')
|
|
250
253
|
.set('zoom', '8')
|
|
251
254
|
.set('color', '#66FF00');
|
|
252
|
-
window.open(`${
|
|
255
|
+
window.open(`${url}/apex/maps__Maps?${params.toString()}`, '_blank');
|
|
253
256
|
}
|
|
254
257
|
toggleAll(checked) {
|
|
255
258
|
if (checked) {
|
|
@@ -449,10 +452,12 @@ class SapInstalledInstrumentListComponent {
|
|
|
449
452
|
}
|
|
450
453
|
this.lastSearchFilters = {
|
|
451
454
|
...filterParams,
|
|
452
|
-
installationDateFrom: filterParams['installationDateFrom']
|
|
453
|
-
new Date(filterParams['installationDateFrom'])
|
|
454
|
-
|
|
455
|
-
|
|
455
|
+
installationDateFrom: filterParams['installationDateFrom']
|
|
456
|
+
? new Date(filterParams['installationDateFrom'])
|
|
457
|
+
: null,
|
|
458
|
+
installationDateTo: filterParams['installationDateTo']
|
|
459
|
+
? new Date(filterParams['installationDateTo'])
|
|
460
|
+
: null,
|
|
456
461
|
};
|
|
457
462
|
this.loadInstalledInstruments(this.lastSearchFilters, this.lastSearchSorts);
|
|
458
463
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-st-sap-installed-instruments.mjs","sources":["../../../projects/ngx-st-sap-installed-instruments/src/lib/models/installed-instrument-table-columns.model.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/services/sap-installed-instruments.service.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/ngx-st-sap-installed-instruments.module.ts","../../../projects/ngx-st-sap-installed-instruments/src/public-api.ts","../../../projects/ngx-st-sap-installed-instruments/src/ngx-st-sap-installed-instruments.ts"],"sourcesContent":["import { InstalledInstrumentSortByColumnEnum } from './installed-instrument-sort-by-column.enum';\r\n\r\nexport declare type InstalledInstrumentTableColumnsModel =\r\n | 'instrumentNo'\r\n | 'instrumentDescription'\r\n | 'serialNumber'\r\n | 'customerNo'\r\n | 'businessPartnerName'\r\n | 'endUserName'\r\n | 'city'\r\n | 'territoryId'\r\n | 'country'\r\n | 'installationDate'\r\n | 'status'\r\n | 'selectToMap';\r\n\r\nexport enum InstalledInstrumentTableColumnsMapperEnum {\r\n instrumentNo = InstalledInstrumentSortByColumnEnum.ItemCode,\r\n instrumentDescription = InstalledInstrumentSortByColumnEnum.ItemName,\r\n serialNumber = InstalledInstrumentSortByColumnEnum.SerialNumber,\r\n customerNo = InstalledInstrumentSortByColumnEnum.BpId,\r\n businessPartnerName = InstalledInstrumentSortByColumnEnum.BpName,\r\n endUserName = InstalledInstrumentSortByColumnEnum.EndCustomer,\r\n city = InstalledInstrumentSortByColumnEnum.City,\r\n territoryId = InstalledInstrumentSortByColumnEnum.Territory,\r\n country = InstalledInstrumentSortByColumnEnum.Country,\r\n status = InstalledInstrumentSortByColumnEnum.Status,\r\n installationDate = InstalledInstrumentSortByColumnEnum.InstallationDate,\r\n}\r\n","import { Inject, Injectable, SkipSelf } from '@angular/core';\r\nimport { IConfig } from '../base-interfaces';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { InstalledInstrumentFormModel } from '../models/installed-instrument-form.model';\r\nimport { Sort } from '@angular/material/sort';\r\nimport { Observable } from 'rxjs';\r\nimport { ViewSapInstalledInstrumentListModel } from '../models/view-sap-installed-instrument-list.model';\r\nimport { SapInstalledInstrumentModel } from '../models/sap-installed-instrument.model';\r\nimport { SapTerritoryModel } from '../models/sap-territory.model';\r\nimport { SapStateModel } from '../models/sap-state.model';\r\nimport { SapCountryModel } from '../models/sap-country.model';\r\nimport { SapContractModel } from '../models/sap-contract.model';\r\nimport { SapCallModel } from '../models/sap-call.model';\r\nimport { SapActivityModel } from '../models/sap-activity.model';\r\nimport { InstalledInstrumentTableColumnsMapperEnum } from '../models/installed-instrument-table-columns.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { SapInstalledInstrumentListModel } from '../models/sap-installed-instrument-list.model';\r\nimport moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SapInstalledInstrumentsService {\r\n\r\n territoryFilter: boolean = false;\r\n accessToken: string = '';\r\n\r\n private baseUrl: string;\r\n\r\n constructor(\r\n @Inject('config') private config: IConfig,\r\n @SkipSelf() private http: HttpClient\r\n ) {\r\n this.baseUrl = `${this.config.api_base_uri}${this.config.base_uri}${this.config.api_module}`;\r\n }\r\n\r\n getInstalledInstrumentList(\r\n searchForm: InstalledInstrumentFormModel | undefined,\r\n sort: Sort | undefined\r\n ): Observable<ViewSapInstalledInstrumentListModel[]> {\r\n const search = {\r\n sfId: searchForm?.sfId || undefined,\r\n applicationList: searchForm?.application || [],\r\n instrumentNo: searchForm?.instrumentNo || '',\r\n instrumentDescription: searchForm?.instrumentDesc || '',\r\n serialNumber: searchForm?.serialNumber || '',\r\n customerNo: searchForm?.customerNo || '',\r\n businessPartnerName: searchForm?.bpName || '',\r\n statusId: searchForm?.status || '',\r\n technicianLastName: searchForm?.technicianLastName || '',\r\n territoryId: searchForm?.territory || null,\r\n endUserName: searchForm?.endUserName || '',\r\n endUserCode: searchForm?.endUserCode || '',\r\n city: searchForm?.city || '',\r\n stateId: searchForm?.state || '',\r\n countryId: searchForm?.country || '',\r\n county: searchForm?.county || '',\r\n installationDateFrom: searchForm?.installationDateFrom\r\n ? moment(searchForm.installationDateFrom).format('YYYY-MM-DD')\r\n : null,\r\n installationDateTo: searchForm?.installationDateTo\r\n ? moment(searchForm.installationDateTo).format('YYYY-MM-DD')\r\n : null,\r\n };\r\n\r\n if (sort && sort.direction !== '') {\r\n // @ts-ignore\r\n search.sortOrder = sort.direction === 'asc' ? 0 : 1;\r\n // @ts-ignore\r\n search.sortByColumn =\r\n InstalledInstrumentTableColumnsMapperEnum[<any>sort.active];\r\n }\r\n return this.http\r\n .post<\r\n SapInstalledInstrumentListModel[]\r\n >(this.baseUrl + '/list', search)\r\n .pipe(\r\n map(res => {\r\n return res.map(installInstrument => ({\r\n ...installInstrument,\r\n technicianName: installInstrument.technicianFirstName\r\n ? installInstrument.technicianFirstName +\r\n ' ' +\r\n installInstrument.technicianLastName\r\n : '',\r\n }));\r\n })\r\n );\r\n }\r\n\r\n getInstalledInstrument(\r\n eqCard: number\r\n ): Observable<SapInstalledInstrumentModel> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapInstalledInstrumentModel>(\r\n this.baseUrl,\r\n { params }\r\n );\r\n }\r\n\r\n getTerritory(refresh: boolean = false): Observable<SapTerritoryModel[]> {\r\n const params = new HttpParams().set('refresh', refresh);\r\n return this.http.get<SapTerritoryModel[]>(\r\n this.baseUrl + '/territory',\r\n { params }\r\n );\r\n }\r\n\r\n getState(\r\n country: string,\r\n refresh: boolean = false\r\n ): Observable<SapStateModel[]> {\r\n const params = new HttpParams()\r\n .set('refresh', refresh)\r\n .set('country', country);\r\n return this.http.get<SapStateModel[]>(\r\n this.baseUrl + '/state',\r\n { params }\r\n );\r\n }\r\n\r\n getCountry(refresh: boolean = false): Observable<SapCountryModel[]> {\r\n const params = new HttpParams().set('refresh', refresh);\r\n return this.http.get<SapCountryModel[]>(\r\n this.baseUrl + '/country',\r\n { params }\r\n );\r\n }\r\n\r\n getContracts(eqCard: number): Observable<SapContractModel[]> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapContractModel[]>(\r\n this.baseUrl + '/contract',\r\n { params }\r\n );\r\n }\r\n\r\n getCalls(eqCard: number): Observable<SapCallModel[]> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapCallModel[]>(\r\n this.baseUrl + '/call',\r\n { params }\r\n );\r\n }\r\n\r\n getActivities(callId: number): Observable<SapActivityModel[]> {\r\n const params = new HttpParams().set('callId', callId);\r\n return this.http.get<SapActivityModel[]>(\r\n this.baseUrl + '/activity',\r\n { params }\r\n );\r\n }\r\n\r\n getApplicationSearch(search: string): Observable<string[]> {\r\n const params = new HttpParams().set('application', search);\r\n return this.http.get<string[]>(\r\n `${this.baseUrl}/application?application='}`\r\n );\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { StSubscribeDestroyComponent } from 'ngx-st-base-functions';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentListModel } from '../../../models/sap-installed-instrument-list.model';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { InstalledInstrumentTableColumnsModel } from '../../../models/installed-instrument-table-columns.model';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list-table',\r\n templateUrl: './sap-installed-instrument-list-table.component.html',\r\n styleUrls: ['./sap-installed-instrument-list-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SapInstalledInstrumentListTableComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n set tableData(data: SapInstalledInstrumentListModel[]) {\r\n this.dataSource.data = data;\r\n }\r\n\r\n @Input()\r\n useMapButton = false;\r\n\r\n @Output()\r\n sortChanged = new EventEmitter<Sort>();\r\n\r\n dataSource: MatTableDataSource<SapInstalledInstrumentListModel> =\r\n new MatTableDataSource();\r\n\r\n tableColumns: InstalledInstrumentTableColumnsModel[] = [\r\n 'instrumentNo',\r\n 'instrumentDescription',\r\n 'serialNumber',\r\n 'customerNo',\r\n 'businessPartnerName',\r\n 'endUserName',\r\n 'city',\r\n 'territoryId',\r\n 'country',\r\n 'installationDate',\r\n 'status',\r\n ];\r\n mapTableColumns: { [field: string]: string };\r\n\r\n showOnMapSelection = new SelectionModel<SapInstalledInstrumentListModel>(\r\n true\r\n );\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private sapInstalledInstruments: SapInstalledInstrumentsService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setTableColumns();\r\n if (!this.sapInstalledInstruments.territoryFilter) {\r\n this.tableColumns = this.tableColumns.filter(\r\n column => column !== 'territoryId'\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.sort.sortChange.pipe(takeUntil(this.ngDestroyed$)).subscribe(res => {\r\n this.sortChanged.emit(res);\r\n });\r\n\r\n const queryParamsKeys = Object.keys(\r\n this.activatedRoute.snapshot.queryParams || {}\r\n );\r\n\r\n if (\r\n queryParamsKeys.length > 0 &&\r\n this.activatedRoute.snapshot.queryParams['active'] &&\r\n this.activatedRoute.snapshot.queryParams['direction']\r\n ) {\r\n this.sort.sort({\r\n id: this.activatedRoute.snapshot.queryParams['active'],\r\n start: this.activatedRoute.snapshot.queryParams['direction'],\r\n disableClear: false,\r\n });\r\n }\r\n }\r\n\r\n rowClicked(row: SapInstalledInstrumentListModel) {\r\n this.router.navigate(['details', row.equipmentCardNo], {\r\n relativeTo: this.activatedRoute,\r\n });\r\n }\r\n\r\n changeRowSelection(event: any, row: SapInstalledInstrumentListModel) {\r\n event.stopPropagation();\r\n if (this.showOnMapSelection.isSelected(row)) {\r\n this.showOnMapSelection.deselect(row);\r\n } else {\r\n this.showOnMapSelection.select(row);\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n redirectToShowOnMap() {\r\n const params = new HttpParams()\r\n .set(\r\n 'recordIds',\r\n this.showOnMapSelection.selected\r\n .map(instrument => instrument.sfId)\r\n .join(',')\r\n )\r\n .set('baseObjectId', 'a0kQo000002nNaDIAU')\r\n .set('tooltipField', 'IntrumentName__c')\r\n .set('zoom', '8')\r\n .set('color', '#66FF00');\r\n\r\n window.open(\r\n `${window.parent.origin}/apex/maps__Maps?${params.toString()}`,\r\n '_blank'\r\n );\r\n }\r\n\r\n toggleAll(checked: boolean) {\r\n if (checked) {\r\n this.dataSource.data.forEach(instrument => {\r\n if (instrument.sfId) {\r\n this.showOnMapSelection.select(instrument);\r\n }\r\n });\r\n } else {\r\n this.showOnMapSelection.clear();\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private setTableColumns() {\r\n if (this.useMapButton) {\r\n this.tableColumns.unshift('selectToMap');\r\n }\r\n\r\n this.mapTableColumns = {\r\n instrumentNo: 'sapAdminInstalledInstrument.instrumentNo',\r\n instrumentDescription:\r\n 'sapAdminInstalledInstrument.instrumentDescription',\r\n serialNumber: 'sapAdminInstalledInstrument.serialNumber',\r\n customerNo: 'sapAdminInstalledInstrument.accountNo',\r\n businessPartnerName: 'sapAdminInstalledInstrument.accountName',\r\n endUserName: 'sapAdminInstalledInstrument.endCustomer',\r\n city: 'sapAdminInstalledInstrument.city',\r\n territoryId: 'sapAdminInstalledInstrument.territory',\r\n country: 'sapAdminInstalledInstrument.country',\r\n status: 'sapAdminInstalledInstrument.status',\r\n installationDate: 'sapAdminInstalledInstrument.installationDate',\r\n selectToMap: '',\r\n };\r\n }\r\n}\r\n","<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n {{ 'sapAdminInstalledInstrument.selected' | translate }}:\r\n {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.instrumentNo\r\n ) {\r\n <div mat-menu-item (click)=\"showOnMapSelection.deselect(instrument)\">\r\n {{ instrument.instrumentNo }}\r\n <mat-icon\r\n class=\"material-icons\"\r\n style=\"font-size: 20px; width: 20px; height: 20px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n {{ 'sapAdminInstalledInstrument.showOnMap' | translate }}\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n @if (column !== 'selectToMap') {\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ mapTableColumns[column] | translate }}\r\n </th>\r\n } @else {\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n color=\"primary\"\r\n (change)=\"toggleAll($event.checked)\"\r\n ></mat-checkbox>\r\n </th>\r\n }\r\n\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n @if (element.sfId) {\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n ></mat-checkbox>\r\n }\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NonNullableFormBuilder } from '@angular/forms';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { SapTerritoryModel } from '../../../models/sap-territory.model';\r\nimport { SapStateModel } from '../../../models/sap-state.model';\r\nimport { SapCountryModel } from '../../../models/sap-country.model';\r\nimport { NgxStMultiselectAutocompleteComponent } from 'ngx-st-multiselect-autocomplete';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { InstalledInstrumentFormModel } from '../../../models/installed-instrument-form.model';\r\nimport { StMultiselectAutocompleteSettingsModel } from 'ngx-st-multiselect-autocomplete/lib/models/st-multiselect-autocomplete-settings.model';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\ninterface SearchFormType {\r\n application: string[][];\r\n serialNumber: string;\r\n instrumentNo: string;\r\n instrumentDesc: string;\r\n customerNo: string;\r\n bpName: string;\r\n city: string;\r\n county: string;\r\n endUserName: string;\r\n endUserCode: string;\r\n territory: number | null;\r\n technicianLastName: string;\r\n country: string;\r\n state: string;\r\n status: string;\r\n installationDateFrom: Date | null;\r\n installationDateTo: Date | null;\r\n}\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list-search',\r\n templateUrl: './sap-installed-instrument-list-search.component.html',\r\n styleUrls: ['./sap-installed-instrument-list-search.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SapInstalledInstrumentListSearchComponent implements OnInit, OnDestroy {\r\n @ViewChild('multiselectAutocomplete')\r\n multiselectAutocomplete: NgxStMultiselectAutocompleteComponent;\r\n\r\n @Output()\r\n filtersChanged = new EventEmitter<InstalledInstrumentFormModel>();\r\n\r\n showFilters: boolean = false;\r\n searchForm = this.fb.group<SearchFormType>({\r\n application: [<string[]>[]],\r\n serialNumber: '',\r\n instrumentNo: '',\r\n instrumentDesc: '',\r\n customerNo: '',\r\n bpName: '',\r\n city: '',\r\n county: '',\r\n endUserName: '',\r\n endUserCode: '',\r\n territory: <number | null>null,\r\n technicianLastName: '',\r\n country: '',\r\n state: '',\r\n status: '',\r\n installationDateFrom: <Date | null>null,\r\n installationDateTo: <Date | null>null,\r\n });\r\n\r\n territories$: Observable<SapTerritoryModel[]>;\r\n states$: Observable<SapStateModel[]>;\r\n countries$: Observable<SapCountryModel[]>;\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private fb: NonNullableFormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.setSearchForm();\r\n this.setAsyncFilters();\r\n\r\n const queryParamsKeys = Object.keys(\r\n this.activatedRoute.snapshot.queryParams || {}\r\n );\r\n\r\n if (queryParamsKeys.length > 2) {\r\n this.showFilters = true;\r\n\r\n queryParamsKeys.forEach(queryParam => {\r\n const formControl = this.searchForm.get(queryParam);\r\n if (formControl) {\r\n if (\r\n queryParam === 'installationDateFrom' ||\r\n queryParam === 'installationDateTo'\r\n ) {\r\n formControl.setValue(\r\n this.activatedRoute.snapshot.queryParams[queryParam]\r\n ? new Date(this.activatedRoute.snapshot.queryParams[queryParam])\r\n : null\r\n );\r\n } else {\r\n formControl.setValue(\r\n this.activatedRoute.snapshot.queryParams[queryParam]\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n clearAllFilters() {\r\n this.searchForm.reset();\r\n this.multiselectAutocomplete.clearSelectedData();\r\n this.searchSubmitted();\r\n }\r\n\r\n refreshTerritories() {\r\n this.searchForm.controls.territory.setValue(null);\r\n this.territories$ = this.sapInstalledInstrumentService.getTerritory(true);\r\n }\r\n\r\n refreshCountries() {\r\n this.searchForm.controls.country.setValue('');\r\n this.countries$ = this.sapInstalledInstrumentService.getCountry(true);\r\n }\r\n\r\n refreshStates() {\r\n this.searchForm.controls.state.setValue('');\r\n this.states$ = this.sapInstalledInstrumentService.getState(\r\n this.searchForm.controls.country.value,\r\n true\r\n );\r\n }\r\n\r\n getCountryValue(country: SapCountryModel) {\r\n return country.id;\r\n }\r\n\r\n getStateValue(state: SapStateModel) {\r\n return state.id;\r\n }\r\n\r\n getTerritoryValue(territory: SapTerritoryModel) {\r\n return territory.id;\r\n }\r\n\r\n searchSubmitted() {\r\n const formValues = this.searchForm.getRawValue();\r\n\r\n this.filtersChanged.emit({ sfId: undefined, ...formValues });\r\n }\r\n\r\n clearInputValue(formControlName: string) {\r\n this.searchForm.get(formControlName)!.setValue('');\r\n this.searchSubmitted();\r\n }\r\n\r\n getFilteredOptions = (search: string) => {\r\n return this.sapInstalledInstrumentService.getApplicationSearch(search);\r\n };\r\n\r\n applicationSelected(data: string[]) {\r\n this.searchForm.controls.application.setValue(data);\r\n }\r\n\r\n private setAsyncFilters() {\r\n this.territories$ = this.sapInstalledInstrumentService.getTerritory(false);\r\n this.countries$ = this.sapInstalledInstrumentService.getCountry(false);\r\n this.states$ = of([]);\r\n }\r\n\r\n private setSearchForm() {\r\n this.searchForm.controls.country.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(\r\n (country: string) => {\r\n this.searchForm.controls.state.setValue('');\r\n\r\n if (country) {\r\n this.states$ = this.sapInstalledInstrumentService.getState(country);\r\n } else {\r\n this.states$ = of([]);\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (keyup.enter)=\"searchSubmitted()\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('sapAdminInstalledInstrument.max' | translate) +\r\n ': 10)'\r\n \"\r\n [searchLabel]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [settings]=\"{\r\n getFilteredOptions: this.getFilteredOptions\r\n }\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{\r\n 'sapAdminInstalledInstrument.empty' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.territory' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'sapAdminInstalledInstrument.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.state' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'sapAdminInstalledInstrument.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.country' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"row justify-content-sm-start justify-content-lg-center\"\r\n style=\"margin-bottom: 10px\"\r\n >\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { SapInstalledInstrumentsService } from '../../services/sap-installed-instruments.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentListModel } from '../../models/sap-installed-instrument-list.model';\r\nimport { InstalledInstrumentFormModel } from '../../models/installed-instrument-form.model';\r\nimport { Sort } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list',\r\n templateUrl: './sap-installed-instrument-list.component.html',\r\n styleUrls: [\r\n './sap-installed-instrument-list.component.scss',\r\n '../../../../assets/base-card.scss',\r\n ],\r\n})\r\nexport class SapInstalledInstrumentListComponent implements OnInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n\r\n @Input()\r\n accessToken: string;\r\n\r\n @Input()\r\n territoryFilter: boolean;\r\n\r\n @Input()\r\n showWithCardContent = true;\r\n\r\n @Input()\r\n useMapButton = false;\r\n\r\n installedInstruments: SapInstalledInstrumentListModel[] = [];\r\n\r\n private lastSearchFilters: InstalledInstrumentFormModel | any = <\r\n InstalledInstrumentFormModel\r\n >{};\r\n private lastSearchSorts: Sort = <Sort>{};\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sapInstalledInstrumentService.territoryFilter = this.territoryFilter;\r\n\r\n const queryParams = this.activatedRoute.snapshot.queryParams || {};\r\n const { active, direction, ...filterParams } = queryParams;\r\n\r\n if (active || direction) {\r\n this.lastSearchSorts = { active, direction };\r\n }\r\n\r\n this.lastSearchFilters = {\r\n ...filterParams,\r\n installationDateFrom: filterParams['installationDateFrom'] ?\r\n new Date(filterParams['installationDateFrom']) : null,\r\n installationDateTo: filterParams['installationDateTo'] ?\r\n new Date(filterParams['installationDateTo']) : null\r\n };\r\n\r\n this.loadInstalledInstruments(this.lastSearchFilters, this.lastSearchSorts);\r\n }\r\n\r\n filtersChanged(event: InstalledInstrumentFormModel): void {\r\n this.loadInstalledInstruments(\r\n { ...event, sfId: this.lastSearchFilters['sfId'] || undefined },\r\n this.lastSearchSorts\r\n );\r\n }\r\n\r\n sortChanged(event: Sort): void {\r\n this.loadInstalledInstruments(this.lastSearchFilters, event);\r\n }\r\n\r\n private loadInstalledInstruments(\r\n searchForm: InstalledInstrumentFormModel,\r\n sort: Sort\r\n ) {\r\n this.router.navigate([], {\r\n queryParams: {\r\n ...searchForm,\r\n installationDateFrom:\r\n searchForm.installationDateFrom?.toISOString() || '',\r\n installationDateTo: searchForm.installationDateTo?.toISOString() || '',\r\n ...sort,\r\n },\r\n });\r\n this.sapInstalledInstrumentService\r\n .getInstalledInstrumentList(searchForm, sort)\r\n .subscribe(res => {\r\n this.lastSearchFilters = searchForm;\r\n this.lastSearchSorts = sort;\r\n this.installedInstruments = res;\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n}\r\n","<div class=\"container-fluid no-cut\" *ngIf=\"showWithCardContent\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">\r\n {{\r\n 'sapAdminInstalledInstrument.titleInstalledInstrumentList' | translate\r\n }}\r\n </h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"installedInstrumentContent\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf=\"!showWithCardContent\">\r\n <ng-container [ngTemplateOutlet]=\"installedInstrumentContent\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #installedInstrumentContent>\r\n <div style=\"display: flex; flex-direction: column; width: 100%\">\r\n <app-sap-installed-instrument-list-search\r\n (filtersChanged)=\"filtersChanged($event)\"\r\n ></app-sap-installed-instrument-list-search>\r\n\r\n <app-sap-installed-instrument-list-table\r\n [tableData]=\"installedInstruments\"\r\n [useMapButton]=\"useMapButton\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></app-sap-installed-instrument-list-table>\r\n </div>\r\n</ng-template>\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport { IConfig } from '../../../base-interfaces';\r\n\r\n@Component({\r\n selector: 'app-activity-details-view',\r\n templateUrl: './activity-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './activity-details-view.component.scss',\r\n ],\r\n})\r\nexport class ActivityDetailsViewComponent implements OnInit {\r\n @Input()\r\n activity: SapActivityModel;\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n baseDownloadLink = '';\r\n\r\n constructor(@Inject('config') private config: IConfig) {}\r\n\r\n ngOnInit(): void {\r\n this.baseDownloadLink =\r\n this.config.api_base_uri +\r\n this.config.base_uri +\r\n '/installedInstrument/activity-attachment?access_token=' +\r\n this.accessToken;\r\n }\r\n\r\n updateLink() {\r\n const company = localStorage.getItem('company-id')\r\n ? `&company-id=${localStorage.getItem('company-id')}`\r\n : '';\r\n this.baseDownloadLink =\r\n this.config.api_base_uri +\r\n this.config.base_uri +\r\n '/installedInstrument/activity-attachment?access_token=' +\r\n this.accessToken +\r\n company;\r\n }\r\n}\r\n","<div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.activity' | translate }}</span>\r\n <p>{{ activity.activity || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.type' | translate }}</span>\r\n <p>{{ activity.type || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.subject' | translate }}</span>\r\n <p>{{ activity.subject || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ activity.remarks || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.startTime' | translate }}</span>\r\n <p>{{ (activity.startTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.endTime' | translate }}</span>\r\n <p>{{ (activity.endTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.duration' | translate }}</span>\r\n <p>{{ activity.duration || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.content' | translate }}</span>\r\n <p>{{ activity.content || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.coordinator' | translate }}</span>\r\n <p>{{ activity.coordinatorName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.orderNumber' | translate }}</span>\r\n <p>{{ activity.orderNumber || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.detailedSymptom' | translate }}</span>\r\n <p>{{ activity.detailedSymptom || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.solution' | translate }}</span>\r\n <p>{{ activity.solution || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.incompleteReason' | translate\r\n }}</span>\r\n <p>{{ activity.incompleteReason || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\" *ngIf=\"activity.attachmentList.length > 0\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <p class=\"attachments-title\">\r\n {{ 'sapAdminInstalledInstrument.attachments' | translate }}:\r\n </p>\r\n <ul class=\"row\">\r\n <li\r\n class=\"row align-items-center\"\r\n *ngFor=\"let attachment of activity.attachmentList\"\r\n >\r\n <p>{{ attachment.fileName }}.{{ attachment.fileExt }}</p>\r\n\r\n <a\r\n [href]=\"\r\n baseDownloadLink +\r\n '&id=' +\r\n attachment.id +\r\n '&line=' +\r\n attachment.line +\r\n '&preview=true'\r\n \"\r\n target=\"_blank\"\r\n (click)=\"updateLink()\"\r\n >\r\n <button mat-icon-button>\r\n <mat-icon class=\"material-icons\">preview</mat-icon>\r\n </button>\r\n </a>\r\n\r\n <a\r\n [href]=\"\r\n baseDownloadLink +\r\n '&id=' +\r\n attachment.id +\r\n '&line=' +\r\n attachment.line +\r\n '&preview=false'\r\n \"\r\n target=\"_blank\"\r\n (click)=\"updateLink()\"\r\n >\r\n <button mat-icon-button>\r\n <mat-icon class=\"material-icons\">cloud_download</mat-icon>\r\n </button>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-activities-list-view',\r\n templateUrl: './activities-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './activities-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class ActivitiesListViewComponent implements OnInit, AfterViewInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n activities: SapActivityModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n columnsToDisplay = [\r\n 'activityNumber',\r\n 'detailedSymptom',\r\n 'solution',\r\n 'coordinator',\r\n 'startTime',\r\n 'endTime',\r\n ];\r\n tableSource: MatTableDataSource<SapActivityModel>;\r\n expandedElement: SapActivityModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 5;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapActivityModel>(\r\n this.activities\r\n );\r\n }\r\n}\r\n","<div class=\"activities-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" [multiTemplateDataRows]=\"true\">\r\n <ng-container matColumnDef=\"activityNumber\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.activityNo' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.activityNumber }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"type\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.type' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.type }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"detailedSymptom\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.detailedSymptom' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.detailedSymptom }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"solution\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.solution' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.solution }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"coordinator\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.coordinator' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.coordinatorName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"startTime\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.startTime' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.startTime | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"endTime\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.endTime' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.endTime | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [attr.colspan]=\"columnsToDisplay.length\"\r\n >\r\n <div\r\n class=\"row-detail\"\r\n [@detailExpand]=\"\r\n element == expandedElement ? 'expanded' : 'collapsed'\r\n \"\r\n >\r\n <app-activity-details-view\r\n *ngIf=\"element == expandedElement\"\r\n [activity]=\"element\"\r\n [accessToken]=\"accessToken\"\r\n ></app-activity-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: columnsToDisplay\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['expandedDetail']\"\r\n class=\"detail-row\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [pageSizeOptions]=\"[5, 10]\"\r\n [showFirstLastButtons]=\"true\"\r\n ></mat-paginator>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\n\r\n@Component({\r\n selector: 'app-service-contract-details-view',\r\n templateUrl: './service-contract-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contract-details-view.component.scss',\r\n ],\r\n})\r\nexport class ServiceContractDetailsViewComponent implements OnInit {\r\n @Input()\r\n contract: SapContractModel;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customer' | translate }}</span>\r\n <p>{{ contract.customer || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customerName' | translate }}</span>\r\n <p>{{ contract.customerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.description' | translate }}</span>\r\n <p>{{ contract.description || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.startDate' | translate }}</span>\r\n <p>{{ (contract.startDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endDate' | translate }}</span>\r\n <p>{{ (contract.endDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.terminationDate' | translate }}</span>\r\n <p>{{ (contract.terminationDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.serviceType' | translate }}</span>\r\n <p>{{ contract.serviceType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.template' | translate }}</span>\r\n <p>{{ contract.template || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.handledBy' | translate }}</span>\r\n <p>{{ contract.handledBy || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ contract.remarks || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.itemCode' | translate }}</span>\r\n <p>{{ contract.itemCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.itemName' | translate }}</span>\r\n <p>{{ contract.itemName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.serialNumber' | translate }}</span>\r\n <p>{{ contract.serialNumber || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.startDateDetails' | translate\r\n }}</span>\r\n <p>{{ (contract.startDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endDateDetails' | translate }}</span>\r\n <p>{{ (contract.endDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.terminationDateDetails' | translate\r\n }}</span>\r\n <p>{{ (contract.terminationDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-service-contracts-modal-details-view',\r\n templateUrl: './service-contracts-modal-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contracts-modal-details-view.component.scss',\r\n ],\r\n})\r\nexport class ServiceContractsModalDetailsViewComponent implements OnInit {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { contract: SapContractModel },\r\n public dialogRef: MatDialogRef<ServiceContractsModalDetailsViewComponent>\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<h1 mat-dialog-title>\r\n {{ 'sapAdminInstalledInstrument.serviceContract' | translate }}\r\n</h1>\r\n<div mat-dialog-content>\r\n <app-service-contract-details-view\r\n [contract]=\"data.contract\"\r\n ></app-service-contract-details-view>\r\n</div>\r\n<div class=\"row justify-content-end\" mat-dialog-actions>\r\n <button mat-button type=\"button\" (click)=\"close()\">\r\n {{ 'sapAdminInstalledInstrument.close' | translate }}\r\n </button>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SapCallModel } from '../../../models/sap-call.model';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { ServiceContractsModalDetailsViewComponent } from '../service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { Observable } from 'rxjs';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport { tap } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-call-details-view',\r\n templateUrl: './call-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './call-details-view.component.scss',\r\n ],\r\n})\r\nexport class CallDetailsViewComponent implements OnInit {\r\n @Input()\r\n call: SapCallModel;\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n contractDetails: SapContractModel | undefined;\r\n\r\n activitiesLoading = true;\r\n activities$: Observable<SapActivityModel[]>;\r\n activities: SapActivityModel[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private sapInstalledInstruments: SapInstalledInstrumentsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.call && this.contracts && this.call.contractNo) {\r\n this.contractDetails = this.contracts.find(\r\n contract => contract.contractId === this.call.contractNo\r\n );\r\n }\r\n\r\n this.loadActivities();\r\n }\r\n\r\n openContractModel() {\r\n this.dialog.open(ServiceContractsModalDetailsViewComponent, {\r\n data: { contract: this.contractDetails },\r\n width: '50%',\r\n });\r\n }\r\n\r\n tabChanged(event: any) {}\r\n\r\n private loadActivities() {\r\n this.activities$ = this.sapInstalledInstruments\r\n .getActivities(this.call.callId)\r\n .pipe(\r\n tap(res => {\r\n this.activities = res;\r\n this.activitiesLoading = false;\r\n })\r\n );\r\n }\r\n}\r\n","<mat-tab-group (selectedTabChange)=\"tabChanged($event)\">\r\n <mat-tab label=\"{{ 'sapAdminInstalledInstrument.callDetails' | translate }}\">\r\n <div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.callId' | translate }}</span>\r\n <p>{{ call.callId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.contractNo' | translate }}</span>\r\n <div class=\"row\">\r\n <p>{{ call.contractNo || '-' }}</p>\r\n <i\r\n class=\"material-icons-outlined show-contract\"\r\n *ngIf=\"contractDetails\"\r\n (click)=\"openContractModel()\"\r\n >visibility</i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.accountNo' | translate }}</span>\r\n <p>{{ call.customer || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.accountName' | translate }}</span>\r\n <p>{{ call.customerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.contactPerson' | translate\r\n }}</span>\r\n <p>{{ call.contactPerson || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.phone' | translate }}</span>\r\n <p>{{ call.telephoneNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.shipToCode' | translate }}</span>\r\n <p>{{ call.shipToCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.shipToAddress' | translate\r\n }}</span>\r\n <p>{{ call.shipToAddress || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.billToCode' | translate }}</span>\r\n <p>{{ call.billToCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.billToAddress' | translate\r\n }}</span>\r\n <p>{{ call.billToAddress || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.subject' | translate }}</span>\r\n <p>{{ call.subject || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.callStatus' | translate }}</span>\r\n <p>{{ call.callStatus || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.createdOn' | translate }}</span>\r\n <p>{{ (call.createdOn | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.closedOn' | translate }}</span>\r\n <p>{{ (call.closedOn | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.origin' | translate }}</span>\r\n <p>{{ call.origin || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.problemType' | translate }}</span>\r\n <p>{{ call.problemType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.problemSubtype' | translate\r\n }}</span>\r\n <p>{{ call.problemSubtype || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.callType' | translate }}</span>\r\n <p>{{ call.callType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.technician' | translate }}</span>\r\n <p>\r\n {{\r\n call.technicianFirstName\r\n ? call.technicianFirstName + ' ' + call.technicianLastName\r\n : '-'\r\n }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.engineerName' | translate\r\n }}</span>\r\n <p>{{ call.engeneerName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ call.remarks || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{ 'sapAdminInstalledInstrument.resolution' | translate }}</span>\r\n <p>{{ call.resolution || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.startTime' | translate }}</span>\r\n <p>{{ (call.startTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.endTime' | translate }}</span>\r\n <p>{{ (call.endTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.duration' | translate }}</span>\r\n <p>{{ call.duration || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.travelTime' | translate }}</span>\r\n <p>{{ call.travelTime || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.internalComments' | translate\r\n }}</span>\r\n <p>{{ call.internalComments || '-' }}</p>\r\n </div>\r\n </div>\r\n </mat-tab>\r\n\r\n <mat-tab\r\n label=\"{{ 'sapAdminInstalledInstrument.activities' | translate }} ({{\r\n activities.length || 0\r\n }})\"\r\n >\r\n <ng-container *ngIf=\"activities$ | async\">\r\n <app-activities-list-view\r\n [activities]=\"activities\"\r\n [accessToken]=\"accessToken\"\r\n ></app-activities-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n</mat-tab-group>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapCallModel } from '../../../models/sap-call.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-calls-list-view',\r\n templateUrl: './calls-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './calls-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CallsListViewComponent implements OnInit, AfterViewInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n calls: SapCallModel[];\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n columnsToDisplay = [\r\n 'callId',\r\n 'callStatus',\r\n 'callType',\r\n 'problemType',\r\n 'customer',\r\n 'customerName',\r\n 'engeneerName',\r\n 'createdOn',\r\n 'closedOn',\r\n ];\r\n tableSource: MatTableDataSource<SapCallModel>;\r\n expandedElement: SapCallModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 10;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapCallModel>(this.calls);\r\n }\r\n}\r\n","<div class=\"calls-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" multiTemplateDataRows>\r\n <ng-container matColumnDef=\"callId\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.callId' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callId }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"callStatus\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.status' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callStatus }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"callType\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.callType' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callType }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"problemType\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.problemType' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.problemType }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customer\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.accountNo' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.customer }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customerName\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.accountName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.customerName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"engeneerName\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.engineerName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.engeneerName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"createdOn\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.createdOn' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.createdOn | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"closedOn\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.closedOn' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.closedOn | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [attr.colspan]=\"columnsToDisplay.length\"\r\n >\r\n <div\r\n class=\"row-detail\"\r\n [@detailExpand]=\"\r\n element == expandedElement ? 'expanded' : 'collapsed'\r\n \"\r\n >\r\n <app-call-details-view\r\n *ngIf=\"element == expandedElement\"\r\n [call]=\"element\"\r\n [contracts]=\"contracts\"\r\n [accessToken]=\"accessToken\"\r\n ></app-call-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: columnsToDisplay\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['expandedDetail']\"\r\n class=\"detail-row\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n showFirstLastButtons\r\n ></mat-paginator>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { SapInstalledInstrumentModel } from '../../../models/sap-installed-instrument.model';\r\n\r\n@Component({\r\n selector: 'app-data-details-view',\r\n templateUrl: './data-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './data-details-view.component.scss',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DataDetailsViewComponent implements OnInit {\r\n @Input()\r\n installedInstrument: SapInstalledInstrumentModel;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<ng-container *ngIf=\"installedInstrument\">\r\n <div class=\"group-details row\">\r\n <!-- <div class=\"col-xs-12 col-sm-4\">-->\r\n <!-- <span>{{'sapAdminInstalledInstrument.equipmentCardNo' | translate}}</span>-->\r\n <!-- <p>{{installedInstrument.equipmentCardNo || '-'}}</p>-->\r\n <!-- </div>-->\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.instrumentNo' | translate }}</span>\r\n <p>{{ installedInstrument.instrumentNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.instrumentDescription || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.serialNumber' | translate }}</span>\r\n <p>{{ installedInstrument.serialNumber || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customerNo' | translate }}</span>\r\n <p>{{ installedInstrument.customerNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.businessPartnerName' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.businessPartnerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.contactPerson' | translate }}</span>\r\n <p>{{ installedInstrument.contactPerson || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.status' | translate }}</span>\r\n <p>{{ installedInstrument.status || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.technicianName' | translate\r\n }}</span>\r\n <p>\r\n {{\r\n installedInstrument.technicianFirstName\r\n ? installedInstrument.technicianFirstName +\r\n ' ' +\r\n installedInstrument.technicianLastName\r\n : '-'\r\n }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.territory' | translate }}</span>\r\n <p>{{ installedInstrument.territory || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.installationDate' | translate\r\n }}</span>\r\n <p>\r\n {{ (installedInstrument.installationDate | stDateFormatPipe) || '-' }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endUserName' | translate }}</span>\r\n <p>{{ installedInstrument.endUserName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endUserCode' | translate }}</span>\r\n <p>{{ installedInstrument.endUserCode || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.addressName' | translate }}</span>\r\n <p>{{ installedInstrument.addressName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.street' | translate }}</span>\r\n <p>{{ installedInstrument.street || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.streetNo' | translate }}</span>\r\n <p>{{ installedInstrument.streetNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.block' | translate }}</span>\r\n <p>{{ installedInstrument.block || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.building' | translate }}</span>\r\n <p>{{ installedInstrument.building || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.city' | translate }}</span>\r\n <p>{{ installedInstrument.city || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.county' | translate }}</span>\r\n <p>{{ installedInstrument.county || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.state' | translate }}</span>\r\n <p>{{ installedInstrument.state || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.zipCode' | translate }}</span>\r\n <p>{{ installedInstrument.zipCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.country' | translate }}</span>\r\n <p>{{ installedInstrument.country || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.softwareVersion' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.softwareVersion || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.pcSoftwareVersion' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.pcSoftwareVersion || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.vessels' | translate }}</span>\r\n <p>{{ installedInstrument.vessels || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem1' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem2' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem3' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem3 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit1' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit2' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit3' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit3 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit4' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit4 || '-' }}</p>\r\n </div>\r\n </div>\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit5' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit5 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit6' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit6 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit7' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit7 || '-' }}</p>\r\n </div>\r\n </div>\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit8' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit8 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit9' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit9 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit10' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit10 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.numberOfAnalysis' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.numberOfAnalysis || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application1' | translate }}</span>\r\n <p>{{ installedInstrument.application1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application2' | translate }}</span>\r\n <p>{{ installedInstrument.application2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application3' | translate }}</span>\r\n <p>{{ installedInstrument.application3 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application4' | translate }}</span>\r\n <p>{{ installedInstrument.application4 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application5' | translate }}</span>\r\n <p>{{ installedInstrument.application5 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application6' | translate }}</span>\r\n <p>{{ installedInstrument.application6 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application7' | translate }}</span>\r\n <p>{{ installedInstrument.application7 || '-' }}</p>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-service-contracts-list-view',\r\n templateUrl: './service-contracts-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contracts-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ServiceContractsListViewComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n columnsToDisplay = [\r\n 'contractId',\r\n 'customer',\r\n 'customerName',\r\n 'itemCode',\r\n 'itemName',\r\n 'serialNumber',\r\n 'serviceType',\r\n 'startDate',\r\n 'terminationDate',\r\n ];\r\n tableSource: MatTableDataSource<SapContractModel>;\r\n expandedElement: SapContractModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 10;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapContractModel>(this.contracts);\r\n }\r\n}\r\n","<div class=\"service-contracts-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" multiTemplateDataRows>\r\n\r\n <ng-container matColumnDef=\"contractId\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.contractId' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.contractId }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customer\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.customer' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.customer }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customerName\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.customerName' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.customerName }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemCode\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.itemCode' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.itemCode }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemName\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.itemName' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.itemName }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"serialNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.serialNumber' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.serialNumber }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"serviceType\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.serviceType' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.serviceType }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"startDate\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.startDate' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.startDate | stDateFormatPipe }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"terminationDate\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.endDate' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.endDateDetail | stDateFormatPipe }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"columnsToDisplay.length\">\r\n <div class=\"row-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\r\n <app-service-contract-details-view\r\n [contract]=\"element\"\r\n ></app-service-contract-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: columnsToDisplay;\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\">\r\n </tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[10, 20]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { SapInstalledInstrumentsService } from '../../services/sap-installed-instruments.service';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { SapInstalledInstrumentModel } from '../../models/sap-installed-instrument.model';\r\nimport { SapCallModel } from '../../models/sap-call.model';\r\nimport { SapContractModel } from '../../models/sap-contract.model';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-details',\r\n templateUrl: './sap-installed-instrument-details.component.html',\r\n styleUrls: [\r\n './sap-installed-instrument-details.component.scss',\r\n '../../../../assets/base-card.scss',\r\n ],\r\n})\r\nexport class SapInstalledInstrumentDetailsComponent implements OnInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n\r\n @Input()\r\n id: number;\r\n\r\n @Input()\r\n accessToken: string;\r\n\r\n @Input()\r\n territoryFilter: boolean;\r\n\r\n @Input()\r\n showWithCardContent = true;\r\n\r\n installedInstrument$: Observable<SapInstalledInstrumentModel>;\r\n calls$: Observable<SapCallModel[]>;\r\n serviceContracts$: Observable<SapContractModel[]>;\r\n tabActive: number = 0;\r\n installedInstrument: SapInstalledInstrumentModel;\r\n calls: SapCallModel[] = [];\r\n serviceContracts: SapContractModel[] = [];\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private location: Location\r\n ) {\r\n this.sapInstalledInstrumentService.accessToken = this.accessToken;\r\n this.sapInstalledInstrumentService.territoryFilter = this.territoryFilter;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadTabsData();\r\n }\r\n\r\n tabChanged(event: any) {\r\n this.tabActive = event.index;\r\n }\r\n\r\n goBack() {\r\n this.location.back();\r\n }\r\n\r\n loadTabsData() {\r\n this.installedInstrument$ = this.sapInstalledInstrumentService\r\n .getInstalledInstrument(this.id)\r\n .pipe(\r\n tap(installedInstrument => {\r\n this.installedInstrument = installedInstrument;\r\n })\r\n );\r\n this.calls$ = this.sapInstalledInstrumentService\r\n .getCalls(this.id)\r\n .pipe(tap(res => (this.calls = res)));\r\n this.serviceContracts$ = this.sapInstalledInstrumentService\r\n .getContracts(this.id)\r\n .pipe(tap(res => (this.serviceContracts = res)));\r\n }\r\n}\r\n","<ng-container *ngIf=\"showWithCardContent\">\r\n <div class=\"container-fluid no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">\r\n {{\r\n 'sapAdminInstalledInstrument.titleInstalledInstrumentDetails'\r\n | translate\r\n }}\r\n </h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <button mat-icon-button class=\"back-link\" (click)=\"goBack()\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </button>\r\n\r\n <ng-container\r\n [ngTemplateOutlet]=\"installedInstrumentContent\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!showWithCardContent\">\r\n <ng-container [ngTemplateOutlet]=\"installedInstrumentContent\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #installedInstrumentContent>\r\n <div\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n position: relative;\r\n \"\r\n >\r\n <button\r\n mat-icon-button\r\n style=\"position: absolute; top: 5px; left: 0; z-index: 11\"\r\n (click)=\"goBack()\"\r\n >\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </button>\r\n <mat-tab-group (selectedTabChange)=\"tabChanged($event)\">\r\n <mat-tab\r\n label=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDetails' | translate\r\n }}\"\r\n >\r\n <ng-container *ngIf=\"installedInstrument$ | async\">\r\n <app-data-details-view\r\n *ngIf=\"tabActive === 0\"\r\n [installedInstrument]=\"installedInstrument\"\r\n ></app-data-details-view>\r\n </ng-container>\r\n </mat-tab>\r\n <mat-tab\r\n label=\"{{ 'sapAdminInstalledInstrument.calls' | translate }} ({{\r\n calls.length || 0\r\n }})\"\r\n >\r\n <ng-container *ngIf=\"calls$ | async\">\r\n <app-calls-list-view\r\n *ngIf=\"tabActive === 1\"\r\n [calls]=\"calls\"\r\n [contracts]=\"serviceContracts\"\r\n [accessToken]=\"accessToken\"\r\n ></app-calls-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n <mat-tab\r\n label=\"{{\r\n 'sapAdminInstalledInstrument.serviceContracts' | translate\r\n }} ({{ serviceContracts.length || 0 }})\"\r\n >\r\n <ng-container *ngIf=\"serviceContracts$ | async\">\r\n <app-service-contracts-list-view\r\n *ngIf=\"tabActive === 2\"\r\n [contracts]=\"serviceContracts\"\r\n ></app-service-contracts-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n</ng-template>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { SapInstalledInstrumentDetailsComponent } from './components/sap-installed-instrument-details/sap-installed-instrument-details.component';\r\nimport { SapInstalledInstrumentListComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { StDateFormatModule } from 'ngx-st-date-format';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { StMultiselectAutocompleteModule } from 'ngx-st-multiselect-autocomplete';\r\nimport { StSearchSelectsModule } from 'ngx-st-search-selects';\r\nimport { AuthModule } from 'angular-auth-oidc-client';\r\nimport { SapInstalledInstrumentsService } from './services/sap-installed-instruments.service';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptors } from '@angular/common/http';\r\nimport { IDirectiveModuleConfig } from './base-interfaces';\r\nimport { ActivitiesListViewComponent } from './components/sap-installed-instrument-details/activities-list-view/activities-list-view.component';\r\nimport { ActivityDetailsViewComponent } from './components/sap-installed-instrument-details/activity-details-view/activity-details-view.component';\r\nimport { CallDetailsViewComponent } from './components/sap-installed-instrument-details/call-details-view/call-details-view.component';\r\nimport { CallsListViewComponent } from './components/sap-installed-instrument-details/calls-list-view/calls-list-view.component';\r\nimport { DataDetailsViewComponent } from './components/sap-installed-instrument-details/data-details-view/data-details-view.component';\r\nimport { ServiceContractsListViewComponent } from './components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component';\r\nimport { ServiceContractDetailsViewComponent } from './components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component';\r\nimport { ServiceContractsModalDetailsViewComponent } from './components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nimport { SapInstalledInstrumentListSearchComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component';\r\nimport { SapInstalledInstrumentListTableComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SapInstalledInstrumentDetailsComponent,\r\n SapInstalledInstrumentListComponent,\r\n ActivitiesListViewComponent,\r\n ActivityDetailsViewComponent,\r\n CallDetailsViewComponent,\r\n CallsListViewComponent,\r\n DataDetailsViewComponent,\r\n ServiceContractsListViewComponent,\r\n ServiceContractDetailsViewComponent,\r\n ServiceContractsModalDetailsViewComponent,\r\n SapInstalledInstrumentListSearchComponent,\r\n SapInstalledInstrumentListTableComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatChipsModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatListModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatDialogModule,\r\n MatTabsModule,\r\n MatSnackBarModule,\r\n MatCheckboxModule,\r\n MatAutocompleteModule,\r\n MatSortModule,\r\n TranslateModule.forChild(),\r\n StDateFormatModule,\r\n ReactiveFormsModule,\r\n StMultiselectAutocompleteModule,\r\n StSearchSelectsModule,\r\n AuthModule,\r\n ],\r\n providers: [SapInstalledInstrumentsService],\r\n exports: [\r\n SapInstalledInstrumentListComponent,\r\n SapInstalledInstrumentDetailsComponent,\r\n ],\r\n})\r\nexport class StSapInstalledInstrumentsModule {\r\n static forRoot(\r\n config: IDirectiveModuleConfig = {}\r\n ): ModuleWithProviders<StSapInstalledInstrumentsModule> {\r\n return {\r\n ngModule: StSapInstalledInstrumentsModule,\r\n providers: [\r\n { provide: 'config', useValue: config.config },\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-sap-installed-instruments\r\n */\r\n\r\nexport * from './lib/models/installed-instrument-form.model';\r\nexport * from './lib/models/installed-instrument-sort-by-column.enum';\r\nexport * from './lib/models/installed-instrument-sort-order.enum';\r\nexport * from './lib/models/sap-activity.model';\r\nexport * from './lib/models/sap-attachment.model';\r\nexport * from './lib/models/sap-call.model';\r\nexport * from './lib/models/sap-contract.model';\r\nexport * from './lib/models/sap-country.model';\r\nexport * from './lib/models/sap-installed-instrument-list.model';\r\nexport * from './lib/models/sap-installed-instrument-search.model';\r\nexport * from './lib/models/sap-installed-instrument.model';\r\nexport * from './lib/models/sap-state.model';\r\nexport * from './lib/models/sap-territory.model';\r\nexport * from './lib/models/view-sap-installed-instrument-list.model';\r\nexport * from './lib/services/sap-installed-instruments.service';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component';\r\nexport * from './lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component';\r\nexport * from './lib/ngx-st-sap-installed-instruments.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.SapInstalledInstrumentsService","i4","i5","i7","i8","i11","i12","i1.SapInstalledInstrumentsService","i3","i6","i9","i10","i15","i4.SapInstalledInstrumentListSearchComponent","i5.SapInstalledInstrumentListTableComponent","i2","i4.ActivityDetailsViewComponent","i3.ServiceContractDetailsViewComponent","i5.ActivitiesListViewComponent","i4.CallDetailsViewComponent","i5.CallsListViewComponent","i6.DataDetailsViewComponent","i7.ServiceContractsListViewComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-st-sap-installed-instruments.mjs","sources":["../../../projects/ngx-st-sap-installed-instruments/src/lib/models/installed-instrument-table-columns.model.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/services/sap-installed-instruments.service.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component.ts","../../../projects/ngx-st-sap-installed-instruments/src/lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component.html","../../../projects/ngx-st-sap-installed-instruments/src/lib/ngx-st-sap-installed-instruments.module.ts","../../../projects/ngx-st-sap-installed-instruments/src/public-api.ts","../../../projects/ngx-st-sap-installed-instruments/src/ngx-st-sap-installed-instruments.ts"],"sourcesContent":["import { InstalledInstrumentSortByColumnEnum } from './installed-instrument-sort-by-column.enum';\r\n\r\nexport declare type InstalledInstrumentTableColumnsModel =\r\n | 'instrumentNo'\r\n | 'instrumentDescription'\r\n | 'serialNumber'\r\n | 'customerNo'\r\n | 'businessPartnerName'\r\n | 'endUserName'\r\n | 'city'\r\n | 'territoryId'\r\n | 'country'\r\n | 'installationDate'\r\n | 'status'\r\n | 'selectToMap';\r\n\r\nexport enum InstalledInstrumentTableColumnsMapperEnum {\r\n instrumentNo = InstalledInstrumentSortByColumnEnum.ItemCode,\r\n instrumentDescription = InstalledInstrumentSortByColumnEnum.ItemName,\r\n serialNumber = InstalledInstrumentSortByColumnEnum.SerialNumber,\r\n customerNo = InstalledInstrumentSortByColumnEnum.BpId,\r\n businessPartnerName = InstalledInstrumentSortByColumnEnum.BpName,\r\n endUserName = InstalledInstrumentSortByColumnEnum.EndCustomer,\r\n city = InstalledInstrumentSortByColumnEnum.City,\r\n territoryId = InstalledInstrumentSortByColumnEnum.Territory,\r\n country = InstalledInstrumentSortByColumnEnum.Country,\r\n status = InstalledInstrumentSortByColumnEnum.Status,\r\n installationDate = InstalledInstrumentSortByColumnEnum.InstallationDate,\r\n}\r\n","import { Inject, Injectable, SkipSelf } from '@angular/core';\r\nimport { IConfig } from '../base-interfaces';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { InstalledInstrumentFormModel } from '../models/installed-instrument-form.model';\r\nimport { Sort } from '@angular/material/sort';\r\nimport { Observable } from 'rxjs';\r\nimport { ViewSapInstalledInstrumentListModel } from '../models/view-sap-installed-instrument-list.model';\r\nimport { SapInstalledInstrumentModel } from '../models/sap-installed-instrument.model';\r\nimport { SapTerritoryModel } from '../models/sap-territory.model';\r\nimport { SapStateModel } from '../models/sap-state.model';\r\nimport { SapCountryModel } from '../models/sap-country.model';\r\nimport { SapContractModel } from '../models/sap-contract.model';\r\nimport { SapCallModel } from '../models/sap-call.model';\r\nimport { SapActivityModel } from '../models/sap-activity.model';\r\nimport { InstalledInstrumentTableColumnsMapperEnum } from '../models/installed-instrument-table-columns.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { SapInstalledInstrumentListModel } from '../models/sap-installed-instrument-list.model';\r\nimport moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SapInstalledInstrumentsService {\r\n\r\n territoryFilter: boolean = false;\r\n accessToken: string = '';\r\n\r\n private baseUrl: string;\r\n\r\n constructor(\r\n @Inject('config') private config: IConfig,\r\n @SkipSelf() private http: HttpClient\r\n ) {\r\n this.baseUrl = `${this.config.api_base_uri}${this.config.base_uri}${this.config.api_module}`;\r\n }\r\n\r\n getInstalledInstrumentList(\r\n searchForm: InstalledInstrumentFormModel | undefined,\r\n sort: Sort | undefined\r\n ): Observable<ViewSapInstalledInstrumentListModel[]> {\r\n const search = {\r\n sfId: searchForm?.sfId || undefined,\r\n applicationList: searchForm?.application || [],\r\n instrumentNo: searchForm?.instrumentNo || '',\r\n instrumentDescription: searchForm?.instrumentDesc || '',\r\n serialNumber: searchForm?.serialNumber || '',\r\n customerNo: searchForm?.customerNo || '',\r\n businessPartnerName: searchForm?.bpName || '',\r\n statusId: searchForm?.status || '',\r\n technicianLastName: searchForm?.technicianLastName || '',\r\n territoryId: searchForm?.territory || null,\r\n endUserName: searchForm?.endUserName || '',\r\n endUserCode: searchForm?.endUserCode || '',\r\n city: searchForm?.city || '',\r\n stateId: searchForm?.state || '',\r\n countryId: searchForm?.country || '',\r\n county: searchForm?.county || '',\r\n installationDateFrom: searchForm?.installationDateFrom\r\n ? moment(searchForm.installationDateFrom).format('YYYY-MM-DD')\r\n : null,\r\n installationDateTo: searchForm?.installationDateTo\r\n ? moment(searchForm.installationDateTo).format('YYYY-MM-DD')\r\n : null,\r\n };\r\n\r\n if (sort && sort.direction !== '') {\r\n // @ts-ignore\r\n search.sortOrder = sort.direction === 'asc' ? 0 : 1;\r\n // @ts-ignore\r\n search.sortByColumn =\r\n InstalledInstrumentTableColumnsMapperEnum[<any>sort.active];\r\n }\r\n return this.http\r\n .post<\r\n SapInstalledInstrumentListModel[]\r\n >(this.baseUrl + '/list', search)\r\n .pipe(\r\n map(res => {\r\n return res.map(installInstrument => ({\r\n ...installInstrument,\r\n technicianName: installInstrument.technicianFirstName\r\n ? installInstrument.technicianFirstName +\r\n ' ' +\r\n installInstrument.technicianLastName\r\n : '',\r\n }));\r\n })\r\n );\r\n }\r\n\r\n getInstalledInstrument(\r\n eqCard: number\r\n ): Observable<SapInstalledInstrumentModel> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapInstalledInstrumentModel>(\r\n this.baseUrl,\r\n { params }\r\n );\r\n }\r\n\r\n getTerritory(refresh: boolean = false): Observable<SapTerritoryModel[]> {\r\n const params = new HttpParams().set('refresh', refresh);\r\n return this.http.get<SapTerritoryModel[]>(\r\n this.baseUrl + '/territory',\r\n { params }\r\n );\r\n }\r\n\r\n getState(\r\n country: string,\r\n refresh: boolean = false\r\n ): Observable<SapStateModel[]> {\r\n const params = new HttpParams()\r\n .set('refresh', refresh)\r\n .set('country', country);\r\n return this.http.get<SapStateModel[]>(\r\n this.baseUrl + '/state',\r\n { params }\r\n );\r\n }\r\n\r\n getCountry(refresh: boolean = false): Observable<SapCountryModel[]> {\r\n const params = new HttpParams().set('refresh', refresh);\r\n return this.http.get<SapCountryModel[]>(\r\n this.baseUrl + '/country',\r\n { params }\r\n );\r\n }\r\n\r\n getContracts(eqCard: number): Observable<SapContractModel[]> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapContractModel[]>(\r\n this.baseUrl + '/contract',\r\n { params }\r\n );\r\n }\r\n\r\n getCalls(eqCard: number): Observable<SapCallModel[]> {\r\n const params = new HttpParams().set('eqCard', eqCard);\r\n return this.http.get<SapCallModel[]>(\r\n this.baseUrl + '/call',\r\n { params }\r\n );\r\n }\r\n\r\n getActivities(callId: number): Observable<SapActivityModel[]> {\r\n const params = new HttpParams().set('callId', callId);\r\n return this.http.get<SapActivityModel[]>(\r\n this.baseUrl + '/activity',\r\n { params }\r\n );\r\n }\r\n\r\n getApplicationSearch(search: string): Observable<string[]> {\r\n const params = new HttpParams().set('application', search);\r\n return this.http.get<string[]>(\r\n `${this.baseUrl}/application?application='}`\r\n );\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { StSubscribeDestroyComponent } from 'ngx-st-base-functions';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentListModel } from '../../../models/sap-installed-instrument-list.model';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { InstalledInstrumentTableColumnsModel } from '../../../models/installed-instrument-table-columns.model';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list-table',\r\n templateUrl: './sap-installed-instrument-list-table.component.html',\r\n styleUrls: ['./sap-installed-instrument-list-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SapInstalledInstrumentListTableComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n set tableData(data: SapInstalledInstrumentListModel[]) {\r\n this.dataSource.data = data;\r\n }\r\n\r\n @Input()\r\n useMapButton = false;\r\n\r\n @Output()\r\n sortChanged = new EventEmitter<Sort>();\r\n\r\n dataSource: MatTableDataSource<SapInstalledInstrumentListModel> =\r\n new MatTableDataSource();\r\n\r\n tableColumns: InstalledInstrumentTableColumnsModel[] = [\r\n 'instrumentNo',\r\n 'instrumentDescription',\r\n 'serialNumber',\r\n 'customerNo',\r\n 'businessPartnerName',\r\n 'endUserName',\r\n 'city',\r\n 'territoryId',\r\n 'country',\r\n 'installationDate',\r\n 'status',\r\n ];\r\n mapTableColumns: { [field: string]: string };\r\n\r\n showOnMapSelection = new SelectionModel<SapInstalledInstrumentListModel>(\r\n true\r\n );\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private sapInstalledInstruments: SapInstalledInstrumentsService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setTableColumns();\r\n if (!this.sapInstalledInstruments.territoryFilter) {\r\n this.tableColumns = this.tableColumns.filter(\r\n column => column !== 'territoryId'\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.sort.sortChange.pipe(takeUntil(this.ngDestroyed$)).subscribe(res => {\r\n this.sortChanged.emit(res);\r\n });\r\n\r\n const queryParamsKeys = Object.keys(\r\n this.activatedRoute.snapshot.queryParams || {}\r\n );\r\n\r\n if (\r\n queryParamsKeys.length > 0 &&\r\n this.activatedRoute.snapshot.queryParams['active'] &&\r\n this.activatedRoute.snapshot.queryParams['direction']\r\n ) {\r\n this.sort.sort({\r\n id: this.activatedRoute.snapshot.queryParams['active'],\r\n start: this.activatedRoute.snapshot.queryParams['direction'],\r\n disableClear: false,\r\n });\r\n }\r\n }\r\n\r\n rowClicked(row: SapInstalledInstrumentListModel) {\r\n this.router.navigate(['details', row.equipmentCardNo], {\r\n relativeTo: this.activatedRoute,\r\n });\r\n }\r\n\r\n changeRowSelection(event: any, row: SapInstalledInstrumentListModel) {\r\n event.stopPropagation();\r\n if (this.showOnMapSelection.isSelected(row)) {\r\n this.showOnMapSelection.deselect(row);\r\n } else {\r\n this.showOnMapSelection.select(row);\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n redirectToShowOnMap() {\r\n const url =\r\n window.location.host.search('leco.com') !== -1\r\n ? ''\r\n : 'https://leco--fcsb.sandbox.lightning.force.com';\r\n const params = new HttpParams()\r\n .set(\r\n 'recordIds',\r\n this.showOnMapSelection.selected\r\n .map(instrument => instrument.sfId)\r\n .join(',')\r\n )\r\n .set('baseObjectId', 'a0kQo000002nNaDIAU')\r\n .set('tooltipField', 'IntrumentName__c')\r\n .set('zoom', '8')\r\n .set('color', '#66FF00');\r\n\r\n window.open(`${url}/apex/maps__Maps?${params.toString()}`, '_blank');\r\n }\r\n\r\n toggleAll(checked: boolean) {\r\n if (checked) {\r\n this.dataSource.data.forEach(instrument => {\r\n if (instrument.sfId) {\r\n this.showOnMapSelection.select(instrument);\r\n }\r\n });\r\n } else {\r\n this.showOnMapSelection.clear();\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private setTableColumns() {\r\n if (this.useMapButton) {\r\n this.tableColumns.unshift('selectToMap');\r\n }\r\n\r\n this.mapTableColumns = {\r\n instrumentNo: 'sapAdminInstalledInstrument.instrumentNo',\r\n instrumentDescription:\r\n 'sapAdminInstalledInstrument.instrumentDescription',\r\n serialNumber: 'sapAdminInstalledInstrument.serialNumber',\r\n customerNo: 'sapAdminInstalledInstrument.accountNo',\r\n businessPartnerName: 'sapAdminInstalledInstrument.accountName',\r\n endUserName: 'sapAdminInstalledInstrument.endCustomer',\r\n city: 'sapAdminInstalledInstrument.city',\r\n territoryId: 'sapAdminInstalledInstrument.territory',\r\n country: 'sapAdminInstalledInstrument.country',\r\n status: 'sapAdminInstalledInstrument.status',\r\n installationDate: 'sapAdminInstalledInstrument.installationDate',\r\n selectToMap: '',\r\n };\r\n }\r\n}\r\n","<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n {{ 'sapAdminInstalledInstrument.selected' | translate }}:\r\n {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.instrumentNo\r\n ) {\r\n <div mat-menu-item (click)=\"showOnMapSelection.deselect(instrument)\">\r\n {{ instrument.instrumentNo }}\r\n <mat-icon\r\n class=\"material-icons\"\r\n style=\"font-size: 20px; width: 20px; height: 20px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n {{ 'sapAdminInstalledInstrument.showOnMap' | translate }}\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n @if (column !== 'selectToMap') {\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ mapTableColumns[column] | translate }}\r\n </th>\r\n } @else {\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n color=\"primary\"\r\n (change)=\"toggleAll($event.checked)\"\r\n ></mat-checkbox>\r\n </th>\r\n }\r\n\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n @if (element.sfId) {\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n ></mat-checkbox>\r\n }\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NonNullableFormBuilder } from '@angular/forms';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { SapTerritoryModel } from '../../../models/sap-territory.model';\r\nimport { SapStateModel } from '../../../models/sap-state.model';\r\nimport { SapCountryModel } from '../../../models/sap-country.model';\r\nimport { NgxStMultiselectAutocompleteComponent } from 'ngx-st-multiselect-autocomplete';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { InstalledInstrumentFormModel } from '../../../models/installed-instrument-form.model';\r\nimport { StMultiselectAutocompleteSettingsModel } from 'ngx-st-multiselect-autocomplete/lib/models/st-multiselect-autocomplete-settings.model';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\ninterface SearchFormType {\r\n application: string[][];\r\n serialNumber: string;\r\n instrumentNo: string;\r\n instrumentDesc: string;\r\n customerNo: string;\r\n bpName: string;\r\n city: string;\r\n county: string;\r\n endUserName: string;\r\n endUserCode: string;\r\n territory: number | null;\r\n technicianLastName: string;\r\n country: string;\r\n state: string;\r\n status: string;\r\n installationDateFrom: Date | null;\r\n installationDateTo: Date | null;\r\n}\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list-search',\r\n templateUrl: './sap-installed-instrument-list-search.component.html',\r\n styleUrls: ['./sap-installed-instrument-list-search.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SapInstalledInstrumentListSearchComponent implements OnInit, OnDestroy {\r\n @ViewChild('multiselectAutocomplete')\r\n multiselectAutocomplete: NgxStMultiselectAutocompleteComponent;\r\n\r\n @Output()\r\n filtersChanged = new EventEmitter<InstalledInstrumentFormModel>();\r\n\r\n showFilters: boolean = false;\r\n searchForm = this.fb.group<SearchFormType>({\r\n application: [<string[]>[]],\r\n serialNumber: '',\r\n instrumentNo: '',\r\n instrumentDesc: '',\r\n customerNo: '',\r\n bpName: '',\r\n city: '',\r\n county: '',\r\n endUserName: '',\r\n endUserCode: '',\r\n territory: <number | null>null,\r\n technicianLastName: '',\r\n country: '',\r\n state: '',\r\n status: '',\r\n installationDateFrom: <Date | null>null,\r\n installationDateTo: <Date | null>null,\r\n });\r\n\r\n territories$: Observable<SapTerritoryModel[]>;\r\n states$: Observable<SapStateModel[]>;\r\n countries$: Observable<SapCountryModel[]>;\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private fb: NonNullableFormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.setSearchForm();\r\n this.setAsyncFilters();\r\n\r\n const queryParamsKeys = Object.keys(\r\n this.activatedRoute.snapshot.queryParams || {}\r\n );\r\n\r\n if (queryParamsKeys.length > 2) {\r\n this.showFilters = true;\r\n\r\n queryParamsKeys.forEach(queryParam => {\r\n const formControl = this.searchForm.get(queryParam);\r\n if (formControl) {\r\n if (\r\n queryParam === 'installationDateFrom' ||\r\n queryParam === 'installationDateTo'\r\n ) {\r\n formControl.setValue(\r\n this.activatedRoute.snapshot.queryParams[queryParam]\r\n ? new Date(this.activatedRoute.snapshot.queryParams[queryParam])\r\n : null\r\n );\r\n } else {\r\n formControl.setValue(\r\n this.activatedRoute.snapshot.queryParams[queryParam]\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n clearAllFilters() {\r\n this.searchForm.reset();\r\n this.multiselectAutocomplete.clearSelectedData();\r\n this.searchSubmitted();\r\n }\r\n\r\n refreshTerritories() {\r\n this.searchForm.controls.territory.setValue(null);\r\n this.territories$ = this.sapInstalledInstrumentService.getTerritory(true);\r\n }\r\n\r\n refreshCountries() {\r\n this.searchForm.controls.country.setValue('');\r\n this.countries$ = this.sapInstalledInstrumentService.getCountry(true);\r\n }\r\n\r\n refreshStates() {\r\n this.searchForm.controls.state.setValue('');\r\n this.states$ = this.sapInstalledInstrumentService.getState(\r\n this.searchForm.controls.country.value,\r\n true\r\n );\r\n }\r\n\r\n getCountryValue(country: SapCountryModel) {\r\n return country.id;\r\n }\r\n\r\n getStateValue(state: SapStateModel) {\r\n return state.id;\r\n }\r\n\r\n getTerritoryValue(territory: SapTerritoryModel) {\r\n return territory.id;\r\n }\r\n\r\n searchSubmitted() {\r\n const formValues = this.searchForm.getRawValue();\r\n\r\n this.filtersChanged.emit({ sfId: undefined, ...formValues });\r\n }\r\n\r\n clearInputValue(formControlName: string) {\r\n this.searchForm.get(formControlName)!.setValue('');\r\n this.searchSubmitted();\r\n }\r\n\r\n getFilteredOptions = (search: string) => {\r\n return this.sapInstalledInstrumentService.getApplicationSearch(search);\r\n };\r\n\r\n applicationSelected(data: string[]) {\r\n this.searchForm.controls.application.setValue(data);\r\n }\r\n\r\n private setAsyncFilters() {\r\n this.territories$ = this.sapInstalledInstrumentService.getTerritory(false);\r\n this.countries$ = this.sapInstalledInstrumentService.getCountry(false);\r\n this.states$ = of([]);\r\n }\r\n\r\n private setSearchForm() {\r\n this.searchForm.controls.country.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(\r\n (country: string) => {\r\n this.searchForm.controls.state.setValue('');\r\n\r\n if (country) {\r\n this.states$ = this.sapInstalledInstrumentService.getState(country);\r\n } else {\r\n this.states$ = of([]);\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (keyup.enter)=\"searchSubmitted()\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('sapAdminInstalledInstrument.max' | translate) +\r\n ': 10)'\r\n \"\r\n [searchLabel]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [settings]=\"{\r\n getFilteredOptions: this.getFilteredOptions\r\n }\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{\r\n 'sapAdminInstalledInstrument.empty' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.territory' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'sapAdminInstalledInstrument.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.state' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'sapAdminInstalledInstrument.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'sapAdminInstalledInstrument.country' | translate\"\r\n [optionLabelFields]=\"'name'\"\r\n [optionValueField]=\"'id'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'sapAdminInstalledInstrument.search' | translate\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminInstalledInstrument.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"row justify-content-sm-start justify-content-lg-center\"\r\n style=\"margin-bottom: 10px\"\r\n >\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { SapInstalledInstrumentsService } from '../../services/sap-installed-instruments.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SapInstalledInstrumentListModel } from '../../models/sap-installed-instrument-list.model';\r\nimport { InstalledInstrumentFormModel } from '../../models/installed-instrument-form.model';\r\nimport { Sort } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-list',\r\n templateUrl: './sap-installed-instrument-list.component.html',\r\n styleUrls: [\r\n './sap-installed-instrument-list.component.scss',\r\n '../../../../assets/base-card.scss',\r\n ],\r\n})\r\nexport class SapInstalledInstrumentListComponent implements OnInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n\r\n @Input()\r\n accessToken: string;\r\n\r\n @Input()\r\n territoryFilter: boolean;\r\n\r\n @Input()\r\n showWithCardContent = true;\r\n\r\n @Input()\r\n useMapButton = false;\r\n\r\n installedInstruments: SapInstalledInstrumentListModel[] = [];\r\n\r\n private lastSearchFilters: InstalledInstrumentFormModel | any = <\r\n InstalledInstrumentFormModel\r\n >{};\r\n private lastSearchSorts: Sort = <Sort>{};\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.sapInstalledInstrumentService.territoryFilter = this.territoryFilter;\r\n\r\n const queryParams = this.activatedRoute.snapshot.queryParams || {};\r\n const { active, direction, ...filterParams } = queryParams;\r\n\r\n if (active || direction) {\r\n this.lastSearchSorts = { active, direction };\r\n }\r\n\r\n this.lastSearchFilters = {\r\n ...filterParams,\r\n installationDateFrom: filterParams['installationDateFrom']\r\n ? new Date(filterParams['installationDateFrom'])\r\n : null,\r\n installationDateTo: filterParams['installationDateTo']\r\n ? new Date(filterParams['installationDateTo'])\r\n : null,\r\n };\r\n\r\n this.loadInstalledInstruments(this.lastSearchFilters, this.lastSearchSorts);\r\n }\r\n\r\n filtersChanged(event: InstalledInstrumentFormModel): void {\r\n this.loadInstalledInstruments(\r\n { ...event, sfId: this.lastSearchFilters['sfId'] || undefined },\r\n this.lastSearchSorts\r\n );\r\n }\r\n\r\n sortChanged(event: Sort): void {\r\n this.loadInstalledInstruments(this.lastSearchFilters, event);\r\n }\r\n\r\n private loadInstalledInstruments(\r\n searchForm: InstalledInstrumentFormModel,\r\n sort: Sort\r\n ) {\r\n this.router.navigate([], {\r\n queryParams: {\r\n ...searchForm,\r\n installationDateFrom:\r\n searchForm.installationDateFrom?.toISOString() || '',\r\n installationDateTo: searchForm.installationDateTo?.toISOString() || '',\r\n ...sort,\r\n },\r\n });\r\n this.sapInstalledInstrumentService\r\n .getInstalledInstrumentList(searchForm, sort)\r\n .subscribe(res => {\r\n this.lastSearchFilters = searchForm;\r\n this.lastSearchSorts = sort;\r\n this.installedInstruments = res;\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n}\r\n","<div class=\"container-fluid no-cut\" *ngIf=\"showWithCardContent\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">\r\n {{\r\n 'sapAdminInstalledInstrument.titleInstalledInstrumentList' | translate\r\n }}\r\n </h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"installedInstrumentContent\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf=\"!showWithCardContent\">\r\n <ng-container [ngTemplateOutlet]=\"installedInstrumentContent\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #installedInstrumentContent>\r\n <div style=\"display: flex; flex-direction: column; width: 100%\">\r\n <app-sap-installed-instrument-list-search\r\n (filtersChanged)=\"filtersChanged($event)\"\r\n ></app-sap-installed-instrument-list-search>\r\n\r\n <app-sap-installed-instrument-list-table\r\n [tableData]=\"installedInstruments\"\r\n [useMapButton]=\"useMapButton\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></app-sap-installed-instrument-list-table>\r\n </div>\r\n</ng-template>\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport { IConfig } from '../../../base-interfaces';\r\n\r\n@Component({\r\n selector: 'app-activity-details-view',\r\n templateUrl: './activity-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './activity-details-view.component.scss',\r\n ],\r\n})\r\nexport class ActivityDetailsViewComponent implements OnInit {\r\n @Input()\r\n activity: SapActivityModel;\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n baseDownloadLink = '';\r\n\r\n constructor(@Inject('config') private config: IConfig) {}\r\n\r\n ngOnInit(): void {\r\n this.baseDownloadLink =\r\n this.config.api_base_uri +\r\n this.config.base_uri +\r\n '/installedInstrument/activity-attachment?access_token=' +\r\n this.accessToken;\r\n }\r\n\r\n updateLink() {\r\n const company = localStorage.getItem('company-id')\r\n ? `&company-id=${localStorage.getItem('company-id')}`\r\n : '';\r\n this.baseDownloadLink =\r\n this.config.api_base_uri +\r\n this.config.base_uri +\r\n '/installedInstrument/activity-attachment?access_token=' +\r\n this.accessToken +\r\n company;\r\n }\r\n}\r\n","<div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.activity' | translate }}</span>\r\n <p>{{ activity.activity || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.type' | translate }}</span>\r\n <p>{{ activity.type || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.subject' | translate }}</span>\r\n <p>{{ activity.subject || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ activity.remarks || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.startTime' | translate }}</span>\r\n <p>{{ (activity.startTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.endTime' | translate }}</span>\r\n <p>{{ (activity.endTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.duration' | translate }}</span>\r\n <p>{{ activity.duration || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.content' | translate }}</span>\r\n <p>{{ activity.content || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.coordinator' | translate }}</span>\r\n <p>{{ activity.coordinatorName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.orderNumber' | translate }}</span>\r\n <p>{{ activity.orderNumber || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.detailedSymptom' | translate }}</span>\r\n <p>{{ activity.detailedSymptom || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.solution' | translate }}</span>\r\n <p>{{ activity.solution || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.incompleteReason' | translate\r\n }}</span>\r\n <p>{{ activity.incompleteReason || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\" *ngIf=\"activity.attachmentList.length > 0\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <p class=\"attachments-title\">\r\n {{ 'sapAdminInstalledInstrument.attachments' | translate }}:\r\n </p>\r\n <ul class=\"row\">\r\n <li\r\n class=\"row align-items-center\"\r\n *ngFor=\"let attachment of activity.attachmentList\"\r\n >\r\n <p>{{ attachment.fileName }}.{{ attachment.fileExt }}</p>\r\n\r\n <a\r\n [href]=\"\r\n baseDownloadLink +\r\n '&id=' +\r\n attachment.id +\r\n '&line=' +\r\n attachment.line +\r\n '&preview=true'\r\n \"\r\n target=\"_blank\"\r\n (click)=\"updateLink()\"\r\n >\r\n <button mat-icon-button>\r\n <mat-icon class=\"material-icons\">preview</mat-icon>\r\n </button>\r\n </a>\r\n\r\n <a\r\n [href]=\"\r\n baseDownloadLink +\r\n '&id=' +\r\n attachment.id +\r\n '&line=' +\r\n attachment.line +\r\n '&preview=false'\r\n \"\r\n target=\"_blank\"\r\n (click)=\"updateLink()\"\r\n >\r\n <button mat-icon-button>\r\n <mat-icon class=\"material-icons\">cloud_download</mat-icon>\r\n </button>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-activities-list-view',\r\n templateUrl: './activities-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './activities-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class ActivitiesListViewComponent implements OnInit, AfterViewInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n activities: SapActivityModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n columnsToDisplay = [\r\n 'activityNumber',\r\n 'detailedSymptom',\r\n 'solution',\r\n 'coordinator',\r\n 'startTime',\r\n 'endTime',\r\n ];\r\n tableSource: MatTableDataSource<SapActivityModel>;\r\n expandedElement: SapActivityModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 5;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapActivityModel>(\r\n this.activities\r\n );\r\n }\r\n}\r\n","<div class=\"activities-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" [multiTemplateDataRows]=\"true\">\r\n <ng-container matColumnDef=\"activityNumber\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.activityNo' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.activityNumber }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"type\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.type' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.type }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"detailedSymptom\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.detailedSymptom' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.detailedSymptom }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"solution\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.solution' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.solution }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"coordinator\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.coordinator' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.coordinatorName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"startTime\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.startTime' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.startTime | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"endTime\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.endTime' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.endTime | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [attr.colspan]=\"columnsToDisplay.length\"\r\n >\r\n <div\r\n class=\"row-detail\"\r\n [@detailExpand]=\"\r\n element == expandedElement ? 'expanded' : 'collapsed'\r\n \"\r\n >\r\n <app-activity-details-view\r\n *ngIf=\"element == expandedElement\"\r\n [activity]=\"element\"\r\n [accessToken]=\"accessToken\"\r\n ></app-activity-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: columnsToDisplay\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['expandedDetail']\"\r\n class=\"detail-row\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [pageSizeOptions]=\"[5, 10]\"\r\n [showFirstLastButtons]=\"true\"\r\n ></mat-paginator>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\n\r\n@Component({\r\n selector: 'app-service-contract-details-view',\r\n templateUrl: './service-contract-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contract-details-view.component.scss',\r\n ],\r\n})\r\nexport class ServiceContractDetailsViewComponent implements OnInit {\r\n @Input()\r\n contract: SapContractModel;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customer' | translate }}</span>\r\n <p>{{ contract.customer || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customerName' | translate }}</span>\r\n <p>{{ contract.customerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.description' | translate }}</span>\r\n <p>{{ contract.description || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.startDate' | translate }}</span>\r\n <p>{{ (contract.startDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endDate' | translate }}</span>\r\n <p>{{ (contract.endDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.terminationDate' | translate }}</span>\r\n <p>{{ (contract.terminationDate | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.serviceType' | translate }}</span>\r\n <p>{{ contract.serviceType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.template' | translate }}</span>\r\n <p>{{ contract.template || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.handledBy' | translate }}</span>\r\n <p>{{ contract.handledBy || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ contract.remarks || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.itemCode' | translate }}</span>\r\n <p>{{ contract.itemCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.itemName' | translate }}</span>\r\n <p>{{ contract.itemName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.serialNumber' | translate }}</span>\r\n <p>{{ contract.serialNumber || '-' }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.startDateDetails' | translate\r\n }}</span>\r\n <p>{{ (contract.startDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endDateDetails' | translate }}</span>\r\n <p>{{ (contract.endDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.terminationDateDetails' | translate\r\n }}</span>\r\n <p>{{ (contract.terminationDateDetail | stDateFormatPipe) || '-' }}</p>\r\n </div>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-service-contracts-modal-details-view',\r\n templateUrl: './service-contracts-modal-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contracts-modal-details-view.component.scss',\r\n ],\r\n})\r\nexport class ServiceContractsModalDetailsViewComponent implements OnInit {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { contract: SapContractModel },\r\n public dialogRef: MatDialogRef<ServiceContractsModalDetailsViewComponent>\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<h1 mat-dialog-title>\r\n {{ 'sapAdminInstalledInstrument.serviceContract' | translate }}\r\n</h1>\r\n<div mat-dialog-content>\r\n <app-service-contract-details-view\r\n [contract]=\"data.contract\"\r\n ></app-service-contract-details-view>\r\n</div>\r\n<div class=\"row justify-content-end\" mat-dialog-actions>\r\n <button mat-button type=\"button\" (click)=\"close()\">\r\n {{ 'sapAdminInstalledInstrument.close' | translate }}\r\n </button>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SapCallModel } from '../../../models/sap-call.model';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { ServiceContractsModalDetailsViewComponent } from '../service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nimport { SapInstalledInstrumentsService } from '../../../services/sap-installed-instruments.service';\r\nimport { Observable } from 'rxjs';\r\nimport { SapActivityModel } from '../../../models/sap-activity.model';\r\nimport { tap } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-call-details-view',\r\n templateUrl: './call-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './call-details-view.component.scss',\r\n ],\r\n})\r\nexport class CallDetailsViewComponent implements OnInit {\r\n @Input()\r\n call: SapCallModel;\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n contractDetails: SapContractModel | undefined;\r\n\r\n activitiesLoading = true;\r\n activities$: Observable<SapActivityModel[]>;\r\n activities: SapActivityModel[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private sapInstalledInstruments: SapInstalledInstrumentsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.call && this.contracts && this.call.contractNo) {\r\n this.contractDetails = this.contracts.find(\r\n contract => contract.contractId === this.call.contractNo\r\n );\r\n }\r\n\r\n this.loadActivities();\r\n }\r\n\r\n openContractModel() {\r\n this.dialog.open(ServiceContractsModalDetailsViewComponent, {\r\n data: { contract: this.contractDetails },\r\n width: '50%',\r\n });\r\n }\r\n\r\n tabChanged(event: any) {}\r\n\r\n private loadActivities() {\r\n this.activities$ = this.sapInstalledInstruments\r\n .getActivities(this.call.callId)\r\n .pipe(\r\n tap(res => {\r\n this.activities = res;\r\n this.activitiesLoading = false;\r\n })\r\n );\r\n }\r\n}\r\n","<mat-tab-group (selectedTabChange)=\"tabChanged($event)\">\r\n <mat-tab label=\"{{ 'sapAdminInstalledInstrument.callDetails' | translate }}\">\r\n <div class=\"group-details row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.callId' | translate }}</span>\r\n <p>{{ call.callId || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-6\">\r\n <span>{{ 'sapAdminInstalledInstrument.contractNo' | translate }}</span>\r\n <div class=\"row\">\r\n <p>{{ call.contractNo || '-' }}</p>\r\n <i\r\n class=\"material-icons-outlined show-contract\"\r\n *ngIf=\"contractDetails\"\r\n (click)=\"openContractModel()\"\r\n >visibility</i\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.accountNo' | translate }}</span>\r\n <p>{{ call.customer || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.accountName' | translate }}</span>\r\n <p>{{ call.customerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.contactPerson' | translate\r\n }}</span>\r\n <p>{{ call.contactPerson || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.phone' | translate }}</span>\r\n <p>{{ call.telephoneNo || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.shipToCode' | translate }}</span>\r\n <p>{{ call.shipToCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.shipToAddress' | translate\r\n }}</span>\r\n <p>{{ call.shipToAddress || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.billToCode' | translate }}</span>\r\n <p>{{ call.billToCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.billToAddress' | translate\r\n }}</span>\r\n <p>{{ call.billToAddress || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.subject' | translate }}</span>\r\n <p>{{ call.subject || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.callStatus' | translate }}</span>\r\n <p>{{ call.callStatus || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.createdOn' | translate }}</span>\r\n <p>{{ (call.createdOn | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.closedOn' | translate }}</span>\r\n <p>{{ (call.closedOn | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.origin' | translate }}</span>\r\n <p>{{ call.origin || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.problemType' | translate }}</span>\r\n <p>{{ call.problemType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.problemSubtype' | translate\r\n }}</span>\r\n <p>{{ call.problemSubtype || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.callType' | translate }}</span>\r\n <p>{{ call.callType || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.technician' | translate }}</span>\r\n <p>\r\n {{\r\n call.technicianFirstName\r\n ? call.technicianFirstName + ' ' + call.technicianLastName\r\n : '-'\r\n }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.engineerName' | translate\r\n }}</span>\r\n <p>{{ call.engeneerName || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{ 'sapAdminInstalledInstrument.remarks' | translate }}</span>\r\n <p>{{ call.remarks || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{ 'sapAdminInstalledInstrument.resolution' | translate }}</span>\r\n <p>{{ call.resolution || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.startTime' | translate }}</span>\r\n <p>{{ (call.startTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.endTime' | translate }}</span>\r\n <p>{{ (call.endTime | stDateTimeFormatPipe) || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.duration' | translate }}</span>\r\n <p>{{ call.duration || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.travelTime' | translate }}</span>\r\n <p>{{ call.travelTime || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-12\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.internalComments' | translate\r\n }}</span>\r\n <p>{{ call.internalComments || '-' }}</p>\r\n </div>\r\n </div>\r\n </mat-tab>\r\n\r\n <mat-tab\r\n label=\"{{ 'sapAdminInstalledInstrument.activities' | translate }} ({{\r\n activities.length || 0\r\n }})\"\r\n >\r\n <ng-container *ngIf=\"activities$ | async\">\r\n <app-activities-list-view\r\n [activities]=\"activities\"\r\n [accessToken]=\"accessToken\"\r\n ></app-activities-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n</mat-tab-group>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapCallModel } from '../../../models/sap-call.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-calls-list-view',\r\n templateUrl: './calls-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './calls-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CallsListViewComponent implements OnInit, AfterViewInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n calls: SapCallModel[];\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n @Input()\r\n accessToken = '';\r\n\r\n columnsToDisplay = [\r\n 'callId',\r\n 'callStatus',\r\n 'callType',\r\n 'problemType',\r\n 'customer',\r\n 'customerName',\r\n 'engeneerName',\r\n 'createdOn',\r\n 'closedOn',\r\n ];\r\n tableSource: MatTableDataSource<SapCallModel>;\r\n expandedElement: SapCallModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 10;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapCallModel>(this.calls);\r\n }\r\n}\r\n","<div class=\"calls-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" multiTemplateDataRows>\r\n <ng-container matColumnDef=\"callId\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.callId' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callId }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"callStatus\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.status' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callStatus }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"callType\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.callType' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.callType }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"problemType\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.problemType' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.problemType }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customer\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.accountNo' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.customer }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customerName\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.accountName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.customerName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"engeneerName\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.engineerName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.engeneerName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"createdOn\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.createdOn' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.createdOn | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"closedOn\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminInstalledInstrument.closedOn' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n {{ element.closedOn | stDateTimeFormatPipe }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [attr.colspan]=\"columnsToDisplay.length\"\r\n >\r\n <div\r\n class=\"row-detail\"\r\n [@detailExpand]=\"\r\n element == expandedElement ? 'expanded' : 'collapsed'\r\n \"\r\n >\r\n <app-call-details-view\r\n *ngIf=\"element == expandedElement\"\r\n [call]=\"element\"\r\n [contracts]=\"contracts\"\r\n [accessToken]=\"accessToken\"\r\n ></app-call-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: columnsToDisplay\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['expandedDetail']\"\r\n class=\"detail-row\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n showFirstLastButtons\r\n ></mat-paginator>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { SapInstalledInstrumentModel } from '../../../models/sap-installed-instrument.model';\r\n\r\n@Component({\r\n selector: 'app-data-details-view',\r\n templateUrl: './data-details-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './data-details-view.component.scss',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DataDetailsViewComponent implements OnInit {\r\n @Input()\r\n installedInstrument: SapInstalledInstrumentModel;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<ng-container *ngIf=\"installedInstrument\">\r\n <div class=\"group-details row\">\r\n <!-- <div class=\"col-xs-12 col-sm-4\">-->\r\n <!-- <span>{{'sapAdminInstalledInstrument.equipmentCardNo' | translate}}</span>-->\r\n <!-- <p>{{installedInstrument.equipmentCardNo || '-'}}</p>-->\r\n <!-- </div>-->\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.instrumentNo' | translate }}</span>\r\n <p>{{ installedInstrument.instrumentNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.instrumentDescription || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.serialNumber' | translate }}</span>\r\n <p>{{ installedInstrument.serialNumber || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.customerNo' | translate }}</span>\r\n <p>{{ installedInstrument.customerNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.businessPartnerName' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.businessPartnerName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.contactPerson' | translate }}</span>\r\n <p>{{ installedInstrument.contactPerson || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.status' | translate }}</span>\r\n <p>{{ installedInstrument.status || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.technicianName' | translate\r\n }}</span>\r\n <p>\r\n {{\r\n installedInstrument.technicianFirstName\r\n ? installedInstrument.technicianFirstName +\r\n ' ' +\r\n installedInstrument.technicianLastName\r\n : '-'\r\n }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.territory' | translate }}</span>\r\n <p>{{ installedInstrument.territory || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.installationDate' | translate\r\n }}</span>\r\n <p>\r\n {{ (installedInstrument.installationDate | stDateFormatPipe) || '-' }}\r\n </p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endUserName' | translate }}</span>\r\n <p>{{ installedInstrument.endUserName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.endUserCode' | translate }}</span>\r\n <p>{{ installedInstrument.endUserCode || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.addressName' | translate }}</span>\r\n <p>{{ installedInstrument.addressName || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.street' | translate }}</span>\r\n <p>{{ installedInstrument.street || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.streetNo' | translate }}</span>\r\n <p>{{ installedInstrument.streetNo || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.block' | translate }}</span>\r\n <p>{{ installedInstrument.block || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.building' | translate }}</span>\r\n <p>{{ installedInstrument.building || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.city' | translate }}</span>\r\n <p>{{ installedInstrument.city || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.county' | translate }}</span>\r\n <p>{{ installedInstrument.county || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.state' | translate }}</span>\r\n <p>{{ installedInstrument.state || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.zipCode' | translate }}</span>\r\n <p>{{ installedInstrument.zipCode || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.country' | translate }}</span>\r\n <p>{{ installedInstrument.country || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.softwareVersion' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.softwareVersion || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.pcSoftwareVersion' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.pcSoftwareVersion || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.vessels' | translate }}</span>\r\n <p>{{ installedInstrument.vessels || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem1' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem2' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{ 'sapAdminInstalledInstrument.relatedItem3' | translate }}</span>\r\n <p>{{ installedInstrument.relatedItem3 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit1' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit2' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit3' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit3 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit4' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit4 || '-' }}</p>\r\n </div>\r\n </div>\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit5' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit5 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit6' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit6 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit7' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit7 || '-' }}</p>\r\n </div>\r\n </div>\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit8' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit8 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit9' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit9 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.majorUpgradeKit10' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.majorUpgradeKit10 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{\r\n 'sapAdminInstalledInstrument.numberOfAnalysis' | translate\r\n }}</span>\r\n <p>{{ installedInstrument.numberOfAnalysis || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application1' | translate }}</span>\r\n <p>{{ installedInstrument.application1 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application2' | translate }}</span>\r\n <p>{{ installedInstrument.application2 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application3' | translate }}</span>\r\n <p>{{ installedInstrument.application3 || '-' }}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"group-details row\">\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application4' | translate }}</span>\r\n <p>{{ installedInstrument.application4 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application5' | translate }}</span>\r\n <p>{{ installedInstrument.application5 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application6' | translate }}</span>\r\n <p>{{ installedInstrument.application6 || '-' }}</p>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3\">\r\n <span>{{ 'sapAdminInstalledInstrument.application7' | translate }}</span>\r\n <p>{{ installedInstrument.application7 || '-' }}</p>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SapContractModel } from '../../../models/sap-contract.model';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-service-contracts-list-view',\r\n templateUrl: './service-contracts-list-view.component.html',\r\n styleUrls: [\r\n '../../../../../assets/group-details.scss',\r\n './service-contracts-list-view.component.scss',\r\n ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ServiceContractsListViewComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @HostBinding('class') class = 'display-flex-component';\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n contracts: SapContractModel[];\r\n\r\n columnsToDisplay = [\r\n 'contractId',\r\n 'customer',\r\n 'customerName',\r\n 'itemCode',\r\n 'itemName',\r\n 'serialNumber',\r\n 'serviceType',\r\n 'startDate',\r\n 'terminationDate',\r\n ];\r\n tableSource: MatTableDataSource<SapContractModel>;\r\n expandedElement: SapContractModel | null;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.setTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.paginator.pageSize = 10;\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n private setTable() {\r\n this.tableSource = new MatTableDataSource<SapContractModel>(this.contracts);\r\n }\r\n}\r\n","<div class=\"service-contracts-list-view\">\r\n <table mat-table [dataSource]=\"tableSource\" multiTemplateDataRows>\r\n\r\n <ng-container matColumnDef=\"contractId\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.contractId' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.contractId }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customer\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.customer' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.customer }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"customerName\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.customerName' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.customerName }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemCode\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.itemCode' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.itemCode }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"itemName\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.itemName' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.itemName }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"serialNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.serialNumber' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.serialNumber }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"serviceType\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.serviceType' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.serviceType }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"startDate\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.startDate' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.startDate | stDateFormatPipe }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"terminationDate\">\r\n <th mat-header-cell *matHeaderCellDef> {{'sapAdminInstalledInstrument.endDate' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{ element.endDateDetail | stDateFormatPipe }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"columnsToDisplay.length\">\r\n <div class=\"row-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\r\n <app-service-contract-details-view\r\n [contract]=\"element\"\r\n ></app-service-contract-details-view>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: columnsToDisplay;\"\r\n class=\"details-element-row\"\r\n [class.details-expanded-row]=\"expandedElement === element\"\r\n (click)=\"expandedElement = expandedElement === element ? null : element\">\r\n </tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[10, 20]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { SapInstalledInstrumentsService } from '../../services/sap-installed-instruments.service';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { SapInstalledInstrumentModel } from '../../models/sap-installed-instrument.model';\r\nimport { SapCallModel } from '../../models/sap-call.model';\r\nimport { SapContractModel } from '../../models/sap-contract.model';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-sap-installed-instrument-details',\r\n templateUrl: './sap-installed-instrument-details.component.html',\r\n styleUrls: [\r\n './sap-installed-instrument-details.component.scss',\r\n '../../../../assets/base-card.scss',\r\n ],\r\n})\r\nexport class SapInstalledInstrumentDetailsComponent implements OnInit {\r\n @HostBinding('class') class = 'display-flex-component';\r\n\r\n @Input()\r\n id: number;\r\n\r\n @Input()\r\n accessToken: string;\r\n\r\n @Input()\r\n territoryFilter: boolean;\r\n\r\n @Input()\r\n showWithCardContent = true;\r\n\r\n installedInstrument$: Observable<SapInstalledInstrumentModel>;\r\n calls$: Observable<SapCallModel[]>;\r\n serviceContracts$: Observable<SapContractModel[]>;\r\n tabActive: number = 0;\r\n installedInstrument: SapInstalledInstrumentModel;\r\n calls: SapCallModel[] = [];\r\n serviceContracts: SapContractModel[] = [];\r\n\r\n constructor(\r\n private sapInstalledInstrumentService: SapInstalledInstrumentsService,\r\n private location: Location\r\n ) {\r\n this.sapInstalledInstrumentService.accessToken = this.accessToken;\r\n this.sapInstalledInstrumentService.territoryFilter = this.territoryFilter;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadTabsData();\r\n }\r\n\r\n tabChanged(event: any) {\r\n this.tabActive = event.index;\r\n }\r\n\r\n goBack() {\r\n this.location.back();\r\n }\r\n\r\n loadTabsData() {\r\n this.installedInstrument$ = this.sapInstalledInstrumentService\r\n .getInstalledInstrument(this.id)\r\n .pipe(\r\n tap(installedInstrument => {\r\n this.installedInstrument = installedInstrument;\r\n })\r\n );\r\n this.calls$ = this.sapInstalledInstrumentService\r\n .getCalls(this.id)\r\n .pipe(tap(res => (this.calls = res)));\r\n this.serviceContracts$ = this.sapInstalledInstrumentService\r\n .getContracts(this.id)\r\n .pipe(tap(res => (this.serviceContracts = res)));\r\n }\r\n}\r\n","<ng-container *ngIf=\"showWithCardContent\">\r\n <div class=\"container-fluid no-cut\">\r\n <div class=\"card\">\r\n <div class=\"card-header card-header-warning\">\r\n <h3 class=\"card-title\">\r\n {{\r\n 'sapAdminInstalledInstrument.titleInstalledInstrumentDetails'\r\n | translate\r\n }}\r\n </h3>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <button mat-icon-button class=\"back-link\" (click)=\"goBack()\">\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </button>\r\n\r\n <ng-container\r\n [ngTemplateOutlet]=\"installedInstrumentContent\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!showWithCardContent\">\r\n <ng-container [ngTemplateOutlet]=\"installedInstrumentContent\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #installedInstrumentContent>\r\n <div\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n position: relative;\r\n \"\r\n >\r\n <button\r\n mat-icon-button\r\n style=\"position: absolute; top: 5px; left: 0; z-index: 11\"\r\n (click)=\"goBack()\"\r\n >\r\n <span class=\"material-icons\">keyboard_backspace</span>\r\n </button>\r\n <mat-tab-group (selectedTabChange)=\"tabChanged($event)\">\r\n <mat-tab\r\n label=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDetails' | translate\r\n }}\"\r\n >\r\n <ng-container *ngIf=\"installedInstrument$ | async\">\r\n <app-data-details-view\r\n *ngIf=\"tabActive === 0\"\r\n [installedInstrument]=\"installedInstrument\"\r\n ></app-data-details-view>\r\n </ng-container>\r\n </mat-tab>\r\n <mat-tab\r\n label=\"{{ 'sapAdminInstalledInstrument.calls' | translate }} ({{\r\n calls.length || 0\r\n }})\"\r\n >\r\n <ng-container *ngIf=\"calls$ | async\">\r\n <app-calls-list-view\r\n *ngIf=\"tabActive === 1\"\r\n [calls]=\"calls\"\r\n [contracts]=\"serviceContracts\"\r\n [accessToken]=\"accessToken\"\r\n ></app-calls-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n <mat-tab\r\n label=\"{{\r\n 'sapAdminInstalledInstrument.serviceContracts' | translate\r\n }} ({{ serviceContracts.length || 0 }})\"\r\n >\r\n <ng-container *ngIf=\"serviceContracts$ | async\">\r\n <app-service-contracts-list-view\r\n *ngIf=\"tabActive === 2\"\r\n [contracts]=\"serviceContracts\"\r\n ></app-service-contracts-list-view>\r\n </ng-container>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n</ng-template>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { SapInstalledInstrumentDetailsComponent } from './components/sap-installed-instrument-details/sap-installed-instrument-details.component';\r\nimport { SapInstalledInstrumentListComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { StDateFormatModule } from 'ngx-st-date-format';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { StMultiselectAutocompleteModule } from 'ngx-st-multiselect-autocomplete';\r\nimport { StSearchSelectsModule } from 'ngx-st-search-selects';\r\nimport { AuthModule } from 'angular-auth-oidc-client';\r\nimport { SapInstalledInstrumentsService } from './services/sap-installed-instruments.service';\r\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptors } from '@angular/common/http';\r\nimport { IDirectiveModuleConfig } from './base-interfaces';\r\nimport { ActivitiesListViewComponent } from './components/sap-installed-instrument-details/activities-list-view/activities-list-view.component';\r\nimport { ActivityDetailsViewComponent } from './components/sap-installed-instrument-details/activity-details-view/activity-details-view.component';\r\nimport { CallDetailsViewComponent } from './components/sap-installed-instrument-details/call-details-view/call-details-view.component';\r\nimport { CallsListViewComponent } from './components/sap-installed-instrument-details/calls-list-view/calls-list-view.component';\r\nimport { DataDetailsViewComponent } from './components/sap-installed-instrument-details/data-details-view/data-details-view.component';\r\nimport { ServiceContractsListViewComponent } from './components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component';\r\nimport { ServiceContractDetailsViewComponent } from './components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component';\r\nimport { ServiceContractsModalDetailsViewComponent } from './components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nimport { SapInstalledInstrumentListSearchComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component';\r\nimport { SapInstalledInstrumentListTableComponent } from './components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SapInstalledInstrumentDetailsComponent,\r\n SapInstalledInstrumentListComponent,\r\n ActivitiesListViewComponent,\r\n ActivityDetailsViewComponent,\r\n CallDetailsViewComponent,\r\n CallsListViewComponent,\r\n DataDetailsViewComponent,\r\n ServiceContractsListViewComponent,\r\n ServiceContractDetailsViewComponent,\r\n ServiceContractsModalDetailsViewComponent,\r\n SapInstalledInstrumentListSearchComponent,\r\n SapInstalledInstrumentListTableComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatChipsModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatListModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatDialogModule,\r\n MatTabsModule,\r\n MatSnackBarModule,\r\n MatCheckboxModule,\r\n MatAutocompleteModule,\r\n MatSortModule,\r\n TranslateModule.forChild(),\r\n StDateFormatModule,\r\n ReactiveFormsModule,\r\n StMultiselectAutocompleteModule,\r\n StSearchSelectsModule,\r\n AuthModule,\r\n ],\r\n providers: [SapInstalledInstrumentsService],\r\n exports: [\r\n SapInstalledInstrumentListComponent,\r\n SapInstalledInstrumentDetailsComponent,\r\n ],\r\n})\r\nexport class StSapInstalledInstrumentsModule {\r\n static forRoot(\r\n config: IDirectiveModuleConfig = {}\r\n ): ModuleWithProviders<StSapInstalledInstrumentsModule> {\r\n return {\r\n ngModule: StSapInstalledInstrumentsModule,\r\n providers: [\r\n { provide: 'config', useValue: config.config },\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-sap-installed-instruments\r\n */\r\n\r\nexport * from './lib/models/installed-instrument-form.model';\r\nexport * from './lib/models/installed-instrument-sort-by-column.enum';\r\nexport * from './lib/models/installed-instrument-sort-order.enum';\r\nexport * from './lib/models/sap-activity.model';\r\nexport * from './lib/models/sap-attachment.model';\r\nexport * from './lib/models/sap-call.model';\r\nexport * from './lib/models/sap-contract.model';\r\nexport * from './lib/models/sap-country.model';\r\nexport * from './lib/models/sap-installed-instrument-list.model';\r\nexport * from './lib/models/sap-installed-instrument-search.model';\r\nexport * from './lib/models/sap-installed-instrument.model';\r\nexport * from './lib/models/sap-state.model';\r\nexport * from './lib/models/sap-territory.model';\r\nexport * from './lib/models/view-sap-installed-instrument-list.model';\r\nexport * from './lib/services/sap-installed-instruments.service';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list-table/sap-installed-instrument-list-table.component';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component';\r\nexport * from './lib/components/sap-installed-instrument-list/sap-installed-instrument-list.component';\r\nexport * from './lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/activities-list-view/activities-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/call-details-view/call-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/calls-list-view/calls-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/data-details-view/data-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contract-details-view/service-contract-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contracts-list-view/service-contracts-list-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/service-contracts-modal-details-view/service-contracts-modal-details-view.component';\r\nexport * from './lib/components/sap-installed-instrument-details/sap-installed-instrument-details.component';\r\nexport * from './lib/ngx-st-sap-installed-instruments.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.SapInstalledInstrumentsService","i4","i5","i7","i8","i11","i12","i1.SapInstalledInstrumentsService","i3","i6","i9","i10","i15","i4.SapInstalledInstrumentListSearchComponent","i5.SapInstalledInstrumentListTableComponent","i2","i4.ActivityDetailsViewComponent","i3.ServiceContractDetailsViewComponent","i5.ActivitiesListViewComponent","i4.CallDetailsViewComponent","i5.CallsListViewComponent","i6.DataDetailsViewComponent","i7.ServiceContractsListViewComponent"],"mappings":"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"}
|