@skyux/data-manager 7.0.0-beta.9 → 7.0.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 (33) hide show
  1. package/documentation.json +463 -524
  2. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.mjs +4 -4
  3. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +53 -49
  4. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.mjs +4 -4
  5. package/esm2020/lib/modules/data-manager/data-manager-filter-context.mjs +2 -1
  6. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.mjs +4 -4
  7. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.mjs +4 -4
  8. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.mjs +4 -4
  9. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.mjs +4 -4
  10. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +97 -81
  11. package/esm2020/lib/modules/data-manager/data-manager.component.mjs +43 -36
  12. package/esm2020/lib/modules/data-manager/data-manager.module.mjs +5 -5
  13. package/esm2020/lib/modules/data-manager/data-manager.service.mjs +69 -65
  14. package/esm2020/lib/modules/data-manager/data-view.component.mjs +23 -19
  15. package/esm2020/lib/modules/data-manager/models/data-manager-config.mjs +1 -1
  16. package/esm2020/lib/modules/data-manager/models/data-manager-filter-data.mjs +1 -1
  17. package/esm2020/lib/modules/data-manager/models/data-manager-state-options.mjs +1 -1
  18. package/esm2020/lib/modules/data-manager/models/data-manager-state.mjs +1 -1
  19. package/esm2020/lib/modules/data-manager/models/data-view-state-options.mjs +1 -1
  20. package/esm2020/lib/modules/data-manager/models/data-view-state.mjs +1 -1
  21. package/esm2020/lib/modules/shared/sky-data-manager-resources.module.mjs +5 -5
  22. package/fesm2015/skyux-data-manager.mjs +306 -261
  23. package/fesm2015/skyux-data-manager.mjs.map +1 -1
  24. package/fesm2020/skyux-data-manager.mjs +306 -266
  25. package/fesm2020/skyux-data-manager.mjs.map +1 -1
  26. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.d.ts +1 -3
  27. package/lib/modules/data-manager/data-manager-filter-context.d.ts +1 -1
  28. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.d.ts +8 -18
  29. package/lib/modules/data-manager/data-manager.component.d.ts +2 -9
  30. package/lib/modules/data-manager/data-manager.service.d.ts +3 -14
  31. package/lib/modules/data-manager/data-view.component.d.ts +3 -6
  32. package/lib/modules/data-manager/models/data-manager-state.d.ts +6 -6
  33. package/package.json +12 -12
@@ -1,5 +1,6 @@
1
+ var _SkyDataManagerService_instances, _SkyDataManagerService_activeViewId, _SkyDataManagerService_dataManagerConfig, _SkyDataManagerService_views, _SkyDataManagerService_dataStateChange, _SkyDataManagerService_isInitialized, _SkyDataManagerService_ngUnsubscribe, _SkyDataManagerService_initSource, _SkyDataManagerService_uiConfigService, _SkyDataManagerService_filterDataStateProperties, _SkyDataManagerService_getDefaultStateComparator;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable } from '@angular/core';
2
- import { SkyUIConfigService } from '@skyux/core';
3
4
  import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
4
5
  import { distinctUntilChanged, filter, map, take, takeUntil, } from 'rxjs/operators';
5
6
  import { SkyDataManagerState } from './models/data-manager-state';
@@ -17,23 +18,25 @@ import * as i1 from "@skyux/core";
17
18
  */
18
19
  export class SkyDataManagerService {
19
20
  constructor(uiConfigService) {
20
- this.uiConfigService = uiConfigService;
21
+ _SkyDataManagerService_instances.add(this);
21
22
  this.viewkeeperClasses = new BehaviorSubject({});
22
- this.activeViewId = new ReplaySubject(1);
23
- this.dataManagerConfig = new BehaviorSubject(undefined);
24
- this.views = new BehaviorSubject([]);
25
- this.dataStateChange = new ReplaySubject(1);
26
- this._ngUnsubscribe = new Subject();
27
- this.initSource = 'dataManagerServiceInit';
28
- this.isInitialized = false;
23
+ _SkyDataManagerService_activeViewId.set(this, new ReplaySubject(1));
24
+ _SkyDataManagerService_dataManagerConfig.set(this, new BehaviorSubject({}));
25
+ _SkyDataManagerService_views.set(this, new BehaviorSubject([]));
26
+ _SkyDataManagerService_dataStateChange.set(this, new ReplaySubject(1));
27
+ _SkyDataManagerService_isInitialized.set(this, void 0);
28
+ _SkyDataManagerService_ngUnsubscribe.set(this, new Subject());
29
+ _SkyDataManagerService_initSource.set(this, 'dataManagerServiceInit');
30
+ _SkyDataManagerService_uiConfigService.set(this, void 0);
31
+ __classPrivateFieldSet(this, _SkyDataManagerService_uiConfigService, uiConfigService, "f");
29
32
  }
30
33
  ngOnDestroy() {
31
- this.activeViewId.complete();
32
- this.dataManagerConfig.complete();
33
- this.views.complete();
34
- this.dataStateChange.complete();
35
- this._ngUnsubscribe.next();
36
- this._ngUnsubscribe.complete();
34
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").complete();
35
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").complete();
36
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").complete();
37
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").complete();
38
+ __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").next();
39
+ __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").complete();
37
40
  }
38
41
  /**
39
42
  * Initializes the data manager with the given settings and sets `isInitialized` to `true`.
@@ -43,32 +46,33 @@ export class SkyDataManagerService {
43
46
  * and saves any state changes to the service.
44
47
  */
45
48
  initDataManager(args) {
46
- if (this.isInitialized) {
49
+ if (__classPrivateFieldGet(this, _SkyDataManagerService_isInitialized, "f")) {
47
50
  console.warn('This data manager instance has already been initialized.');
48
51
  return;
49
52
  }
53
+ __classPrivateFieldSet(this, _SkyDataManagerService_isInitialized, true, "f");
50
54
  const defaultDataState = args.defaultDataState;
51
55
  const settingsKey = args.settingsKey;
52
56
  this.updateActiveViewId(args.activeViewId);
53
57
  this.updateDataManagerConfig(args.dataManagerConfig);
54
58
  if (settingsKey) {
55
- this.uiConfigService
59
+ __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
56
60
  .getConfig(settingsKey, defaultDataState.getStateOptions())
57
61
  .pipe(take(1))
58
62
  .subscribe((config) => {
59
- this.updateDataState(new SkyDataManagerState(config), this.initSource);
63
+ this.updateDataState(new SkyDataManagerState(config), __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
60
64
  });
61
65
  }
62
66
  else {
63
- this.updateDataState(defaultDataState, this.initSource);
67
+ this.updateDataState(defaultDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
64
68
  }
65
69
  if (settingsKey) {
66
- this.getDataStateUpdates(this.initSource)
67
- .pipe(takeUntil(this._ngUnsubscribe))
70
+ this.getDataStateUpdates(__classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"))
71
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
68
72
  .subscribe((state) => {
69
- this.uiConfigService
73
+ __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
70
74
  .setConfig(settingsKey, state.getStateOptions())
71
- .pipe(takeUntil(this._ngUnsubscribe))
75
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
72
76
  .subscribe(
73
77
  // eslint-disable-next-line @typescript-eslint/no-empty-function
74
78
  () => { }, (err) => {
@@ -83,19 +87,19 @@ export class SkyDataManagerService {
83
87
  * @param viewConfig The SkyDataViewConfig settings for the view being registered.
84
88
  */
85
89
  initDataView(viewConfig) {
86
- const currentViews = this.views.value;
90
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
87
91
  if (this.getViewById(viewConfig.id)) {
88
92
  console.warn(`A data manager view with the id ${viewConfig.id} has already been initialized.`);
89
93
  return;
90
94
  }
91
95
  currentViews.push(viewConfig);
92
- this.views.next(currentViews);
96
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
93
97
  // When the initial activeViewId is set there are no views registered. We have to re-emit
94
98
  // the activeId so the newly registered view is notified that it is active.
95
- this.activeViewId.pipe(take(1)).subscribe((id) => {
96
- this.activeViewId.next(id);
99
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").pipe(take(1)).subscribe((id) => {
100
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
97
101
  });
98
- this.dataStateChange
102
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f")
99
103
  .pipe(take(1))
100
104
  .subscribe((change) => {
101
105
  const dataState = change.dataState;
@@ -119,20 +123,20 @@ export class SkyDataManagerService {
119
123
  newViewState.displayedColumnIds = displayedColumnIds;
120
124
  }
121
125
  const newDataState = dataState.addOrUpdateView(viewConfig.id, newViewState);
122
- this.updateDataState(newDataState, this.initSource);
126
+ this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
123
127
  }
124
128
  else {
125
129
  const currentAvailableColumnIds = viewConfig.columnOptions?.map((columnOptions) => {
126
130
  return columnOptions.id;
127
- });
131
+ }) || [];
128
132
  // Ensure that the view state's available columns match with the view config. Also,
129
133
  // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.
130
134
  // We only add columns to `displayedColumnsIds` if we had previously tracked
131
135
  // `columnIds` to avoid breaking changes.
132
136
  if (currentViewState.columnIds.length > 0) {
133
- let newColumnIds = currentAvailableColumnIds.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
134
- newColumnIds = newColumnIds.filter((columnId) => {
135
- return viewConfig.columnOptions.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
137
+ let newColumnIds = currentAvailableColumnIds?.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
138
+ newColumnIds = newColumnIds?.filter((columnId) => {
139
+ return viewConfig.columnOptions?.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
136
140
  });
137
141
  // Add the column IDs that now exist to the data manager state both as available
138
142
  // and as shown.
@@ -143,7 +147,7 @@ export class SkyDataManagerService {
143
147
  // and as shown.
144
148
  currentViewState.columnIds = currentAvailableColumnIds;
145
149
  const newDataState = dataState.addOrUpdateView(viewConfig.id, currentViewState);
146
- this.updateDataState(newDataState, this.initSource);
150
+ this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
147
151
  }
148
152
  })
149
153
  .unsubscribe();
@@ -158,12 +162,12 @@ export class SkyDataManagerService {
158
162
  getDataStateUpdates(sourceId, updateFilter) {
159
163
  // filter out events from the provided source and emit just the dataState
160
164
  if (updateFilter) {
161
- return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
165
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
162
166
  ? distinctUntilChanged(updateFilter.comparator)
163
- : distinctUntilChanged(this.getDefaultStateComparator(updateFilter.properties)));
167
+ : distinctUntilChanged(__classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_getDefaultStateComparator).call(this, updateFilter.properties)));
164
168
  }
165
169
  else {
166
- return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
170
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
167
171
  }
168
172
  }
169
173
  /**
@@ -176,52 +180,52 @@ export class SkyDataManagerService {
176
180
  updateDataState(state, sourceId) {
177
181
  const newState = new SkyDataManagerState(state.getStateOptions());
178
182
  const newStateChange = new SkyDataManagerStateChange(newState, sourceId);
179
- this.dataStateChange.next(newStateChange);
183
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").next(newStateChange);
180
184
  }
181
185
  /**
182
186
  * Returns the current `SkyDataManagerConfig`.
183
187
  */
184
188
  getCurrentDataManagerConfig() {
185
- return this.dataManagerConfig.value;
189
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").value;
186
190
  }
187
191
  /**
188
192
  * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.
189
193
  */
190
194
  getDataManagerConfigUpdates() {
191
- return this.dataManagerConfig;
195
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f");
192
196
  }
193
197
  /**
194
198
  * Updates the data manager config and emits a new value to entities subscribed to data config changes.
195
199
  * @param value The new `SkyDataManagerConfig` value.
196
200
  */
197
201
  updateDataManagerConfig(value) {
198
- this.dataManagerConfig.next(value);
202
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").next(value);
199
203
  }
200
204
  /**
201
205
  * Returns an observable of data view config changes that views and other data manager entities can subscribe to.
202
206
  */
203
207
  getDataViewsUpdates() {
204
- return this.views;
208
+ return __classPrivateFieldGet(this, _SkyDataManagerService_views, "f");
205
209
  }
206
210
  /**
207
211
  * Returns an observable of the active view ID that views and other data manager entities can subscribe to.
208
212
  */
209
213
  getActiveViewIdUpdates() {
210
- return this.activeViewId;
214
+ return __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f");
211
215
  }
212
216
  /**
213
217
  * Updates the active view ID. The data manager changes the displayed view.
214
218
  * @param id The new active view ID.
215
219
  */
216
220
  updateActiveViewId(id) {
217
- this.activeViewId.next(id);
221
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
218
222
  }
219
223
  /**
220
224
  * Returns the `SkyDataViewConfig` for the given view ID.
221
225
  * @param viewId The ID of the view config to get.
222
226
  */
223
227
  getViewById(viewId) {
224
- const currentViews = this.views.value;
228
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
225
229
  const viewConfig = currentViews.find((view) => view.id === viewId);
226
230
  return viewConfig;
227
231
  }
@@ -232,14 +236,14 @@ export class SkyDataManagerService {
232
236
  * @param view The new `SkyDataViewConfig` containing all properties.
233
237
  */
234
238
  updateViewConfig(view) {
235
- const currentViews = this.views.value;
239
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
236
240
  const existingViewIndex = currentViews.findIndex((currentView) => currentView.id === view.id);
237
241
  if (existingViewIndex === -1) {
238
242
  console.error('A view with the id {id} does not exist.', view.id);
239
243
  }
240
244
  else {
241
245
  currentViews[existingViewIndex] = view;
242
- this.views.next(currentViews);
246
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
243
247
  }
244
248
  }
245
249
  /**
@@ -250,28 +254,28 @@ export class SkyDataManagerService {
250
254
  viewkeeperClasses[viewId] = classes;
251
255
  this.viewkeeperClasses.next(viewkeeperClasses);
252
256
  }
253
- filterDataStateProperties(state, properties) {
254
- const stateProperties = state.getStateOptions();
255
- const filteredStateProperties = {};
257
+ }
258
+ _SkyDataManagerService_activeViewId = new WeakMap(), _SkyDataManagerService_dataManagerConfig = new WeakMap(), _SkyDataManagerService_views = new WeakMap(), _SkyDataManagerService_dataStateChange = new WeakMap(), _SkyDataManagerService_isInitialized = new WeakMap(), _SkyDataManagerService_ngUnsubscribe = new WeakMap(), _SkyDataManagerService_initSource = new WeakMap(), _SkyDataManagerService_uiConfigService = new WeakMap(), _SkyDataManagerService_instances = new WeakSet(), _SkyDataManagerService_filterDataStateProperties = function _SkyDataManagerService_filterDataStateProperties(state, properties) {
259
+ const stateProperties = state.getStateOptions();
260
+ const filteredStateProperties = {};
261
+ if (properties) {
256
262
  for (const property of properties) {
257
- /* istanbul ignore else */
258
- if (Object.prototype.hasOwnProperty.call(stateProperties, property)) {
263
+ if (property in stateProperties) {
259
264
  filteredStateProperties[property] = stateProperties[property];
260
265
  }
261
266
  }
262
- return filteredStateProperties;
263
267
  }
264
- getDefaultStateComparator(properties) {
265
- return (state1, state2) => {
266
- const filteredState1 = this.filterDataStateProperties(state1, properties);
267
- const filteredState2 = this.filterDataStateProperties(state2, properties);
268
- return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
269
- };
270
- }
271
- }
272
- SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
273
- SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService });
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService, decorators: [{
268
+ return filteredStateProperties;
269
+ }, _SkyDataManagerService_getDefaultStateComparator = function _SkyDataManagerService_getDefaultStateComparator(properties) {
270
+ return (state1, state2) => {
271
+ const filteredState1 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state1, properties);
272
+ const filteredState2 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state2, properties);
273
+ return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
274
+ };
275
+ };
276
+ SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
277
+ SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDataManagerService });
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDataManagerService, decorators: [{
275
279
  type: Injectable
276
280
  }], ctorParameters: function () { return [{ type: i1.SkyUIConfigService }]; } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUU1RDs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEMsWUFBb0IsZUFBbUM7UUFBbkMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBbEJoRCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FFM0MsRUFBRSxDQUFDLENBQUM7UUFFVSxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRTVDLHNCQUFpQixHQUNoQyxJQUFJLGVBQWUsQ0FBdUIsU0FBUyxDQUFDLENBQUM7UUFFdEMsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUVyRCxvQkFBZSxHQUM5QixJQUFJLGFBQWEsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7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Q2pDLDBCQUEwQjtZQUMxQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvRDtTQUNGO1FBRUQsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRU8seUJBQXlCLENBQy9CLFVBQW9CO1FBRXBCLE9BQU8sQ0FDTCxNQUEyQixFQUMzQixNQUEyQixFQUNsQixFQUFFO1lBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztJQUNKLENBQUM7O2tIQWpWVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItaW5pdC1hcmdzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS11cGRhdGUtZmlsdGVyLWFyZ3MnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctc3RhdGUnO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgc2VydmljZSBwcm92aWRlcyB3YXlzIGZvciBkYXRhIHZpZXdzLCB0b29sYmFyIGl0ZW1zLCBhbmQgbW9yZSB0byBzdGF5IHVwIHRvIGRhdGVcbiAqIHdpdGggdGhlIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCByZWdpc3RlcmVkIHZpZXdzIGFuZCB0aGVpciBjb25maWdzLCBhbmQgZGF0YSBzdGF0ZS5cbiAqIFRoZXJlIGFyZSBtZXRob2RzIHRvIGdldCBjdXJyZW50IHZhbHVlcywgdXBkYXRlIHZhbHVlcywgYW5kIGdldCBzdWJzY3JpcHRpb25zIHRvIHRoZSBjaGFuZ2luZyB2YWx1ZXMuPGJyLz4gPGJyLz5cbiAqIFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYSBkYXRhIG1hbmFnZXIuIERvIG5vdFxuICogcHJvdmlkZSBpdCBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIGluIGBhcHAtZXh0cmFzYC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0YVxuICogbWFuYWdlcnMgdG8gYmUgdXNlZCBhbmQgc2VsZi1jb250YWluZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgdmlld2tlZXBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcbiAgICBbdmlld0lkOiBzdHJpbmddOiBzdHJpbmdbXTtcbiAgfT4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlVmlld0lkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFNYW5hZ2VyQ29uZmlnID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFNYW5hZ2VyQ29uZmlnPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFWaWV3Q29uZmlnW10+KFtdKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTdGF0ZUNoYW5nZSA9XG4gICAgbmV3IFJlcGxheVN1YmplY3Q8U2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZT4oMSk7XG5cbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgaW5pdFNvdXJjZSA9ICdkYXRhTWFuYWdlclNlcnZpY2VJbml0JztcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1aUNvbmZpZ1NlcnZpY2U6IFNreVVJQ29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3SWQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy52aWV3cy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhIG1hbmFnZXIgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3MgYW5kIHNldHMgYGlzSW5pdGlhbGl6ZWRgIHRvIGB0cnVlYC5cbiAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgdGhlIGRhdGEgbWFuYWdlciB0byByZW5kZXIuXG4gICAqIEBwYXJhbSBhcmdzIFRoZSBpbml0aWFsIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCBhbmQgc3RhdGUgdG8gdXNlIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBJZiBhIHNldHRpbmdzIGtleSBpcyBwcm92aWRlZCwgaXQgY2hlY2tzIGZvciBhIHNhdmVkIGRhdGEgc3RhdGUgaW4gdGhlIFNLWSBVSSBjb25maWcgc2VydmljZSBiZWZvcmUgdXNpbmcgdGhlIGRlZmF1bHQgZGF0YSBzdGF0ZVxuICAgKiBhbmQgc2F2ZXMgYW55IHN0YXRlIGNoYW5nZXMgdG8gdGhlIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFNYW5hZ2VyKGFyZ3M6IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdERhdGFTdGF0ZSA9IGFyZ3MuZGVmYXVsdERhdGFTdGF0ZTtcbiAgICBjb25zdCBzZXR0aW5nc0tleSA9IGFyZ3Muc2V0dGluZ3NLZXk7XG5cbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZVZpZXdJZChhcmdzLmFjdGl2ZVZpZXdJZCk7XG4gICAgdGhpcy51cGRhdGVEYXRhTWFuYWdlckNvbmZpZyhhcmdzLmRhdGFNYW5hZ2VyQ29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy51aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyhzZXR0aW5nc0tleSwgZGVmYXVsdERhdGFTdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgICAgbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoY29uZmlnKSxcbiAgICAgICAgICAgIHRoaXMuaW5pdFNvdXJjZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShkZWZhdWx0RGF0YVN0YXRlLCB0aGlzLmluaXRTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuaW5pdFNvdXJjZSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMudWlDb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAuc2V0Q29uZmlnKHNldHRpbmdzS2V5LCBzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgKCkgPT4ge30sXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzYXZlIGRhdGEgbWFuYWdlciBzZXR0aW5ncy4nKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgdmlldyB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlci4gVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgZWFjaCB2aWV3IGZvciB0aGUgdmlld3MgdG8gYXBwZWFyIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcGFyYW0gdmlld0NvbmZpZyBUaGUgU2t5RGF0YVZpZXdDb25maWcgc2V0dGluZ3MgZm9yIHRoZSB2aWV3IGJlaW5nIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFWaWV3KHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzOiBTa3lEYXRhVmlld0NvbmZpZ1tdID0gdGhpcy52aWV3cy52YWx1ZTtcblxuICAgIGlmICh0aGlzLmdldFZpZXdCeUlkKHZpZXdDb25maWcuaWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBBIGRhdGEgbWFuYWdlciB2aWV3IHdpdGggdGhlIGlkICR7dmlld0NvbmZpZy5pZH0gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC5gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRWaWV3cy5wdXNoKHZpZXdDb25maWcpO1xuICAgIHRoaXMudmlld3MubmV4dChjdXJyZW50Vmlld3MpO1xuXG4gICAgLy8gV2hlbiB0aGUgaW5pdGlhbCBhY3RpdmVWaWV3SWQgaXMgc2V0IHRoZXJlIGFyZSBubyB2aWV3cyByZWdpc3RlcmVkLiBXZSBoYXZlIHRvIHJlLWVtaXRcbiAgICAvLyB0aGUgYWN0aXZlSWQgc28gdGhlIG5ld2x5IHJlZ2lzdGVyZWQgdmlldyBpcyBub3RpZmllZCB0aGF0IGl0IGlzIGFjdGl2ZS5cbiAgICB0aGlzLmFjdGl2ZVZpZXdJZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0YXRlID0gY2hhbmdlLmRhdGFTdGF0ZTtcbiAgICAgICAgY29uc3QgY3VycmVudFZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghY3VycmVudFZpZXdTdGF0ZSkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZpZXdTdGF0ZSA9IG5ldyBTa3lEYXRhVmlld1N0YXRlKHsgdmlld0lkOiB2aWV3Q29uZmlnLmlkIH0pO1xuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHZpZXcgc3RhdGUncyBhdmFpbGFibGUgY29sdW1ucyBtYXRjaCB3aXRoIHRoZSB2aWV3IGNvbmZpZy4gQWxzbyxcbiAgICAgICAgICAvLyBhZGQgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYFxuICAgICAgICAgIGlmICh2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5tYXAoKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9uc1xuICAgICAgICAgICAgICAuZmlsdGVyKChjb2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLm1hcCgoY29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbi5pZDtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjb2x1bW5JZHM7XG4gICAgICAgICAgICBuZXdWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXdEYXRhU3RhdGUgPSBkYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KFxuICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShuZXdEYXRhU3RhdGUsIHRoaXMuaW5pdFNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8ubWFwKFxuICAgICAgICAgICAgKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSB2aWV3IHN0YXRlJ3MgYXZhaWxhYmxlIGNvbHVtbnMgbWF0Y2ggd2l0aCB0aGUgdmlldyBjb25maWcuIEFsc28sXG4gICAgICAgICAgLy8gYWRkIG5ldyBjb2x1bW5zIHRvIHRoZSBgZGlzcGxheWVkQ29sdW1uSWRzYCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBgaW5pdGlhbEhpZGVgLlxuICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIGNvbHVtbnMgdG8gYGRpc3BsYXllZENvbHVtbnNJZHNgIGlmIHdlIGhhZCBwcmV2aW91c2x5IHRyYWNrZWRcbiAgICAgICAgICAvLyBgY29sdW1uSWRzYCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAgICAgICAgIGlmIChjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgbmV3Q29sdW1uSWRzID0gY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMuaW5kZXhPZihpZCkgPCAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV3Q29sdW1uSWRzID0gbmV3Q29sdW1uSWRzLmZpbHRlcigoY29sdW1uSWQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2x1bW5PcHRpb24pID0+XG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uaWQgPT09IGNvbHVtbklkICYmICFjb2x1bW5PcHRpb24uaW5pdGlhbEhpZGVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNvbHVtbiBJRHMgdGhhdCBub3cgZXhpc3QgdG8gdGhlIGRhdGEgbWFuYWdlciBzdGF0ZSBib3RoIGFzIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gYW5kIGFzIHNob3duLlxuICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPVxuICAgICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5jb25jYXQobmV3Q29sdW1uSWRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQWRkIHRoZSBjb2x1bW4gSURzIHRoYXQgbm93IGV4aXN0IHRvIHRoZSBkYXRhIG1hbmFnZXIgc3RhdGUgYm90aCBhcyBhdmFpbGFibGVcbiAgICAgICAgICAvLyBhbmQgYXMgc2hvd24uXG4gICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzO1xuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YVN0YXRlID0gZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKG5ld0RhdGFTdGF0ZSwgdGhpcy5pbml0U291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIHN0YXRlIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqIEl0IGV4Y2x1ZGVzIHVwZGF0ZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlLiBUaGlzIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IHJlc3BvbmQgdG9cbiAgICogY2hhbmdlcyB0aGV5IGRpZCBub3QgY3JlYXRlIGFuZCBoZWxwcyBwcmV2ZW50IGluZmluaXRlIGxvb3BzIG9mIHVwZGF0ZXMgYW5kIHJlc3BvbnNlcy5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHN1YnNjcmliaW5nIHRvIGRhdGEgc3RhdGUgdXBkYXRlcy4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2VcbiAgICogYnV0IHNob3VsZCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgYW5kIHNob3VsZCBhbHNvIGJlIHVzZWQgd2hlbiB0aGF0IGVudGl0eSB1cGRhdGVzIHRoZSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhU3RhdGVVcGRhdGVzKFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdXBkYXRlRmlsdGVyPzogU2t5RGF0YU1hbmFnZXJTdGF0ZVVwZGF0ZUZpbHRlckFyZ3NcbiAgKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlclN0YXRlPiB7XG4gICAgLy8gZmlsdGVyIG91dCBldmVudHMgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlIGFuZCBlbWl0IGp1c3QgdGhlIGRhdGFTdGF0ZVxuICAgIGlmICh1cGRhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKSxcbiAgICAgICAgdXBkYXRlRmlsdGVyLmNvbXBhcmF0b3JcbiAgICAgICAgICA/IGRpc3RpbmN0VW50aWxDaGFuZ2VkKHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yKVxuICAgICAgICAgIDogZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcih1cGRhdGVGaWx0ZXIucHJvcGVydGllcylcbiAgICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBzdGF0ZSBhbmQgZW1pdHMgYSBuZXcgdmFsdWUgdG8gZW50aXRpZXMgc3Vic2NyaWJlZCB0byBkYXRhIHN0YXRlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlclN0YXRlYCB2YWx1ZS5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHVwZGF0aW5nIHRoZSBzdGF0ZS4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2UsXG4gICAqIGJ1dCBzaG91bGQgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGFuZCBzaG91bGQgYWxzbyBiZSB1c2VkIHdoZW4gdGhhdCBlbnRpdHlcbiAgICogc3Vic2NyaWJlcyB0byBzdGF0ZSBjaGFuZ2VzIGZyb20gYGdldERhdGFTdGF0ZVVwZGF0ZXNgLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGFTdGF0ZShzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc291cmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkpO1xuICAgIGNvbnN0IG5ld1N0YXRlQ2hhbmdlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2UobmV3U3RhdGUsIHNvdXJjZUlkKTtcblxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLm5leHQobmV3U3RhdGVDaGFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYFNreURhdGFNYW5hZ2VyQ29uZmlnYC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50RGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIG1hbmFnZXIgY29uZmlnIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKCk6IE9ic2VydmFibGU8U2t5RGF0YU1hbmFnZXJDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhTWFuYWdlckNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgY29uZmlnIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlckNvbmZpZ2AgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YU1hbmFnZXJDb25maWcodmFsdWU6IFNreURhdGFNYW5hZ2VyQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhTWFuYWdlckNvbmZpZy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSB2aWV3IGNvbmZpZyBjaGFuZ2VzIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFWaWV3c1VwZGF0ZXMoKTogT2JzZXJ2YWJsZTxTa3lEYXRhVmlld0NvbmZpZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudmlld3M7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdmlldyBJRCB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXRBY3RpdmVWaWV3SWRVcGRhdGVzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlld0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGFjdGl2ZSB2aWV3IElELiBUaGUgZGF0YSBtYW5hZ2VyIGNoYW5nZXMgdGhlIGRpc3BsYXllZCB2aWV3LlxuICAgKiBAcGFyYW0gaWQgVGhlIG5ldyBhY3RpdmUgdmlldyBJRC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVWaWV3SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgZm9yIHRoZSBnaXZlbiB2aWV3IElELlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBvZiB0aGUgdmlldyBjb25maWcgdG8gZ2V0LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdCeUlkKHZpZXdJZDogc3RyaW5nKTogU2t5RGF0YVZpZXdDb25maWcge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3Qgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWcgPSBjdXJyZW50Vmlld3MuZmluZChcbiAgICAgICh2aWV3KSA9PiB2aWV3LmlkID09PSB2aWV3SWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHZpZXdDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZ2l2ZW4gdmlldyBjb25maWcuIFRoZSByZWdpc3RlcmVkIHZpZXcgd2l0aCB0aGUgc2FtZSBJRCBpcyB1cGRhdGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBjb25maWcsIHNvIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2hhbmdlZC4gSWYgdGhlXG4gICAqIHZpZXcgd2FzIG5vdCBpbml0aWFsaXplZCBhbHJlYWR5LCBubyB1cGRhdGUgaGFwcGVucy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIG5ldyBgU2t5RGF0YVZpZXdDb25maWdgIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlld0NvbmZpZyh2aWV3OiBTa3lEYXRhVmlld0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3QgZXhpc3RpbmdWaWV3SW5kZXggPSBjdXJyZW50Vmlld3MuZmluZEluZGV4KFxuICAgICAgKGN1cnJlbnRWaWV3KSA9PiBjdXJyZW50Vmlldy5pZCA9PT0gdmlldy5pZFxuICAgICk7XG5cbiAgICBpZiAoZXhpc3RpbmdWaWV3SW5kZXggPT09IC0xKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBIHZpZXcgd2l0aCB0aGUgaWQge2lkfSBkb2VzIG5vdCBleGlzdC4nLCB2aWV3LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudFZpZXdzW2V4aXN0aW5nVmlld0luZGV4XSA9IHZpZXc7XG4gICAgICB0aGlzLnZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld2tlZXBlckNsYXNzZXModmlld0lkOiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnZhbHVlO1xuICAgIHZpZXdrZWVwZXJDbGFzc2VzW3ZpZXdJZF0gPSBjbGFzc2VzO1xuXG4gICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5uZXh0KHZpZXdrZWVwZXJDbGFzc2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhcbiAgICBzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSxcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgc3RhdGVQcm9wZXJ0aWVzID0gc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBjb25zdCBmaWx0ZXJlZFN0YXRlUHJvcGVydGllczogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZVByb3BlcnRpZXMsIHByb3BlcnR5KSkge1xuICAgICAgICBmaWx0ZXJlZFN0YXRlUHJvcGVydGllc1twcm9wZXJ0eV0gPSBzdGF0ZVByb3BlcnRpZXNbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFN0YXRlUHJvcGVydGllcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcihcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiAoc3RhdGUxOiBTa3lEYXRhTWFuYWdlclN0YXRlLCBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZTE6IFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gICAgICBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGVcbiAgICApOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkU3RhdGUxID0gdGhpcy5maWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKHN0YXRlMSwgcHJvcGVydGllcyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFN0YXRlMiA9IHRoaXMuZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhzdGF0ZTIsIHByb3BlcnRpZXMpO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUxKSA9PT0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRTdGF0ZTIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSS9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFNUQ7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsWUFBWSxlQUFtQzs7UUFaeEMsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLDhDQUF5QixJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsRUFBQztRQUN0RCxtREFBOEIsSUFBSSxlQUFlLENBQXVCLEVBQUUsQ0FBQyxFQUFDO1FBQzVFLHVDQUFrQixJQUFJLGVBQWUsQ0FBc0IsRUFBRSxDQUFDLEVBQUM7UUFDL0QsaURBQTRCLElBQUksYUFBYSxDQUE0QixDQUFDLENBQUMsRUFBQztRQUU1RSx1REFBb0M7UUFDcEMsK0NBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFDckMsNENBQWMsd0JBQXdCLEVBQUM7UUFDdkMseURBQXFDO1FBR25D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dUJBQXVCLEdBQTRCLEVBQUUsQ0FBQztJQUU1RCxJQUFJLFVBQVUsRUFBRTtRQUNkLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFO1lBQ2pDLElBQUksUUFBUSxJQUFJLGVBQWUsRUFBRTtnQkFDL0IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9EO1NBQ0Y7S0FDRjtJQUVELE9BQU8sdUJBQXVCLENBQUM7QUFDakMsQ0FBQywrR0FHQyxVQUE0RDtJQUU1RCxPQUFPLENBQ0wsTUFBMkIsRUFDM0IsTUFBMkIsRUFDbEIsRUFBRTtRQUNYLE1BQU0sY0FBYyxHQUFHLHVCQUFBLElBQUksMEZBQTJCLE1BQS9CLElBQUksRUFDekIsTUFBTSxFQUNOLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsdUJBQUEsSUFBSSwwRkFBMkIsTUFBL0IsSUFBSSxFQUN6QixNQUFNLEVBQ04sVUFBVSxDQUNYLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDO21IQXhWVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItaW5pdC1hcmdzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS11cGRhdGUtZmlsdGVyLWFyZ3MnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctc3RhdGUnO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgc2VydmljZSBwcm92aWRlcyB3YXlzIGZvciBkYXRhIHZpZXdzLCB0b29sYmFyIGl0ZW1zLCBhbmQgbW9yZSB0byBzdGF5IHVwIHRvIGRhdGVcbiAqIHdpdGggdGhlIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCByZWdpc3RlcmVkIHZpZXdzIGFuZCB0aGVpciBjb25maWdzLCBhbmQgZGF0YSBzdGF0ZS5cbiAqIFRoZXJlIGFyZSBtZXRob2RzIHRvIGdldCBjdXJyZW50IHZhbHVlcywgdXBkYXRlIHZhbHVlcywgYW5kIGdldCBzdWJzY3JpcHRpb25zIHRvIHRoZSBjaGFuZ2luZyB2YWx1ZXMuPGJyLz4gPGJyLz5cbiAqIFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYSBkYXRhIG1hbmFnZXIuIERvIG5vdFxuICogcHJvdmlkZSBpdCBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIGluIGBhcHAtZXh0cmFzYC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0YVxuICogbWFuYWdlcnMgdG8gYmUgdXNlZCBhbmQgc2VsZi1jb250YWluZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgdmlld2tlZXBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4oe30pO1xuXG4gIHJlYWRvbmx5ICNhY3RpdmVWaWV3SWQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICByZWFkb25seSAjZGF0YU1hbmFnZXJDb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFNYW5hZ2VyQ29uZmlnPih7fSk7XG4gIHJlYWRvbmx5ICN2aWV3cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5RGF0YVZpZXdDb25maWdbXT4oW10pO1xuICByZWFkb25seSAjZGF0YVN0YXRlQ2hhbmdlID0gbmV3IFJlcGxheVN1YmplY3Q8U2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZT4oMSk7XG5cbiAgI2lzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2luaXRTb3VyY2UgPSAnZGF0YU1hbmFnZXJTZXJ2aWNlSW5pdCc7XG4gICN1aUNvbmZpZ1NlcnZpY2U6IFNreVVJQ29uZmlnU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcih1aUNvbmZpZ1NlcnZpY2U6IFNreVVJQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMuI3VpQ29uZmlnU2VydmljZSA9IHVpQ29uZmlnU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVWaWV3SWQuY29tcGxldGUoKTtcbiAgICB0aGlzLiNkYXRhTWFuYWdlckNvbmZpZy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3ZpZXdzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZGF0YVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhIG1hbmFnZXIgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3MgYW5kIHNldHMgYGlzSW5pdGlhbGl6ZWRgIHRvIGB0cnVlYC5cbiAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgdGhlIGRhdGEgbWFuYWdlciB0byByZW5kZXIuXG4gICAqIEBwYXJhbSBhcmdzIFRoZSBpbml0aWFsIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCBhbmQgc3RhdGUgdG8gdXNlIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBJZiBhIHNldHRpbmdzIGtleSBpcyBwcm92aWRlZCwgaXQgY2hlY2tzIGZvciBhIHNhdmVkIGRhdGEgc3RhdGUgaW4gdGhlIFNLWSBVSSBjb25maWcgc2VydmljZSBiZWZvcmUgdXNpbmcgdGhlIGRlZmF1bHQgZGF0YSBzdGF0ZVxuICAgKiBhbmQgc2F2ZXMgYW55IHN0YXRlIGNoYW5nZXMgdG8gdGhlIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFNYW5hZ2VyKGFyZ3M6IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaXNJbml0aWFsaXplZCkge1xuICAgICAgY29uc29sZS53YXJuKCdUaGlzIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgZGVmYXVsdERhdGFTdGF0ZSA9IGFyZ3MuZGVmYXVsdERhdGFTdGF0ZTtcbiAgICBjb25zdCBzZXR0aW5nc0tleSA9IGFyZ3Muc2V0dGluZ3NLZXk7XG5cbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZVZpZXdJZChhcmdzLmFjdGl2ZVZpZXdJZCk7XG4gICAgdGhpcy51cGRhdGVEYXRhTWFuYWdlckNvbmZpZyhhcmdzLmRhdGFNYW5hZ2VyQ29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy4jdWlDb25maWdTZXJ2aWNlXG4gICAgICAgIC5nZXRDb25maWcoc2V0dGluZ3NLZXksIGRlZmF1bHREYXRhU3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlKGNvbmZpZyksXG4gICAgICAgICAgICB0aGlzLiNpbml0U291cmNlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKGRlZmF1bHREYXRhU3RhdGUsIHRoaXMuI2luaXRTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuI2luaXRTb3VyY2UpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgIC5zZXRDb25maWcoc2V0dGluZ3NLZXksIHN0YXRlLmdldFN0YXRlT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgZGF0YSBtYW5hZ2VyIHNldHRpbmdzLicpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSB2aWV3IHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLiBUaGlzIG11c3QgYmUgY2FsbGVkIGZvciBlYWNoIHZpZXcgZm9yIHRoZSB2aWV3cyB0byBhcHBlYXIgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIEBwYXJhbSB2aWV3Q29uZmlnIFRoZSBTa3lEYXRhVmlld0NvbmZpZyBzZXR0aW5ncyBmb3IgdGhlIHZpZXcgYmVpbmcgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBpbml0RGF0YVZpZXcodmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50Vmlld3MgPSB0aGlzLiN2aWV3cy52YWx1ZTtcblxuICAgIGlmICh0aGlzLmdldFZpZXdCeUlkKHZpZXdDb25maWcuaWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBBIGRhdGEgbWFuYWdlciB2aWV3IHdpdGggdGhlIGlkICR7dmlld0NvbmZpZy5pZH0gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC5gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRWaWV3cy5wdXNoKHZpZXdDb25maWcpO1xuICAgIHRoaXMuI3ZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcblxuICAgIC8vIFdoZW4gdGhlIGluaXRpYWwgYWN0aXZlVmlld0lkIGlzIHNldCB0aGVyZSBhcmUgbm8gdmlld3MgcmVnaXN0ZXJlZC4gV2UgaGF2ZSB0byByZS1lbWl0XG4gICAgLy8gdGhlIGFjdGl2ZUlkIHNvIHRoZSBuZXdseSByZWdpc3RlcmVkIHZpZXcgaXMgbm90aWZpZWQgdGhhdCBpdCBpcyBhY3RpdmUuXG4gICAgdGhpcy4jYWN0aXZlVmlld0lkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChpZCkgPT4ge1xuICAgICAgdGhpcy4jYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YVN0YXRlQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTdGF0ZSA9IGNoYW5nZS5kYXRhU3RhdGU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWaWV3U3RhdGUgPSBkYXRhU3RhdGUuZ2V0Vmlld1N0YXRlQnlJZCh2aWV3Q29uZmlnLmlkKTtcblxuICAgICAgICBpZiAoIWN1cnJlbnRWaWV3U3RhdGUpIHtcbiAgICAgICAgICBjb25zdCBuZXdWaWV3U3RhdGUgPSBuZXcgU2t5RGF0YVZpZXdTdGF0ZSh7IHZpZXdJZDogdmlld0NvbmZpZy5pZCB9KTtcblxuICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSB2aWV3IHN0YXRlJ3MgYXZhaWxhYmxlIGNvbHVtbnMgbWF0Y2ggd2l0aCB0aGUgdmlldyBjb25maWcuIEFsc28sXG4gICAgICAgICAgLy8gYWRkIGNvbHVtbnMgdG8gdGhlIGBkaXNwbGF5ZWRDb2x1bW5JZHNgIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IGBpbml0aWFsSGlkZWBcbiAgICAgICAgICBpZiAodmlld0NvbmZpZy5jb2x1bW5PcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5JZHMgPSB2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnMubWFwKChjb2x1bW5PcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb2x1bW5PcHRpb25zLmlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnNcbiAgICAgICAgICAgICAgLmZpbHRlcigoY29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFjb2x1bW5PcHRpb24uaW5pdGlhbEhpZGU7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5tYXAoKGNvbHVtbk9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW5PcHRpb24uaWQ7XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBuZXdWaWV3U3RhdGUuY29sdW1uSWRzID0gY29sdW1uSWRzO1xuICAgICAgICAgICAgbmV3Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGRpc3BsYXllZENvbHVtbklkcztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV3RGF0YVN0YXRlID0gZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICBuZXdWaWV3U3RhdGVcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU3RhdGUobmV3RGF0YVN0YXRlLCB0aGlzLiNpbml0U291cmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzID1cbiAgICAgICAgICAgIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8ubWFwKChjb2x1bW5PcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb2x1bW5PcHRpb25zLmlkO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgdmlldyBzdGF0ZSdzIGF2YWlsYWJsZSBjb2x1bW5zIG1hdGNoIHdpdGggdGhlIHZpZXcgY29uZmlnLiBBbHNvLFxuICAgICAgICAgIC8vIGFkZCBuZXcgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYC5cbiAgICAgICAgICAvLyBXZSBvbmx5IGFkZCBjb2x1bW5zIHRvIGBkaXNwbGF5ZWRDb2x1bW5zSWRzYCBpZiB3ZSBoYWQgcHJldmlvdXNseSB0cmFja2VkXG4gICAgICAgICAgLy8gYGNvbHVtbklkc2AgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICAgICAgICBpZiAoY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IG5ld0NvbHVtbklkcyA9IGN1cnJlbnRBdmFpbGFibGVDb2x1bW5JZHM/LmZpbHRlcihcbiAgICAgICAgICAgICAgKGlkKSA9PiBjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcy5pbmRleE9mKGlkKSA8IDBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBuZXdDb2x1bW5JZHMgPSBuZXdDb2x1bW5JZHM/LmZpbHRlcigoY29sdW1uSWQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgICAoY29sdW1uT3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmlkID09PSBjb2x1bW5JZCAmJiAhY29sdW1uT3B0aW9uLmluaXRpYWxIaWRlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQWRkIHRoZSBjb2x1bW4gSURzIHRoYXQgbm93IGV4aXN0IHRvIHRoZSBkYXRhIG1hbmFnZXIgc3RhdGUgYm90aCBhcyBhdmFpbGFibGVcbiAgICAgICAgICAgIC8vIGFuZCBhcyBzaG93bi5cbiAgICAgICAgICAgIGN1cnJlbnRWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID1cbiAgICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMuY29uY2F0KG5ld0NvbHVtbklkcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEFkZCB0aGUgY29sdW1uIElEcyB0aGF0IG5vdyBleGlzdCB0byB0aGUgZGF0YSBtYW5hZ2VyIHN0YXRlIGJvdGggYXMgYXZhaWxhYmxlXG4gICAgICAgICAgLy8gYW5kIGFzIHNob3duLlxuICAgICAgICAgIGN1cnJlbnRWaWV3U3RhdGUuY29sdW1uSWRzID0gY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcztcblxuICAgICAgICAgIGNvbnN0IG5ld0RhdGFTdGF0ZSA9IGRhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcoXG4gICAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShuZXdEYXRhU3RhdGUsIHRoaXMuI2luaXRTb3VyY2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIGRhdGEgc3RhdGUgY2hhbmdlcyB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICogSXQgZXhjbHVkZXMgdXBkYXRlcyBvcmlnaW5hdGluZyBmcm9tIHRoZSBwcm92aWRlZCBzb3VyY2UuIFRoaXMgYWxsb3dzIHN1YnNjcmliZXJzIHRvIG9ubHkgcmVzcG9uZCB0b1xuICAgKiBjaGFuZ2VzIHRoZXkgZGlkIG5vdCBjcmVhdGUgYW5kIGhlbHBzIHByZXZlbnQgaW5maW5pdGUgbG9vcHMgb2YgdXBkYXRlcyBhbmQgcmVzcG9uc2VzLlxuICAgKiBAcGFyYW0gc291cmNlSWQgVGhlIElEIG9mIHRoZSBlbnRpdHkgc3Vic2NyaWJpbmcgdG8gZGF0YSBzdGF0ZSB1cGRhdGVzLiBUaGlzIGNhbiBiZSBhbnkgdmFsdWUgeW91IGNob29zZVxuICAgKiBidXQgc2hvdWxkIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBhbmQgc2hvdWxkIGFsc28gYmUgdXNlZCB3aGVuIHRoYXQgZW50aXR5IHVwZGF0ZXMgdGhlIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFTdGF0ZVVwZGF0ZXMoXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICB1cGRhdGVGaWx0ZXI/OiBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJnc1xuICApOiBPYnNlcnZhYmxlPFNreURhdGFNYW5hZ2VyU3RhdGU+IHtcbiAgICAvLyBmaWx0ZXIgb3V0IGV2ZW50cyBmcm9tIHRoZSBwcm92aWRlZCBzb3VyY2UgYW5kIGVtaXQganVzdCB0aGUgZGF0YVN0YXRlXG4gICAgaWYgKHVwZGF0ZUZpbHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuI2RhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKSxcbiAgICAgICAgdXBkYXRlRmlsdGVyLmNvbXBhcmF0b3JcbiAgICAgICAgICA/IGRpc3RpbmN0VW50aWxDaGFuZ2VkKHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yKVxuICAgICAgICAgIDogZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAgIHRoaXMuI2dldERlZmF1bHRTdGF0ZUNvbXBhcmF0b3IoXG4gICAgICAgICAgICAgICAgdXBkYXRlRmlsdGVyLnByb3BlcnRpZXMgYXMgKGtleW9mIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zKVtdXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLiNkYXRhU3RhdGVDaGFuZ2UucGlwZShcbiAgICAgICAgZmlsdGVyKChzdGF0ZUNoYW5nZSkgPT4gc291cmNlSWQgIT09IHN0YXRlQ2hhbmdlLnNvdXJjZSksXG4gICAgICAgIG1hcCgoc3RhdGVDaGFuZ2UpID0+IHN0YXRlQ2hhbmdlLmRhdGFTdGF0ZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGRhdGEgc3RhdGUgYW5kIGVtaXRzIGEgbmV3IHZhbHVlIHRvIGVudGl0aWVzIHN1YnNjcmliZWQgdG8gZGF0YSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gc3RhdGUgVGhlIG5ldyBgU2t5RGF0YU1hbmFnZXJTdGF0ZWAgdmFsdWUuXG4gICAqIEBwYXJhbSBzb3VyY2VJZCBUaGUgSUQgb2YgdGhlIGVudGl0eSB1cGRhdGluZyB0aGUgc3RhdGUuIFRoaXMgY2FuIGJlIGFueSB2YWx1ZSB5b3UgY2hvb3NlLFxuICAgKiBidXQgc2hvdWxkIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBhbmQgc2hvdWxkIGFsc28gYmUgdXNlZCB3aGVuIHRoYXQgZW50aXR5XG4gICAqIHN1YnNjcmliZXMgdG8gc3RhdGUgY2hhbmdlcyBmcm9tIGBnZXREYXRhU3RhdGVVcGRhdGVzYC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVEYXRhU3RhdGUoc3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUsIHNvdXJjZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlKHN0YXRlLmdldFN0YXRlT3B0aW9ucygpKTtcbiAgICBjb25zdCBuZXdTdGF0ZUNoYW5nZSA9IG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlQ2hhbmdlKG5ld1N0YXRlLCBzb3VyY2VJZCk7XG5cbiAgICB0aGlzLiNkYXRhU3RhdGVDaGFuZ2UubmV4dChuZXdTdGF0ZUNoYW5nZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBgU2t5RGF0YU1hbmFnZXJDb25maWdgLlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnREYXRhTWFuYWdlckNvbmZpZygpOiBTa3lEYXRhTWFuYWdlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGFNYW5hZ2VyQ29uZmlnLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIG1hbmFnZXIgY29uZmlnIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKCk6IE9ic2VydmFibGU8U2t5RGF0YU1hbmFnZXJDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy4jZGF0YU1hbmFnZXJDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBtYW5hZ2VyIGNvbmZpZyBhbmQgZW1pdHMgYSBuZXcgdmFsdWUgdG8gZW50aXRpZXMgc3Vic2NyaWJlZCB0byBkYXRhIGNvbmZpZyBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyBgU2t5RGF0YU1hbmFnZXJDb25maWdgIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGFNYW5hZ2VyQ29uZmlnKHZhbHVlOiBTa3lEYXRhTWFuYWdlckNvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyQ29uZmlnLm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIHZpZXcgY29uZmlnIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YVZpZXdzVXBkYXRlcygpOiBPYnNlcnZhYmxlPFNreURhdGFWaWV3Q29uZmlnW10+IHtcbiAgICByZXR1cm4gdGhpcy4jdmlld3M7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdmlldyBJRCB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXRBY3RpdmVWaWV3SWRVcGRhdGVzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuI2FjdGl2ZVZpZXdJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBhY3RpdmUgdmlldyBJRC4gVGhlIGRhdGEgbWFuYWdlciBjaGFuZ2VzIHRoZSBkaXNwbGF5ZWQgdmlldy5cbiAgICogQHBhcmFtIGlkIFRoZSBuZXcgYWN0aXZlIHZpZXcgSUQuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQWN0aXZlVmlld0lkKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNhY3RpdmVWaWV3SWQubmV4dChpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFNreURhdGFWaWV3Q29uZmlnYCBmb3IgdGhlIGdpdmVuIHZpZXcgSUQuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIG9mIHRoZSB2aWV3IGNvbmZpZyB0byBnZXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0Vmlld0J5SWQodmlld0lkOiBzdHJpbmcpOiBTa3lEYXRhVmlld0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzOiBTa3lEYXRhVmlld0NvbmZpZ1tdID0gdGhpcy4jdmlld3MudmFsdWU7XG4gICAgY29uc3Qgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWcgfCB1bmRlZmluZWQgPSBjdXJyZW50Vmlld3MuZmluZChcbiAgICAgICh2aWV3KSA9PiB2aWV3LmlkID09PSB2aWV3SWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHZpZXdDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZ2l2ZW4gdmlldyBjb25maWcuIFRoZSByZWdpc3RlcmVkIHZpZXcgd2l0aCB0aGUgc2FtZSBJRCBpcyB1cGRhdGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBjb25maWcsIHNvIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2hhbmdlZC4gSWYgdGhlXG4gICAqIHZpZXcgd2FzIG5vdCBpbml0aWFsaXplZCBhbHJlYWR5LCBubyB1cGRhdGUgaGFwcGVucy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIG5ldyBgU2t5RGF0YVZpZXdDb25maWdgIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlld0NvbmZpZyh2aWV3OiBTa3lEYXRhVmlld0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMuI3ZpZXdzLnZhbHVlO1xuICAgIGNvbnN0IGV4aXN0aW5nVmlld0luZGV4ID0gY3VycmVudFZpZXdzLmZpbmRJbmRleChcbiAgICAgIChjdXJyZW50VmlldykgPT4gY3VycmVudFZpZXcuaWQgPT09IHZpZXcuaWRcbiAgICApO1xuXG4gICAgaWYgKGV4aXN0aW5nVmlld0luZGV4ID09PSAtMSkge1xuICAgICAgY29uc29sZS5lcnJvcignQSB2aWV3IHdpdGggdGhlIGlkIHtpZH0gZG9lcyBub3QgZXhpc3QuJywgdmlldy5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRWaWV3c1tleGlzdGluZ1ZpZXdJbmRleF0gPSB2aWV3O1xuICAgICAgdGhpcy4jdmlld3MubmV4dChjdXJyZW50Vmlld3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRWaWV3a2VlcGVyQ2xhc3Nlcyh2aWV3SWQ6IHN0cmluZywgY2xhc3Nlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3a2VlcGVyQ2xhc3NlcyA9IHRoaXMudmlld2tlZXBlckNsYXNzZXMudmFsdWU7XG4gICAgdmlld2tlZXBlckNsYXNzZXNbdmlld0lkXSA9IGNsYXNzZXM7XG5cbiAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLm5leHQodmlld2tlZXBlckNsYXNzZXMpO1xuICB9XG5cbiAgI2ZpbHRlckRhdGFTdGF0ZVByb3BlcnRpZXMoXG4gICAgc3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gICAgcHJvcGVydGllczogKGtleW9mIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zKVtdIHwgdW5kZWZpbmVkXG4gICk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBzdGF0ZVByb3BlcnRpZXMgPSBzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKTtcbiAgICBjb25zdCBmaWx0ZXJlZFN0YXRlUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKHByb3BlcnR5IGluIHN0YXRlUHJvcGVydGllcykge1xuICAgICAgICAgIGZpbHRlcmVkU3RhdGVQcm9wZXJ0aWVzW3Byb3BlcnR5XSA9IHN0YXRlUHJvcGVydGllc1twcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWRTdGF0ZVByb3BlcnRpZXM7XG4gIH1cblxuICAjZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcihcbiAgICBwcm9wZXJ0aWVzOiAoa2V5b2YgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpW10gfCB1bmRlZmluZWRcbiAgKTogKHN0YXRlMTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc3RhdGUyOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgc3RhdGUxOiBTa3lEYXRhTWFuYWdlclN0YXRlLFxuICAgICAgc3RhdGUyOiBTa3lEYXRhTWFuYWdlclN0YXRlXG4gICAgKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZFN0YXRlMSA9IHRoaXMuI2ZpbHRlckRhdGFTdGF0ZVByb3BlcnRpZXMoXG4gICAgICAgIHN0YXRlMSxcbiAgICAgICAgcHJvcGVydGllc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkU3RhdGUyID0gdGhpcy4jZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhcbiAgICAgICAgc3RhdGUyLFxuICAgICAgICBwcm9wZXJ0aWVzXG4gICAgICApO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUxKSA9PT0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRTdGF0ZTIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,8 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
1
+ var _SkyDataViewComponent__isActive, _SkyDataViewComponent_ngUnsubscribe, _SkyDataViewComponent_dataManagerService, _SkyDataViewComponent_changeDetector;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
4
  import { Subject } from 'rxjs';
3
5
  import { takeUntil } from 'rxjs/operators';
4
- import { SkyDataManagerService } from './data-manager.service';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "./data-manager.service";
7
8
  import * as i2 from "@angular/common";
@@ -11,38 +12,41 @@ import * as i2 from "@angular/common";
11
12
  * search text, and more to the data it displays.
12
13
  */
13
14
  export class SkyDataViewComponent {
14
- constructor(changeDetector, dataManagerService) {
15
- this.changeDetector = changeDetector;
16
- this.dataManagerService = dataManagerService;
17
- this._isActive = false;
18
- this._ngUnsubscribe = new Subject();
15
+ constructor(dataManagerService, changeDetector) {
16
+ _SkyDataViewComponent__isActive.set(this, false);
17
+ _SkyDataViewComponent_ngUnsubscribe.set(this, new Subject());
18
+ _SkyDataViewComponent_dataManagerService.set(this, void 0);
19
+ _SkyDataViewComponent_changeDetector.set(this, void 0);
20
+ __classPrivateFieldSet(this, _SkyDataViewComponent_dataManagerService, dataManagerService, "f");
21
+ __classPrivateFieldSet(this, _SkyDataViewComponent_changeDetector, changeDetector, "f");
19
22
  }
20
23
  get isActive() {
21
- return this._isActive;
24
+ return __classPrivateFieldGet(this, _SkyDataViewComponent__isActive, "f");
22
25
  }
23
26
  set isActive(value) {
24
- this._isActive = value;
25
- this.changeDetector.markForCheck();
27
+ __classPrivateFieldSet(this, _SkyDataViewComponent__isActive, value, "f");
28
+ __classPrivateFieldGet(this, _SkyDataViewComponent_changeDetector, "f").markForCheck();
26
29
  }
27
30
  ngOnInit() {
28
- this.dataManagerService
31
+ __classPrivateFieldGet(this, _SkyDataViewComponent_dataManagerService, "f")
29
32
  .getActiveViewIdUpdates()
30
- .pipe(takeUntil(this._ngUnsubscribe))
33
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f")))
31
34
  .subscribe((activeViewId) => {
32
35
  this.isActive = this.viewId === activeViewId;
33
36
  });
34
37
  }
35
38
  ngOnDestroy() {
36
- this._ngUnsubscribe.next();
37
- this._ngUnsubscribe.complete();
39
+ __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").next();
40
+ __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").complete();
38
41
  }
39
42
  }
40
- SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
41
- SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataViewComponent, decorators: [{
43
+ _SkyDataViewComponent__isActive = new WeakMap(), _SkyDataViewComponent_ngUnsubscribe = new WeakMap(), _SkyDataViewComponent_dataManagerService = new WeakMap(), _SkyDataViewComponent_changeDetector = new WeakMap();
44
+ SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i1.SkyDataManagerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
45
+ SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDataViewComponent, decorators: [{
43
47
  type: Component,
44
48
  args: [{ selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n" }]
45
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
49
+ }], ctorParameters: function () { return [{ type: i1.SkyDataManagerService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { viewId: [{
46
50
  type: Input
47
51
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRS9EOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixZQUNVLGNBQWlDLEVBQ2pDLGtCQUF5QztRQUR6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQUw1QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUsxQyxDQUFDO0lBZkosSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFVTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixzQkFBc0IsRUFBRTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2lIQXRDVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtRkN4QmpDLG1GQUdBOzJGRHFCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzRJQVN4QyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGRhdGEgdmlldyBpcyByZW5kZXJlZCB3aXRoaW4gYSBkYXRhIG1hbmFnZXIgY29tcG9uZW50LlxuICogSXQgY2FuIHN1YnNjcmliZSB0byBkYXRhIHN0YXRlIGNoYW5nZXMgZnJvbSBgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlYCBhbmQgYXBwbHkgdGhlIGZpbHRlcnMsXG4gKiBzZWFyY2ggdGV4dCwgYW5kIG1vcmUgdG8gdGhlIGRhdGEgaXQgZGlzcGxheXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB2aWV3LiBTZWUgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgaW50ZXJmYWNlLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQWN0aXZlO1xuICB9XG5cbiAgcHVibGljIHNldCBpc0FjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQWN0aXZlID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBfaXNBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVWaWV3SWQpID0+IHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRoaXMudmlld0lkID09PSBhY3RpdmVWaWV3SWQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjdGl2ZVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUkzQzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQXVCL0IsWUFDRSxrQkFBeUMsRUFDekMsY0FBaUM7UUFSbkMsMENBQWEsS0FBSyxFQUFDO1FBRW5CLDhDQUFpQixJQUFJLE9BQU8sRUFBUSxFQUFDO1FBQ3JDLDJEQUEyQztRQUMzQyx1REFBbUM7UUFNakMsdUJBQUEsSUFBSSw0Q0FBdUIsa0JBQWtCLE1BQUEsQ0FBQztRQUM5Qyx1QkFBQSxJQUFJLHdDQUFtQixjQUFjLE1BQUEsQ0FBQztJQUN4QyxDQUFDO0lBckJELElBQVcsUUFBUTtRQUNqQixPQUFPLHVCQUFBLElBQUksdUNBQVcsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyx1QkFBQSxJQUFJLG1DQUFjLEtBQUssTUFBQSxDQUFDO1FBQ3hCLHVCQUFBLElBQUksNENBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQWdCTSxRQUFRO1FBQ2IsdUJBQUEsSUFBSSxnREFBb0I7YUFDckIsc0JBQXNCLEVBQUU7YUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLDJDQUFlLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsdUJBQUEsSUFBSSwyQ0FBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLHVCQUFBLElBQUksMkNBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7a0hBM0NVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLG1GQ3hCakMsbUZBR0E7NEZEcUJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU07NElBUXhDLE1BQU07c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgZGF0YSB2aWV3IGlzIHJlbmRlcmVkIHdpdGhpbiBhIGRhdGEgbWFuYWdlciBjb21wb25lbnQuXG4gKiBJdCBjYW4gc3Vic2NyaWJlIHRvIGRhdGEgc3RhdGUgY2hhbmdlcyBmcm9tIGBTa3lEYXRhTWFuYWdlclNlcnZpY2VgIGFuZCBhcHBseSB0aGUgZmlsdGVycyxcbiAqIHNlYXJjaCB0ZXh0LCBhbmQgbW9yZSB0byB0aGUgZGF0YSBpdCBkaXNwbGF5cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpZXcuIFNlZSB0aGUgYFNreURhdGFWaWV3Q29uZmlnYCBpbnRlcmZhY2UuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0FjdGl2ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfaXNBY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNfaXNBY3RpdmUgPSBmYWxzZTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlID0gZGF0YU1hbmFnZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVWaWV3SWQpID0+IHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRoaXMudmlld0lkID09PSBhY3RpdmVWaWV3SWQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjdGl2ZVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItc29ydC1vcHRpb24nO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGNvbnRhaW5zIHNldHRpbmdzIHRoYXQgYXBwbHkgdG8gdGhlIGRhdGEgbWFuYWdlciBhY3Jvc3MgYWxsIHZpZXdzLFxuICogc3VjaCBhcyB0aGUgc29ydCBhbmQgZmlsdGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCBjYW4gdHJhY2sgYW55IGNvbmZpZyBpbmZvcm1hdGlvbiByZWxldmFudCB0byBhXG4gICAqIGRhdGEgbWFuYWdlciB0aGF0IGV4aXN0aW5nIG9wdGlvbnMgZG8gbm90IGluY2x1ZGUuXG4gICAqL1xuICBhZGRpdGlvbmFsT3B0aW9ucz86IGFueTtcbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBjb21wb25lbnQgdG8gbGF1bmNoIHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgc2VsZWN0ZWQuIFRoZSBzYW1lIGZpbHRlciBvcHRpb25zIGFyZVxuICAgKiB1c2VkIGZvciBhbGwgdmlld3MsIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5XG4gICAqIHRoZSBmaWx0ZXIgYnV0dG9uLiBUaGUgbW9kYWwgcmVjZWl2ZXMgdGhlIGBmaWx0ZXJEYXRhYCBpbiB0aGUgZGF0YSBzdGF0ZSBhcyBjb250ZXh0LlxuICAgKi9cbiAgZmlsdGVyTW9kYWxDb21wb25lbnQ/OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcHRpb25zIGRpc3BsYXllZCBpbiB0aGUgc29ydCBkcm9wZG93bi4gVGhlIHNhbWUgc29ydCBvcHRpb25zIGFyZSB1c2VkIGZvciBhbGwgdmlld3MsXG4gICAqIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBzb3J0IGJ1dHRvbi5cbiAgICovXG4gIHNvcnRPcHRpb25zPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItc29ydC1vcHRpb24nO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGNvbnRhaW5zIHNldHRpbmdzIHRoYXQgYXBwbHkgdG8gdGhlIGRhdGEgbWFuYWdlciBhY3Jvc3MgYWxsIHZpZXdzLFxuICogc3VjaCBhcyB0aGUgc29ydCBhbmQgZmlsdGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCBjYW4gdHJhY2sgYW55IGNvbmZpZyBpbmZvcm1hdGlvbiByZWxldmFudCB0byBhXG4gICAqIGRhdGEgbWFuYWdlciB0aGF0IGV4aXN0aW5nIG9wdGlvbnMgZG8gbm90IGluY2x1ZGUuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhZGRpdGlvbmFsT3B0aW9ucz86IGFueTtcbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBjb21wb25lbnQgdG8gbGF1bmNoIHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgc2VsZWN0ZWQuIFRoZSBzYW1lIGZpbHRlciBvcHRpb25zIGFyZVxuICAgKiB1c2VkIGZvciBhbGwgdmlld3MsIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5XG4gICAqIHRoZSBmaWx0ZXIgYnV0dG9uLiBUaGUgbW9kYWwgcmVjZWl2ZXMgdGhlIGBmaWx0ZXJEYXRhYCBpbiB0aGUgZGF0YSBzdGF0ZSBhcyBjb250ZXh0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZmlsdGVyTW9kYWxDb21wb25lbnQ/OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcHRpb25zIGRpc3BsYXllZCBpbiB0aGUgc29ydCBkcm9wZG93bi4gVGhlIHNhbWUgc29ydCBvcHRpb25zIGFyZSB1c2VkIGZvciBhbGwgdmlld3MsXG4gICAqIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBzb3J0IGJ1dHRvbi5cbiAgICovXG4gIHNvcnRPcHRpb25zPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uW107XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItZmlsdGVyLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5RGF0YU1hbmFnZXJGaWx0ZXJEYXRhIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFueSBmaWx0ZXJzIGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgZmlsdGVyc0FwcGxpZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGZpbHRlciBkYXRhIHVzZWQgaW4gdGhlIGRhdGEgbWFuYWdlci4gWW91IG1heSB1c2UgYW55IGZpbHRlciBtb2RlbCB0aGF0IHdvcmtzIGZvclxuICAgKiB5b3VyIGRhdGEgc2V0IGFuZCBtb2RlbHMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIGZpbHRlcnM/OiBhbnk7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItZmlsdGVyLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5RGF0YU1hbmFnZXJGaWx0ZXJEYXRhIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFueSBmaWx0ZXJzIGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgZmlsdGVyc0FwcGxpZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGZpbHRlciBkYXRhIHVzZWQgaW4gdGhlIGRhdGEgbWFuYWdlci4gWW91IG1heSB1c2UgYW55IGZpbHRlciBtb2RlbCB0aGF0IHdvcmtzIGZvclxuICAgKiB5b3VyIGRhdGEgc2V0IGFuZCBtb2RlbHMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGZpbHRlcnM/OiBhbnk7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gdG8gYXBwbHkuXG4gICAqL1xuICBhY3RpdmVTb3J0T3B0aW9uPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCdzIHJlbGV2YW50IHRvIGEgZGF0YVxuICAgKiBtYW5hZ2VyIGJ1dCB0aGF0IHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGRvIG5vdCBjb3Zlci5cbiAgICovXG4gIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmaWx0ZXJzLlxuICAgKi9cbiAgZmlsdGVyRGF0YT86IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgb25seSB0aGUgc2VsZWN0ZWQgcm93cyBvciBvYmplY3RzLiBUaGUgbXVsdGlzZWxlY3QgdG9vbGJhclxuICAgKiB1c2VzIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBvbmx5U2hvd1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggdGV4dCB0byBhcHBseS5cbiAgICovXG4gIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy5cbiAgICovXG4gIHNlbGVjdGVkSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RhdGVzIG9mIHRoZSBpbmRpdmlkdWFsIHZpZXdzLlxuICAgKi9cbiAgdmlld3M/OiBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc1tdO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gdG8gYXBwbHkuXG4gICAqL1xuICBhY3RpdmVTb3J0T3B0aW9uPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCdzIHJlbGV2YW50IHRvIGEgZGF0YVxuICAgKiBtYW5hZ2VyIGJ1dCB0aGF0IHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGRvIG5vdCBjb3Zlci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmaWx0ZXJzLlxuICAgKi9cbiAgZmlsdGVyRGF0YT86IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgb25seSB0aGUgc2VsZWN0ZWQgcm93cyBvciBvYmplY3RzLiBUaGUgbXVsdGlzZWxlY3QgdG9vbGJhclxuICAgKiB1c2VzIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBvbmx5U2hvd1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggdGV4dCB0byBhcHBseS5cbiAgICovXG4gIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy5cbiAgICovXG4gIHNlbGVjdGVkSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RhdGVzIG9mIHRoZSBpbmRpdmlkdWFsIHZpZXdzLlxuICAgKi9cbiAgdmlld3M/OiBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc1tdO1xufVxuIl19
@@ -67,4 +67,4 @@ export class SkyDataManagerState {
67
67
  });
68
68
  }
69
69
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0M5QixZQUFZLElBQWdDO1FBTDVDOztXQUVHO1FBQ0ksVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHcEMsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUNwQixNQUFjLEVBQ2QsSUFBc0I7UUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdTdGF0ZSB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyB0aGF0IGNvbnRyb2wgd2hpY2ggZGF0YSB0byBkaXNwbGF5LlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0ZWQgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbjtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCB0cmFja3MgYW55IHN0YXRlIGluZm9ybWF0aW9uIHRoYXQncyByZWxldmFudCB0byBhIGRhdGFcbiAgICogbWFuYWdlciBidXQgdGhhdCB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGE7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IG9ubHkgdGhlIHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy4gVGhlIG11bHRpc2VsZWN0IHRvb2xiYXJcbiAgICogdXNlcyB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIHRleHQgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3dzIG9yIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIHN0YXRlcyBvZiB0aGUgaW5kaXZpZHVhbCB2aWV3cy5cbiAgICovXG4gIHB1YmxpYyB2aWV3czogU2t5RGF0YVZpZXdTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB2aWV3cyA9XG4gICAgICBkYXRhLnZpZXdzICYmIGRhdGEudmlld3MubWFwKCh2aWV3KSA9PiBuZXcgU2t5RGF0YVZpZXdTdGF0ZSh2aWV3KSk7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnRPcHRpb24gPSBkYXRhLmFjdGl2ZVNvcnRPcHRpb247XG4gICAgdGhpcy5hZGRpdGlvbmFsRGF0YSA9IGRhdGEuYWRkaXRpb25hbERhdGE7XG4gICAgdGhpcy5maWx0ZXJEYXRhID0gZGF0YS5maWx0ZXJEYXRhO1xuICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGEub25seVNob3dTZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZGF0YS5zZWxlY3RlZElkcztcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBkYXRhLnNlYXJjaFRleHQ7XG4gICAgdGhpcy52aWV3cyA9IHZpZXdzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9uc2AgZm9yIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnNgIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKi9cbiAgcHVibGljIGdldFN0YXRlT3B0aW9ucygpOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgdmlld1N0YXRlczogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNbXSA9IHRoaXMudmlld3MubWFwKCh2aWV3KSA9PiB7XG4gICAgICByZXR1cm4gdmlldy5nZXRWaWV3U3RhdGVPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlU29ydE9wdGlvbjogdGhpcy5hY3RpdmVTb3J0T3B0aW9uLFxuICAgICAgYWRkaXRpb25hbERhdGE6IHRoaXMuYWRkaXRpb25hbERhdGEsXG4gICAgICBmaWx0ZXJEYXRhOiB0aGlzLmZpbHRlckRhdGEsXG4gICAgICBvbmx5U2hvd1NlbGVjdGVkOiB0aGlzLm9ubHlTaG93U2VsZWN0ZWQsXG4gICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBzZWxlY3RlZElkczogdGhpcy5zZWxlY3RlZElkcyxcbiAgICAgIHZpZXdzOiB2aWV3U3RhdGVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFNreURhdGFWaWV3U3RhdGVgIGZvciB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHJldHVybnMgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBmb3IgdGhlIHNwZWNpZmllZCB2aWV3LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZUJ5SWQodmlld0lkOiBzdHJpbmcpOiBTa3lEYXRhVmlld1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnZpZXdJZCA9PT0gdmlld0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYFNreURhdGFWaWV3U3RhdGVgIHRvIGEgdmlldyBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBvcHRpb24gdG8gYWRkIG9yIHVwZGF0ZS5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIG9mIHRoZSBkYXRhIG1hbmFnZXIgZm9yIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIHB1YmxpYyBhZGRPclVwZGF0ZVZpZXcoXG4gICAgdmlld0lkOiBzdHJpbmcsXG4gICAgdmlldzogU2t5RGF0YVZpZXdTdGF0ZVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgICBjb25zdCBleGlzdGluZ1ZpZXdJbmRleCA9IHRoaXMudmlld3MuZmluZEluZGV4KCh2KSA9PiB2LnZpZXdJZCA9PT0gdmlld0lkKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMudmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZSh7XG4gICAgICBhY3RpdmVTb3J0T3B0aW9uOiB0aGlzLmFjdGl2ZVNvcnRPcHRpb24sXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgIGZpbHRlckRhdGE6IHRoaXMuZmlsdGVyRGF0YSxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIHNlbGVjdGVkSWRzOiB0aGlzLnNlbGVjdGVkSWRzLFxuICAgICAgdmlld3M6IHRoaXMudmlld3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBaUM5QixZQUFZLElBQWdDO1FBTDVDOztXQUVHO1FBQ0ksVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHcEMsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUNwQixNQUFjLEVBQ2QsSUFBc0I7UUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdTdGF0ZSB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyB0aGF0IGNvbnRyb2wgd2hpY2ggZGF0YSB0byBkaXNwbGF5LlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0ZWQgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCB0cmFja3MgYW55IHN0YXRlIGluZm9ybWF0aW9uIHRoYXQncyByZWxldmFudCB0byBhIGRhdGFcbiAgICogbWFuYWdlciBidXQgdGhhdCB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IG9ubHkgdGhlIHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy4gVGhlIG11bHRpc2VsZWN0IHRvb2xiYXJcbiAgICogdXNlcyB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIHRleHQgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3dzIG9yIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIHN0YXRlcyBvZiB0aGUgaW5kaXZpZHVhbCB2aWV3cy5cbiAgICovXG4gIHB1YmxpYyB2aWV3czogU2t5RGF0YVZpZXdTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB2aWV3cyA9XG4gICAgICBkYXRhLnZpZXdzICYmIGRhdGEudmlld3MubWFwKCh2aWV3KSA9PiBuZXcgU2t5RGF0YVZpZXdTdGF0ZSh2aWV3KSk7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnRPcHRpb24gPSBkYXRhLmFjdGl2ZVNvcnRPcHRpb247XG4gICAgdGhpcy5hZGRpdGlvbmFsRGF0YSA9IGRhdGEuYWRkaXRpb25hbERhdGE7XG4gICAgdGhpcy5maWx0ZXJEYXRhID0gZGF0YS5maWx0ZXJEYXRhO1xuICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGEub25seVNob3dTZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZGF0YS5zZWxlY3RlZElkcztcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBkYXRhLnNlYXJjaFRleHQ7XG4gICAgdGhpcy52aWV3cyA9IHZpZXdzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9uc2AgZm9yIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnNgIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKi9cbiAgcHVibGljIGdldFN0YXRlT3B0aW9ucygpOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgdmlld1N0YXRlczogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNbXSA9IHRoaXMudmlld3MubWFwKCh2aWV3KSA9PiB7XG4gICAgICByZXR1cm4gdmlldy5nZXRWaWV3U3RhdGVPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlU29ydE9wdGlvbjogdGhpcy5hY3RpdmVTb3J0T3B0aW9uLFxuICAgICAgYWRkaXRpb25hbERhdGE6IHRoaXMuYWRkaXRpb25hbERhdGEsXG4gICAgICBmaWx0ZXJEYXRhOiB0aGlzLmZpbHRlckRhdGEsXG4gICAgICBvbmx5U2hvd1NlbGVjdGVkOiB0aGlzLm9ubHlTaG93U2VsZWN0ZWQsXG4gICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBzZWxlY3RlZElkczogdGhpcy5zZWxlY3RlZElkcyxcbiAgICAgIHZpZXdzOiB2aWV3U3RhdGVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFNreURhdGFWaWV3U3RhdGVgIGZvciB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHJldHVybnMgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBmb3IgdGhlIHNwZWNpZmllZCB2aWV3LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZUJ5SWQodmlld0lkOiBzdHJpbmcpOiBTa3lEYXRhVmlld1N0YXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnZpZXdJZCA9PT0gdmlld0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYFNreURhdGFWaWV3U3RhdGVgIHRvIGEgdmlldyBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBvcHRpb24gdG8gYWRkIG9yIHVwZGF0ZS5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIG9mIHRoZSBkYXRhIG1hbmFnZXIgZm9yIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIHB1YmxpYyBhZGRPclVwZGF0ZVZpZXcoXG4gICAgdmlld0lkOiBzdHJpbmcsXG4gICAgdmlldzogU2t5RGF0YVZpZXdTdGF0ZVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgICBjb25zdCBleGlzdGluZ1ZpZXdJbmRleCA9IHRoaXMudmlld3MuZmluZEluZGV4KCh2KSA9PiB2LnZpZXdJZCA9PT0gdmlld0lkKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMudmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZSh7XG4gICAgICBhY3RpdmVTb3J0T3B0aW9uOiB0aGlzLmFjdGl2ZVNvcnRPcHRpb24sXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgIGZpbHRlckRhdGE6IHRoaXMuZmlsdGVyRGF0YSxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIHNlbGVjdGVkSWRzOiB0aGlzLnNlbGVjdGVkSWRzLFxuICAgICAgdmlld3M6IHRoaXMudmlld3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtdmlldy1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreURhdGFWaWV3U3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICB2aWV3SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRHMgb2YgdGhlIGNvbHVtbnMgYWJsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIGNvbHVtbi1iYXNlZCB2aWV3cy4gVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIHV0aWxpemluZyBhIGdyaWQtYmFzZWQgdmlldywgYSBjb2x1bW4gcGlja2VyLCBvciBib3RoLlxuICAgKi9cbiAgY29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgZGlzcGxheWVkQ29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICBhZGRpdGlvbmFsRGF0YT86IGFueTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtdmlldy1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreURhdGFWaWV3U3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICB2aWV3SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRHMgb2YgdGhlIGNvbHVtbnMgYWJsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIGNvbHVtbi1iYXNlZCB2aWV3cy4gVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIHV0aWxpemluZyBhIGdyaWQtYmFzZWQgdmlldywgYSBjb2x1bW4gcGlja2VyLCBvciBib3RoLlxuICAgKi9cbiAgY29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgZGlzcGxheWVkQ29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhZGRpdGlvbmFsRGF0YT86IGFueTtcbn1cbiJdfQ==