@rangertechnologies/ngnxt 2.1.106 → 2.1.107
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/ar.i18n.mjs +29 -0
- package/esm2022/lib/components/button/nxt-button.component.mjs +130 -0
- package/esm2022/lib/components/custom-button/custom-button.component.mjs +39 -0
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +366 -0
- package/esm2022/lib/components/custom-date/custom-date.component.mjs +47 -0
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +48 -0
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +219 -0
- package/esm2022/lib/components/custom-image/custom-image.component.mjs +34 -0
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +93 -0
- package/esm2022/lib/components/custom-label/custom-label.component.mjs +21 -0
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +48 -0
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +115 -0
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +186 -0
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +347 -0
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +65 -0
- package/esm2022/lib/components/custom-time/custom-time.component.mjs +61 -0
- package/esm2022/lib/components/datatable/datatable.component.mjs +801 -0
- package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +42 -0
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +39 -0
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +279 -0
- package/esm2022/lib/components/file-view/file-view.component.mjs +46 -0
- package/esm2022/lib/components/loader/loader.component.mjs +23 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +100 -0
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +216 -0
- package/esm2022/lib/components/search-box/search-box.component.mjs +202 -0
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +123 -0
- package/esm2022/lib/directives/componenthost/componenthost.directive.mjs +19 -0
- package/esm2022/lib/en.i18n.mjs +29 -0
- package/esm2022/lib/i18n-config.service.mjs +4 -0
- package/esm2022/lib/i18n.component.mjs +47 -0
- package/esm2022/lib/i18n.module.mjs +38 -0
- package/esm2022/lib/i18n.pipe.mjs +25 -0
- package/esm2022/lib/i18n.service.mjs +56 -0
- package/esm2022/lib/interfaces/actionMeta.mjs +2 -0
- package/esm2022/lib/interfaces/apimeta.mjs +2 -0
- package/esm2022/lib/interfaces/dependencyMeta.mjs +2 -0
- package/esm2022/lib/model/bookletWrapper.mjs +9 -0
- package/esm2022/lib/model/changeWrapper.mjs +11 -0
- package/esm2022/lib/model/errorWrapper.mjs +6 -0
- package/esm2022/lib/model/tableWrapper.mjs +20 -0
- package/esm2022/lib/nxt-app.component.mjs +22 -0
- package/esm2022/lib/nxt-app.module.mjs +399 -0
- package/esm2022/lib/nxt-app.service.mjs +14 -0
- package/esm2022/lib/pages/booklet/booklet.component.mjs +541 -0
- package/esm2022/lib/pages/builder/element/element.component.mjs +199 -0
- package/esm2022/lib/pages/builder/form/form.component.mjs +34 -0
- package/esm2022/lib/pages/builder/menu/menu.component.mjs +28 -0
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +494 -0
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +458 -0
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2387 -0
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +76 -0
- package/esm2022/lib/pipe/date/date.pipe.mjs +28 -0
- package/esm2022/lib/pipe/editColumnCheck/edit-column-check.pipe.mjs +28 -0
- package/esm2022/lib/pipe/editColumnDropdown/edit-column-dropdown.pipe.mjs +20 -0
- package/esm2022/lib/pipe/editColumnType/edit-column-type.pipe.mjs +20 -0
- package/esm2022/lib/pipe/get-value.pipe.mjs +50 -0
- package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +39 -0
- package/esm2022/lib/pipe/time/time.pipe.mjs +26 -0
- package/esm2022/lib/sample.mjs +3715 -0
- package/esm2022/lib/services/change.service.mjs +53 -0
- package/esm2022/lib/services/data.service.mjs +80 -0
- package/esm2022/lib/services/form-builder.service.mjs +165 -0
- package/esm2022/lib/services/salesforce.service.mjs +46 -0
- package/esm2022/lib/services/shared.service.mjs +100 -0
- package/esm2022/lib/services/storage.service.mjs +44 -0
- package/esm2022/lib/tam.i18n.mjs +29 -0
- package/esm2022/lib/wrapper.mjs +175 -0
- package/esm2022/public-api.mjs +22 -0
- package/esm2022/rangertechnologies-ngnxt.mjs +5 -0
- package/fesm2022/rangertechnologies-ngnxt.mjs +12895 -0
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/ar.i18n.d.ts +24 -0
- package/lib/components/button/nxt-button.component.d.ts +38 -0
- package/lib/components/custom-button/custom-button.component.d.ts +16 -0
- package/lib/components/custom-calendar/custom-calendar.component.d.ts +65 -0
- package/lib/components/custom-date/custom-date.component.d.ts +18 -0
- package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +19 -0
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +39 -0
- package/lib/components/custom-image/custom-image.component.d.ts +13 -0
- package/lib/components/custom-input/custom-input.component.d.ts +31 -0
- package/lib/components/custom-label/custom-label.component.d.ts +10 -0
- package/lib/components/custom-model/custom-model.component.d.ts +19 -0
- package/lib/components/custom-radio/custom-radio.component.d.ts +33 -0
- package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +29 -0
- package/lib/components/custom-table/custom-table.component.d.ts +65 -0
- package/lib/components/custom-text-area/custom-text-area.component.d.ts +22 -0
- package/lib/components/custom-time/custom-time.component.d.ts +18 -0
- package/lib/components/datatable/datatable.component.d.ts +126 -0
- package/lib/components/dependent-table/dependent-table.component.d.ts +15 -0
- package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +16 -0
- package/lib/components/file-upload/file-upload.component.d.ts +47 -0
- package/lib/components/file-view/file-view.component.d.ts +16 -0
- package/lib/components/loader/loader.component.d.ts +11 -0
- package/lib/components/pagination/pagination.component.d.ts +36 -0
- package/lib/components/pick-location/pick-location.component.d.ts +44 -0
- package/lib/components/search-box/search-box.component.d.ts +43 -0
- package/lib/components/table-appendix/table-appendix.component.d.ts +30 -0
- package/lib/directives/componenthost/componenthost.directive.d.ts +8 -0
- package/lib/en.i18n.d.ts +24 -0
- package/lib/i18n-config.service.d.ts +2 -0
- package/lib/i18n.component.d.ts +11 -0
- package/lib/i18n.module.d.ts +9 -0
- package/lib/i18n.pipe.d.ts +10 -0
- package/lib/i18n.service.d.ts +14 -0
- package/lib/interfaces/actionMeta.d.ts +5 -0
- package/lib/interfaces/apimeta.d.ts +15 -0
- package/lib/interfaces/dependencyMeta.d.ts +8 -0
- package/lib/model/bookletWrapper.d.ts +5 -0
- package/lib/model/changeWrapper.d.ts +10 -0
- package/lib/model/errorWrapper.d.ts +5 -0
- package/lib/model/tableWrapper.d.ts +18 -0
- package/lib/nxt-app.component.d.ts +8 -0
- package/lib/nxt-app.module.d.ts +52 -0
- package/lib/nxt-app.service.d.ts +6 -0
- package/lib/pages/booklet/booklet.component.d.ts +68 -0
- package/lib/pages/builder/element/element.component.d.ts +33 -0
- package/lib/pages/builder/form/form.component.d.ts +11 -0
- package/lib/pages/builder/menu/menu.component.d.ts +10 -0
- package/lib/pages/builder/properties/properties.component.d.ts +575 -0
- package/lib/pages/questionbook/questionbook.component.d.ts +68 -0
- package/lib/pages/questionnaire/questionnaire.component.d.ts +220 -0
- package/lib/pages/summary-page/summary-page.component.d.ts +20 -0
- package/lib/pipe/date/date.pipe.d.ts +7 -0
- package/lib/pipe/editColumnCheck/edit-column-check.pipe.d.ts +7 -0
- package/lib/pipe/editColumnDropdown/edit-column-dropdown.pipe.d.ts +7 -0
- package/lib/pipe/editColumnType/edit-column-type.pipe.d.ts +7 -0
- package/lib/pipe/get-value.pipe.d.ts +7 -0
- package/lib/pipe/search-filter/search-filter.pipe.d.ts +8 -0
- package/lib/pipe/time/time.pipe.d.ts +7 -0
- package/lib/sample.d.ts +11 -0
- package/lib/services/change.service.d.ts +22 -0
- package/lib/services/data.service.d.ts +13 -0
- package/lib/services/form-builder.service.d.ts +76 -0
- package/lib/services/salesforce.service.d.ts +11 -0
- package/lib/services/shared.service.d.ts +15 -0
- package/lib/services/storage.service.d.ts +13 -0
- package/lib/tam.i18n.d.ts +24 -0
- package/lib/wrapper.d.ts +203 -0
- package/package.json +1 -5
- package/public-api.d.ts +15 -0
- package/rangertechnologies-ngnxt-2.1.107.tgz +0 -0
- package/src/lib/style.css +1817 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, } from "@angular/core";
|
|
2
|
+
import { ChangeWrapper } from "../../model/changeWrapper";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/data.service";
|
|
5
|
+
import * as i2 from "../../i18n.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
export class SearchBoxComponent {
|
|
9
|
+
dataService;
|
|
10
|
+
i18nService;
|
|
11
|
+
placeHolderText;
|
|
12
|
+
auto;
|
|
13
|
+
question;
|
|
14
|
+
apiMeta;
|
|
15
|
+
id;
|
|
16
|
+
readOnly = false; // VD 12Jun24 - readonly change
|
|
17
|
+
searchValueChange = new EventEmitter();
|
|
18
|
+
apiObj;
|
|
19
|
+
SearchItem;
|
|
20
|
+
filterName; // VD 20Aug default filter value as input
|
|
21
|
+
finalResults = [];
|
|
22
|
+
searchKeyWord = '';
|
|
23
|
+
newResult;
|
|
24
|
+
showResult = false;
|
|
25
|
+
noResult = false;
|
|
26
|
+
showSuggestion = true;
|
|
27
|
+
el;
|
|
28
|
+
serv = 'api';
|
|
29
|
+
tkn = '';
|
|
30
|
+
constructor(dataService, i18nService) {
|
|
31
|
+
this.dataService = dataService;
|
|
32
|
+
this.i18nService = i18nService;
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
// VD 03May- search changes
|
|
36
|
+
if (this.apiMeta) {
|
|
37
|
+
let apiObj = JSON.parse(this.apiMeta);
|
|
38
|
+
this.SearchItem = apiObj.field;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
////RS 03FEB2025
|
|
42
|
+
// Resets state when filterName or apiMeta changes to reflect updated data
|
|
43
|
+
ngOnChanges(changes) {
|
|
44
|
+
if (changes['apiMeta'] && this.apiMeta) {
|
|
45
|
+
this.apiObj = JSON.parse(this.apiMeta);
|
|
46
|
+
this.SearchItem = this.apiObj?.field;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//RS 03FEB2025
|
|
50
|
+
// Clears search-related data, including results, search term, and suggestions.
|
|
51
|
+
resetComponentState() {
|
|
52
|
+
this.finalResults = [];
|
|
53
|
+
this.filterName = '';
|
|
54
|
+
this.searchKeyWord = '';
|
|
55
|
+
this.showSuggestion = false;
|
|
56
|
+
this.noResult = false;
|
|
57
|
+
}
|
|
58
|
+
clearList() {
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
this.finalResults = [];
|
|
61
|
+
}, 1000);
|
|
62
|
+
}
|
|
63
|
+
getSourceDataLocal(event) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
if (event.target.value.length > 2) {
|
|
66
|
+
this.showSuggestion = true;
|
|
67
|
+
this.finalResults = [];
|
|
68
|
+
this.searchKeyWord = event.target.value;
|
|
69
|
+
this.showResult = false;
|
|
70
|
+
this.getSourceData(event.target.value);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.showSuggestion = false;
|
|
74
|
+
this.finalResults = [];
|
|
75
|
+
this.noResult = false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// VD 03May- search changes
|
|
79
|
+
// VD 31NOV24 null check
|
|
80
|
+
// RS 29JAN25
|
|
81
|
+
//Multi-word search across all object values
|
|
82
|
+
getSourceData = (keyword) => {
|
|
83
|
+
if (this.apiMeta) {
|
|
84
|
+
let apiObj = JSON.parse(this.apiMeta);
|
|
85
|
+
this.dataService.apiResponse(apiObj.endpoint).subscribe((apiResponse) => {
|
|
86
|
+
let response;
|
|
87
|
+
if (apiObj.variable) {
|
|
88
|
+
response = this.dataService.getValue(apiResponse, apiObj.variable);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
response = apiResponse;
|
|
92
|
+
}
|
|
93
|
+
let results = [];
|
|
94
|
+
let searchTerms = keyword.toLowerCase()?.split(" ");
|
|
95
|
+
for (let i = 0; i < response.length; i++) {
|
|
96
|
+
let obj = response[i];
|
|
97
|
+
let combinedValues = this.getCombinedValuesFromColumns(obj, apiObj.field);
|
|
98
|
+
let match = searchTerms.every(term => combinedValues.includes(term));
|
|
99
|
+
if (match) {
|
|
100
|
+
results.push(obj);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this.noResult = results.length === 0;
|
|
104
|
+
this.finalResults = results;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
// SKS27FEB Helper functions
|
|
109
|
+
getNestedValue(obj, path) {
|
|
110
|
+
//SKS27FEB Convert array indexes to dot notation (e.g., [0] -> .0)
|
|
111
|
+
const processedPath = path.replace(/\[(\d+)\]/g, '.$1');
|
|
112
|
+
const parts = processedPath.split('.');
|
|
113
|
+
let current = obj;
|
|
114
|
+
for (const part of parts) {
|
|
115
|
+
if (!current || typeof current !== 'object')
|
|
116
|
+
return '';
|
|
117
|
+
current = current[part];
|
|
118
|
+
}
|
|
119
|
+
return current !== null && current !== undefined
|
|
120
|
+
? String(current).toLowerCase().trim()
|
|
121
|
+
: '';
|
|
122
|
+
}
|
|
123
|
+
getCombinedValuesFromColumns(obj, columns) {
|
|
124
|
+
const values = [];
|
|
125
|
+
// SKS28FEB check if columns is an array
|
|
126
|
+
if (typeof columns === 'string' && !Array.isArray(columns)) {
|
|
127
|
+
columns = [columns];
|
|
128
|
+
}
|
|
129
|
+
for (const column of columns) {
|
|
130
|
+
const value = this.getNestedValue(obj, column);
|
|
131
|
+
if (value) {
|
|
132
|
+
values.push(value);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return values.join(' ');
|
|
136
|
+
}
|
|
137
|
+
// SKS27FEB get value from data specific column
|
|
138
|
+
getValues(element, columns) {
|
|
139
|
+
const result = {};
|
|
140
|
+
// SKS28FEB check if columns is an array
|
|
141
|
+
if (typeof columns === 'string' && !Array.isArray(columns)) {
|
|
142
|
+
columns = [columns];
|
|
143
|
+
}
|
|
144
|
+
columns.forEach((column) => {
|
|
145
|
+
let tempElement = element;
|
|
146
|
+
let flds = column?.split('.');
|
|
147
|
+
for (let i = 0; i < flds.length; i++) {
|
|
148
|
+
let splitFlds = flds[i]?.split('[');
|
|
149
|
+
if (splitFlds.length === 1) {
|
|
150
|
+
tempElement = tempElement[flds[i]] || '';
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
let index = Number(splitFlds[1]?.split(']')[0]);
|
|
154
|
+
tempElement = tempElement[splitFlds[0]]?.[index] || '';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
result[column] = tempElement;
|
|
158
|
+
});
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
// SKS27FEB column value get funtion
|
|
162
|
+
getKeys(obj) {
|
|
163
|
+
return Object.keys(obj);
|
|
164
|
+
}
|
|
165
|
+
clickItem(event) {
|
|
166
|
+
// console.log('inside clickItem of ' + JSON.stringify(event, null, 2));
|
|
167
|
+
let apiObj = JSON.parse(this.apiMeta);
|
|
168
|
+
this.filterName = event[apiObj.defaultField || apiObj.field[0] || apiObj.field]; //SKS27FEB defaultField is used for showing a search field input if field have array of data
|
|
169
|
+
let change = new ChangeWrapper(); // ChangeWrapper = JSON.parse('{}');
|
|
170
|
+
change.fromQuestionId = this.id;
|
|
171
|
+
change.valueObj = event;
|
|
172
|
+
change.field = apiObj.field;
|
|
173
|
+
this.searchValueChange.emit(change);
|
|
174
|
+
}
|
|
175
|
+
//RS 03FEB2025
|
|
176
|
+
// Resets component state when the component is destroyed
|
|
177
|
+
ngOnDestroy() { this.resetComponentState(); }
|
|
178
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, deps: [{ token: i1.DataService }, { token: i2.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
179
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBoxComponent, selector: "lib-search-box", inputs: { placeHolderText: "placeHolderText", question: "question", apiMeta: "apiMeta", id: "id", readOnly: "readOnly", filterName: "filterName" }, outputs: { searchValueChange: "searchValueChange" }, viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- // VD 12Jun24 - readonly change-->\n<div id=\"autocomplete-input\"> <!-- SKS5NOV25 search icon -->\n <input #auto id=\"searchbox-style\"\n (blur)=\"clearList()\"\n [(ngModel)]=\"filterName\"\n type=\"text\"\n name=\"name\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolderText\"\n style=\"margin: 0 !important; padding-right: 30px;\"\n class=\"searchInput she-line-input form-control\"\n (focusin)=\"getSourceDataLocal($event)\"\n (input)=\"getSourceDataLocal($event)\">\n <div id=\"selectList\" style=\"position: absolute;position: absolute;background: white;z-index: 2;\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\"\n style=\"max-height: 20vh;border: 1px solid #d2d4d6;overflow: scroll; min-width:100px\"\n class=\"suggestions-container\">\n <!-- HA 20DEC23 Uncommented the logic -->\n <!-- VD 03May- search changes -->\n <div *ngFor=\"let item of finalResults\" (click)='clickItem(item)' class=\"hoover\">\n <!-- VD 26Jun24 - id condition removed -->\n <div class=\"grid-x align-middle\" style=\"\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink\" style=\"width: 60px; margin-right: 1.6rem;\">\n <img [src]=\"item.thumbnail\" style=\"width: 60px;\" alt=\"\">\n </div>\n <div class=\"cell auto\" style=\"text-align: left; padding:5px 8px 0 8px; display: flex; gap: 5px; \">\n <!--// VD 26JUN24 - pipe changes -->\n <!-- RS 29JAN25 -->\n <div style=\"display: flex;\" *ngFor=\"let key of getKeys(getValues(item, SearchItem))\">\n <div>\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div> \n </div>\n </div>\n </div>\n <!-- HA 20DEC23 For Commented this for future purpose -->\n <!-- <table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <th>{{ 'firstName' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'lastName' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'division' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'numberPlate' | i18n:i18nService.currentLanguage }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of finalResults\" (click)='clickItem(item)'>\n <td>{{ item.firstName }}</td>\n <td>{{ item.lastName }}</td>\n <td>{{ item.division }}</td>\n <td>{{ item.numberPlate }}</td>\n </tr>\n </tbody>\n </table> -->\n </div>\n</div>\n\n", styles: ["#searchbox-style{background-image:url('data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"%23434555\" stroke-opacity=\"0.65\" stroke-width=\"2\"/><path d=\"M20 20L17 17\" stroke=\"%23434555\" stroke-opacity=\"0.65\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>');background-position:right 5px center;background-repeat:no-repeat;background-size:24px;padding-right:35px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
180
|
+
}
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, decorators: [{
|
|
182
|
+
type: Component,
|
|
183
|
+
args: [{ selector: 'lib-search-box', template: "<!-- // VD 12Jun24 - readonly change-->\n<div id=\"autocomplete-input\"> <!-- SKS5NOV25 search icon -->\n <input #auto id=\"searchbox-style\"\n (blur)=\"clearList()\"\n [(ngModel)]=\"filterName\"\n type=\"text\"\n name=\"name\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolderText\"\n style=\"margin: 0 !important; padding-right: 30px;\"\n class=\"searchInput she-line-input form-control\"\n (focusin)=\"getSourceDataLocal($event)\"\n (input)=\"getSourceDataLocal($event)\">\n <div id=\"selectList\" style=\"position: absolute;position: absolute;background: white;z-index: 2;\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\"\n style=\"max-height: 20vh;border: 1px solid #d2d4d6;overflow: scroll; min-width:100px\"\n class=\"suggestions-container\">\n <!-- HA 20DEC23 Uncommented the logic -->\n <!-- VD 03May- search changes -->\n <div *ngFor=\"let item of finalResults\" (click)='clickItem(item)' class=\"hoover\">\n <!-- VD 26Jun24 - id condition removed -->\n <div class=\"grid-x align-middle\" style=\"\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink\" style=\"width: 60px; margin-right: 1.6rem;\">\n <img [src]=\"item.thumbnail\" style=\"width: 60px;\" alt=\"\">\n </div>\n <div class=\"cell auto\" style=\"text-align: left; padding:5px 8px 0 8px; display: flex; gap: 5px; \">\n <!--// VD 26JUN24 - pipe changes -->\n <!-- RS 29JAN25 -->\n <div style=\"display: flex;\" *ngFor=\"let key of getKeys(getValues(item, SearchItem))\">\n <div>\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div> \n </div>\n </div>\n </div>\n <!-- HA 20DEC23 For Commented this for future purpose -->\n <!-- <table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <th>{{ 'firstName' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'lastName' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'division' | i18n:i18nService.currentLanguage }}</th>\n <th>{{ 'numberPlate' | i18n:i18nService.currentLanguage }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of finalResults\" (click)='clickItem(item)'>\n <td>{{ item.firstName }}</td>\n <td>{{ item.lastName }}</td>\n <td>{{ item.division }}</td>\n <td>{{ item.numberPlate }}</td>\n </tr>\n </tbody>\n </table> -->\n </div>\n</div>\n\n", styles: ["#searchbox-style{background-image:url('data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"%23434555\" stroke-opacity=\"0.65\" stroke-width=\"2\"/><path d=\"M20 20L17 17\" stroke=\"%23434555\" stroke-opacity=\"0.65\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>');background-position:right 5px center;background-repeat:no-repeat;background-size:24px;padding-right:35px}\n"] }]
|
|
184
|
+
}], ctorParameters: () => [{ type: i1.DataService }, { type: i2.I18nService }], propDecorators: { placeHolderText: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], auto: [{
|
|
187
|
+
type: ViewChild,
|
|
188
|
+
args: ['auto']
|
|
189
|
+
}], question: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], apiMeta: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], id: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], readOnly: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], searchValueChange: [{
|
|
198
|
+
type: Output
|
|
199
|
+
}], filterName: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}] } });
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBVTFELE1BQU0sT0FBTyxrQkFBa0I7SUF1QlI7SUFBaUM7SUF0QjdDLGVBQWUsQ0FBUztJQUNkLElBQUksQ0FBQztJQUVmLFFBQVEsQ0FBQztJQUNULE9BQU8sQ0FBUztJQUNoQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsK0JBQStCO0lBQ2hELGlCQUFpQixHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM1RixNQUFNLENBQUs7SUFDWCxVQUFVLENBQU07SUFFUixVQUFVLENBQVMsQ0FBQyx5Q0FBeUM7SUFDL0QsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLFNBQVMsQ0FBTTtJQUNmLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLEVBQUUsQ0FBYztJQUNoQixJQUFJLEdBQVcsS0FBSyxDQUFDO0lBQ3JCLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFFekIsWUFBcUIsV0FBd0IsRUFBUyxXQUF3QjtR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RTtRQUN4RSxJQUFJLE1BQU0sR0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEZBQTRGO1FBQzdLLElBQUksTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7UUFDdEUsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxjQUFjO0lBQ2QseURBQXlEO0lBQ3pELFdBQVcsS0FBVyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFFLENBQUM7d0dBM0t6QyxrQkFBa0I7NEZBQWxCLGtCQUFrQixrWEN6Qi9CLDJ0RkEwREE7OzRGRGpDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzBHQUtqQixlQUFlO3NCQUF2QixLQUFLO2dCQUNhLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFFUixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBSUUsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFNhbGVzZm9yY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NhbGVzZm9yY2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbi8vIFZEIDIzSkFOMjQgcmVtb3ZlZCBodHRwQ2xpZW50IGltcG9ydCB1c2VkIHNlcnZpY2UgZmlsZSBmb3IgY2FsbG91dFxuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2FwaW1ldGFcIjtcbmltcG9ydCB7IENoYW5nZVdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlclwiO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWFyY2gtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwbGFjZUhvbGRlclRleHQ6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnYXV0bycpIGF1dG87XG5cbiAgQElucHV0KCkgcXVlc3Rpb247XG4gIEBJbnB1dCgpIGFwaU1ldGE6IHN0cmluZztcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTsgLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZVxuICBAT3V0cHV0KCkgc2VhcmNoVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlV3JhcHBlcj4oKTtcbiAgIGFwaU9iajphbnk7XG4gICBTZWFyY2hJdGVtOiBhbnk7XG5cbiAgQElucHV0KCkgZmlsdGVyTmFtZTogc3RyaW5nOyAvLyBWRCAyMEF1ZyBkZWZhdWx0IGZpbHRlciB2YWx1ZSBhcyBpbnB1dFxuICBwdWJsaWMgZmluYWxSZXN1bHRzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgc2VhcmNoS2V5V29yZDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBuZXdSZXN1bHQ6IGFueTtcbiAgcHVibGljIHNob3dSZXN1bHQgPSBmYWxzZTtcbiAgcHVibGljIG5vUmVzdWx0ID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3VnZ2VzdGlvbiA9IHRydWU7XG4gIHByaXZhdGUgZWw6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHNlcnY6IHN0cmluZyA9ICdhcGknO1xuICBwcml2YXRlIHRrbjogc3RyaW5nID0gJyc7XG4gIFxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyAgVkQgMDNNYXktIHNlYXJjaCBjaGFuZ2VzXG4gICAgaWYodGhpcy5hcGlNZXRhKXtcbiAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICB0aGlzLlNlYXJjaEl0ZW0gPSBhcGlPYmouZmllbGQ7XG4gICAgfVxuICB9XG4vLy8vUlMgMDNGRUIyMDI1XG4vLyBSZXNldHMgc3RhdGUgd2hlbiBmaWx0ZXJOYW1lIG9yIGFwaU1ldGEgY2hhbmdlcyB0byByZWZsZWN0IHVwZGF0ZWQgZGF0YVxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICBpZiAoY2hhbmdlc1snYXBpTWV0YSddICYmIHRoaXMuYXBpTWV0YSkge1xuICAgIHRoaXMuYXBpT2JqID0gSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgIHRoaXMuU2VhcmNoSXRlbSA9IHRoaXMuYXBpT2JqPy5maWVsZDtcbiAgfVxufVxuLy9SUyAwM0ZFQjIwMjVcbi8vIENsZWFycyBzZWFyY2gtcmVsYXRlZCBkYXRhLCBpbmNsdWRpbmcgcmVzdWx0cywgc2VhcmNoIHRlcm0sIGFuZCBzdWdnZXN0aW9ucy5cbnByaXZhdGUgcmVzZXRDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcbiAgdGhpcy5maW5hbFJlc3VsdHMgPSBbXTtcbiAgdGhpcy5maWx0ZXJOYW1lID0gJyc7IFxuICB0aGlzLnNlYXJjaEtleVdvcmQgPSAnJzsgIFxuICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbn1cbmNsZWFyTGlzdCgpe1xuICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgIHRoaXMuZmluYWxSZXN1bHRzID0gW107XG4gIH0sIDEwMDApO1xufVxuXG5nZXRTb3VyY2VEYXRhTG9jYWwoZXZlbnQ6IGFueSkgeyAvL3RvIGdldCByZXN1bHRzIGxpc3QgZnJvbSBiYWNrZW5kIEFQSSB3aGVuZXZlciBrZXkgaXMgdXAgYWZ0ZXIgdGhlIGVudGVyaW5nIGF0bGVhc3Qgb25lIGtleVxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBpZihldmVudC50YXJnZXQudmFsdWUubGVuZ3RoID4gMil7XG4gICAgdGhpcy5zaG93U3VnZ2VzdGlvbj10cnVlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzPVtdO1xuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnNob3dSZXN1bHQgPSBmYWxzZTtcbiAgICB0aGlzLmdldFNvdXJjZURhdGEoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uPWZhbHNlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzID0gW107XG4gICAgdGhpcy5ub1Jlc3VsdCA9IGZhbHNlO1xuICB9XG59XG4vLyBWRCAwM01heS0gc2VhcmNoIGNoYW5nZXNcbi8vIFZEIDMxTk9WMjQgbnVsbCBjaGVja1xuLy8gUlMgMjlKQU4yNVxuLy9NdWx0aS13b3JkIHNlYXJjaCBhY3Jvc3MgYWxsIG9iamVjdCB2YWx1ZXNcbnB1YmxpYyBnZXRTb3VyY2VEYXRhID0gKGtleXdvcmQ6IHN0cmluZykgPT4ge1xuICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgbGV0IGFwaU9iajogQVBJTWV0YSA9IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcbiAgICBcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGFwaU9iai5lbmRwb2ludCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlO1xuICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIGFwaU9iai52YXJpYWJsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZSA9IGFwaVJlc3BvbnNlO1xuICAgICAgfSAgICAgIFxuICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgIGxldCBzZWFyY2hUZXJtcyA9IGtleXdvcmQudG9Mb3dlckNhc2UoKT8uc3BsaXQoXCIgXCIpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgb2JqID0gcmVzcG9uc2VbaV07XG4gICAgICAgIGxldCBjb21iaW5lZFZhbHVlcyA9IHRoaXMuZ2V0Q29tYmluZWRWYWx1ZXNGcm9tQ29sdW1ucyhvYmosIGFwaU9iai5maWVsZCk7XG4gICAgICAgIGxldCBtYXRjaCA9IHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2gob2JqKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMgPSByZXN1bHRzO1xuICAgIH0pO1xuICB9XG59O1xuLy8gU0tTMjdGRUIgSGVscGVyIGZ1bmN0aW9uc1xucHJpdmF0ZSBnZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy9TS1MyN0ZFQiBDb252ZXJ0IGFycmF5IGluZGV4ZXMgdG8gZG90IG5vdGF0aW9uIChlLmcuLCBbMF0gLT4gLjApXG4gIGNvbnN0IHByb2Nlc3NlZFBhdGggPSBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKVxcXS9nLCAnLiQxJyk7XG4gIGNvbnN0IHBhcnRzID0gcHJvY2Vzc2VkUGF0aC5zcGxpdCgnLicpO1xuICBsZXQgY3VycmVudCA9IG9iajtcbiAgXG4gIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgIGlmICghY3VycmVudCB8fCB0eXBlb2YgY3VycmVudCAhPT0gJ29iamVjdCcpIHJldHVybiAnJztcbiAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0XTtcbiAgfVxuICBcbiAgcmV0dXJuIGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdW5kZWZpbmVkIFxuICAgID8gU3RyaW5nKGN1cnJlbnQpLnRvTG93ZXJDYXNlKCkudHJpbSgpIFxuICAgIDogJyc7XG59XG5cbnByaXZhdGUgZ2V0Q29tYmluZWRWYWx1ZXNGcm9tQ29sdW1ucyhvYmo6IGFueSwgY29sdW1uczogc3RyaW5nW10pOiBzdHJpbmcge1xuICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG4gIC8vIFNLUzI4RkVCIGNoZWNrIGlmIGNvbHVtbnMgaXMgYW4gYXJyYXlcbiAgaWYodHlwZW9mIGNvbHVtbnMgPT09ICdzdHJpbmcnICYmICFBcnJheS5pc0FycmF5KGNvbHVtbnMpICApIHtcbiAgICBjb2x1bW5zID0gW2NvbHVtbnNdO1xuICB9XG4gIFxuICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE5lc3RlZFZhbHVlKG9iaiwgY29sdW1uKTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB2YWx1ZXMuam9pbignICcpO1xufVxuLy8gU0tTMjdGRUIgZ2V0IHZhbHVlIGZyb20gZGF0YSBzcGVjaWZpYyBjb2x1bW5cbnB1YmxpYyBnZXRWYWx1ZXMoZWxlbWVudDogYW55LCBjb2x1bW5zOiBhbnkpOiBhbnkge1xuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAvLyBTS1MyOEZFQiBjaGVjayBpZiBjb2x1bW5zIGlzIGFuIGFycmF5XG4gIGlmKHR5cGVvZiBjb2x1bW5zID09PSAnc3RyaW5nJyAmJiAhQXJyYXkuaXNBcnJheShjb2x1bW5zKSAgKSB7XG4gICAgY29sdW1ucyA9IFtjb2x1bW5zXTtcbiAgfVxuICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgIGxldCB0ZW1wRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgbGV0IGZsZHMgPSBjb2x1bW4/LnNwbGl0KCcuJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc3BsaXRGbGRzID0gZmxkc1tpXT8uc3BsaXQoJ1snKTtcbiAgICAgIGlmIChzcGxpdEZsZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbZmxkc1tpXV0gfHwgJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgaW5kZXggPSBOdW1iZXIoc3BsaXRGbGRzWzFdPy5zcGxpdCgnXScpWzBdKTtcbiAgICAgICAgdGVtcEVsZW1lbnQgPSB0ZW1wRWxlbWVudFtzcGxpdEZsZHNbMF1dPy5baW5kZXhdIHx8ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHRbY29sdW1uXSA9IHRlbXBFbGVtZW50O1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuLy8gU0tTMjdGRUIgY29sdW1uIHZhbHVlIGdldCBmdW50aW9uXG5nZXRLZXlzKG9iajogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKTtcbn1cbiAgcHVibGljIGNsaWNrSXRlbShldmVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgY2xpY2tJdGVtIG9mICcgKyBKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMikpO1xuICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnRbYXBpT2JqLmRlZmF1bHRGaWVsZCB8fCBhcGlPYmouZmllbGRbMF0gfHwgYXBpT2JqLmZpZWxkXTsgLy9TS1MyN0ZFQiBkZWZhdWx0RmllbGQgaXMgdXNlZCBmb3Igc2hvd2luZyBhIHNlYXJjaCBmaWVsZCBpbnB1dCBpZiBmaWVsZCBoYXZlIGFycmF5IG9mIGRhdGFcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5pZDtcbiAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcbiAgICBjaGFuZ2UuZmllbGQgPSBhcGlPYmouZmllbGQ7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZUNoYW5nZS5lbWl0KGNoYW5nZSk7XG4gIH1cbiAgLy9SUyAwM0ZFQjIwMjVcbiAgLy8gUmVzZXRzIGNvbXBvbmVudCBzdGF0ZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXG4gIG5nT25EZXN0cm95KCk6IHZvaWQgeyB0aGlzLnJlc2V0Q29tcG9uZW50U3RhdGUoKTsgIH1cbn1cbiAgICAiLCI8IS0tIC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2UtLT5cbjxkaXYgaWQ9XCJhdXRvY29tcGxldGUtaW5wdXRcIj4gPCEtLSBTS1M1Tk9WMjUgc2VhcmNoIGljb24gLS0+XG4gIDxpbnB1dCAjYXV0byBpZD1cInNlYXJjaGJveC1zdHlsZVwiXG4gICAgICAgICAgKGJsdXIpPVwiY2xlYXJMaXN0KClcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyTmFtZVwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclRleHRcIlxuICAgICAgICAgIHN0eWxlPVwibWFyZ2luOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6IDMwcHg7XCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaElucHV0IHNoZS1saW5lLWlucHV0IGZvcm0tY29udHJvbFwiXG4gICAgICAgICAgKGZvY3VzaW4pPVwiZ2V0U291cmNlRGF0YUxvY2FsKCRldmVudClcIlxuICAgICAgICAgIChpbnB1dCk9XCJnZXRTb3VyY2VEYXRhTG9jYWwoJGV2ZW50KVwiPlxuICA8ZGl2IGlkPVwic2VsZWN0TGlzdFwiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO3Bvc2l0aW9uOiBhYnNvbHV0ZTtiYWNrZ3JvdW5kOiB3aGl0ZTt6LWluZGV4OiAyO1wiPlxuICA8ZGl2ICpuZ0lmPVwiZmluYWxSZXN1bHRzLmxlbmd0aCA+IDAgJiYgc2hvd1N1Z2dlc3Rpb25cIlxuICAgIHN0eWxlPVwibWF4LWhlaWdodDogMjB2aDtib3JkZXI6IDFweCBzb2xpZCAjZDJkNGQ2O292ZXJmbG93OiBzY3JvbGw7IG1pbi13aWR0aDoxMDBweFwiXG4gICAgICAgY2xhc3M9XCJzdWdnZXN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDwhLS0gSEEgMjBERUMyMyBVbmNvbW1lbnRlZCB0aGUgbG9naWMgLS0+XG4gICAgICAgPCEtLSBWRCAwM01heS0gc2VhcmNoIGNoYW5nZXMgLS0+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbmFsUmVzdWx0c1wiIChjbGljayk9J2NsaWNrSXRlbShpdGVtKScgY2xhc3M9XCJob292ZXJcIj5cbiAgICAgICAgPCEtLSBWRCAyNkp1bjI0IC0gaWQgY29uZGl0aW9uIHJlbW92ZWQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQteCBhbGlnbi1taWRkbGVcIiBzdHlsZT1cIlwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50aHVtYm5haWxcIiBjbGFzcz1cImNlbGwgc2hyaW5rXCIgc3R5bGU9XCJ3aWR0aDogNjBweDsgbWFyZ2luLXJpZ2h0OiAxLjZyZW07XCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS50aHVtYm5haWxcIiBzdHlsZT1cIndpZHRoOiA2MHB4O1wiIGFsdD1cIlwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwgYXV0b1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzo1cHggOHB4IDAgOHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDVweDsgXCI+XG4gICAgICAgICAgICAgICAgPCEtLS8vIFZEIDI2SlVOMjQgLSBwaXBlIGNoYW5nZXMgLS0+XG4gICAgICAgICAgICAgICAgPCEtLSBSUyAyOUpBTjI1IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiICpuZ0Zvcj1cImxldCBrZXkgb2YgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7eyBnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSlba2V5XSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBIQSAyMERFQzIzIEZvciBDb21tZW50ZWQgdGhpcyBmb3IgZnV0dXJlIHB1cnBvc2UgLS0+XG4gICAgICA8IS0tIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtYm9yZGVyZWRcIj5cbiAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aD57eyAnZmlyc3ROYW1lJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7ICdsYXN0TmFtZScgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSB9fTwvdGg+XG4gICAgICAgICAgICAgIDx0aD57eyAnZGl2aXNpb24nIHwgaTE4bjppMThuU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+e3sgJ251bWJlclBsYXRlJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmluYWxSZXN1bHRzXCIgKGNsaWNrKT0nY2xpY2tJdGVtKGl0ZW0pJz5cbiAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZmlyc3ROYW1lIH19PC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0ubGFzdE5hbWUgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5kaXZpc2lvbiB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZD57eyBpdGVtLm51bWJlclBsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT4gLS0+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../i18n.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
import * as i4 from "../custom-dropdown/custom-dropdown.component";
|
|
7
|
+
import * as i5 from "../file-upload/file-upload.component";
|
|
8
|
+
import * as i6 from "../../i18n.pipe";
|
|
9
|
+
export class TableAppendixComponent {
|
|
10
|
+
i18nService;
|
|
11
|
+
question;
|
|
12
|
+
valueChange = new EventEmitter();
|
|
13
|
+
tableInfo;
|
|
14
|
+
tableHeader;
|
|
15
|
+
tableData;
|
|
16
|
+
addRowColSpan;
|
|
17
|
+
tableAppendix;
|
|
18
|
+
dropDownApi;
|
|
19
|
+
dropDownData;
|
|
20
|
+
constructor(i18nService) {
|
|
21
|
+
this.i18nService = i18nService;
|
|
22
|
+
}
|
|
23
|
+
// RS 09DEC24 Changed keys
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
if (this.question.subText != undefined) {
|
|
26
|
+
this.tableInfo = JSON.parse(this.question.subText);
|
|
27
|
+
this.tableHeader = this.tableInfo.header;
|
|
28
|
+
this.tableData = this.tableInfo.data;
|
|
29
|
+
this.tableAppendix = this.tableInfo.tableAppendix;
|
|
30
|
+
this.dropDownApi = JSON.stringify(this.tableInfo['dropdownApi']);
|
|
31
|
+
this.dropDownData = this.tableInfo['dropdownData'];
|
|
32
|
+
const combinedData = {
|
|
33
|
+
tableData: this.tableData,
|
|
34
|
+
tableAppendix: null
|
|
35
|
+
};
|
|
36
|
+
if (this.tableAppendix) {
|
|
37
|
+
combinedData.tableAppendix = this.tableAppendix;
|
|
38
|
+
}
|
|
39
|
+
this.valueChange.emit(combinedData);
|
|
40
|
+
if (this.tableData?.addRow) {
|
|
41
|
+
this.addRowColSpan = this.tableHeader.length - 2;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
addRow() {
|
|
46
|
+
let newItem = JSON.parse(JSON.stringify(this.tableInfo.newRowDefault));
|
|
47
|
+
const updatedTableData = [...this.tableData, newItem];
|
|
48
|
+
this.tableData = updatedTableData;
|
|
49
|
+
this.emitTableDataValue(updatedTableData, this.tableAppendix);
|
|
50
|
+
}
|
|
51
|
+
updateLabel(rowIndex, label, value) {
|
|
52
|
+
this.tableData[rowIndex][label] = value;
|
|
53
|
+
this.tableData[rowIndex].name = value.replace(/\s+/g, '').toLowerCase();
|
|
54
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
55
|
+
}
|
|
56
|
+
updateNumber(item, label, value) {
|
|
57
|
+
item.value[label] = value;
|
|
58
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
59
|
+
}
|
|
60
|
+
updateToggle(item, header, value) {
|
|
61
|
+
let label = header['fieldName'];
|
|
62
|
+
let toggleValue = header['toggleValue'];
|
|
63
|
+
if (label == 'test1') {
|
|
64
|
+
item.value[label][1] = value ? toggleValue[0] : toggleValue[1];
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
item.value[label] = value ? toggleValue[0] : toggleValue[1];
|
|
68
|
+
}
|
|
69
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
70
|
+
}
|
|
71
|
+
updateDropDown(item, label, value) {
|
|
72
|
+
item.value[label] = value.valueObj['value'];
|
|
73
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
74
|
+
}
|
|
75
|
+
updateCheckText(item, label, value) {
|
|
76
|
+
item.value[label][0] = value;
|
|
77
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
78
|
+
}
|
|
79
|
+
updateTableAppendix(item, label, value) {
|
|
80
|
+
let toggleValue = item.value[0].toggleValue;
|
|
81
|
+
if (item.key == 'dropDownData') {
|
|
82
|
+
item.value[0].value[label] = value.valueObj['empIdName'];
|
|
83
|
+
}
|
|
84
|
+
else if (item.key == 'toggleData') {
|
|
85
|
+
item.value[0].value[label] = value ? toggleValue[0] : toggleValue[1];
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
item.value[0].value[label] = value;
|
|
89
|
+
}
|
|
90
|
+
this.emitTableDataValue(this.tableData, this.tableAppendix);
|
|
91
|
+
}
|
|
92
|
+
emitTableDataValue(updatedTableData, tableAppendix) {
|
|
93
|
+
const combinedData = {
|
|
94
|
+
tableData: updatedTableData,
|
|
95
|
+
tableAppendix: null
|
|
96
|
+
};
|
|
97
|
+
if (tableAppendix) {
|
|
98
|
+
combinedData.tableAppendix = this.tableAppendix;
|
|
99
|
+
}
|
|
100
|
+
this.valueChange.emit(combinedData);
|
|
101
|
+
}
|
|
102
|
+
//This function finds the index of the current test in the list of test keys and returns the key of the previous test.
|
|
103
|
+
// If the current test is the first one, it returns null, as there is no previous test
|
|
104
|
+
getPreviousTestKey(item, currentTest) {
|
|
105
|
+
const testKeys = Object.keys(item.value);
|
|
106
|
+
const currentIndex = testKeys.indexOf(currentTest);
|
|
107
|
+
if (currentIndex > 0) {
|
|
108
|
+
return testKeys[currentIndex - 1];
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableAppendixComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableAppendixComponent, selector: "app-table-appendix", inputs: { question: "question" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<table class=\"table table-striped table-bordered\">\n <thead class=\"none-border\" *ngIf=\"tableInfo.tableType === 'lockout' && tableInfo.tableHeader\">\n <th></th>\n <th>{{ tableInfo.tableHeader }}</th>\n <th></th>\n </thead>\n <thead>\n <th *ngFor=\"let header of tableHeader; let hi = index\" [class]=\"'col-md-' + header.size\">\n {{ header.label }}\n </th>\n </thead>\n <tbody id=\"safetyMeasuresTableBody\">\n <tr *ngFor=\"let item of tableData; let i = index\">\n <td *ngFor=\"let header of tableHeader; let j = index\">\n <div *ngIf=\"header.type === 'text'\">\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" [placeholder]=\"header.placeholder\" (ngModelChange)=\"tableInfo.tableType != 'lockout' ? updateLabel(i, header.fieldName, item[header.fieldName]) : updateNumber(item, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type.includes('number')\">\n <!-- HA 19DEC23 For translation -->\n <input type=\"number\" [(ngModel)]=\"item.value[header.fieldName]\" [disabled]=\"item.value[getPreviousTestKey(item, header.fieldName)] === null && tableInfo.tableType != 'lockout'\" (ngModelChange)=\"updateNumber(item, header.fieldName, item.value[header.fieldName])\" placeholder=\"{{ 'enterValue' | i18n:i18nService.currentLanguage }}\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type === 'dropdown'\">\n <app-custom-dropdown [fromShengel]=\"true\" [options]=\"dropDownData\" \n [selectedValue]=\"item.value[header.fieldName]\" [placeholder]=\"header.placeholder\"\n (valueChange)=\"updateDropDown(item,header.fieldName,$event)\">\n </app-custom-dropdown>\n </div>\n <div *ngIf=\"header.type === 'textcheckbox'\">\n <div style=\"display: flex; justify-content: center;align-items: center;\">\n <input type=\"text\" [(ngModel)]=\"item.value[header.fieldName][0]\" (ngModelChange)=\"updateCheckText(item, header.fieldName, item.value[header.fieldName][0])\" style=\"width: 85px; height: 27px; text-align: center; padding: 5px; border-bottom: none; border-top: 1px solid transparent; border-right: 1px solid transparent; border-left: 1px solid transparent; background: transparent;outline: none;\">\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateToggle(item,header,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[header.fieldName][1] == header.toggleValue[0]\"/>\n <span class=\"switch-label2\" data-on=\"Psi\" data-off=\"Bar\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n </div>\n <div *ngIf=\"header.type === 'labelcheckbox'\">\n <div style=\"display: flex; justify-content: center;align-items: center;\">\n <!-- HA 19DEC23 For translation -->\n <span style=\"text-align:left;\">{{ 'calibrated' | i18n:i18nService.currentLanguage }}</span>\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateToggle(item,header,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[header.fieldName] == header.toggleValue[0]\"/>\n <span class=\"switch-label3\" data-on=\"Yes\" data-off=\"No\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n </div>\n </td>\n </tr>\n <tr *ngIf=\"tableInfo.addRow && tableInfo.tableType === 'lockout'\">\n <td colspan=\"1\">\n <!-- HA 19DEC23 For translation -->\n <b style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">{{ 'addMore' | i18n:i18nService.currentLanguage }} +</b>\n </td>\n </tr>\n <tr *ngIf=\"tableInfo.addRow && tableInfo.tableType != 'lockout'\">\n <td colspan=\"3\">\n <!-- HA 19DEC23 For translation -->\n <b>{{ 'addMore' | i18n:i18nService.currentLanguage }}</b>\n </td>\n <td colspan=\"2\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\n +\n </td>\n </tr>\n <tr *ngFor=\"let item of tableAppendix | keyvalue; let k = index\">\n <td *ngFor=\"let header of tableHeader; let l = index\">\n <div *ngIf=\"header.type === 'text'\" >\n <input type=\"text\" [(ngModel)]=\"item.value[0][header.fieldName]\" (ngModelChange)=\"updateLabel(k, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type.includes('dropdown') && item.key == 'dropDownData'\" >\n <!-- HA 19DEC23 For translation -->\n <app-custom-dropdown [fromShengel]=\"true\" [apiMeta]=\"dropDownApi\" \n [selectedValue]=\"item.value[0].value[header.fieldName]\" placeholder=\"---{{'select' | i18n:i18nService.currentLanguage}}---\"\n (valueChange)=\"updateTableAppendix(item,header.fieldName,$event)\">\n </app-custom-dropdown>\n </div>\n <div *ngIf=\"header.type.includes('datetime') && item.key == 'dateData'\">\n <input [(ngModel)]=\"item.value[0].value[header.fieldName]\" type=\"datetime-local\"\n (ngModelChange)=\"updateTableAppendix(item,header.fieldName,$event)\"\n placeholder=\"DD/MM/YYYY HH:MM\">\n </div>\n <div *ngIf=\"header.type.includes('checkbox') && item.key == 'toggleData'\">\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateTableAppendix(item,header.fieldName,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[0].value[header.fieldName] == item.value[0].toggleValue[0]\"/>\n <span class=\"switch-label3\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n <div *ngIf=\"header.type.includes('file') && item.key == 'fileData'\">\n <app-file-upload [limitFileUploading]=\"2\" [allFiles]=\"item.value[0].value[header.fieldName]\" [tableFile]=\"true\"\n (selectedFileData)=\"updateTableAppendix(item ,header.fieldName, $event)\"\n [isDeleteFileButtonVisible]=\"true\"></app-file-upload>\n </div>\n </td>\n </tr>\n </tbody>\n </table>", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}.none-border th{border:none}.switch2{position:relative;width:73px;height:23.5px;margin-left:5px;margin-top:3px;background:linear-gradient(to bottom,#eee,#fff 25px);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF 25px);border-radius:5px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px #0000000d;cursor:pointer}.switch-input2{position:absolute;top:0;left:0;opacity:0}.switch-label2{position:relative;display:block;height:inherit;font-size:12px;background:#afacac80;color:#000;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label3{position:relative;display:block;height:inherit;font-size:12px;background:red;color:#fff;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label2:before,.switch-label2:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.switch-label3:before,.switch-label2:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.switch-label2:before{content:attr(data-off);right:11px;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label3:before{content:attr(data-off);right:11px;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label2:after{content:attr(data-on);left:11px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-label3:after{content:attr(data-on);left:11px;margin-left:10px;vertical-align:sub;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-input2:checked~.switch-label2{background:#03a9f4;border-color:#03a9f4;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input2:checked~.switch-label3{background:#02ad02;border-color:#02ad02;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input2:checked~.switch-label2:before{opacity:0}.switch-input2:checked~.switch-label3:before{opacity:0}.switch-input2:checked~.switch-label2:after{opacity:1;margin-right:15px}.switch-input2:checked~.switch-label3:after{opacity:1;margin-right:15px}.switch-handle2{position:absolute;top:2px;left:2px;width:18px;height:18px;background:linear-gradient(to bottom,#fff 40%,#f0f0f0);background-image:-webkit-linear-gradient(top,#FFFFFF 40%,#f0f0f0);border-radius:20%;box-shadow:1px 1px 5px #0003}.switch-handle2:before{content:\"\";position:absolute;top:50%;left:50%;margin:-6px 0 0 -6px;width:12px;height:12px;background:linear-gradient(to bottom,#eee,#fff);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF);border-radius:6px;box-shadow:inset 0 1px #00000005}.switch-input2:checked~.switch-handle2{left:51px;box-shadow:-1px 1px 5px #0003}.switch-label2,.switch-handle2,.switch-label3{transition:All .3s ease;-webkit-transition:All .3s ease;-moz-transition:All .3s ease;-o-transition:All .3s ease}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CustomDropdownComponent, selector: "app-custom-dropdown", inputs: ["options", "placeholder", "apiMeta", "selectedValue", "progressBar", "id", "readOnly", "errorMessage", "error", "fromShengel", "question", "referenceField", "token"], outputs: ["valueChange"] }, { kind: "component", type: i5.FileUploadComponent, selector: "app-file-upload", inputs: ["allFiles", "limitFileUploading", "isDeleteFileButtonVisible", "isShowNoFileIcon", "tableFile", "question", "error"], outputs: ["selectedFileData", "deletedFileData"] }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i6.I18nPipe, name: "i18n" }] });
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableAppendixComponent, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{ selector: 'app-table-appendix', template: "<table class=\"table table-striped table-bordered\">\n <thead class=\"none-border\" *ngIf=\"tableInfo.tableType === 'lockout' && tableInfo.tableHeader\">\n <th></th>\n <th>{{ tableInfo.tableHeader }}</th>\n <th></th>\n </thead>\n <thead>\n <th *ngFor=\"let header of tableHeader; let hi = index\" [class]=\"'col-md-' + header.size\">\n {{ header.label }}\n </th>\n </thead>\n <tbody id=\"safetyMeasuresTableBody\">\n <tr *ngFor=\"let item of tableData; let i = index\">\n <td *ngFor=\"let header of tableHeader; let j = index\">\n <div *ngIf=\"header.type === 'text'\">\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" [placeholder]=\"header.placeholder\" (ngModelChange)=\"tableInfo.tableType != 'lockout' ? updateLabel(i, header.fieldName, item[header.fieldName]) : updateNumber(item, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type.includes('number')\">\n <!-- HA 19DEC23 For translation -->\n <input type=\"number\" [(ngModel)]=\"item.value[header.fieldName]\" [disabled]=\"item.value[getPreviousTestKey(item, header.fieldName)] === null && tableInfo.tableType != 'lockout'\" (ngModelChange)=\"updateNumber(item, header.fieldName, item.value[header.fieldName])\" placeholder=\"{{ 'enterValue' | i18n:i18nService.currentLanguage }}\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type === 'dropdown'\">\n <app-custom-dropdown [fromShengel]=\"true\" [options]=\"dropDownData\" \n [selectedValue]=\"item.value[header.fieldName]\" [placeholder]=\"header.placeholder\"\n (valueChange)=\"updateDropDown(item,header.fieldName,$event)\">\n </app-custom-dropdown>\n </div>\n <div *ngIf=\"header.type === 'textcheckbox'\">\n <div style=\"display: flex; justify-content: center;align-items: center;\">\n <input type=\"text\" [(ngModel)]=\"item.value[header.fieldName][0]\" (ngModelChange)=\"updateCheckText(item, header.fieldName, item.value[header.fieldName][0])\" style=\"width: 85px; height: 27px; text-align: center; padding: 5px; border-bottom: none; border-top: 1px solid transparent; border-right: 1px solid transparent; border-left: 1px solid transparent; background: transparent;outline: none;\">\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateToggle(item,header,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[header.fieldName][1] == header.toggleValue[0]\"/>\n <span class=\"switch-label2\" data-on=\"Psi\" data-off=\"Bar\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n </div>\n <div *ngIf=\"header.type === 'labelcheckbox'\">\n <div style=\"display: flex; justify-content: center;align-items: center;\">\n <!-- HA 19DEC23 For translation -->\n <span style=\"text-align:left;\">{{ 'calibrated' | i18n:i18nService.currentLanguage }}</span>\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateToggle(item,header,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[header.fieldName] == header.toggleValue[0]\"/>\n <span class=\"switch-label3\" data-on=\"Yes\" data-off=\"No\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n </div>\n </td>\n </tr>\n <tr *ngIf=\"tableInfo.addRow && tableInfo.tableType === 'lockout'\">\n <td colspan=\"1\">\n <!-- HA 19DEC23 For translation -->\n <b style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">{{ 'addMore' | i18n:i18nService.currentLanguage }} +</b>\n </td>\n </tr>\n <tr *ngIf=\"tableInfo.addRow && tableInfo.tableType != 'lockout'\">\n <td colspan=\"3\">\n <!-- HA 19DEC23 For translation -->\n <b>{{ 'addMore' | i18n:i18nService.currentLanguage }}</b>\n </td>\n <td colspan=\"2\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\n +\n </td>\n </tr>\n <tr *ngFor=\"let item of tableAppendix | keyvalue; let k = index\">\n <td *ngFor=\"let header of tableHeader; let l = index\">\n <div *ngIf=\"header.type === 'text'\" >\n <input type=\"text\" [(ngModel)]=\"item.value[0][header.fieldName]\" (ngModelChange)=\"updateLabel(k, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\n </div>\n <div *ngIf=\"header.type.includes('dropdown') && item.key == 'dropDownData'\" >\n <!-- HA 19DEC23 For translation -->\n <app-custom-dropdown [fromShengel]=\"true\" [apiMeta]=\"dropDownApi\" \n [selectedValue]=\"item.value[0].value[header.fieldName]\" placeholder=\"---{{'select' | i18n:i18nService.currentLanguage}}---\"\n (valueChange)=\"updateTableAppendix(item,header.fieldName,$event)\">\n </app-custom-dropdown>\n </div>\n <div *ngIf=\"header.type.includes('datetime') && item.key == 'dateData'\">\n <input [(ngModel)]=\"item.value[0].value[header.fieldName]\" type=\"datetime-local\"\n (ngModelChange)=\"updateTableAppendix(item,header.fieldName,$event)\"\n placeholder=\"DD/MM/YYYY HH:MM\">\n </div>\n <div *ngIf=\"header.type.includes('checkbox') && item.key == 'toggleData'\">\n <label class=\"switch2\">\n <input class=\"switch-input2\" (change)=\"updateTableAppendix(item,header.fieldName,$event.target.checked)\" \n type=\"checkbox\"\n [checked]=\"item.value[0].value[header.fieldName] == item.value[0].toggleValue[0]\"/>\n <span class=\"switch-label3\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \n <span class=\"switch-handle2\"></span> \n </label> \n </div>\n <div *ngIf=\"header.type.includes('file') && item.key == 'fileData'\">\n <app-file-upload [limitFileUploading]=\"2\" [allFiles]=\"item.value[0].value[header.fieldName]\" [tableFile]=\"true\"\n (selectedFileData)=\"updateTableAppendix(item ,header.fieldName, $event)\"\n [isDeleteFileButtonVisible]=\"true\"></app-file-upload>\n </div>\n </td>\n </tr>\n </tbody>\n </table>", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}.none-border th{border:none}.switch2{position:relative;width:73px;height:23.5px;margin-left:5px;margin-top:3px;background:linear-gradient(to bottom,#eee,#fff 25px);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF 25px);border-radius:5px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px #0000000d;cursor:pointer}.switch-input2{position:absolute;top:0;left:0;opacity:0}.switch-label2{position:relative;display:block;height:inherit;font-size:12px;background:#afacac80;color:#000;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label3{position:relative;display:block;height:inherit;font-size:12px;background:red;color:#fff;border-radius:inherit;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026}.switch-label2:before,.switch-label2:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.switch-label3:before,.switch-label2:after{position:absolute;top:50%;margin-top:-.5em;line-height:1;-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.switch-label2:before{content:attr(data-off);right:11px;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label3:before{content:attr(data-off);right:11px;text-shadow:0 1px rgba(255,255,255,.5)}.switch-label2:after{content:attr(data-on);left:11px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-label3:after{content:attr(data-on);left:11px;margin-left:10px;vertical-align:sub;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}.switch-input2:checked~.switch-label2{background:#03a9f4;border-color:#03a9f4;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input2:checked~.switch-label3{background:#02ad02;border-color:#02ad02;box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}.switch-input2:checked~.switch-label2:before{opacity:0}.switch-input2:checked~.switch-label3:before{opacity:0}.switch-input2:checked~.switch-label2:after{opacity:1;margin-right:15px}.switch-input2:checked~.switch-label3:after{opacity:1;margin-right:15px}.switch-handle2{position:absolute;top:2px;left:2px;width:18px;height:18px;background:linear-gradient(to bottom,#fff 40%,#f0f0f0);background-image:-webkit-linear-gradient(top,#FFFFFF 40%,#f0f0f0);border-radius:20%;box-shadow:1px 1px 5px #0003}.switch-handle2:before{content:\"\";position:absolute;top:50%;left:50%;margin:-6px 0 0 -6px;width:12px;height:12px;background:linear-gradient(to bottom,#eee,#fff);background-image:-webkit-linear-gradient(top,#eeeeee,#FFFFFF);border-radius:6px;box-shadow:inset 0 1px #00000005}.switch-input2:checked~.switch-handle2{left:51px;box-shadow:-1px 1px 5px #0003}.switch-label2,.switch-handle2,.switch-label3{transition:All .3s ease;-webkit-transition:All .3s ease;-moz-transition:All .3s ease;-o-transition:All .3s ease}\n"] }]
|
|
118
|
+
}], ctorParameters: () => [{ type: i1.I18nService }], propDecorators: { question: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], valueChange: [{
|
|
121
|
+
type: Output
|
|
122
|
+
}] } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYXBwZW5kaXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtYXBwZW5kaXgvdGFibGUtYXBwZW5kaXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtYXBwZW5kaXgvdGFibGUtYXBwZW5kaXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFXL0UsTUFBTSxPQUFPLHNCQUFzQjtJQVlkO0lBWFYsUUFBUSxDQUFVO0lBQ2pCLFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuRSxTQUFTLENBQWU7SUFDeEIsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsQ0FBTTtJQUNmLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQUs7SUFDbEIsV0FBVyxDQUFNO0lBQ2pCLFlBQVksQ0FBSztJQUVqQixZQUFtQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFDaEQsMEJBQTBCO0lBQzFCLFFBQVE7UUFDTixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRW5ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNy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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIEhBIDE5REVDMjMgaW1wb3J0ZWQgdHJhbnNsYXRpb24gc2VydmljZVxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvdGFibGVXcmFwcGVyJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1hcHBlbmRpeCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1hcHBlbmRpeC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWFwcGVuZGl4LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFwcGVuZGl4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IFF1ZXN0aW9uXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICB0YWJsZUluZm86IFRhYmxlV3JhcHBlcjtcbiAgdGFibGVIZWFkZXI6IGFueTtcbiAgdGFibGVEYXRhOiBhbnk7XG4gIGFkZFJvd0NvbFNwYW46IG51bWJlcjtcbiAgdGFibGVBcHBlbmRpeDphbnk7XG4gIGRyb3BEb3duQXBpIDphbnk7XG4gIGRyb3BEb3duRGF0YTphbnk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkgeyB9XG4gIC8vIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMucXVlc3Rpb24uc3ViVGV4dCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudGFibGVJbmZvID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xuXG4gICAgICB0aGlzLnRhYmxlSGVhZGVyID0gdGhpcy50YWJsZUluZm8uaGVhZGVyO1xuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlSW5mby5kYXRhO1xuICAgICAgdGhpcy50YWJsZUFwcGVuZGl4ID0gdGhpcy50YWJsZUluZm8udGFibGVBcHBlbmRpeDtcbiAgICAgIHRoaXMuZHJvcERvd25BcGkgPSBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYmxlSW5mb1snZHJvcGRvd25BcGknXSk7XG4gICAgICB0aGlzLmRyb3BEb3duRGF0YSA9IHRoaXMudGFibGVJbmZvWydkcm9wZG93bkRhdGEnXTtcbiAgICAgIGNvbnN0IGNvbWJpbmVkRGF0YSA9IHtcbiAgICAgICAgdGFibGVEYXRhOiB0aGlzLnRhYmxlRGF0YSxcbiAgICAgICAgdGFibGVBcHBlbmRpeDogbnVsbFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLnRhYmxlQXBwZW5kaXgpIHtcbiAgICAgICAgY29tYmluZWREYXRhLnRhYmxlQXBwZW5kaXggPSB0aGlzLnRhYmxlQXBwZW5kaXg7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY29tYmluZWREYXRhKTtcblxuICAgICAgaWYodGhpcy50YWJsZURhdGE/LmFkZFJvdykge1xuICAgICAgICB0aGlzLmFkZFJvd0NvbFNwYW4gPSB0aGlzLnRhYmxlSGVhZGVyLmxlbmd0aCAtIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkUm93KCk6IHZvaWQge1xuICAgIGxldCBuZXdJdGVtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnRhYmxlSW5mby5uZXdSb3dEZWZhdWx0KSk7XG4gICAgY29uc3QgdXBkYXRlZFRhYmxlRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YSwgbmV3SXRlbV07XG4gICAgdGhpcy50YWJsZURhdGEgPSB1cGRhdGVkVGFibGVEYXRhO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHVwZGF0ZWRUYWJsZURhdGEsdGhpcy50YWJsZUFwcGVuZGl4KTtcbiAgfVxuXG4gIHVwZGF0ZUxhYmVsKHJvd0luZGV4OiBudW1iZXIsIGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlRGF0YVtyb3dJbmRleF1bbGFiZWxdID0gdmFsdWU7XG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdLm5hbWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHMrL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhLHRoaXMudGFibGVBcHBlbmRpeCk7XG4gIH1cbiAgXG4gIHVwZGF0ZU51bWJlcihpdGVtOiBhbnksIGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpe1xuICAgIGl0ZW0udmFsdWVbbGFiZWxdID0gdmFsdWU7XG4gICAgdGhpcy5lbWl0VGFibGVEYXRhVmFsdWUodGhpcy50YWJsZURhdGEsdGhpcy50YWJsZUFwcGVuZGl4KTtcbiAgfVxuXG4gIHVwZGF0ZVRvZ2dsZShpdGVtOiBhbnksIGhlYWRlcjogc3RyaW5nLCB2YWx1ZTogYW55KXtcbiAgICBsZXQgbGFiZWwgPSBoZWFkZXJbJ2ZpZWxkTmFtZSddO1xuICAgIGxldCB0b2dnbGVWYWx1ZSA9IGhlYWRlclsndG9nZ2xlVmFsdWUnXTtcbiAgICBpZihsYWJlbCA9PSAndGVzdDEnKXtcbiAgICAgIGl0ZW0udmFsdWVbbGFiZWxdWzFdID0gdmFsdWUgPyB0b2dnbGVWYWx1ZVswXSA6IHRvZ2dsZVZhbHVlWzFdO1xuICAgIH1lbHNle1xuICAgICAgaXRlbS52YWx1ZVtsYWJlbF0gPSB2YWx1ZSA/IHRvZ2dsZVZhbHVlWzBdIDogdG9nZ2xlVmFsdWVbMV07XG4gICAgfVxuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhLHRoaXMudGFibGVBcHBlbmRpeCk7XG4gIH1cbiAgdXBkYXRlRHJvcERvd24oaXRlbTogYW55LCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogYW55KXtcbiAgICBpdGVtLnZhbHVlW2xhYmVsXSA9IHZhbHVlLnZhbHVlT2JqWyd2YWx1ZSddO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhLHRoaXMudGFibGVBcHBlbmRpeCk7XG4gIH1cblxuICB1cGRhdGVDaGVja1RleHQoaXRlbTogYW55LCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogYW55KXtcbiAgICBpdGVtLnZhbHVlW2xhYmVsXVswXSA9IHZhbHVlO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhLHRoaXMudGFibGVBcHBlbmRpeCk7XG4gIH1cblxuICB1cGRhdGVUYWJsZUFwcGVuZGl4KGl0ZW06IGFueSwgbGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSl7XG4gICAgbGV0IHRvZ2dsZVZhbHVlID0gaXRlbS52YWx1ZVswXS50b2dnbGVWYWx1ZTtcbiAgICBpZihpdGVtLmtleSA9PSAnZHJvcERvd25EYXRhJyl7XG4gICAgICBpdGVtLnZhbHVlWzBdLnZhbHVlW2xhYmVsXSA9IHZhbHVlLnZhbHVlT2JqWydlbXBJZE5hbWUnXTtcbiAgICB9ZWxzZSBpZihpdGVtLmtleSA9PSAndG9nZ2xlRGF0YScpe1xuICAgICAgaXRlbS52YWx1ZVswXS52YWx1ZVtsYWJlbF0gPSB2YWx1ZSA/IHRvZ2dsZVZhbHVlWzBdIDogdG9nZ2xlVmFsdWVbMV07XG4gICAgfWVsc2V7XG4gICAgICBpdGVtLnZhbHVlWzBdLnZhbHVlW2xhYmVsXSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSx0aGlzLnRhYmxlQXBwZW5kaXgpO1xuICB9XG5cbiAgZW1pdFRhYmxlRGF0YVZhbHVlKHVwZGF0ZWRUYWJsZURhdGE6IGFueVtdLHRhYmxlQXBwZW5kaXg6YW55KTogdm9pZCB7XG4gICAgY29uc3QgY29tYmluZWREYXRhID0ge1xuICAgICAgdGFibGVEYXRhOiB1cGRhdGVkVGFibGVEYXRhLFxuICAgICAgdGFibGVBcHBlbmRpeDogbnVsbFxuICAgIH07XG4gICAgaWYodGFibGVBcHBlbmRpeCl7XG4gICAgICBjb21iaW5lZERhdGEudGFibGVBcHBlbmRpeCA9IHRoaXMudGFibGVBcHBlbmRpeDtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNvbWJpbmVkRGF0YSk7XG4gIH1cblxuICAvL1RoaXMgZnVuY3Rpb24gZmluZHMgdGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IHRlc3QgaW4gdGhlIGxpc3Qgb2YgdGVzdCBrZXlzIGFuZCByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIHByZXZpb3VzIHRlc3QuIFxuICAvLyBJZiB0aGUgY3VycmVudCB0ZXN0IGlzIHRoZSBmaXJzdCBvbmUsIGl0IHJldHVybnMgbnVsbCwgYXMgdGhlcmUgaXMgbm8gcHJldmlvdXMgdGVzdFxuICBnZXRQcmV2aW91c1Rlc3RLZXkoaXRlbTogYW55LCBjdXJyZW50VGVzdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXN0S2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0udmFsdWUpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRlc3RLZXlzLmluZGV4T2YoY3VycmVudFRlc3QpO1xuICBcbiAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgcmV0dXJuIHRlc3RLZXlzW2N1cnJlbnRJbmRleCAtIDFdO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbn1cbiIsIjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtYm9yZGVyZWRcIj5cbiAgICA8dGhlYWQgY2xhc3M9XCJub25lLWJvcmRlclwiICpuZ0lmPVwidGFibGVJbmZvLnRhYmxlVHlwZSA9PT0gJ2xvY2tvdXQnICYmIHRhYmxlSW5mby50YWJsZUhlYWRlclwiPlxuICAgICAgPHRoPjwvdGg+XG4gICAgICA8dGg+e3sgdGFibGVJbmZvLnRhYmxlSGVhZGVyIH19PC90aD5cbiAgICAgIDx0aD48L3RoPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRoZWFkPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXI7IGxldCBoaSA9IGluZGV4XCIgW2NsYXNzXT1cIidjb2wtbWQtJyArIGhlYWRlci5zaXplXCI+XG4gICAgICAgIHt7IGhlYWRlci5sYWJlbCB9fVxuICAgICAgPC90aD5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keSBpZD1cInNhZmV0eU1lYXN1cmVzVGFibGVCb2R5XCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZGVyOyBsZXQgaiA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlID09PSAndGV4dCdcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaXRlbVtoZWFkZXIuZmllbGROYW1lXVwiIFtwbGFjZWhvbGRlcl09XCJoZWFkZXIucGxhY2Vob2xkZXJcIiAobmdNb2RlbENoYW5nZSk9XCJ0YWJsZUluZm8udGFibGVUeXBlICE9ICdsb2Nrb3V0JyA/IHVwZGF0ZUxhYmVsKGksIGhlYWRlci5maWVsZE5hbWUsIGl0ZW1baGVhZGVyLmZpZWxkTmFtZV0pIDogdXBkYXRlTnVtYmVyKGl0ZW0sIGhlYWRlci5maWVsZE5hbWUsIGl0ZW1baGVhZGVyLmZpZWxkTmFtZV0pXCIgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCB0YWJsZS1pbnB1dFwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIudHlwZS5pbmNsdWRlcygnbnVtYmVyJylcIj5cbiAgICAgICAgICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVtoZWFkZXIuZmllbGROYW1lXVwiIFtkaXNhYmxlZF09XCJpdGVtLnZhbHVlW2dldFByZXZpb3VzVGVzdEtleShpdGVtLCBoZWFkZXIuZmllbGROYW1lKV0gPT09IG51bGwgJiYgdGFibGVJbmZvLnRhYmxlVHlwZSAhPSAnbG9ja291dCdcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOdW1iZXIoaXRlbSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbS52YWx1ZVtoZWFkZXIuZmllbGROYW1lXSlcIiBwbGFjZWhvbGRlcj1cInt7ICdlbnRlclZhbHVlJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19XCIgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCB0YWJsZS1pbnB1dFwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIudHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxuICAgICAgICAgICAgPGFwcC1jdXN0b20tZHJvcGRvd24gW2Zyb21TaGVuZ2VsXT1cInRydWVcIiBbb3B0aW9uc109XCJkcm9wRG93bkRhdGFcIiBcbiAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cIml0ZW0udmFsdWVbaGVhZGVyLmZpZWxkTmFtZV1cIiBbcGxhY2Vob2xkZXJdPVwiaGVhZGVyLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVEcm9wRG93bihpdGVtLGhlYWRlci5maWVsZE5hbWUsJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9hcHAtY3VzdG9tLWRyb3Bkb3duPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIudHlwZSA9PT0gJ3RleHRjaGVja2JveCdcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjthbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIml0ZW0udmFsdWVbaGVhZGVyLmZpZWxkTmFtZV1bMF1cIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDaGVja1RleHQoaXRlbSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbS52YWx1ZVtoZWFkZXIuZmllbGROYW1lXVswXSlcIiAgc3R5bGU9XCJ3aWR0aDogODVweDsgaGVpZ2h0OiAyN3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDVweDsgYm9yZGVyLWJvdHRvbTogbm9uZTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7b3V0bGluZTogbm9uZTtcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoMlwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJ1cGRhdGVUb2dnbGUoaXRlbSxoZWFkZXIsJGV2ZW50LnRhcmdldC5jaGVja2VkKVwiIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZVtoZWFkZXIuZmllbGROYW1lXVsxXSA9PSBoZWFkZXIudG9nZ2xlVmFsdWVbMF1cIi8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtbGFiZWwyXCIgZGF0YS1vbj1cIlBzaVwiIGRhdGEtb2ZmPVwiQmFyXCI+PC9zcGFuPiBcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGUyXCI+PC9zcGFuPiBcbiAgICAgICAgICAgICAgPC9sYWJlbD4gXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyLnR5cGUgPT09ICdsYWJlbGNoZWNrYm94J1wiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyO2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgICAgIDwhLS0gSEEgMTlERUMyMyBGb3IgdHJhbnNsYXRpb24gLS0+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidGV4dC1hbGlnbjpsZWZ0O1wiPnt7ICdjYWxpYnJhdGVkJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2gyXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0ICBjbGFzcz1cInN3aXRjaC1pbnB1dDJcIiAoY2hhbmdlKT1cInVwZGF0ZVRvZ2dsZShpdGVtLGhlYWRlciwkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCIgXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpdGVtLnZhbHVlW2hlYWRlci5maWVsZE5hbWVdID09IGhlYWRlci50b2dnbGVWYWx1ZVswXVwiLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1sYWJlbDNcIiBkYXRhLW9uPVwiWWVzXCIgZGF0YS1vZmY9XCJOb1wiPjwvc3Bhbj4gXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtaGFuZGxlMlwiPjwvc3Bhbj4gXG4gICAgICAgICAgICAgIDwvbGFiZWw+IFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyICpuZ0lmPVwidGFibGVJbmZvLmFkZFJvdyAmJiB0YWJsZUluZm8udGFibGVUeXBlID09PSAnbG9ja291dCdcIj5cbiAgICAgICAgPHRkIGNvbHNwYW49XCIxXCI+XG4gICAgICAgICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgICAgICAgICA8YiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgY3Vyc29yOiBwb2ludGVyO1wiIGlkPVwiYWRkU2FmZXR5XCIgIChjbGljayk9XCJhZGRSb3coKVwiPnt7ICdhZGRNb3JlJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19ICs8L2I+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyICpuZ0lmPVwidGFibGVJbmZvLmFkZFJvdyAmJiB0YWJsZUluZm8udGFibGVUeXBlICE9ICdsb2Nrb3V0J1wiPlxuICAgICAgICA8dGQgY29sc3Bhbj1cIjNcIj5cbiAgICAgICAgICA8IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuICAgICAgICAgIDxiPnt7ICdhZGRNb3JlJyB8IGkxOG46aTE4blNlcnZpY2UuY3VycmVudExhbmd1YWdlIH19PC9iPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgY3Vyc29yOiBwb2ludGVyO1wiIGlkPVwiYWRkU2FmZXR5XCIgIChjbGljayk9XCJhZGRSb3coKVwiPlxuICAgICAgICAgICtcbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRhYmxlQXBwZW5kaXggfCBrZXl2YWx1ZTsgbGV0IGsgPSBpbmRleFwiPlxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRlcjsgbGV0IGwgPSBpbmRleFwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIudHlwZSA9PT0gJ3RleHQnXCIgPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlWzBdW2hlYWRlci5maWVsZE5hbWVdXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoaywgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbVtoZWFkZXIuZmllbGROYW1lXSlcIiBjbGFzcz1cInNoZS1saW5lLWlucHV0IHRhYmxlLWlucHV0XCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlLmluY2x1ZGVzKCdkcm9wZG93bicpICYmIGl0ZW0ua2V5ID09ICdkcm9wRG93bkRhdGEnXCIgPlxuICAgICAgICAgICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgICAgICAgICAgIDxhcHAtY3VzdG9tLWRyb3Bkb3duIFtmcm9tU2hlbmdlbF09XCJ0cnVlXCIgW2FwaU1ldGFdPVwiZHJvcERvd25BcGlcIiBcbiAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cIml0ZW0udmFsdWVbMF0udmFsdWVbaGVhZGVyLmZpZWxkTmFtZV1cIiBwbGFjZWhvbGRlcj1cIi0tLXt7J3NlbGVjdCcgfCBpMThuOmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZX19LS0tXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVUYWJsZUFwcGVuZGl4KGl0ZW0saGVhZGVyLmZpZWxkTmFtZSwkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L2FwcC1jdXN0b20tZHJvcGRvd24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlLmluY2x1ZGVzKCdkYXRldGltZScpICYmIGl0ZW0ua2V5ID09ICdkYXRlRGF0YSdcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIml0ZW0udmFsdWVbMF0udmFsdWVbaGVhZGVyLmZpZWxkTmFtZV1cIiB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVGFibGVBcHBlbmRpeChpdGVtLGhlYWRlci5maWVsZE5hbWUsJGV2ZW50KVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkREL01NL1lZWVkgSEg6TU1cIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyLnR5cGUuaW5jbHVkZXMoJ2NoZWNrYm94JykgJiYgaXRlbS5rZXkgPT0gJ3RvZ2dsZURhdGEnXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2gyXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCAgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJ1cGRhdGVUYWJsZUFwcGVuZGl4KGl0ZW0saGVhZGVyLmZpZWxkTmFtZSwkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCIgXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW0udmFsdWVbMF0udmFsdWVbaGVhZGVyLmZpZWxkTmFtZV0gPT0gaXRlbS52YWx1ZVswXS50b2dnbGVWYWx1ZVswXVwiLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtbGFiZWwzXCIgZGF0YS1vbj1cIlNhZmVcIiBkYXRhLW9mZj1cIlVuc2FmZVwiPjwvc3Bhbj4gXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWhhbmRsZTJcIj48L3NwYW4+IFxuICAgICAgICAgICAgPC9sYWJlbD4gXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlLmluY2x1ZGVzKCdmaWxlJykgJiYgaXRlbS5rZXkgPT0gJ2ZpbGVEYXRhJ1wiPlxuICAgICAgICAgICAgPGFwcC1maWxlLXVwbG9hZCBbbGltaXRGaWxlVXBsb2FkaW5nXT1cIjJcIiBbYWxsRmlsZXNdPVwiaXRlbS52YWx1ZVswXS52YWx1ZVtoZWFkZXIuZmllbGROYW1lXVwiIFt0YWJsZUZpbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRGaWxlRGF0YSk9XCJ1cGRhdGVUYWJsZUFwcGVuZGl4KGl0ZW0gLGhlYWRlci5maWVsZE5hbWUsICRldmVudClcIlxuICAgICAgICAgICAgW2lzRGVsZXRlRmlsZUJ1dHRvblZpc2libGVdPVwidHJ1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// VD 06-09-24 directive file to call component dynamically
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ComponenthostDirective {
|
|
5
|
+
viewContainerRef;
|
|
6
|
+
constructor(viewContainerRef) {
|
|
7
|
+
this.viewContainerRef = viewContainerRef;
|
|
8
|
+
}
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComponenthostDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ComponenthostDirective, isStandalone: true, selector: "[dynamicComponentHost]", ngImport: i0 });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComponenthostDirective, decorators: [{
|
|
13
|
+
type: Directive,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: '[dynamicComponentHost]',
|
|
16
|
+
standalone: true
|
|
17
|
+
}]
|
|
18
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50aG9zdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvZGlyZWN0aXZlcy9jb21wb25lbnRob3N0L2NvbXBvbmVudGhvc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUNkO0lBQW5CLFlBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQzt3R0FEOUMsc0JBQXNCOzRGQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVkQgMDYtMDktMjQgZGlyZWN0aXZlIGZpbGUgdG8gY2FsbCBjb21wb25lbnQgZHluYW1pY2FsbHkgXG5pbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2R5bmFtaWNDb21wb25lbnRIb3N0XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50aG9zdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const enI18n = {
|
|
2
|
+
required: "Required",
|
|
3
|
+
addMore: "Add More",
|
|
4
|
+
select: "Select",
|
|
5
|
+
attachment: "Attachment",
|
|
6
|
+
chooseFiles: "Choose files",
|
|
7
|
+
uploadFile: "Upload File",
|
|
8
|
+
thisFieldIsRequired: "This field is required.",
|
|
9
|
+
pickYourLocation: "Pick Your Location",
|
|
10
|
+
// firstName: "First Name",
|
|
11
|
+
// lastName: "Last Name",
|
|
12
|
+
// division: "Division",
|
|
13
|
+
// numberPlate: "Number Plate",
|
|
14
|
+
calibrated: "Calibrated",
|
|
15
|
+
enterValue: "Enter Value",
|
|
16
|
+
details: "Details", // HA 20FEB24 PTW Details to Details
|
|
17
|
+
pleaseMakeChoice: "Please make a choice",
|
|
18
|
+
attach: "Attach",
|
|
19
|
+
add: "Add",
|
|
20
|
+
zeroOfZero: "0 of 0",
|
|
21
|
+
selectDate: "Select date",
|
|
22
|
+
toBuyTicket: "to buy a ticket",
|
|
23
|
+
pickLocation: "Pick Location",
|
|
24
|
+
enterLocation: "Enter Location",
|
|
25
|
+
searchNearestLocation: "Search Nearest Location",
|
|
26
|
+
currentTheme: "ltr",
|
|
27
|
+
};
|
|
28
|
+
export default enI18n;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9lbi5pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sTUFBTSxHQUFHO0lBQ1gsUUFBUSxFQUFFLFVBQVU7SUFDcEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsVUFBVSxFQUFFLGFBQWE7SUFDekIsbUJBQW1CLEVBQUUseUJBQXlCO0lBQzlDLGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QywyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QiwrQkFBK0I7SUFDL0IsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLGFBQWE7SUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQ0FBb0M7SUFDeEQsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsVUFBVSxFQUFFLFFBQVE7SUFDcEIsVUFBVSxFQUFFLGFBQWE7SUFDekIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixZQUFZLEVBQUUsZUFBZTtJQUM3QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxZQUFZLEVBQUUsS0FBSztDQUN0QixDQUFBO0FBRUQsZUFBZSxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlbkkxOG4gPSB7XG4gICAgcmVxdWlyZWQ6IFwiUmVxdWlyZWRcIixcbiAgICBhZGRNb3JlOiBcIkFkZCBNb3JlXCIsXG4gICAgc2VsZWN0OiBcIlNlbGVjdFwiLFxuICAgIGF0dGFjaG1lbnQ6IFwiQXR0YWNobWVudFwiLFxuICAgIGNob29zZUZpbGVzOiBcIkNob29zZSBmaWxlc1wiLFxuICAgIHVwbG9hZEZpbGU6IFwiVXBsb2FkIEZpbGVcIixcbiAgICB0aGlzRmllbGRJc1JlcXVpcmVkOiBcIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuXCIsXG4gICAgcGlja1lvdXJMb2NhdGlvbjogXCJQaWNrIFlvdXIgTG9jYXRpb25cIixcbiAgICAvLyBmaXJzdE5hbWU6IFwiRmlyc3QgTmFtZVwiLFxuICAgIC8vIGxhc3ROYW1lOiBcIkxhc3QgTmFtZVwiLFxuICAgIC8vIGRpdmlzaW9uOiBcIkRpdmlzaW9uXCIsXG4gICAgLy8gbnVtYmVyUGxhdGU6IFwiTnVtYmVyIFBsYXRlXCIsXG4gICAgY2FsaWJyYXRlZDogXCJDYWxpYnJhdGVkXCIsXG4gICAgZW50ZXJWYWx1ZTogXCJFbnRlciBWYWx1ZVwiLFxuICAgIGRldGFpbHM6IFwiRGV0YWlsc1wiLCAvLyBIQSAyMEZFQjI0IFBUVyBEZXRhaWxzIHRvIERldGFpbHNcbiAgICBwbGVhc2VNYWtlQ2hvaWNlOiBcIlBsZWFzZSBtYWtlIGEgY2hvaWNlXCIsXG4gICAgYXR0YWNoOiBcIkF0dGFjaFwiLFxuICAgIGFkZDogXCJBZGRcIixcbiAgICB6ZXJvT2ZaZXJvOiBcIjAgb2YgMFwiLFxuICAgIHNlbGVjdERhdGU6IFwiU2VsZWN0IGRhdGVcIixcbiAgICB0b0J1eVRpY2tldDogXCJ0byBidXkgYSB0aWNrZXRcIixcbiAgICBwaWNrTG9jYXRpb246IFwiUGljayBMb2NhdGlvblwiLFxuICAgIGVudGVyTG9jYXRpb246IFwiRW50ZXIgTG9jYXRpb25cIixcbiAgICBzZWFyY2hOZWFyZXN0TG9jYXRpb246IFwiU2VhcmNoIE5lYXJlc3QgTG9jYXRpb25cIixcbiAgICBjdXJyZW50VGhlbWU6IFwibHRyXCIsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGVuSTE4bjsiXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// HA 19DEC23 File created for translation
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
export const i18nConfigService = new InjectionToken('i18nConfig');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9pMThuLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFNLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSEEgMTlERUMyMyBGaWxlIGNyZWF0ZWQgZm9yIHRyYW5zbGF0aW9uXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbmZpZ1NlcnZpY2UgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignaTE4bkNvbmZpZycpO1xuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// HA 19DEC23 File created for translation
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./i18n.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class I18nComponent {
|
|
7
|
+
i18nService;
|
|
8
|
+
// @Output() handleEve:EventEmitter<any> = new EventEmitter();
|
|
9
|
+
constructor(i18nService) {
|
|
10
|
+
this.i18nService = i18nService;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
console.log('ngOnInit component.ts');
|
|
14
|
+
// this.handleEve.emit();
|
|
15
|
+
}
|
|
16
|
+
firstClick(event) {
|
|
17
|
+
console.log('first ', event);
|
|
18
|
+
this.i18nService.languageChange(event);
|
|
19
|
+
// this.handleEve.emit();
|
|
20
|
+
window.location.reload();
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: I18nComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: I18nComponent, selector: "app-i18n", ngImport: i0, template: `
|
|
24
|
+
<a *ngFor="let lang of i18nService.langList" href="javascript:void(0);" class="not-selected-language" [ngClass]="{'selected-language': i18nService.currentLanguage === lang.lang}"
|
|
25
|
+
|
|
26
|
+
(click)="firstClick(lang.lang)">
|
|
27
|
+
<span class="mr-3">
|
|
28
|
+
{{lang.lang}}
|
|
29
|
+
</span>
|
|
30
|
+
</a>
|
|
31
|
+
|
|
32
|
+
`, isInline: true, styles: [".selected-language{color:green!important;font-weight:700;font-size:24px!important}\n", ".not-selected-language{color:#555;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: I18nComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'app-i18n', template: `
|
|
37
|
+
<a *ngFor="let lang of i18nService.langList" href="javascript:void(0);" class="not-selected-language" [ngClass]="{'selected-language': i18nService.currentLanguage === lang.lang}"
|
|
38
|
+
|
|
39
|
+
(click)="firstClick(lang.lang)">
|
|
40
|
+
<span class="mr-3">
|
|
41
|
+
{{lang.lang}}
|
|
42
|
+
</span>
|
|
43
|
+
</a>
|
|
44
|
+
|
|
45
|
+
`, styles: [".selected-language{color:green!important;font-weight:700;font-size:24px!important}\n", ".not-selected-language{color:#555;font-weight:700}\n"] }]
|
|
46
|
+
}], ctorParameters: () => [{ type: i1.I18nService }] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvaTE4bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDOzs7O0FBMEJ4RSxNQUFNLE9BQU8sYUFBYTtJQUdmO0lBRlQsOERBQThEO0lBQzlELFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUNKLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDcEMseUJBQXlCO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLHlCQUF5QjtRQUN6QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBZlUsYUFBYTs0RkFBYixhQUFhLGdEQVhkOzs7Ozs7Ozs7R0FTVDs7NEZBRVUsYUFBYTtrQkF4QnpCLFNBQVM7K0JBQ0UsVUFBVSxZQVlWOzs7Ozs7Ozs7R0FTVCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEhBIDE5REVDMjMgRmlsZSBjcmVhdGVkIGZvciB0cmFuc2xhdGlvblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pMThuJyxcbiAgc3R5bGVzOiBbXG4gICAgYC5zZWxlY3RlZC1sYW5ndWFnZSB7XG4gIGNvbG9yOiBncmVlbiAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XG59YCxcbiAgICBgLm5vdC1zZWxlY3RlZC1sYW5ndWFnZSB7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1gLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgPGEgICpuZ0Zvcj1cImxldCBsYW5nIG9mIGkxOG5TZXJ2aWNlLmxhbmdMaXN0XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBjbGFzcz1cIm5vdC1zZWxlY3RlZC1sYW5ndWFnZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQtbGFuZ3VhZ2UnOiBpMThuU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UgPT09IGxhbmcubGFuZ31cIlxuXG4gICAgICAgICAgICAoY2xpY2spPVwiZmlyc3RDbGljayhsYW5nLmxhbmcpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTNcIj5cbiAgICAgICAgICAgICAgICB7e2xhbmcubGFuZ319XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuXG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEkxOG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBAT3V0cHV0KCkgaGFuZGxlRXZlOkV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlXG4gICkge31cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5sb2coJ25nT25Jbml0IGNvbXBvbmVudC50cycpXG4gICAgLy8gdGhpcy5oYW5kbGVFdmUuZW1pdCgpO1xuICB9XG5cbiAgZmlyc3RDbGljayhldmVudCl7XG4gICAgY29uc29sZS5sb2coJ2ZpcnN0ICcsIGV2ZW50KTtcbiAgICB0aGlzLmkxOG5TZXJ2aWNlLmxhbmd1YWdlQ2hhbmdlKGV2ZW50KTtcbiAgICAvLyB0aGlzLmhhbmRsZUV2ZS5lbWl0KCk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG59XG4iXX0=
|