@metadev/lux 0.26.0 → 0.28.0

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 (113) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -0
  4. package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +259 -0
  5. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +78 -0
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +156 -0
  7. package/{esm2020 → esm2022}/lib/datasource.mjs +1 -1
  8. package/esm2022/lib/datetime/datetime.component.mjs +312 -0
  9. package/esm2022/lib/filter/filter.component.mjs +158 -0
  10. package/esm2022/lib/geolocation/geolocation.component.mjs +423 -0
  11. package/esm2022/lib/geolocation/geolocation.service.mjs +123 -0
  12. package/{esm2020 → esm2022}/lib/geolocation/openlayer-loader.service.mjs +62 -62
  13. package/esm2022/lib/helperFns.mjs +118 -0
  14. package/esm2022/lib/input/input.component.mjs +469 -0
  15. package/{esm2020 → esm2022}/lib/input/regexp.service.mjs +195 -195
  16. package/{esm2020 → esm2022}/lib/lang.mjs +8 -8
  17. package/esm2022/lib/lux.module.mjs +119 -0
  18. package/{esm2020 → esm2022}/lib/map/geopoint.mjs +1 -1
  19. package/esm2022/lib/map/map.component.mjs +275 -0
  20. package/esm2022/lib/modal/modal-backdrop.mjs +25 -0
  21. package/esm2022/lib/modal/modal-config.mjs +12 -0
  22. package/{esm2020 → esm2022}/lib/modal/modal-dismiss-reasons.mjs +5 -5
  23. package/esm2022/lib/modal/modal-ref.mjs +101 -0
  24. package/esm2022/lib/modal/modal-stack.mjs +182 -0
  25. package/esm2022/lib/modal/modal-window.mjs +125 -0
  26. package/esm2022/lib/modal/modal.service.mjs +28 -0
  27. package/esm2022/lib/modal/util.mjs +82 -0
  28. package/esm2022/lib/pagination/pagination.component.mjs +144 -0
  29. package/{esm2020 → esm2022}/lib/pagination/pagination.mjs +1 -1
  30. package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -0
  31. package/esm2022/lib/select/select.component.mjs +148 -0
  32. package/{esm2020 → esm2022}/lib/tooltip/placement.mjs +7 -7
  33. package/{esm2020 → esm2022}/lib/tooltip/tooltip-context.mjs +1 -1
  34. package/esm2022/lib/tooltip/tooltip.component.mjs +24 -0
  35. package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -0
  36. package/esm2022/lib/tooltip/tooltip.service.mjs +137 -0
  37. package/esm2022/lib/tooltip/tooltop-content.mjs +9 -0
  38. package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -0
  39. package/{esm2020 → esm2022}/lib/window/window.service.mjs +45 -45
  40. package/{esm2020 → esm2022}/metadev-lux.mjs +4 -4
  41. package/{esm2020 → esm2022}/public-api.mjs +20 -20
  42. package/{fesm2020 → fesm2022}/metadev-lux.mjs +4377 -4260
  43. package/fesm2022/metadev-lux.mjs.map +1 -0
  44. package/index.d.ts +5 -5
  45. package/lib/autocomplete/autocomplete.component.d.ts +81 -81
  46. package/lib/autocomplete-list/autocomplete-list.component.d.ts +65 -65
  47. package/lib/breadcrumb/breadcrumb.component.d.ts +22 -22
  48. package/lib/checkbox/checkbox.component.d.ts +47 -47
  49. package/lib/datasource.d.ts +13 -13
  50. package/lib/datetime/datetime.component.d.ts +69 -69
  51. package/lib/filter/filter.component.d.ts +51 -51
  52. package/lib/geolocation/geolocation.component.d.ts +123 -123
  53. package/lib/geolocation/geolocation.service.d.ts +32 -32
  54. package/lib/geolocation/openlayer-loader.service.d.ts +7 -7
  55. package/lib/helperFns.d.ts +15 -15
  56. package/lib/input/input.component.d.ts +108 -108
  57. package/lib/input/regexp.service.d.ts +15 -15
  58. package/lib/lang.d.ts +2 -2
  59. package/lib/lux.module.d.ts +27 -27
  60. package/lib/map/geopoint.d.ts +7 -7
  61. package/lib/map/map.component.d.ts +39 -39
  62. package/lib/modal/modal-backdrop.d.ts +8 -8
  63. package/lib/modal/modal-config.d.ts +14 -14
  64. package/lib/modal/modal-dismiss-reasons.d.ts +4 -4
  65. package/lib/modal/modal-ref.d.ts +41 -41
  66. package/lib/modal/modal-stack.d.ts +31 -31
  67. package/lib/modal/modal-window.d.ts +28 -28
  68. package/lib/modal/modal.service.d.ts +19 -19
  69. package/lib/modal/util.d.ts +40 -40
  70. package/lib/pagination/pagination.component.d.ts +52 -52
  71. package/lib/pagination/pagination.d.ts +10 -10
  72. package/lib/radiogroup/radiogroup.component.d.ts +37 -37
  73. package/lib/select/select.component.d.ts +38 -38
  74. package/lib/tooltip/placement.d.ts +7 -7
  75. package/lib/tooltip/tooltip-context.d.ts +3 -3
  76. package/lib/tooltip/tooltip.component.d.ts +11 -11
  77. package/lib/tooltip/tooltip.directive.d.ts +27 -27
  78. package/lib/tooltip/tooltip.service.d.ts +20 -20
  79. package/lib/tooltip/tooltop-content.d.ts +6 -6
  80. package/lib/voice-recognition/voice-recognition.directive.d.ts +16 -16
  81. package/lib/window/window.service.d.ts +11 -11
  82. package/package.json +7 -14
  83. package/public-api.d.ts +18 -18
  84. package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -479
  85. package/esm2020/lib/autocomplete-list/autocomplete-list.component.mjs +0 -254
  86. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -75
  87. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -154
  88. package/esm2020/lib/datetime/datetime.component.mjs +0 -306
  89. package/esm2020/lib/filter/filter.component.mjs +0 -152
  90. package/esm2020/lib/geolocation/geolocation.component.mjs +0 -407
  91. package/esm2020/lib/geolocation/geolocation.service.mjs +0 -120
  92. package/esm2020/lib/helperFns.mjs +0 -117
  93. package/esm2020/lib/input/input.component.mjs +0 -452
  94. package/esm2020/lib/lux.module.mjs +0 -124
  95. package/esm2020/lib/map/map.component.mjs +0 -264
  96. package/esm2020/lib/modal/modal-backdrop.mjs +0 -26
  97. package/esm2020/lib/modal/modal-config.mjs +0 -14
  98. package/esm2020/lib/modal/modal-ref.mjs +0 -91
  99. package/esm2020/lib/modal/modal-stack.mjs +0 -179
  100. package/esm2020/lib/modal/modal-window.mjs +0 -119
  101. package/esm2020/lib/modal/modal.service.mjs +0 -26
  102. package/esm2020/lib/modal/util.mjs +0 -83
  103. package/esm2020/lib/pagination/pagination.component.mjs +0 -137
  104. package/esm2020/lib/radiogroup/radiogroup.component.mjs +0 -130
  105. package/esm2020/lib/select/select.component.mjs +0 -149
  106. package/esm2020/lib/tooltip/tooltip.component.mjs +0 -23
  107. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -60
  108. package/esm2020/lib/tooltip/tooltip.service.mjs +0 -134
  109. package/esm2020/lib/tooltip/tooltop-content.mjs +0 -7
  110. package/esm2020/lib/voice-recognition/voice-recognition.directive.mjs +0 -73
  111. package/fesm2015/metadev-lux.mjs +0 -4347
  112. package/fesm2015/metadev-lux.mjs.map +0 -1
  113. package/fesm2020/metadev-lux.mjs.map +0 -1
@@ -0,0 +1,275 @@
1
+ /* eslint-disable no-self-assign */
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { OpenLayerLoaderService } from '../geolocation/openlayer-loader.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../geolocation/openlayer-loader.service";
7
+ export class MapComponent {
8
+ static idCounter = 0;
9
+ loaded$ = new BehaviorSubject(false);
10
+ _map;
11
+ mapId;
12
+ _zoom;
13
+ set zoom(zoom) {
14
+ if (!isNaN(zoom)) {
15
+ this._zoom = zoom;
16
+ if (this._map) {
17
+ this._map.getView().setZoom(zoom);
18
+ }
19
+ }
20
+ }
21
+ get zoom() {
22
+ return this._zoom;
23
+ }
24
+ _center;
25
+ set center(center) {
26
+ if (center && center.coordinates && center.coordinates.length === 2) {
27
+ this._center = center;
28
+ if (this._map) {
29
+ this._map.getView().setCenter(ol.proj.fromLonLat(center.coordinates));
30
+ }
31
+ }
32
+ }
33
+ get center() {
34
+ return this._center;
35
+ }
36
+ _readonly;
37
+ set readonly(readonly) {
38
+ if (!readonly) {
39
+ if (this._map) {
40
+ this._map.on('click', (args) => {
41
+ // args.coordinate is in EPSG:3857 (meters), we transform it into EPSG:4326 (degrees)
42
+ const coordinates = ol.proj.toLonLat(args.coordinate);
43
+ // alternatively: const lonLat = ol.proj.transform(args.coordinate,'EPSG:3857','EPSG:4326');
44
+ this.addMarkerAtCoordinates(coordinates);
45
+ });
46
+ this._map.on('pointermove', (event) => {
47
+ const pixel = this._map.getEventPixel(event.originalEvent);
48
+ const hit = this._map.hasFeatureAtPixel(pixel);
49
+ this._map.getViewport().style.cursor = hit ? 'move' : 'grab';
50
+ });
51
+ }
52
+ }
53
+ else {
54
+ if (this._map) {
55
+ this._map.on('click', (args) => { });
56
+ this._map.on('pointermove', (event) => { });
57
+ this._map.getViewport().style.cursor = 'grab';
58
+ }
59
+ }
60
+ this._readonly = readonly;
61
+ // reset marker coordinates so marker interactions can be created or recreated accordingly
62
+ // to the changes to readonly
63
+ this.markerCoordinates = this.markerCoordinates;
64
+ }
65
+ get readonly() {
66
+ return this._readonly;
67
+ }
68
+ _marker;
69
+ _markerInteraction;
70
+ _markerCoordinates;
71
+ set markerCoordinates(markerCoordinates) {
72
+ if (markerCoordinates && markerCoordinates.length === 2) {
73
+ this._markerCoordinates = markerCoordinates;
74
+ if (this._map) {
75
+ this.addMarkerAtCoordinates(markerCoordinates);
76
+ }
77
+ }
78
+ else {
79
+ this._markerCoordinates = undefined;
80
+ if (this._map) {
81
+ this.removeMarker();
82
+ }
83
+ }
84
+ }
85
+ get markerCoordinates() {
86
+ return this._markerCoordinates;
87
+ }
88
+ set markerPoint(markerPoint) {
89
+ if (!markerPoint ||
90
+ !(markerPoint.coordinates && markerPoint.coordinates.length === 2)) {
91
+ this.markerCoordinates = undefined;
92
+ }
93
+ else {
94
+ this.markerCoordinates = [
95
+ +markerPoint.coordinates[0],
96
+ +markerPoint.coordinates[1]
97
+ ];
98
+ }
99
+ this.valueChange.emit(markerPoint);
100
+ }
101
+ get markerPoint() {
102
+ return {
103
+ type: 'Point',
104
+ coordinates: this.markerCoordinates
105
+ };
106
+ }
107
+ valueChange = new EventEmitter();
108
+ _markerSource;
109
+ _markerStyle;
110
+ constructor(olLoader) {
111
+ olLoader.load().subscribe((_) => {
112
+ // Initialize
113
+ this._markerSource = new ol.source.Vector();
114
+ this._markerStyle = new ol.style.Style({
115
+ image: new ol.style.Icon({
116
+ anchor: [0.5, 1],
117
+ scale: 0.25,
118
+ src: '/assets/img/marker.png'
119
+ })
120
+ });
121
+ this.loaded$.next(true);
122
+ });
123
+ }
124
+ ngOnInit() {
125
+ this.mapId = this.mapId ? this.mapId : 'map' + MapComponent.idCounter++;
126
+ }
127
+ ngAfterViewInit() {
128
+ this.loaded$.subscribe((loaded) => {
129
+ if (loaded) {
130
+ this.initMap();
131
+ }
132
+ });
133
+ }
134
+ initMap() {
135
+ this._map = new ol.Map({
136
+ target: this.mapId,
137
+ controls: ol.control.defaults({ attribution: false }),
138
+ layers: [
139
+ new ol.layer.Tile({
140
+ source: new ol.source.OSM()
141
+ }),
142
+ new ol.layer.Vector({
143
+ source: this._markerSource,
144
+ style: this._markerStyle
145
+ })
146
+ ],
147
+ view: new ol.View({
148
+ center: ol.proj.fromLonLat(this.center !== undefined ? this.center.coordinates : [0, 0]),
149
+ zoom: this.zoom
150
+ })
151
+ });
152
+ if (this.center === undefined || this.center === null) {
153
+ // if the center is not set, we set its default value
154
+ if ('geolocation' in navigator) {
155
+ navigator.geolocation.getCurrentPosition((position) => {
156
+ this.center = {
157
+ type: 'Point',
158
+ coordinates: [position.coords.longitude, position.coords.latitude]
159
+ };
160
+ }, (error) => {
161
+ this.center = {
162
+ type: 'Point',
163
+ coordinates: [0, 0]
164
+ };
165
+ });
166
+ }
167
+ else {
168
+ this.center = {
169
+ type: 'Point',
170
+ coordinates: [0, 0]
171
+ };
172
+ }
173
+ }
174
+ else {
175
+ // the center needs the map to be properly set, so if it was set before the map was initialized,
176
+ // we set the center again to perform necessary adjustements
177
+ this.center = this.center;
178
+ }
179
+ if (this.zoom === undefined || this.zoom === null) {
180
+ // if the zoom is not set, we set its default value
181
+ this.zoom = 18;
182
+ }
183
+ else {
184
+ // the zoom needs the map to be properly set, so if it was set before the map was initialized,
185
+ // we set the zoom again to perform necessary adjustements
186
+ this.zoom = this.zoom;
187
+ }
188
+ if (this.readonly === undefined || this.readonly === null) {
189
+ // if readonly is not set, we set its default value
190
+ this.readonly = false;
191
+ }
192
+ else {
193
+ // readonly needs the map to be properly set, so if it was set before the map was initialized,
194
+ // we set readonly again to perform necessary adjustements
195
+ this.readonly = this.readonly;
196
+ }
197
+ if (this.markerCoordinates !== undefined &&
198
+ this.markerCoordinates !== null) {
199
+ // the marker coordinates need the map to be properly set, so if they were set before the map was initialized,
200
+ // we set the marker coordinates again to perform necessary adjustements
201
+ this.markerCoordinates = this.markerCoordinates;
202
+ }
203
+ }
204
+ addMarkerAtCoordinates(coordinates) {
205
+ if (coordinates && coordinates.length === 2) {
206
+ if (this._marker !== undefined) {
207
+ this.removeMarker();
208
+ }
209
+ this._marker = new ol.Feature({
210
+ geometry: new ol.geom.Point(
211
+ // [lon, lat] is in EPSG:4326 (degrees), we transform it into EPSG:3857 (meters)
212
+ ol.proj.transform(coordinates, 'EPSG:4326', 'EPSG:3857'))
213
+ });
214
+ this._markerSource.addFeature(this._marker);
215
+ this._markerCoordinates = this.getMarkerCoordinates();
216
+ if (!this.readonly) {
217
+ const dragInteraction = new ol.interaction.Modify({
218
+ features: new ol.Collection([this._marker]),
219
+ style: this._markerStyle,
220
+ pixelTolerance: 50,
221
+ hitDetection: true
222
+ });
223
+ this._markerInteraction = dragInteraction;
224
+ this._map.addInteraction(dragInteraction);
225
+ }
226
+ this._marker.on('change', () => {
227
+ this._markerCoordinates = this.getMarkerCoordinates();
228
+ }, this._marker);
229
+ }
230
+ }
231
+ removeMarker() {
232
+ if (this._marker !== undefined) {
233
+ this._markerSource.removeFeature(this._marker);
234
+ this._marker = undefined;
235
+ }
236
+ if (this._markerInteraction !== undefined) {
237
+ this._map.getInteractions().pop();
238
+ this._markerInteraction = undefined;
239
+ }
240
+ }
241
+ getMarkerCoordinates() {
242
+ if (this._marker === undefined || this._marker == null) {
243
+ return this._marker;
244
+ }
245
+ const coordinates = this._marker.getGeometry().getCoordinates();
246
+ // coordinates is in EPSG:3857 (meters), we transform it into EPSG:4326 (degrees)
247
+ return ol.proj.transform(coordinates, 'EPSG:3857', 'EPSG:4326');
248
+ }
249
+ onResize() {
250
+ if (this._map) {
251
+ this._map.updateSize();
252
+ }
253
+ }
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MapComponent, deps: [{ token: i1.OpenLayerLoaderService }], target: i0.ɵɵFactoryTarget.Component });
255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MapComponent, selector: "lux-map", inputs: { mapId: "mapId", zoom: "zoom", center: "center", readonly: "readonly", markerCoordinates: "markerCoordinates", markerPoint: "markerPoint" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [id]=\"mapId\" class=\"map\" (resized)=\"onResize()\"></div>\n", styles: [".map{min-height:100px;height:100%;min-width:160px;width:100%}\n"] });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MapComponent, decorators: [{
258
+ type: Component,
259
+ args: [{ selector: 'lux-map', template: "<div [id]=\"mapId\" class=\"map\" (resized)=\"onResize()\"></div>\n", styles: [".map{min-height:100px;height:100%;min-width:160px;width:100%}\n"] }]
260
+ }], ctorParameters: () => [{ type: i1.OpenLayerLoaderService }], propDecorators: { mapId: [{
261
+ type: Input
262
+ }], zoom: [{
263
+ type: Input
264
+ }], center: [{
265
+ type: Input
266
+ }], readonly: [{
267
+ type: Input
268
+ }], markerCoordinates: [{
269
+ type: Input
270
+ }], markerPoint: [{
271
+ type: Input
272
+ }], valueChange: [{
273
+ type: Output
274
+ }] } });
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL21hcC9tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvbWFwL21hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFFbkMsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFZakYsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFFYixPQUFPLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRS9ELElBQUksQ0FBTTtJQUVULEtBQUssQ0FBQztJQUVmLEtBQUssQ0FBUztJQUNkLElBQ0ksSUFBSSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sQ0FBVztJQUNsQixJQUNJLE1BQU0sQ0FBQyxNQUFnQjtRQUN6QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxX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SSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3JCO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoRSxpRkFBaUY7UUFDakYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7dUdBdlJVLFlBQVk7MkZBQVosWUFBWSw4T0N2QnpCLHFFQUNBOzsyRkRzQmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTOzJGQVdWLEtBQUs7c0JBQWIsS0FBSztnQkFJRixJQUFJO3NCQURQLEtBQUs7Z0JBZUYsTUFBTTtzQkFEVCxLQUFLO2dCQWVGLFFBQVE7c0JBRFgsS0FBSztnQkFvQ00saUJBQWlCO3NCQUQ1QixLQUFLO2dCQWtCRixXQUFXO3NCQURkLEtBQUs7Z0JBcUJJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1zZWxmLWFzc2lnbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPcGVuTGF5ZXJMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VvbG9jYXRpb24vb3BlbmxheWVyLWxvYWRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgR2VvUG9pbnQgfSBmcm9tICcuL2dlb3BvaW50JztcblxuLy8gQGR5bmFtaWNcbmRlY2xhcmUgY29uc3Qgb2w6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICBwcml2YXRlIGxvYWRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHByaXZhdGUgX21hcDogYW55O1xuXG4gIEBJbnB1dCgpIG1hcElkO1xuXG4gIF96b29tOiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIHNldCB6b29tKHpvb206IG51bWJlcikge1xuICAgIGlmICghaXNOYU4oem9vbSkpIHtcbiAgICAgIHRoaXMuX3pvb20gPSB6b29tO1xuICAgICAgaWYgKHRoaXMuX21hcCkge1xuICAgICAgICB0aGlzLl9tYXAuZ2V0VmlldygpLnNldFpvb20oem9vbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCB6b29tKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3pvb207XG4gIH1cblxuICBfY2VudGVyOiBHZW9Qb2ludDtcbiAgQElucHV0KClcbiAgc2V0IGNlbnRlcihjZW50ZXI6IEdlb1BvaW50KSB7XG4gICAgaWYgKGNlbnRlciAmJiBjZW50ZXIuY29vcmRpbmF0ZXMgJiYgY2VudGVyLmNvb3JkaW5hdGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgdGhpcy5fY2VudGVyID0gY2VudGVyO1xuICAgICAgaWYgKHRoaXMuX21hcCkge1xuICAgICAgICB0aGlzLl9tYXAuZ2V0VmlldygpLnNldENlbnRlcihvbC5wcm9qLmZyb21Mb25MYXQoY2VudGVyLmNvb3JkaW5hdGVzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCBjZW50ZXIoKTogR2VvUG9pbnQge1xuICAgIHJldHVybiB0aGlzLl9jZW50ZXI7XG4gIH1cblxuICBfcmVhZG9ubHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNldCByZWFkb25seShyZWFkb25seTogYm9vbGVhbikge1xuICAgIGlmICghcmVhZG9ubHkpIHtcbiAgICAgIGlmICh0aGlzLl9tYXApIHtcbiAgICAgICAgdGhpcy5fbWFwLm9uKCdjbGljaycsIChhcmdzOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBhcmdzLmNvb3JkaW5hdGUgaXMgaW4gRVBTRzozODU3IChtZXRlcnMpLCB3ZSB0cmFuc2Zvcm0gaXQgaW50byBFUFNHOjQzMjYgKGRlZ3JlZXMpXG4gICAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBvbC5wcm9qLnRvTG9uTGF0KGFyZ3MuY29vcmRpbmF0ZSk7XG4gICAgICAgICAgLy8gYWx0ZXJuYXRpdmVseTogY29uc3QgbG9uTGF0ID0gb2wucHJvai50cmFuc2Zvcm0oYXJncy5jb29yZGluYXRlLCdFUFNHOjM4NTcnLCdFUFNHOjQzMjYnKTtcbiAgICAgICAgICB0aGlzLmFkZE1hcmtlckF0Q29vcmRpbmF0ZXMoY29vcmRpbmF0ZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbWFwLm9uKCdwb2ludGVybW92ZScsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGl4ZWwgPSB0aGlzLl9tYXAuZ2V0RXZlbnRQaXhlbChldmVudC5vcmlnaW5hbEV2ZW50KTtcbiAgICAgICAgICBjb25zdCBoaXQgPSB0aGlzLl9tYXAuaGFzRmVhdHVyZUF0UGl4ZWwocGl4ZWwpO1xuICAgICAgICAgIHRoaXMuX21hcC5nZXRWaWV3cG9ydCgpLnN0eWxlLmN1cnNvciA9IGhpdCA/ICdtb3ZlJyA6ICdncmFiJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9tYXApIHtcbiAgICAgICAgdGhpcy5fbWFwLm9uKCdjbGljaycsIChhcmdzOiBhbnkpID0+IHt9KTtcbiAgICAgICAgdGhpcy5fbWFwLm9uKCdwb2ludGVybW92ZScsIChldmVudDogYW55KSA9PiB7fSk7XG4gICAgICAgIHRoaXMuX21hcC5nZXRWaWV3cG9ydCgpLnN0eWxlLmN1cnNvciA9ICdncmFiJztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcmVhZG9ubHkgPSByZWFkb25seTtcbiAgICAvLyByZXNldCBtYXJrZXIgY29vcmRpbmF0ZXMgc28gbWFya2VyIGludGVyYWN0aW9ucyBjYW4gYmUgY3JlYXRlZCBvciByZWNyZWF0ZWQgYWNjb3JkaW5nbHlcbiAgICAvLyB0byB0aGUgY2hhbmdlcyB0byByZWFkb25seVxuICAgIHRoaXMubWFya2VyQ29vcmRpbmF0ZXMgPSB0aGlzLm1hcmtlckNvb3JkaW5hdGVzO1xuICB9XG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cblxuICBwcml2YXRlIF9tYXJrZXI6IGFueTtcbiAgcHJpdmF0ZSBfbWFya2VySW50ZXJhY3Rpb246IGFueTtcbiAgcHJpdmF0ZSBfbWFya2VyQ29vcmRpbmF0ZXM6IG51bWJlcltdO1xuICBASW5wdXQoKVxuICBwcml2YXRlIHNldCBtYXJrZXJDb29yZGluYXRlcyhtYXJrZXJDb29yZGluYXRlczogbnVtYmVyW10pIHtcbiAgICBpZiAobWFya2VyQ29vcmRpbmF0ZXMgJiYgbWFya2VyQ29vcmRpbmF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICB0aGlzLl9tYXJrZXJDb29yZGluYXRlcyA9IG1hcmtlckNvb3JkaW5hdGVzO1xuICAgICAgaWYgKHRoaXMuX21hcCkge1xuICAgICAgICB0aGlzLmFkZE1hcmtlckF0Q29vcmRpbmF0ZXMobWFya2VyQ29vcmRpbmF0ZXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tYXJrZXJDb29yZGluYXRlcyA9IHVuZGVmaW5lZDtcbiAgICAgIGlmICh0aGlzLl9tYXApIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNYXJrZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgbWFya2VyQ29vcmRpbmF0ZXMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXJDb29yZGluYXRlcztcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgbWFya2VyUG9pbnQobWFya2VyUG9pbnQ6IEdlb1BvaW50KSB7XG4gICAgaWYgKFxuICAgICAgIW1hcmtlclBvaW50IHx8XG4gICAgICAhKG1hcmtlclBvaW50LmNvb3JkaW5hdGVzICYmIG1hcmtlclBvaW50LmNvb3JkaW5hdGVzLmxlbmd0aCA9PT0gMilcbiAgICApIHtcbiAgICAgIHRoaXMubWFya2VyQ29vcmRpbmF0ZXMgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFya2VyQ29vcmRpbmF0ZXMgPSBbXG4gICAgICAgICttYXJrZXJQb2ludC5jb29yZGluYXRlc1swXSxcbiAgICAgICAgK21hcmtlclBvaW50LmNvb3JkaW5hdGVzWzFdXG4gICAgICBdO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobWFya2VyUG9pbnQpO1xuICB9XG4gIGdldCBtYXJrZXJQb2ludCgpOiBHZW9Qb2ludCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICBjb29yZGluYXRlczogdGhpcy5tYXJrZXJDb29yZGluYXRlc1xuICAgIH07XG4gIH1cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHZW9Qb2ludD4oKTtcblxuICBwcml2YXRlIF9tYXJrZXJTb3VyY2U6IGFueTtcbiAgcHJpdmF0ZSBfbWFya2VyU3R5bGU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihvbExvYWRlcjogT3BlbkxheWVyTG9hZGVyU2VydmljZSkge1xuICAgIG9sTG9hZGVyLmxvYWQoKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIC8vIEluaXRpYWxpemVcbiAgICAgIHRoaXMuX21hcmtlclNvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCk7XG4gICAgICB0aGlzLl9tYXJrZXJTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XG4gICAgICAgIGltYWdlOiBuZXcgb2wuc3R5bGUuSWNvbih7XG4gICAgICAgICAgYW5jaG9yOiBbMC41LCAxXSxcbiAgICAgICAgICBzY2FsZTogMC4yNSxcbiAgICAgICAgICBzcmM6ICcvYXNzZXRzL2ltZy9tYXJrZXIucG5nJ1xuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWRlZCQubmV4dCh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWFwSWQgPSB0aGlzLm1hcElkID8gdGhpcy5tYXBJZCA6ICdtYXAnICsgTWFwQ29tcG9uZW50LmlkQ291bnRlcisrO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGVkJC5zdWJzY3JpYmUoKGxvYWRlZCkgPT4ge1xuICAgICAgaWYgKGxvYWRlZCkge1xuICAgICAgICB0aGlzLmluaXRNYXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGluaXRNYXAoKTogdm9pZCB7XG4gICAgdGhpcy5fbWFwID0gbmV3IG9sLk1hcCh7XG4gICAgICB0YXJnZXQ6IHRoaXMubWFwSWQsXG4gICAgICBjb250cm9sczogb2wuY29udHJvbC5kZWZhdWx0cyh7IGF0dHJpYnV0aW9uOiBmYWxzZSB9KSxcbiAgICAgIGxheWVyczogW1xuICAgICAgICBuZXcgb2wubGF5ZXIuVGlsZSh7XG4gICAgICAgICAgc291cmNlOiBuZXcgb2wuc291cmNlLk9TTSgpXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgb2wubGF5ZXIuVmVjdG9yKHtcbiAgICAgICAgICBzb3VyY2U6IHRoaXMuX21hcmtlclNvdXJjZSxcbiAgICAgICAgICBzdHlsZTogdGhpcy5fbWFya2VyU3R5bGVcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICB2aWV3OiBuZXcgb2wuVmlldyh7XG4gICAgICAgIGNlbnRlcjogb2wucHJvai5mcm9tTG9uTGF0KFxuICAgICAgICAgIHRoaXMuY2VudGVyICE9PSB1bmRlZmluZWQgPyB0aGlzLmNlbnRlci5jb29yZGluYXRlcyA6IFswLCAwXVxuICAgICAgICApLFxuICAgICAgICB6b29tOiB0aGlzLnpvb21cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jZW50ZXIgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmNlbnRlciA9PT0gbnVsbCkge1xuICAgICAgLy8gaWYgdGhlIGNlbnRlciBpcyBub3Qgc2V0LCB3ZSBzZXQgaXRzIGRlZmF1bHQgdmFsdWVcbiAgICAgIGlmICgnZ2VvbG9jYXRpb24nIGluIG5hdmlnYXRvcikge1xuICAgICAgICBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKFxuICAgICAgICAgIChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZW50ZXIgPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSwgcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZW50ZXIgPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbMCwgMF1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jZW50ZXIgPSB7XG4gICAgICAgICAgdHlwZTogJ1BvaW50JyxcbiAgICAgICAgICBjb29yZGluYXRlczogWzAsIDBdXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZSBjZW50ZXIgbmVlZHMgdGhlIG1hcCB0byBiZSBwcm9wZXJseSBzZXQsIHNvIGlmIGl0IHdhcyBzZXQgYmVmb3JlIHRoZSBtYXAgd2FzIGluaXRpYWxpemVkLFxuICAgICAgLy8gd2Ugc2V0IHRoZSBjZW50ZXIgYWdhaW4gdG8gcGVyZm9ybSBuZWNlc3NhcnkgYWRqdXN0ZW1lbnRzXG4gICAgICB0aGlzLmNlbnRlciA9IHRoaXMuY2VudGVyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnpvb20gPT09IHVuZGVmaW5lZCB8fCB0aGlzLnpvb20gPT09IG51bGwpIHtcbiAgICAgIC8vIGlmIHRoZSB6b29tIGlzIG5vdCBzZXQsIHdlIHNldCBpdHMgZGVmYXVsdCB2YWx1ZVxuICAgICAgdGhpcy56b29tID0gMTg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZSB6b29tIG5lZWRzIHRoZSBtYXAgdG8gYmUgcHJvcGVybHkgc2V0LCBzbyBpZiBpdCB3YXMgc2V0IGJlZm9yZSB0aGUgbWFwIHdhcyBpbml0aWFsaXplZCxcbiAgICAgIC8vIHdlIHNldCB0aGUgem9vbSBhZ2FpbiB0byBwZXJmb3JtIG5lY2Vzc2FyeSBhZGp1c3RlbWVudHNcbiAgICAgIHRoaXMuem9vbSA9IHRoaXMuem9vbTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVhZG9ubHkgPT09IG51bGwpIHtcbiAgICAgIC8vIGlmIHJlYWRvbmx5IGlzIG5vdCBzZXQsIHdlIHNldCBpdHMgZGVmYXVsdCB2YWx1ZVxuICAgICAgdGhpcy5yZWFkb25seSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyByZWFkb25seSBuZWVkcyB0aGUgbWFwIHRvIGJlIHByb3Blcmx5IHNldCwgc28gaWYgaXQgd2FzIHNldCBiZWZvcmUgdGhlIG1hcCB3YXMgaW5pdGlhbGl6ZWQsXG4gICAgICAvLyB3ZSBzZXQgcmVhZG9ubHkgYWdhaW4gdG8gcGVyZm9ybSBuZWNlc3NhcnkgYWRqdXN0ZW1lbnRzXG4gICAgICB0aGlzLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLm1hcmtlckNvb3JkaW5hdGVzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMubWFya2VyQ29vcmRpbmF0ZXMgIT09IG51bGxcbiAgICApIHtcbiAgICAgIC8vIHRoZSBtYXJrZXIgY29vcmRpbmF0ZXMgbmVlZCB0aGUgbWFwIHRvIGJlIHByb3Blcmx5IHNldCwgc28gaWYgdGhleSB3ZXJlIHNldCBiZWZvcmUgdGhlIG1hcCB3YXMgaW5pdGlhbGl6ZWQsXG4gICAgICAvLyB3ZSBzZXQgdGhlIG1hcmtlciBjb29yZGluYXRlcyBhZ2FpbiB0byBwZXJmb3JtIG5lY2Vzc2FyeSBhZGp1c3RlbWVudHNcbiAgICAgIHRoaXMubWFya2VyQ29vcmRpbmF0ZXMgPSB0aGlzLm1hcmtlckNvb3JkaW5hdGVzO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkTWFya2VyQXRDb29yZGluYXRlcyhjb29yZGluYXRlczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICBpZiAoY29vcmRpbmF0ZXMgJiYgY29vcmRpbmF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBpZiAodGhpcy5fbWFya2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNYXJrZXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX21hcmtlciA9IG5ldyBvbC5GZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IG5ldyBvbC5nZW9tLlBvaW50KFxuICAgICAgICAgIC8vIFtsb24sIGxhdF0gaXMgaW4gRVBTRzo0MzI2IChkZWdyZWVzKSwgd2UgdHJhbnNmb3JtIGl0IGludG8gRVBTRzozODU3IChtZXRlcnMpXG4gICAgICAgICAgb2wucHJvai50cmFuc2Zvcm0oY29vcmRpbmF0ZXMsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3JylcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgICB0aGlzLl9tYXJrZXJTb3VyY2UuYWRkRmVhdHVyZSh0aGlzLl9tYXJrZXIpO1xuICAgICAgdGhpcy5fbWFya2VyQ29vcmRpbmF0ZXMgPSB0aGlzLmdldE1hcmtlckNvb3JkaW5hdGVzKCk7XG5cbiAgICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgICBjb25zdCBkcmFnSW50ZXJhY3Rpb24gPSBuZXcgb2wuaW50ZXJhY3Rpb24uTW9kaWZ5KHtcbiAgICAgICAgICBmZWF0dXJlczogbmV3IG9sLkNvbGxlY3Rpb24oW3RoaXMuX21hcmtlcl0pLFxuICAgICAgICAgIHN0eWxlOiB0aGlzLl9tYXJrZXJTdHlsZSxcbiAgICAgICAgICBwaXhlbFRvbGVyYW5jZTogNTAsXG4gICAgICAgICAgaGl0RGV0ZWN0aW9uOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9tYXJrZXJJbnRlcmFjdGlvbiA9IGRyYWdJbnRlcmFjdGlvbjtcbiAgICAgICAgdGhpcy5fbWFwLmFkZEludGVyYWN0aW9uKGRyYWdJbnRlcmFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX21hcmtlci5vbihcbiAgICAgICAgJ2NoYW5nZScsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLl9tYXJrZXJDb29yZGluYXRlcyA9IHRoaXMuZ2V0TWFya2VyQ29vcmRpbmF0ZXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5fbWFya2VyXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTWFya2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9tYXJrZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fbWFya2VyU291cmNlLnJlbW92ZUZlYXR1cmUodGhpcy5fbWFya2VyKTtcbiAgICAgIHRoaXMuX21hcmtlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX21hcmtlckludGVyYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX21hcC5nZXRJbnRlcmFjdGlvbnMoKS5wb3AoKTtcbiAgICAgIHRoaXMuX21hcmtlckludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWFya2VyQ29vcmRpbmF0ZXMoKTogbnVtYmVyW10gfCBudWxsIHtcbiAgICBpZiAodGhpcy5fbWFya2VyID09PSB1bmRlZmluZWQgfHwgdGhpcy5fbWFya2VyID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXJrZXI7XG4gICAgfVxuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gdGhpcy5fbWFya2VyLmdldEdlb21ldHJ5KCkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICAvLyBjb29yZGluYXRlcyBpcyBpbiBFUFNHOjM4NTcgKG1ldGVycyksIHdlIHRyYW5zZm9ybSBpdCBpbnRvIEVQU0c6NDMyNiAoZGVncmVlcylcbiAgICByZXR1cm4gb2wucHJvai50cmFuc2Zvcm0oY29vcmRpbmF0ZXMsICdFUFNHOjM4NTcnLCAnRVBTRzo0MzI2Jyk7XG4gIH1cblxuICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbWFwKSB7XG4gICAgICB0aGlzLl9tYXAudXBkYXRlU2l6ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbaWRdPVwibWFwSWRcIiBjbGFzcz1cIm1hcFwiIChyZXNpemVkKT1cIm9uUmVzaXplKClcIj48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LuxModalBackdropComponent {
4
+ backdropClass;
5
+ class = 'modal-backdrop fade show';
6
+ style = 'z-index: 1050';
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LuxModalBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: LuxModalBackdropComponent, selector: "lux-modal-backdrop", inputs: { backdropClass: "backdropClass" }, host: { properties: { "class": "this.class", "style": "this.style" } }, ngImport: i0, template: '', isInline: true });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LuxModalBackdropComponent, decorators: [{
11
+ type: Component,
12
+ args: [{
13
+ selector: 'lux-modal-backdrop',
14
+ template: ''
15
+ }]
16
+ }], propDecorators: { backdropClass: [{
17
+ type: Input
18
+ }], class: [{
19
+ type: HostBinding,
20
+ args: ['class']
21
+ }], style: [{
22
+ type: HostBinding,
23
+ args: ['style']
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi9tb2RhbC9tb2RhbC1iYWNrZHJvcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTTVELE1BQU0sT0FBTyx5QkFBeUI7SUFDM0IsYUFBYSxDQUFTO0lBRVQsS0FBSyxHQUFHLDBCQUEwQixDQUFDO0lBQ25DLEtBQUssR0FBRyxlQUFlLENBQUM7dUdBSm5DLHlCQUF5QjsyRkFBekIseUJBQXlCLDhLQUYxQixFQUFFOzsyRkFFRCx5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OEJBRVUsYUFBYTtzQkFBckIsS0FBSztnQkFFZ0IsS0FBSztzQkFBMUIsV0FBVzt1QkFBQyxPQUFPO2dCQUNFLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmd9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsdXgtbW9kYWwtYmFja2Ryb3AnLFxuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgTHV4TW9kYWxCYWNrZHJvcENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnbW9kYWwtYmFja2Ryb3AgZmFkZSBzaG93JztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIHN0eWxlID0gJ3otaW5kZXg6IDEwNTAnO1xufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LuxModalConfig {
4
+ backdrop = true;
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LuxModalConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LuxModalConfig, providedIn: 'root' });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LuxModalConfig, decorators: [{
9
+ type: Injectable,
10
+ args: [{ providedIn: 'root' }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvbW9kYWwvbW9kYWwtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWTNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLENBQUM7dUdBREwsY0FBYzsyR0FBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEx1eE1vZGFsT3B0aW9ucyB7XG4gIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZztcbiAgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIGJhY2tkcm9wPzogYm9vbGVhbjtcbiAga2V5Ym9hcmQ/OiBib29sZWFuO1xuICB3aW5kb3dDbGFzcz86IHN0cmluZztcbiAgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMdXhNb2RhbENvbmZpZyBpbXBsZW1lbnRzIEx1eE1vZGFsT3B0aW9ucyB7XG4gIGJhY2tkcm9wID0gdHJ1ZTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- export var ModalDismissReasons;
2
- (function (ModalDismissReasons) {
3
- ModalDismissReasons[ModalDismissReasons["BackdropClick"] = 0] = "BackdropClick";
4
- ModalDismissReasons[ModalDismissReasons["Esc"] = 1] = "Esc";
5
- })(ModalDismissReasons || (ModalDismissReasons = {}));
1
+ export var ModalDismissReasons;
2
+ (function (ModalDismissReasons) {
3
+ ModalDismissReasons[ModalDismissReasons["BackdropClick"] = 0] = "BackdropClick";
4
+ ModalDismissReasons[ModalDismissReasons["Esc"] = 1] = "Esc";
5
+ })(ModalDismissReasons || (ModalDismissReasons = {}));
6
6
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGlzbWlzcy1yZWFzb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvbW9kYWwvbW9kYWwtZGlzbWlzcy1yZWFzb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQUdYO0FBSEQsV0FBWSxtQkFBbUI7SUFDM0IsK0VBQWEsQ0FBQTtJQUNiLDJEQUFHLENBQUE7QUFDUCxDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE1vZGFsRGlzbWlzc1JlYXNvbnMge1xuICAgIEJhY2tkcm9wQ2xpY2ssXG4gICAgRXNjXG59XG4iXX0=
@@ -0,0 +1,101 @@
1
+ export class ActiveModal {
2
+ close(result) { }
3
+ dismiss(reason) { }
4
+ }
5
+ export class ModalRef {
6
+ _windowCmptRef;
7
+ _contentRef;
8
+ _backdropCmptRef;
9
+ _beforeDismiss;
10
+ _resolve;
11
+ _reject;
12
+ /**
13
+ * The instance of a component used for the modal content.
14
+ *
15
+ * When a `TemplateRef` is used as the content, will return `undefined`.
16
+ */
17
+ get componentInstance() {
18
+ if (this._contentRef.componentRef) {
19
+ return this._contentRef.componentRef.instance;
20
+ }
21
+ }
22
+ /**
23
+ * The promise that is resolved when the modal is closed and rejected when the modal is dismissed.
24
+ */
25
+ result;
26
+ constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {
27
+ this._windowCmptRef = _windowCmptRef;
28
+ this._contentRef = _contentRef;
29
+ this._backdropCmptRef = _backdropCmptRef;
30
+ this._beforeDismiss = _beforeDismiss;
31
+ _windowCmptRef.instance.dismissEvent.subscribe((reason) => {
32
+ this.dismiss(reason);
33
+ });
34
+ this.result = new Promise((resolve, reject) => {
35
+ this._resolve = resolve;
36
+ this._reject = reject;
37
+ });
38
+ this.result.then(null, () => { });
39
+ }
40
+ /**
41
+ * Closes the modal with an optional `result` value.
42
+ *
43
+ * The `NgbMobalRef.result` promise will be resolved with the provided value.
44
+ */
45
+ close(result) {
46
+ if (this._windowCmptRef) {
47
+ if (this._resolve) {
48
+ this._resolve(result);
49
+ }
50
+ this._removeModalElements();
51
+ }
52
+ }
53
+ _dismiss(reason) {
54
+ if (this._reject) {
55
+ this._reject(reason);
56
+ }
57
+ this._removeModalElements();
58
+ }
59
+ /**
60
+ * Dismisses the modal with an optional `reason` value.
61
+ *
62
+ * The `NgbModalRef.result` promise will be rejected with the provided value.
63
+ */
64
+ dismiss(reason) {
65
+ if (this._windowCmptRef) {
66
+ if (!this._beforeDismiss) {
67
+ this._dismiss(reason);
68
+ }
69
+ else {
70
+ const dismiss = this._beforeDismiss();
71
+ if (dismiss && dismiss.then) {
72
+ dismiss.then((result) => {
73
+ if (result !== false) {
74
+ this._dismiss(reason);
75
+ }
76
+ }, () => { });
77
+ }
78
+ else if (dismiss !== false) {
79
+ this._dismiss(reason);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ _removeModalElements() {
85
+ const windowNativeEl = this._windowCmptRef.location.nativeElement;
86
+ windowNativeEl.parentNode.removeChild(windowNativeEl);
87
+ this._windowCmptRef.destroy();
88
+ if (this._backdropCmptRef) {
89
+ const backdropNativeEl = this._backdropCmptRef.location.nativeElement;
90
+ backdropNativeEl.parentNode.removeChild(backdropNativeEl);
91
+ this._backdropCmptRef.destroy();
92
+ }
93
+ if (this._contentRef && this._contentRef.viewRef) {
94
+ this._contentRef.viewRef.destroy();
95
+ }
96
+ this._windowCmptRef = null;
97
+ this._backdropCmptRef = null;
98
+ this._contentRef = null;
99
+ }
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvbW9kYWwvbW9kYWwtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLEtBQUssQ0FBQyxNQUFZLElBQVMsQ0FBQztJQUM1QixPQUFPLENBQUMsTUFBWSxJQUFTLENBQUM7Q0FDL0I7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQXFCVDtJQUNBO0lBQ0E7SUFDQTtJQXZCRixRQUFRLENBQXlCO0lBQ2pDLE9BQU8sQ0FBeUI7SUFFeEM7Ozs7T0FJRztJQUNILElBQUksaUJBQWlCO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQWU7SUFFckIsWUFDVSxjQUFxRCxFQUNyRCxXQUF1QixFQUN2QixnQkFBMEQsRUFDMUQsY0FBMEI7UUFIMUIsbUJBQWMsR0FBZCxjQUFjLENBQXVDO1FBQ3JELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMEM7UUFDMUQsbUJBQWMsR0FBZCxjQUFjLENBQVk7UUFFbEMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQVk7UUFDM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxNQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDVCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7NEJBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3ZCO29CQUNILENBQUMsRUFDRCxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQ1QsQ0FBQztpQkFDSDtxQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3ZCO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ2xFLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN0RSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEx1eE1vZGFsV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC13aW5kb3cnO1xuaW1wb3J0IHsgQ29udGVudFJlZiB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBMdXhNb2RhbEJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1iYWNrZHJvcCc7XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVNb2RhbCB7XG4gIGNsb3NlKHJlc3VsdD86IGFueSk6IHZvaWQge31cbiAgZGlzbWlzcyhyZWFzb24/OiBhbnkpOiB2b2lkIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RhbFJlZiB7XG4gIHByaXZhdGUgX3Jlc29sdmU6IChyZXN1bHQ/OiBhbnkpID0+IHZvaWQ7XG4gIHByaXZhdGUgX3JlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIGEgY29tcG9uZW50IHVzZWQgZm9yIHRoZSBtb2RhbCBjb250ZW50LlxuICAgKlxuICAgKiBXaGVuIGEgYFRlbXBsYXRlUmVmYCBpcyB1c2VkIGFzIHRoZSBjb250ZW50LCB3aWxsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGdldCBjb21wb25lbnRJbnN0YW5jZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLl9jb250ZW50UmVmLmNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBhbmQgcmVqZWN0ZWQgd2hlbiB0aGUgbW9kYWwgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgcmVzdWx0OiBQcm9taXNlPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfd2luZG93Q21wdFJlZjogQ29tcG9uZW50UmVmPEx1eE1vZGFsV2luZG93Q29tcG9uZW50PixcbiAgICBwcml2YXRlIF9jb250ZW50UmVmOiBDb250ZW50UmVmLFxuICAgIHByaXZhdGUgX2JhY2tkcm9wQ21wdFJlZj86IENvbXBvbmVudFJlZjxMdXhNb2RhbEJhY2tkcm9wQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9iZWZvcmVEaXNtaXNzPzogKCkgPT4gYW55XG4gICkge1xuICAgIF93aW5kb3dDbXB0UmVmLmluc3RhbmNlLmRpc21pc3NFdmVudC5zdWJzY3JpYmUoKHJlYXNvbjogYW55KSA9PiB7XG4gICAgICB0aGlzLmRpc21pc3MocmVhc29uKTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVzdWx0ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fcmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICB0aGlzLl9yZWplY3QgPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5yZXN1bHQudGhlbihudWxsLCAoKSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCB3aXRoIGFuIG9wdGlvbmFsIGByZXN1bHRgIHZhbHVlLlxuICAgKlxuICAgKiBUaGUgYE5nYk1vYmFsUmVmLnJlc3VsdGAgcHJvbWlzZSB3aWxsIGJlIHJlc29sdmVkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLlxuICAgKi9cbiAgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3dpbmRvd0NtcHRSZWYpIHtcbiAgICAgIGlmICh0aGlzLl9yZXNvbHZlKSB7XG4gICAgICAgIHRoaXMuX3Jlc29sdmUocmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbW92ZU1vZGFsRWxlbWVudHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kaXNtaXNzKHJlYXNvbj86IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWplY3QpIHtcbiAgICAgIHRoaXMuX3JlamVjdChyZWFzb24pO1xuICAgIH1cbiAgICB0aGlzLl9yZW1vdmVNb2RhbEVsZW1lbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBtb2RhbCB3aXRoIGFuIG9wdGlvbmFsIGByZWFzb25gIHZhbHVlLlxuICAgKlxuICAgKiBUaGUgYE5nYk1vZGFsUmVmLnJlc3VsdGAgcHJvbWlzZSB3aWxsIGJlIHJlamVjdGVkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLlxuICAgKi9cbiAgZGlzbWlzcyhyZWFzb24/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd2luZG93Q21wdFJlZikge1xuICAgICAgaWYgKCF0aGlzLl9iZWZvcmVEaXNtaXNzKSB7XG4gICAgICAgIHRoaXMuX2Rpc21pc3MocmVhc29uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpc21pc3MgPSB0aGlzLl9iZWZvcmVEaXNtaXNzKCk7XG4gICAgICAgIGlmIChkaXNtaXNzICYmIGRpc21pc3MudGhlbikge1xuICAgICAgICAgIGRpc21pc3MudGhlbihcbiAgICAgICAgICAgIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXNtaXNzKHJlYXNvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlzbWlzcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLl9kaXNtaXNzKHJlYXNvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVNb2RhbEVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpbmRvd05hdGl2ZUVsID0gdGhpcy5fd2luZG93Q21wdFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIHdpbmRvd05hdGl2ZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQod2luZG93TmF0aXZlRWwpO1xuICAgIHRoaXMuX3dpbmRvd0NtcHRSZWYuZGVzdHJveSgpO1xuXG4gICAgaWYgKHRoaXMuX2JhY2tkcm9wQ21wdFJlZikge1xuICAgICAgY29uc3QgYmFja2Ryb3BOYXRpdmVFbCA9IHRoaXMuX2JhY2tkcm9wQ21wdFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgYmFja2Ryb3BOYXRpdmVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGJhY2tkcm9wTmF0aXZlRWwpO1xuICAgICAgdGhpcy5fYmFja2Ryb3BDbXB0UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29udGVudFJlZiAmJiB0aGlzLl9jb250ZW50UmVmLnZpZXdSZWYpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRSZWYudmlld1JlZi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fd2luZG93Q21wdFJlZiA9IG51bGw7XG4gICAgdGhpcy5fYmFja2Ryb3BDbXB0UmVmID0gbnVsbDtcbiAgICB0aGlzLl9jb250ZW50UmVmID0gbnVsbDtcbiAgfVxufVxuIl19