@norwegian/core-components 6.51.1 → 6.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.mjs +3 -3
  2. package/esm2022/lib/components/airport-select/airport-select.component.mjs +3 -3
  3. package/esm2022/lib/components/airport-select-new/airport-select-dropdown/airport-select-dropdown.component.mjs +610 -0
  4. package/esm2022/lib/components/airport-select-new/airport-select-new.component.mjs +450 -0
  5. package/esm2022/lib/components/airport-select-new/airport-select-new.module.mjs +42 -0
  6. package/esm2022/lib/components/airport-select-new/index.mjs +4 -0
  7. package/esm2022/lib/components/airport-select-new/models/airport.model.mjs +2 -0
  8. package/esm2022/lib/components/airport-select-new/models/results-labels.model.mjs +3 -0
  9. package/esm2022/lib/components/airport-select-new/services/airport-select-dropdown.service.mjs +35 -0
  10. package/esm2022/lib/components/airport-select-new/services/airport-select.service.mjs +38 -0
  11. package/esm2022/lib/components/index.mjs +2 -1
  12. package/fesm2022/norwegian-core-components.mjs +1165 -22
  13. package/fesm2022/norwegian-core-components.mjs.map +1 -1
  14. package/lib/components/airport-select-new/airport-select-dropdown/airport-select-dropdown.component.d.ts +96 -0
  15. package/lib/components/airport-select-new/airport-select-new.component.d.ts +295 -0
  16. package/lib/components/airport-select-new/airport-select-new.module.d.ts +13 -0
  17. package/lib/components/airport-select-new/index.d.ts +2 -0
  18. package/lib/components/airport-select-new/models/airport.model.d.ts +11 -0
  19. package/lib/components/airport-select-new/models/results-labels.model.d.ts +7 -0
  20. package/lib/components/airport-select-new/services/airport-select-dropdown.service.d.ts +10 -0
  21. package/lib/components/airport-select-new/services/airport-select.service.d.ts +8 -0
  22. package/lib/components/index.d.ts +1 -0
  23. package/package.json +1 -1
@@ -0,0 +1,450 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, ViewChild } from '@angular/core';
2
+ import { NasComponentBase } from '../../core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../core/directives/nas-class/nas-class.directive";
6
+ import * as i3 from "../icon/icon.component";
7
+ import * as i4 from "./airport-select-dropdown/airport-select-dropdown.component";
8
+ /**
9
+ * @description
10
+ * Norwegian Airport Select Component | New design | Beta
11
+ */
12
+ export class AirportSelectNewComponent extends NasComponentBase {
13
+ /**
14
+ * @property Input
15
+ * @description
16
+ * The airport code of the origin airport. It will set the selected origin airport based on this value.
17
+ */
18
+ get originAirportCode() {
19
+ return this.originAirportCodeValue;
20
+ }
21
+ set originAirportCode(code) {
22
+ if (code) {
23
+ if (code !== this.originAirportCodeValue) {
24
+ this.originAirportCodeValue = code;
25
+ this.setOrigin();
26
+ }
27
+ }
28
+ else {
29
+ this.originAirportCodeValue = '';
30
+ this.clearOrigin();
31
+ }
32
+ }
33
+ /**
34
+ * @property Input
35
+ * @description
36
+ * The airport code of the destination airport. It will set the selected destination airport based on this value.
37
+ */
38
+ get destinationAirportCode() {
39
+ return this.destinationAirportCodeValue;
40
+ }
41
+ set destinationAirportCode(code) {
42
+ if (code) {
43
+ if (code !== this.destinationAirportCodeValue) {
44
+ this.destinationAirportCodeValue = code;
45
+ this.setDestination();
46
+ }
47
+ }
48
+ else {
49
+ this.destinationAirportCodeValue = '';
50
+ this.clearDestination();
51
+ }
52
+ }
53
+ constructor() {
54
+ super('nas-airport-select-new');
55
+ this.airportsDestination = new Array();
56
+ this.focusDestination = false;
57
+ this.focusedLatestSearchesIndexDestination = -1;
58
+ this.focusedAirportIndexDestination = -1;
59
+ this.switchType = 'switch';
60
+ this.resultsLabels = {
61
+ allAirports: '',
62
+ closestAirports: '',
63
+ latestSearches: '',
64
+ geolocation: '',
65
+ geolocationDenied: ''
66
+ };
67
+ /**
68
+ * @property Input
69
+ * @required
70
+ * @description
71
+ * A label that will appear on top of the origin airport input field.
72
+ */
73
+ this.labelOrigin = '';
74
+ /**
75
+ * @property Input
76
+ * @description
77
+ * A placeholder that will appear on the origin airport input field.
78
+ */
79
+ this.placeholderOrigin = '';
80
+ /**
81
+ * @property Input
82
+ * @description
83
+ * A label that will appear on top of the destination airport input field.
84
+ */
85
+ this.labelDestination = '';
86
+ /**
87
+ * @property Input
88
+ * @description
89
+ * A placeholder that will appear on the destination airport input field.
90
+ */
91
+ this.placeholderDestination = '';
92
+ /**
93
+ * @property Output
94
+ * @description
95
+ * An event that is fired every time the selected origin airport changes.
96
+ */
97
+ this.originChange = new EventEmitter();
98
+ /**
99
+ * @property Output
100
+ * @description
101
+ * An event that is fired every time the origin dropdown selector opens or closes.
102
+ */
103
+ this.originOpenChange = new EventEmitter();
104
+ /**
105
+ * @property Output
106
+ * @description
107
+ * An event that is fired every time the origin dropdown selector opens or closes.
108
+ */
109
+ this.destinationChange = new EventEmitter();
110
+ /**
111
+ * @property Output
112
+ * @description
113
+ * An event that is fired every time the destination dropdown selector opens or closes.
114
+ */
115
+ this.destinationOpenChange = new EventEmitter();
116
+ /**
117
+ * @property Output
118
+ * @description
119
+ * An event that is fired when the destination dropdown closes.
120
+ */
121
+ this.focusOnNext = new EventEmitter();
122
+ /**
123
+ * @property Output
124
+ * @description
125
+ * An event that is fired when geolocation position has changed.
126
+ */
127
+ this.positionChange = new EventEmitter();
128
+ }
129
+ ngOnInit() {
130
+ if (!this.airports) {
131
+ throw new Error('Missing input: [airports]');
132
+ }
133
+ this.resultsLabels = {
134
+ allAirports: this.allAirportsLabel || '',
135
+ closestAirports: this.closestAirportsLabel || '',
136
+ latestSearches: this.latestSearchesLabel || '',
137
+ geolocation: this.geolocationLabel || '',
138
+ geolocationDenied: this.geolocationBlockedLabel || ''
139
+ };
140
+ this.textSelectOriginFirst = this.selectOriginFirstLabel;
141
+ this.airportsOrigin = this.allowedOriginAiports && this.allowedOriginAiports.length > 0 ? this.allowedOriginAiports : this.airports;
142
+ this.airportsDestination = this.getAirportsDestinations();
143
+ if (this.nasFormGroup) {
144
+ if (this.nasFormControlNameOrigin) {
145
+ const originControl = this.nasFormGroup.get(this.nasFormControlNameOrigin);
146
+ if (originControl) {
147
+ const origin = this.airportsOrigin.find(x => x.name === originControl.value);
148
+ if (origin) {
149
+ this.originAirportCode = origin.code;
150
+ }
151
+ }
152
+ }
153
+ if (this.nasFormControlNameDestination) {
154
+ const destinationControl = this.nasFormGroup.get(this.nasFormControlNameDestination);
155
+ if (destinationControl) {
156
+ const destination = this.airportsDestination.find(x => x.name === destinationControl.value);
157
+ if (destination) {
158
+ this.destinationAirportCode = destination.code;
159
+ }
160
+ }
161
+ }
162
+ }
163
+ if (!this.destination) {
164
+ this.clearDestination();
165
+ return;
166
+ }
167
+ this.destinationChange.emit(this.destination);
168
+ this.originChange.emit(this.origin);
169
+ if (this.originAirportCode) {
170
+ this.setOrigin();
171
+ }
172
+ if (this.destinationAirportCode) {
173
+ this.setDestination();
174
+ }
175
+ }
176
+ getAirportSelectComboClass(element, modifiersInput) {
177
+ let modifiers = modifiersInput;
178
+ if (typeof modifiersInput === 'string' || modifiersInput instanceof String) {
179
+ modifiers = [modifiersInput];
180
+ }
181
+ return {
182
+ block: 'nas-airport-select-new-combo',
183
+ element: element,
184
+ modifiers: modifiers
185
+ };
186
+ }
187
+ onOriginOpen(open) {
188
+ setTimeout(() => {
189
+ this.originOpen = open;
190
+ });
191
+ this.destinationOpen = false;
192
+ this.originOpenChange.emit(open);
193
+ }
194
+ onDestinationOpen(open) {
195
+ this.destinationOpen = open;
196
+ this.originOpen = false;
197
+ this.destinationOpenChange.emit(open);
198
+ }
199
+ setSelectedOrigin(airport) {
200
+ if (!airport) {
201
+ return;
202
+ }
203
+ this.origin = airport;
204
+ this.originAirportCodeValue = airport.code;
205
+ this.isDestinationValid = airport.code ? true : false;
206
+ if (this.airportRelations && this.hasValidDestinations(airport)) {
207
+ this.updateValidAirportDestinations(airport);
208
+ this.setCurrentLatestSearchesDestination();
209
+ }
210
+ this.originChange.emit(airport);
211
+ }
212
+ setSelectedDestination(airport) {
213
+ if (!airport) {
214
+ return;
215
+ }
216
+ this.destination = airport;
217
+ this.destinationAirportCodeValue = airport.code;
218
+ this.destinationChange.emit(airport);
219
+ }
220
+ setFocusOnNext(event) {
221
+ this.focusOnNext.emit(event);
222
+ }
223
+ onOriginFocus() {
224
+ if (this.airportSelectDropdownOrigin) {
225
+ this.onOriginOpen(true);
226
+ }
227
+ }
228
+ changeSwitchIcon() {
229
+ this.switchType = this.switchType === 'switch' ? 'switch--secondary' : 'switch';
230
+ }
231
+ swapAirports() {
232
+ const destination = { ...this.destination };
233
+ const origin = { ...this.origin };
234
+ this.destination = origin;
235
+ this.origin = destination;
236
+ this.setSelectedDestination(this.destination);
237
+ this.setSelectedOrigin(this.origin);
238
+ }
239
+ swapKeyDown(event) {
240
+ switch (event.key) {
241
+ case 'Enter':
242
+ this.swapAirports();
243
+ break;
244
+ }
245
+ }
246
+ setDestinationOpen(event) {
247
+ if (this.exists(this.combo)) {
248
+ this.destinationOpen = true;
249
+ this.originOpen = false;
250
+ }
251
+ else {
252
+ this.setFocusOnNext(event);
253
+ }
254
+ }
255
+ getClosestAirports(position) {
256
+ this.positionChange.emit(position);
257
+ }
258
+ getAirportsDestinations() {
259
+ const allowedDestinationAirports = this.allowedDestinationAirports;
260
+ return allowedDestinationAirports && allowedDestinationAirports.length > 0
261
+ ? allowedDestinationAirports
262
+ : this.airports;
263
+ }
264
+ setOrigin() {
265
+ const airport = this.airports.find(x => x.code === this.originAirportCode);
266
+ if (airport) {
267
+ this.setSelectedOrigin(airport);
268
+ }
269
+ }
270
+ setDestination() {
271
+ const airport = this.airports.find(x => x.code === this.destinationAirportCode);
272
+ if (airport) {
273
+ this.setSelectedDestination(airport);
274
+ }
275
+ }
276
+ updateValidAirportDestinations(airport) {
277
+ if (!this.airportRelations) {
278
+ this.airportsDestination = this.airportsOrigin;
279
+ }
280
+ else {
281
+ const validDestinations = this.getAirportRelations(airport);
282
+ if (!validDestinations) {
283
+ return;
284
+ }
285
+ if (validDestinations.length === 0) {
286
+ this.clearDestinations();
287
+ }
288
+ else {
289
+ let isDestinationValid;
290
+ if (this.destination && this.destination.code) {
291
+ isDestinationValid = validDestinations.some(x => x && x.toLowerCase() === this.destination.code.toLowerCase());
292
+ }
293
+ if (!isDestinationValid) {
294
+ this.clearDestination();
295
+ this.destinationChange.emit(null);
296
+ }
297
+ if (this.airports) {
298
+ this.airportsDestination = this.airports
299
+ .filter(airportItem => airportItem
300
+ && airportItem.code
301
+ && validDestinations.some(x => x && airportItem.code.toLowerCase() === x.toLowerCase()));
302
+ }
303
+ }
304
+ }
305
+ }
306
+ hasValidDestinations(origin) {
307
+ if (!origin) {
308
+ return;
309
+ }
310
+ const relations = this.getAirportRelations(origin);
311
+ return relations && relations.length > 0;
312
+ }
313
+ getAirportRelations(airport) {
314
+ if (!this.airports) {
315
+ return new Array();
316
+ }
317
+ return this.airportRelations[airport.code.toLowerCase()] || this.airportRelations[airport.code.toUpperCase()];
318
+ }
319
+ clearOrigin() {
320
+ this.setSelectedOrigin({
321
+ code: '',
322
+ countryName: '',
323
+ name: '',
324
+ airportName: '',
325
+ displayName: '',
326
+ normalizedAirportName: ''
327
+ });
328
+ }
329
+ clearDestination() {
330
+ this.setSelectedDestination({
331
+ code: '',
332
+ countryName: '',
333
+ name: '',
334
+ airportName: '',
335
+ displayName: '',
336
+ normalizedAirportName: ''
337
+ });
338
+ }
339
+ clearDestinations() {
340
+ this.airportsDestination = new Array();
341
+ const model = {
342
+ name: this.textSelectOriginFirst,
343
+ countryName: '',
344
+ code: '',
345
+ airportName: '',
346
+ displayName: '',
347
+ normalizedAirportName: ''
348
+ };
349
+ this.airportsDestination.push(model);
350
+ this.clearDestination();
351
+ this.destinationChange.emit(model);
352
+ }
353
+ setCurrentLatestSearchesDestination() {
354
+ if (this.airportsDestination) {
355
+ this.currentLatestSearchesDestination = this.airportsDestination.filter(airport => {
356
+ if (this.latestSearchesDestination) {
357
+ return this.latestSearchesDestination.some(x => x.code && x.code.toLowerCase() === airport.code.toLowerCase());
358
+ }
359
+ });
360
+ }
361
+ }
362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
363
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AirportSelectNewComponent, selector: "nas-airport-select-new", inputs: { airports: "airports", airportRelations: "airportRelations", latestSearchesOrigin: "latestSearchesOrigin", latestSearchesDestination: "latestSearchesDestination", closestAirports: "closestAirports", allowedOriginAiports: "allowedOriginAiports", allowedDestinationAirports: "allowedDestinationAirports", displayLatestSearches: "displayLatestSearches", displayClosestAirports: "displayClosestAirports", combo: "combo", useSwitch: "useSwitch", allAirportsLabel: "allAirportsLabel", latestSearchesLabel: "latestSearchesLabel", closestAirportsLabel: "closestAirportsLabel", geolocationLabel: "geolocationLabel", geolocationBlockedLabel: "geolocationBlockedLabel", selectOriginFirstLabel: "selectOriginFirstLabel", invalidDestinationText: "invalidDestinationText", labelOrigin: "labelOrigin", placeholderOrigin: "placeholderOrigin", labelDestination: "labelDestination", placeholderDestination: "placeholderDestination", keepSelection: "keepSelection", nasFormControlNameOrigin: "nasFormControlNameOrigin", nasFormControlNameDestination: "nasFormControlNameDestination", nasFormGroup: "nasFormGroup", originAirportCode: "originAirportCode", destinationAirportCode: "destinationAirportCode", ariaLabelClear: "ariaLabelClear", ariaLabelBackdrop: "ariaLabelBackdrop" }, outputs: { originChange: "originChange", originOpenChange: "originOpenChange", destinationChange: "destinationChange", destinationOpenChange: "destinationOpenChange", focusOnNext: "focusOnNext", positionChange: "positionChange" }, viewQueries: [{ propertyName: "switchButton", first: true, predicate: ["switchButton"], descendants: true }, { propertyName: "airportSelectDropdownOrigin", first: true, predicate: ["airportSelectDropdownOrigin"], descendants: true }, { propertyName: "airportSelectDropdownDestination", first: true, predicate: ["airportSelectDropdownDestination"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#f1f1f1}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{position:relative}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#15273f}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#fff!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:24px auto;gap:8px}@media (min-width: 640px){.nas-airport-select-new-combo{flex-direction:row;flex:1}}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}@media (min-width: 640px){.nas-airport-select-new-combo__switcher{top:16px;left:50%;margin-left:-19px;transform:rotate(90deg)}}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-origin .nas-airport-select-new__icon{right:36px}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__label{padding:9px 36px 0}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__input[type=text]{padding-left:36px}}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i4.AirportSelectDropdownComponent, selector: "nas-airport-select-dropdown", inputs: ["displayLatestSearches", "displayClosestAirports", "latestSearches", "resultsLabels", "airportSelectLabel", "airportSelectPlaceholder", "airportSelectIconModifier", "keepSelection", "nasFormControlName", "nasFormGroup", "enableGeolocation", "ariaLabelClear", "ariaLabelBackdrop", "isValid", "invalidText", "closestAirports", "airport", "open", "airports"], outputs: ["selected", "openChange", "focusOnNext", "focusOnPrevious", "positionChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
364
+ }
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewComponent, decorators: [{
366
+ type: Component,
367
+ args: [{ selector: 'nas-airport-select-new', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#f1f1f1}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{position:relative}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#15273f}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#fff!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:24px auto;gap:8px}@media (min-width: 640px){.nas-airport-select-new-combo{flex-direction:row;flex:1}}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}@media (min-width: 640px){.nas-airport-select-new-combo__switcher{top:16px;left:50%;margin-left:-19px;transform:rotate(90deg)}}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-origin .nas-airport-select-new__icon{right:36px}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__label{padding:9px 36px 0}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__input[type=text]{padding-left:36px}}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"] }]
368
+ }], ctorParameters: function () { return []; }, propDecorators: { switchButton: [{
369
+ type: ViewChild,
370
+ args: ['switchButton']
371
+ }], airportSelectDropdownOrigin: [{
372
+ type: ViewChild,
373
+ args: ['airportSelectDropdownOrigin']
374
+ }], airportSelectDropdownDestination: [{
375
+ type: ViewChild,
376
+ args: ['airportSelectDropdownDestination']
377
+ }], airports: [{
378
+ type: Input
379
+ }], airportRelations: [{
380
+ type: Input
381
+ }], latestSearchesOrigin: [{
382
+ type: Input
383
+ }], latestSearchesDestination: [{
384
+ type: Input
385
+ }], closestAirports: [{
386
+ type: Input
387
+ }], allowedOriginAiports: [{
388
+ type: Input
389
+ }], allowedDestinationAirports: [{
390
+ type: Input
391
+ }], displayLatestSearches: [{
392
+ type: Input
393
+ }], displayClosestAirports: [{
394
+ type: Input
395
+ }], combo: [{
396
+ type: Input
397
+ }], useSwitch: [{
398
+ type: Input
399
+ }], allAirportsLabel: [{
400
+ type: Input
401
+ }], latestSearchesLabel: [{
402
+ type: Input
403
+ }], closestAirportsLabel: [{
404
+ type: Input
405
+ }], geolocationLabel: [{
406
+ type: Input
407
+ }], geolocationBlockedLabel: [{
408
+ type: Input
409
+ }], selectOriginFirstLabel: [{
410
+ type: Input
411
+ }], invalidDestinationText: [{
412
+ type: Input
413
+ }], labelOrigin: [{
414
+ type: Input
415
+ }], placeholderOrigin: [{
416
+ type: Input
417
+ }], labelDestination: [{
418
+ type: Input
419
+ }], placeholderDestination: [{
420
+ type: Input
421
+ }], keepSelection: [{
422
+ type: Input
423
+ }], nasFormControlNameOrigin: [{
424
+ type: Input
425
+ }], nasFormControlNameDestination: [{
426
+ type: Input
427
+ }], nasFormGroup: [{
428
+ type: Input
429
+ }], originAirportCode: [{
430
+ type: Input
431
+ }], destinationAirportCode: [{
432
+ type: Input
433
+ }], ariaLabelClear: [{
434
+ type: Input
435
+ }], ariaLabelBackdrop: [{
436
+ type: Input
437
+ }], originChange: [{
438
+ type: Output
439
+ }], originOpenChange: [{
440
+ type: Output
441
+ }], destinationChange: [{
442
+ type: Output
443
+ }], destinationOpenChange: [{
444
+ type: Output
445
+ }], focusOnNext: [{
446
+ type: Output
447
+ }], positionChange: [{
448
+ type: Output
449
+ }] } });
450
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWlycG9ydC1zZWxlY3QtbmV3L2FpcnBvcnQtc2VsZWN0LW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0LW5ldy9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsU0FBUyxFQUdWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7O0FBSTlDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFrTzdEOzs7O09BSUc7SUFDSCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksc0JBQXNCO1FBQ3hCLE9B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QkFBaEMsS0FBSztnQkFTRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFRRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBc0JGLHNCQUFzQjtzQkFEekIsS0FBSztnQkFxQkcsY0FBYztzQkFBdEIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0ksWUFBWTtzQkFBckIsTUFBTTtnQkFPRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBT0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFPRyxXQUFXO3NCQUFwQixNQUFNO2dCQU9HLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEFpcnBvcnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FpcnBvcnQubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBSZXN1bHRzTGFiZWxzTW9kZWwgfSBmcm9tICcuL21vZGVscy9yZXN1bHRzLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBBaXJwb3J0U2VsZWN0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWlycG9ydCBTZWxlY3QgQ29tcG9uZW50IHwgTmV3IGRlc2lnbiB8IEJldGFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWFpcnBvcnQtc2VsZWN0LW5ldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBaXJwb3J0U2VsZWN0TmV3Q29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGFpcnBvcnRzT3JpZ2luOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBhaXJwb3J0c0Rlc3RpbmF0aW9uID0gbmV3IEFycmF5PEFpcnBvcnRNb2RlbD4oKTtcbiAgY3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb246IEFycmF5PEFpcnBvcnRNb2RlbD47XG4gIGNsb3Nlc3RBaXJwb3J0c0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBmb2N1c0Rlc3RpbmF0aW9uID0gZmFsc2U7XG4gIHRleHRTZWxlY3RPcmlnaW5GaXJzdDogc3RyaW5nO1xuICBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNBaXJwb3J0Q29kZURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGZvY3VzZWRBaXJwb3J0Q29kZURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGZvY3VzZWRMYXRlc3RTZWFyY2hlc0luZGV4RGVzdGluYXRpb24gPSAtMTtcbiAgZm9jdXNlZEFpcnBvcnRJbmRleERlc3RpbmF0aW9uID0gLTE7XG4gIHN3aXRjaFR5cGUgPSAnc3dpdGNoJztcbiAgaXNEZXN0aW5hdGlvblZhbGlkOiBib29sZWFuO1xuXG4gIHJlc3VsdHNMYWJlbHM6IFJlc3VsdHNMYWJlbHNNb2RlbCA9IHtcbiAgICBhbGxBaXJwb3J0czogJycsXG4gICAgY2xvc2VzdEFpcnBvcnRzOiAnJyxcbiAgICBsYXRlc3RTZWFyY2hlczogJycsXG4gICAgZ2VvbG9jYXRpb246ICcnLFxuICAgIGdlb2xvY2F0aW9uRGVuaWVkOiAnJ1xuICB9O1xuXG4gIG9yaWdpbk9wZW46IGJvb2xlYW47XG4gIGRlc3RpbmF0aW9uT3BlbjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdzd2l0Y2hCdXR0b24nKSBzd2l0Y2hCdXR0b246IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2FpcnBvcnRTZWxlY3REcm9wZG93bk9yaWdpbicpIGFpcnBvcnRTZWxlY3REcm9wZG93bk9yaWdpbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb24nKSBhaXJwb3J0U2VsZWN0RHJvcGRvd25EZXN0aW5hdGlvbjogQWlycG9ydFNlbGVjdERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIG9yaWdpbjogQWlycG9ydE1vZGVsO1xuICBkZXN0aW5hdGlvbjogQWlycG9ydE1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQHJlcXVpcmVkXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbGwgYWlycG9ydHMgdGhhdCB3aWxsIGJlIHBvcHVsYXRlZCBpbnRvIHRoZSBkcm9wZG93biBsaXN0cy5cbiAgICovXG4gIEBJbnB1dCgpIGFpcnBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcga2V5cyB3aXRoIGFsbCBhaXJwb3J0IGNvZGVzIHdpdGggY29ycmVzcG9uZGluZyBhcnJheSBvZiBhaXJwb3J0IGNvZGVzIGNvbm5lY3RlZCB0byB0aGUga2V5LlxuICAgKi9cbiAgQElucHV0KCkgYWlycG9ydFJlbGF0aW9uczogUmVjb3JkPHN0cmluZywgQXJyYXk8c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2Ygb3JpZ2luIGFpcnBvcnRzIHRoYXQgdGhlIHVzZXIgaGFzIGFsbHJlYWR5IHNlYXJjaCBmb3IuXG4gICAqL1xuICBASW5wdXQoKSBsYXRlc3RTZWFyY2hlc09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBkZXN0aW5hdGlvbiBhaXJwb3J0cyB0aGF0IHRoZSB1c2VyIGhhcyBhbGxyZWFkeSBzZWFyY2ggZm9yLlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBhaXJwb3J0cyB0aGF0IGFyZSBjbG9zZSB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpIGNsb3Nlc3RBaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxpc3Qgb2YgYWlycG9ydHMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBvcmlnaW4gZHJvcGRvd24uXG4gICAqIElmIG5vdCBpbmNsdWRlZCwgYWxsIGFpcnBvcnRzIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dlZE9yaWdpbkFpcG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgYWlycG9ydHMgdGhhdCBhcmUgcmVzdHJpY3RlZCBmb3IgZGVzdGluYXRpb24gYWlycG9ydHMuIEl0IHdpbGwgZGVmYXVsdCB0byBhaXJwb3J0cyBpZiBub3Qgc2V0LlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgaWYgYWlycG9ydHMgdGhhdCB0aGUgdXNlciBhbGxyZWFkeSBoYXMgc2VhcmggZm9yIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNwbGF5TGF0ZXN0U2VhcmNoZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGFpcnBvcnRzIHRoYXQgYXJlIGNsb3NlIHRvIHRoZSB1c2VyIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNwbGF5IGJvdGggb3JnaW4gYW5kIGRlc3RpbmF0aW9uIGFpcnBvcnQgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBjb21ibz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzcGxheSBzd2l0Y2ggVUkgdG8gaW50ZXJjaGFuZ2Ugb3JpZ2luIGFuZCBkZXN0aW5hdGlvbiBhaXJwb3J0LlxuICAgKi9cbiAgQElucHV0KCkgdXNlU3dpdGNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIGFsbCBhaXJwb3J0cyBpbiB0aGUgZHJvcCBkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBhbGxBaXJwb3J0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgbGF0ZXN0IHNlYXJjaGVzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBjbG9zZXN0IGFpcnBvcnRzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGNsb3Nlc3RBaXJwb3J0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIGluIG15IGxvY2F0aW9uIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGdlb2xvY2F0aW9uTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgaW4gbXkgbG9jYXRpb24sIGluIHRoZSBkcm9wIGRvd24gbGlzdCBpZiB1c2VyIGhhcyBkZW5pZWQgZ2VvbG9jYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBnZW9sb2NhdGlvbkJsb2NrZWRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgZGVzdGluYXRpb24gaW5wdXQgZmllbGQgaWYgdGhlXG4gICAqIHVzZXIgdHJpZXMgdG8gc2VsZWN0IGEgZGVzdGluYXRpb24gYWlycG9ydCB3aXRob3V0IHNlbGVjdGluZyBhbiBvcmlnaW4gYWlycG9ydC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdE9yaWdpbkZpcnN0TGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHRleHQgdGhhdCBhcHBlYXJzIGluIHRoZSBkZXN0aW5hdGlvbnMgZHJvcGRvd24gbGlzdCB3aGVuIG9yaWdpbiBhaXJwb3J0IGlzIG5vdCBzZXQuXG4gICAqL1xuICBASW5wdXQoKSBpbnZhbGlkRGVzdGluYXRpb25UZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAcmVxdWlyZWRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIG9yaWdpbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxPcmlnaW4gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgb24gdGhlIG9yaWdpbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJPcmlnaW4gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBkZXN0aW5hdGlvbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxEZXN0aW5hdGlvbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBvbiB0aGUgZGVzdGluYXRpb24gYWlycG9ydCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyRGVzdGluYXRpb24gPSAnJztcblxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kaWZpZXIgdGhhdCB3aWxsIGFsbG93IGFsd2F5cyBrZWVwaW5nIHRoZSBzZWxlY3RlZCBhaXJwb3J0LlxuICAgKiBUaGUgbGFzdCBzZWxlY3RlZCBhaXJwb3J0IHdpbGwgYmUgc2hvd24gb25jZSB1c2VyIGNsZWFycyB0aGUgc2VsZWN0aW9uIGFuZCBibHVyLlxuICAgKi9cbiAgQElucHV0KCkga2VlcFNlbGVjdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVPcmlnaW46IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVEZXN0aW5hdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgdGhlIHBhcmVudCdzIGZvcm0gZ3JvdXAuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IGlzIHJlcXVpZXJlZCB0byBiZSBmaWxsZWQgaWYgbmFzRm9ybUNvbnRyb2xOYW1lIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGFpcnBvcnQgY29kZSBvZiB0aGUgb3JpZ2luIGFpcnBvcnQuIEl0IHdpbGwgc2V0IHRoZSBzZWxlY3RlZCBvcmlnaW4gYWlycG9ydCBiYXNlZCBvbiB0aGlzIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG9yaWdpbkFpcnBvcnRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWU7XG4gIH1cbiAgc2V0IG9yaWdpbkFpcnBvcnRDb2RlKGNvZGU6IHN0cmluZykge1xuICAgIGlmIChjb2RlKSB7XG4gICAgICBpZiAoY29kZSAhPT0gdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuc2V0T3JpZ2luKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jbGVhck9yaWdpbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBhaXJwb3J0IGNvZGUgb2YgdGhlIGRlc3RpbmF0aW9uIGFpcnBvcnQuIEl0IHdpbGwgc2V0IHRoZSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBhaXJwb3J0IGJhc2VkIG9uIHRoaXMgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGVzdGluYXRpb25BaXJwb3J0Q29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWU7XG4gIH1cbiAgc2V0IGRlc3RpbmF0aW9uQWlycG9ydENvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlICE9PSB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuc2V0RGVzdGluYXRpb24oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIG9uIHRoZSBjbGVhciBidXR0b24gaW5zaWRlIHRoZSBhaXJwb3J0IHNlbGVjdCBpbnB1dHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIHRvIHRoZSBiYWNrZHJvcHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIHNlbGVjdGVkIG9yaWdpbiBhaXJwb3J0IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgb3JpZ2luQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgb3JpZ2luIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvcmlnaW5PcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgKiBAZGVzY3JpcHRpb25cbiAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIG9yaWdpbiBkcm9wZG93biBzZWxlY3RvciBvcGVucyBvciBjbG9zZXMuXG4gICovXG4gIEBPdXRwdXQoKSBkZXN0aW5hdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWlycG9ydE1vZGVsPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIGRlc3RpbmF0aW9uIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBkZXN0aW5hdGlvbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiB0aGUgZGVzdGluYXRpb24gZHJvcGRvd24gY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzT25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gZ2VvbG9jYXRpb24gcG9zaXRpb24gaGFzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgcG9zaXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdlb2xvY2F0aW9uUG9zaXRpb24+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5BaXJwb3J0Q29kZVZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1haXJwb3J0LXNlbGVjdC1uZXcnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGlucHV0OiBbYWlycG9ydHNdJyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXN1bHRzTGFiZWxzID0ge1xuICAgICAgYWxsQWlycG9ydHM6IHRoaXMuYWxsQWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGNsb3Nlc3RBaXJwb3J0czogdGhpcy5jbG9zZXN0QWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGxhdGVzdFNlYXJjaGVzOiB0aGlzLmxhdGVzdFNlYXJjaGVzTGFiZWwgfHwgJycsXG4gICAgICBnZW9sb2NhdGlvbjogdGhpcy5nZW9sb2NhdGlvbkxhYmVsIHx8ICcnLFxuICAgICAgZ2VvbG9jYXRpb25EZW5pZWQ6IHRoaXMuZ2VvbG9jYXRpb25CbG9ja2VkTGFiZWwgfHwgJydcbiAgICB9O1xuXG4gICAgdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QgPSB0aGlzLnNlbGVjdE9yaWdpbkZpcnN0TGFiZWw7XG4gICAgdGhpcy5haXJwb3J0c09yaWdpbiA9IHRoaXMuYWxsb3dlZE9yaWdpbkFpcG9ydHMgJiYgdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cy5sZW5ndGggPiAwID8gdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cyA6IHRoaXMuYWlycG9ydHM7XG5cbiAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmdldEFpcnBvcnRzRGVzdGluYXRpb25zKCk7XG5cbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbikge1xuICAgICAgICBjb25zdCBvcmlnaW5Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lT3JpZ2luKTtcblxuICAgICAgICBpZiAob3JpZ2luQ29udHJvbCkge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYWlycG9ydHNPcmlnaW4uZmluZCh4ID0+IHgubmFtZSA9PT0gb3JpZ2luQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlID0gb3JpZ2luLmNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKTtcblxuICAgICAgICBpZiAoZGVzdGluYXRpb25Db250cm9sKSB7XG4gICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmluZCh4ID0+IHgubmFtZSA9PT0gZGVzdGluYXRpb25Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlID0gZGVzdGluYXRpb24uY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQodGhpcy5vcmlnaW4pO1xuXG5cbiAgICBpZiAodGhpcy5vcmlnaW5BaXJwb3J0Q29kZSkge1xuICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlKSB7XG4gICAgICB0aGlzLnNldERlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzSW5wdXQ/OiBhbnkpOiBDbGFzc01vZGVsIHtcbiAgICBsZXQgbW9kaWZpZXJzID0gbW9kaWZpZXJzSW5wdXQ7XG5cbiAgICBpZiAodHlwZW9mIG1vZGlmaWVyc0lucHV0ID09PSAnc3RyaW5nJyB8fCBtb2RpZmllcnNJbnB1dCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgbW9kaWZpZXJzID0gW21vZGlmaWVyc0lucHV0XTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2s6ICduYXMtYWlycG9ydC1zZWxlY3QtbmV3LWNvbWJvJyxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICBtb2RpZmllcnM6IG1vZGlmaWVyc1xuICAgIH07XG4gIH1cblxuICBvbk9yaWdpbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gb3BlbjtcbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gZmFsc2U7XG4gICAgdGhpcy5vcmlnaW5PcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICBvbkRlc3RpbmF0aW9uT3BlbihvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0aW5hdGlvbk9wZW4gPSBvcGVuO1xuICAgIHRoaXMub3JpZ2luT3BlbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5kZXN0aW5hdGlvbk9wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkT3JpZ2luKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIGlmICghYWlycG9ydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luID0gYWlycG9ydDtcbiAgICB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWUgPSBhaXJwb3J0LmNvZGU7XG4gICAgdGhpcy5pc0Rlc3RpbmF0aW9uVmFsaWQgPSBhaXJwb3J0LmNvZGUgPyB0cnVlIDogZmFsc2U7XG5cbiAgICBpZiAodGhpcy5haXJwb3J0UmVsYXRpb25zICYmIHRoaXMuaGFzVmFsaWREZXN0aW5hdGlvbnMoYWlycG9ydCkpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsaWRBaXJwb3J0RGVzdGluYXRpb25zKGFpcnBvcnQpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQoYWlycG9ydCk7XG4gIH1cblxuICBzZXRTZWxlY3RlZERlc3RpbmF0aW9uKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIGlmICghYWlycG9ydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGVzdGluYXRpb24gPSBhaXJwb3J0O1xuICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChhaXJwb3J0KTtcbiAgfVxuXG4gIHNldEZvY3VzT25OZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uT3JpZ2luRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luKSB7XG4gICAgICB0aGlzLm9uT3JpZ2luT3Blbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VTd2l0Y2hJY29uKCk6IHZvaWQge1xuICAgIHRoaXMuc3dpdGNoVHlwZSA9IHRoaXMuc3dpdGNoVHlwZSA9PT0gJ3N3aXRjaCcgPyAnc3dpdGNoLS1zZWNvbmRhcnknIDogJ3N3aXRjaCc7XG4gIH1cblxuICBzd2FwQWlycG9ydHMoKTogdm9pZCB7XG4gICAgY29uc3QgZGVzdGluYXRpb24gPSB7IC4uLnRoaXMuZGVzdGluYXRpb24gfTtcbiAgICBjb25zdCBvcmlnaW4gPSB7IC4uLnRoaXMub3JpZ2luIH07XG4gICAgdGhpcy5kZXN0aW5hdGlvbiA9IG9yaWdpbjtcbiAgICB0aGlzLm9yaWdpbiA9IGRlc3RpbmF0aW9uO1xuXG4gICAgdGhpcy5zZXRTZWxlY3RlZERlc3RpbmF0aW9uKHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4odGhpcy5vcmlnaW4pO1xuICB9XG5cbiAgc3dhcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICB0aGlzLnN3YXBBaXJwb3J0cygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZXREZXN0aW5hdGlvbk9wZW4oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5jb21ibykpIHtcbiAgICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMub3JpZ2luT3BlbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEZvY3VzT25OZXh0KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRDbG9zZXN0QWlycG9ydHMocG9zaXRpb246IEdlb2xvY2F0aW9uUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLmVtaXQocG9zaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBaXJwb3J0c0Rlc3RpbmF0aW9ucygpOiBBcnJheTxBaXJwb3J0TW9kZWw+IHtcbiAgICBjb25zdCBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0cyA9IHRoaXMuYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHM7XG5cbiAgICByZXR1cm4gYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMgJiYgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMubGVuZ3RoID4gMFxuICAgICAgPyBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0c1xuICAgICAgOiB0aGlzLmFpcnBvcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRPcmlnaW4oKTogdm9pZCB7XG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMuYWlycG9ydHMuZmluZCh4ID0+IHguY29kZSA9PT0gdGhpcy5vcmlnaW5BaXJwb3J0Q29kZSk7XG5cbiAgICBpZiAoYWlycG9ydCkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbihhaXJwb3J0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmFpcnBvcnRzLmZpbmQoeCA9PiB4LmNvZGUgPT09IHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZSk7XG5cbiAgICBpZiAoYWlycG9ydCkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZERlc3RpbmF0aW9uKGFpcnBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsaWRBaXJwb3J0RGVzdGluYXRpb25zKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5haXJwb3J0UmVsYXRpb25zKSB7XG4gICAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzT3JpZ2luO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWxpZERlc3RpbmF0aW9ucyA9IHRoaXMuZ2V0QWlycG9ydFJlbGF0aW9ucyhhaXJwb3J0KTtcblxuICAgICAgaWYgKCF2YWxpZERlc3RpbmF0aW9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZERlc3RpbmF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb24gJiYgdGhpcy5kZXN0aW5hdGlvbi5jb2RlKSB7XG4gICAgICAgICAgaXNEZXN0aW5hdGlvblZhbGlkID0gdmFsaWREZXN0aW5hdGlvbnMuc29tZSh4ID0+IHggJiYgeC50b0xvd2VyQ2FzZSgpID09PSB0aGlzLmRlc3RpbmF0aW9uLmNvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0Rlc3RpbmF0aW9uVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyRGVzdGluYXRpb24oKTtcbiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5haXJwb3J0cykge1xuICAgICAgICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiA9IHRoaXMuYWlycG9ydHNcbiAgICAgICAgICAgIC5maWx0ZXIoYWlycG9ydEl0ZW0gPT4gYWlycG9ydEl0ZW1cbiAgICAgICAgICAgICAgJiYgYWlycG9ydEl0ZW0uY29kZVxuICAgICAgICAgICAgICAmJiB2YWxpZERlc3RpbmF0aW9ucy5zb21lKHggPT4geCAmJiBhaXJwb3J0SXRlbS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09IHgudG9Mb3dlckNhc2UoKSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNWYWxpZERlc3RpbmF0aW9ucyhvcmlnaW46IEFpcnBvcnRNb2RlbCk6IGJvb2xlYW4ge1xuICAgIGlmICghb3JpZ2luKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRpb25zID0gdGhpcy5nZXRBaXJwb3J0UmVsYXRpb25zKG9yaWdpbik7XG5cbiAgICByZXR1cm4gcmVsYXRpb25zICYmIHJlbGF0aW9ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBaXJwb3J0UmVsYXRpb25zKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgcmV0dXJuIG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWlycG9ydFJlbGF0aW9uc1thaXJwb3J0LmNvZGUudG9Mb3dlckNhc2UoKV0gfHwgdGhpcy5haXJwb3J0UmVsYXRpb25zW2FpcnBvcnQuY29kZS50b1VwcGVyQ2FzZSgpXTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJPcmlnaW4oKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbih7XG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGNvdW50cnlOYW1lOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgYWlycG9ydE5hbWU6ICcnLFxuICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiAnJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWREZXN0aW5hdGlvbih7XG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGNvdW50cnlOYW1lOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgYWlycG9ydE5hbWU6ICcnLFxuICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiAnJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRlc3RpbmF0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSBuZXcgQXJyYXk8QWlycG9ydE1vZGVsPigpO1xuXG4gICAgY29uc3QgbW9kZWwgPSB7XG4gICAgICBuYW1lOiB0aGlzLnRleHRTZWxlY3RPcmlnaW5GaXJzdCxcbiAgICAgIGNvdW50cnlOYW1lOiAnJyxcbiAgICAgIGNvZGU6ICcnLFxuICAgICAgYWlycG9ydE5hbWU6ICcnLFxuICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiAnJ1xuICAgIH07XG5cbiAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24ucHVzaChtb2RlbCk7XG4gICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5jdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbiA9IHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbi5maWx0ZXIoYWlycG9ydCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmxhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uLnNvbWUoeCA9PiB4LmNvZGUgJiYgeC5jb2RlLnRvTG93ZXJDYXNlKCkgPT09IGFpcnBvcnQuY29kZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJleGlzdHMoY29tYm8pOyBlbHNlIGFpcnBvcnRTZWxlY3RUZW1wbGF0ZVwiXG4gIFtuYXNDbGFzc109XCJnZXRBaXJwb3J0U2VsZWN0Q29tYm9DbGFzcygpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhaXJwb3J0U2VsZWN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNhaXJwb3J0U2VsZWN0VGVtcGxhdGU+XG4gIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCcnLCBleGlzdHModXNlU3dpdGNoKSAmJiAncGFkZGluZy1vcmlnaW4nKVwiXG4gICAgKm5nSWY9XCJhaXJwb3J0c09yaWdpblwiPlxuICAgIDxuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24gI2FpcnBvcnRTZWxlY3REcm9wZG93bk9yaWdpblxuICAgICAgZGlzcGxheUxhdGVzdFNlYXJjaGVzXG4gICAgICBbZW5hYmxlR2VvbG9jYXRpb25dPVwiZGlzcGxheUNsb3Nlc3RBaXJwb3J0c1wiXG4gICAgICBbZGlzcGxheUNsb3Nlc3RBaXJwb3J0c109XCJkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0TGFiZWxdPVwibGFiZWxPcmlnaW5cIlxuICAgICAgW2xhdGVzdFNlYXJjaGVzXT1cImxhdGVzdFNlYXJjaGVzT3JpZ2luXCJcbiAgICAgIFtjbG9zZXN0QWlycG9ydHNdPVwiY2xvc2VzdEFpcnBvcnRzXCJcbiAgICAgIFthaXJwb3J0XT1cIm9yaWdpblwiXG4gICAgICBbYWlycG9ydHNdPVwiYWlycG9ydHNPcmlnaW5cIlxuICAgICAgW3Jlc3VsdHNMYWJlbHNdPVwicmVzdWx0c0xhYmVsc1wiXG4gICAgICBbYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyT3JpZ2luXCJcbiAgICAgIFtvcGVuXT1cIm9yaWdpbk9wZW5cIlxuICAgICAgW2tlZXBTZWxlY3Rpb25dPVwia2VlcFNlbGVjdGlvblwiXG4gICAgICBbYWlycG9ydFNlbGVjdEljb25Nb2RpZmllcl09XCInZmxpZ2h0LWRlcGFydHVyZSdcIlxuICAgICAgW25hc0Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVPcmlnaW5cIlxuICAgICAgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIlxuICAgICAgW2FyaWFMYWJlbENsZWFyXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICAoc2VsZWN0ZWQpPVwic2V0U2VsZWN0ZWRPcmlnaW4oJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvbk9yaWdpbk9wZW4oJGV2ZW50KVwiXG4gICAgICAoZm9jdXNPbk5leHQpPVwic2V0RGVzdGluYXRpb25PcGVuKCRldmVudClcIlxuICAgICAgKHBvc2l0aW9uQ2hhbmdlKT1cImdldENsb3Nlc3RBaXJwb3J0cygkZXZlbnQpXCI+PC9uYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhpc3RzKGNvbWJvKVwiPlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCcnLCBleGlzdHModXNlU3dpdGNoKSAmJiAncGFkZGluZy1kZXN0aW5hdGlvbicpXCJcbiAgICAgICpuZ0lmPVwiYWlycG9ydHNEZXN0aW5hdGlvbiAmJiBhaXJwb3J0c0Rlc3RpbmF0aW9uLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24gI2FpcnBvcnRTZWxlY3REcm9wZG93bkRlc3RpbmF0aW9uXG4gICAgICAgIGRpc3BsYXlMYXRlc3RTZWFyY2hlc1xuICAgICAgICBbYWlycG9ydFNlbGVjdExhYmVsXT1cImxhYmVsRGVzdGluYXRpb25cIlxuICAgICAgICBbZGlzcGxheUNsb3Nlc3RBaXJwb3J0c109XCJmYWxzZVwiXG4gICAgICAgIFtsYXRlc3RTZWFyY2hlc109XCJjdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvblwiXG4gICAgICAgIFthaXJwb3J0c109XCJhaXJwb3J0c0Rlc3RpbmF0aW9uXCJcbiAgICAgICAgW3Jlc3VsdHNMYWJlbHNdPVwicmVzdWx0c0xhYmVsc1wiXG4gICAgICAgIFthaXJwb3J0XT1cImRlc3RpbmF0aW9uXCJcbiAgICAgICAgW2FpcnBvcnRTZWxlY3RQbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckRlc3RpbmF0aW9uXCJcbiAgICAgICAgW29wZW5dPVwiZGVzdGluYXRpb25PcGVuXCJcbiAgICAgICAgW2tlZXBTZWxlY3Rpb25dPVwia2VlcFNlbGVjdGlvblwiXG4gICAgICAgIFthaXJwb3J0U2VsZWN0SWNvbk1vZGlmaWVyXT1cIidmbGlnaHQtYXJyaXZhbCdcIlxuICAgICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uXCJcbiAgICAgICAgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIlxuICAgICAgICBbYXJpYUxhYmVsQ2xlYXJdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgICBbaXNWYWxpZF09XCJpc0Rlc3RpbmF0aW9uVmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiaW52YWxpZERlc3RpbmF0aW9uVGV4dFwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZERlc3RpbmF0aW9uKCRldmVudClcIlxuICAgICAgICAob3BlbkNoYW5nZSk9XCJvbkRlc3RpbmF0aW9uT3BlbigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzT25OZXh0KT1cInNldEZvY3VzT25OZXh0KCRldmVudClcIlxuICAgICAgICAoZm9jdXNPblByZXZpb3VzKT1cIm9uT3JpZ2luRm9jdXMoKVwiPjwvbmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJleGlzdHModXNlU3dpdGNoKVwiXG4gICAgICAjc3dpdGNoQnV0dG9uXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoJ3N3aXRjaGVyJylcIlxuICAgICAgKG1vdXNlb3Zlcik9XCJjaGFuZ2VTd2l0Y2hJY29uKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiY2hhbmdlU3dpdGNoSWNvbigpXCJcbiAgICAgIChrZXlkb3duKT1cInN3YXBLZXlEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cInN3YXBBaXJwb3J0cygpXCI+XG4gICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3ZlY3RvcidcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,42 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { AirportSelectDropdownComponent } from './airport-select-dropdown/airport-select-dropdown.component';
5
+ import { AirportSelectNewComponent } from './airport-select-new.component';
6
+ import { NasClassModule } from '../../core/directives/nas-class/nas-class.module';
7
+ import { GeolocationService } from '../../core/services/geolocation/geolocation.service';
8
+ import { ButtonModule } from '../button/button.module';
9
+ import { IconModule } from '../icon/icon.module';
10
+ import * as i0 from "@angular/core";
11
+ export class AirportSelectNewModule {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewModule, declarations: [AirportSelectNewComponent, AirportSelectDropdownComponent], imports: [CommonModule,
14
+ FormsModule,
15
+ NasClassModule,
16
+ IconModule,
17
+ ReactiveFormsModule,
18
+ ButtonModule], exports: [AirportSelectNewComponent] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewModule, providers: [GeolocationService], imports: [CommonModule,
20
+ FormsModule,
21
+ NasClassModule,
22
+ IconModule,
23
+ ReactiveFormsModule,
24
+ ButtonModule] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ imports: [
30
+ CommonModule,
31
+ FormsModule,
32
+ NasClassModule,
33
+ IconModule,
34
+ ReactiveFormsModule,
35
+ ButtonModule
36
+ ],
37
+ declarations: [AirportSelectNewComponent, AirportSelectDropdownComponent],
38
+ exports: [AirportSelectNewComponent],
39
+ providers: [GeolocationService]
40
+ }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtbmV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWlycG9ydC1zZWxlY3QtbmV3L2FpcnBvcnQtc2VsZWN0LW5ldy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWVqRCxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixpQkFKbEIseUJBQXlCLEVBQUUsOEJBQThCLGFBUHRFLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLFVBQVU7WUFDVixtQkFBbUI7WUFDbkIsWUFBWSxhQUdKLHlCQUF5QjsrR0FHeEIsc0JBQXNCLGFBRnRCLENBQUMsa0JBQWtCLENBQUMsWUFUN0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsVUFBVTtZQUNWLG1CQUFtQjtZQUNuQixZQUFZOzsyRkFNSCxzQkFBc0I7a0JBYmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLDhCQUE4QixDQUFDO29CQUN6RSxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFpcnBvcnRTZWxlY3REcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vYWlycG9ydC1zZWxlY3QtZHJvcGRvd24vYWlycG9ydC1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEFpcnBvcnRTZWxlY3ROZXdDb21wb25lbnQgfSBmcm9tICcuL2FpcnBvcnQtc2VsZWN0LW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFzQ2xhc3NNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvbmFzLWNsYXNzL25hcy1jbGFzcy5tb2R1bGUnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOYXNDbGFzc01vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0FpcnBvcnRTZWxlY3ROZXdDb21wb25lbnQsIEFpcnBvcnRTZWxlY3REcm9wZG93bkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtBaXJwb3J0U2VsZWN0TmV3Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbR2VvbG9jYXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBaXJwb3J0U2VsZWN0TmV3TW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './airport-select-new.component';
2
+ export * from './airport-select-new.module';
3
+ // export * from './models/airport.model';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0LW5ldy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWlycG9ydC1zZWxlY3QtbmV3Lm1vZHVsZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL21vZGVscy9haXJwb3J0Lm1vZGVsJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWlycG9ydC1zZWxlY3QtbmV3L21vZGVscy9haXJwb3J0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFpcnBvcnRNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbiAgY291bnRyeU5hbWU6IHN0cmluZztcbiAgYWlycG9ydE5hbWU6IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gIG5vcndlZ2lhbkhvbGlkYXlBcmVhSWQ/OiBzdHJpbmc7XG4gIG5vcndlZ2lhbkhvbGlkYXlBcmVhVHlwZT86IHN0cmluZztcbn1cbiJdfQ==