@skyux/router 6.16.0 → 6.17.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.
@@ -1,3 +1,5 @@
1
+ var _SkyHrefDirective_instances, _SkyHrefDirective_route, _SkyHrefDirective_href, _SkyHrefDirective__skyHref, _SkyHrefDirective__skyHrefElse, _SkyHrefDirective_router, _SkyHrefDirective_renderer, _SkyHrefDirective_element, _SkyHrefDirective_skyAppConfig, _SkyHrefDirective_paramsProvider, _SkyHrefDirective_hrefResolver, _SkyHrefDirective_applicationRef, _SkyHrefDirective_changeDetectorRef, _SkyHrefDirective_applyChanges, _SkyHrefDirective_checkRouteAccess, _SkyHrefDirective_getChanges, _SkyHrefDirective_getSkyuxParams, _SkyHrefDirective_getUrlTree;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { HttpParams } from '@angular/common/http';
2
4
  import { ApplicationRef, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, Input, Optional, Output, Renderer2, } from '@angular/core';
3
5
  import { Router } from '@angular/router';
@@ -9,21 +11,51 @@ import * as i2 from "@skyux/config";
9
11
  import * as i3 from "./href-resolver.service";
10
12
  export class SkyHrefDirective {
11
13
  constructor(router, renderer, element, skyAppConfig, paramsProvider, hrefResolver, applicationRef, changeDetectorRef) {
12
- this.router = router;
13
- this.renderer = renderer;
14
- this.element = element;
15
- this.skyAppConfig = skyAppConfig;
16
- this.paramsProvider = paramsProvider;
17
- this.hrefResolver = hrefResolver;
18
- this.applicationRef = applicationRef;
19
- this.changeDetectorRef = changeDetectorRef;
14
+ _SkyHrefDirective_instances.add(this);
20
15
  /**
21
16
  * Emits whether the link is available (true) or not (false).
22
17
  */
23
18
  this.skyHrefChange = new EventEmitter();
24
- this._route = false;
25
- this._skyHref = '';
26
- this._skyHrefElse = 'hide';
19
+ _SkyHrefDirective_route.set(this, false);
20
+ _SkyHrefDirective_href.set(this, '');
21
+ _SkyHrefDirective__skyHref.set(this, '');
22
+ _SkyHrefDirective__skyHrefElse.set(this, 'hide');
23
+ _SkyHrefDirective_router.set(this, void 0);
24
+ _SkyHrefDirective_renderer.set(this, void 0);
25
+ _SkyHrefDirective_element.set(this, void 0);
26
+ _SkyHrefDirective_skyAppConfig.set(this, void 0);
27
+ _SkyHrefDirective_paramsProvider.set(this, void 0);
28
+ _SkyHrefDirective_hrefResolver.set(this, void 0);
29
+ _SkyHrefDirective_applicationRef.set(this, void 0);
30
+ _SkyHrefDirective_changeDetectorRef.set(this, void 0);
31
+ /* istanbul ignore next */
32
+ _SkyHrefDirective_getUrlTree.set(this, () => {
33
+ const href = __classPrivateFieldGet(this, _SkyHrefDirective_href, "f").toLowerCase();
34
+ if (!href ||
35
+ !__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.skyux.host?.url ||
36
+ !__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.runtime?.app?.base) {
37
+ return false;
38
+ }
39
+ const baseUrl = (__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").skyux.host.url +
40
+ __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.app.base.substr(0, __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.app.base.length - 1)).toLowerCase();
41
+ if (href === baseUrl ||
42
+ // Make sure the base URL is not simply a partial match of the base URL plus additional
43
+ // characters after the base URL that are not "terminating" characters
44
+ href.indexOf(baseUrl + '/') === 0 ||
45
+ href.indexOf(baseUrl + '?') === 0) {
46
+ const routePath = __classPrivateFieldGet(this, _SkyHrefDirective_href, "f").substring(baseUrl.length);
47
+ return __classPrivateFieldGet(this, _SkyHrefDirective_router, "f").parseUrl(routePath);
48
+ }
49
+ return false;
50
+ });
51
+ __classPrivateFieldSet(this, _SkyHrefDirective_router, router, "f");
52
+ __classPrivateFieldSet(this, _SkyHrefDirective_renderer, renderer, "f");
53
+ __classPrivateFieldSet(this, _SkyHrefDirective_element, element, "f");
54
+ __classPrivateFieldSet(this, _SkyHrefDirective_skyAppConfig, skyAppConfig, "f");
55
+ __classPrivateFieldSet(this, _SkyHrefDirective_paramsProvider, paramsProvider, "f");
56
+ __classPrivateFieldSet(this, _SkyHrefDirective_hrefResolver, hrefResolver, "f");
57
+ __classPrivateFieldSet(this, _SkyHrefDirective_applicationRef, applicationRef, "f");
58
+ __classPrivateFieldSet(this, _SkyHrefDirective_changeDetectorRef, changeDetectorRef, "f");
27
59
  }
28
60
  /**
29
61
  * Provide a link as a string or as an array of strings to be joined by a slash to form a complete
@@ -33,12 +65,15 @@ export class SkyHrefDirective {
33
65
  */
34
66
  set skyHref(skyHref) {
35
67
  if (typeof skyHref === 'string') {
36
- this._skyHref = skyHref;
68
+ __classPrivateFieldSet(this, _SkyHrefDirective__skyHref, skyHref, "f");
37
69
  }
38
70
  else {
39
- this._skyHref = skyHref.join('/');
71
+ __classPrivateFieldSet(this, _SkyHrefDirective__skyHref, skyHref ? skyHref.join('/') : '', "f");
40
72
  }
41
- this.checkRouteAccess();
73
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_checkRouteAccess).call(this);
74
+ }
75
+ get skyHref() {
76
+ return __classPrivateFieldGet(this, _SkyHrefDirective__skyHref, "f");
42
77
  }
43
78
  /**
44
79
  * Set the behavior for when the link is not available to either hide the link or display unlinked text.
@@ -46,131 +81,110 @@ export class SkyHrefDirective {
46
81
  * @param value
47
82
  */
48
83
  set skyHrefElse(value) {
49
- this._skyHrefElse = value;
50
- this.applyChanges(this.getChanges());
84
+ __classPrivateFieldSet(this, _SkyHrefDirective__skyHrefElse, value, "f");
85
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
86
+ }
87
+ get skyHrefElse() {
88
+ return __classPrivateFieldGet(this, _SkyHrefDirective__skyHrefElse, "f");
51
89
  }
52
90
  /* istanbul ignore next */
53
91
  onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
54
- if (!this._route || !this._route.userHasAccess) {
92
+ if (!__classPrivateFieldGet(this, _SkyHrefDirective_route, "f") || !__classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess) {
55
93
  return false;
56
94
  }
57
95
  if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
58
96
  return true;
59
97
  }
60
- const target = this.element.nativeElement.getAttribute('target');
98
+ const target = __classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement.getAttribute('target');
61
99
  if (typeof target === 'string' && target !== '_self') {
62
100
  return true;
63
101
  }
64
- const urlTree = this.getUrlTree();
102
+ const urlTree = __classPrivateFieldGet(this, _SkyHrefDirective_getUrlTree, "f").call(this);
65
103
  if (urlTree) {
66
- this.router.navigateByUrl(urlTree);
104
+ __classPrivateFieldGet(this, _SkyHrefDirective_router, "f").navigateByUrl(urlTree);
67
105
  return false;
68
106
  }
69
107
  return true;
70
108
  }
71
- applyChanges(change) {
72
- this.renderer.addClass(this.element.nativeElement, 'sky-href');
73
- if (change.hidden) {
74
- this.renderer.setAttribute(this.element.nativeElement, 'hidden', 'hidden');
75
- }
76
- else {
77
- this.renderer.removeAttribute(this.element.nativeElement, 'hidden');
78
- }
79
- if (change.href) {
80
- this.renderer.setAttribute(this.element.nativeElement, 'href', change.href);
81
- }
82
- else {
83
- this.renderer.removeAttribute(this.element.nativeElement, 'href');
84
- }
85
- this.skyHrefChange.emit({ userHasAccess: !change.hidden });
109
+ }
110
+ _SkyHrefDirective_route = new WeakMap(), _SkyHrefDirective_href = new WeakMap(), _SkyHrefDirective__skyHref = new WeakMap(), _SkyHrefDirective__skyHrefElse = new WeakMap(), _SkyHrefDirective_router = new WeakMap(), _SkyHrefDirective_renderer = new WeakMap(), _SkyHrefDirective_element = new WeakMap(), _SkyHrefDirective_skyAppConfig = new WeakMap(), _SkyHrefDirective_paramsProvider = new WeakMap(), _SkyHrefDirective_hrefResolver = new WeakMap(), _SkyHrefDirective_applicationRef = new WeakMap(), _SkyHrefDirective_changeDetectorRef = new WeakMap(), _SkyHrefDirective_getUrlTree = new WeakMap(), _SkyHrefDirective_instances = new WeakSet(), _SkyHrefDirective_applyChanges = function _SkyHrefDirective_applyChanges(change) {
111
+ __classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").addClass(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'sky-href');
112
+ if (change.hidden) {
113
+ __classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'hidden', 'hidden');
86
114
  }
87
- checkRouteAccess() {
88
- this._route = {
89
- url: this._skyHref,
90
- userHasAccess: false,
91
- };
92
- /* istanbul ignore else */
93
- if (this.hrefResolver && this._skyHref) {
94
- this.applyChanges(this.getChanges());
95
- try {
96
- this.hrefResolver.resolveHref({ url: this._skyHref }).then((route) => {
97
- this._route = { ...route };
98
- this.applyChanges(this.getChanges());
99
- /* istanbul ignore else */
100
- if (this.changeDetectorRef && this.applicationRef) {
101
- this.changeDetectorRef.markForCheck();
102
- this.applicationRef.tick();
103
- }
104
- });
105
- }
106
- catch (error) {
107
- this.applyChanges(this.getChanges());
108
- }
109
- }
110
- else {
111
- // no resolver or skyHref is falsy
112
- this._route.userHasAccess = !!this._skyHref;
113
- this.applyChanges(this.getChanges());
114
- }
115
+ else {
116
+ __classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'hidden');
115
117
  }
116
- getChanges() {
117
- const queryParams = {};
118
- if (!this._route || !this._route.userHasAccess) {
119
- return {
120
- href: '',
121
- hidden: this._skyHrefElse === 'hide',
122
- };
123
- }
124
- else {
125
- const [beforeFragment, fragment] = this._route.url.split('#', 2);
126
- const [baseUrl, search] = beforeFragment.split('?', 2);
127
- if (search) {
128
- const searchParams = new HttpParams({ fromString: search });
129
- searchParams.keys().forEach((key) => {
130
- queryParams[key] = searchParams.get(key);
131
- });
132
- }
133
- const queryParamsMerged = new HttpParams({
134
- fromObject: Object.assign({}, this.getSkyuxParams(), queryParams),
118
+ if (change.href) {
119
+ __classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'href', change.href);
120
+ }
121
+ else {
122
+ __classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'href');
123
+ }
124
+ this.skyHrefChange.emit({ userHasAccess: !change.hidden });
125
+ }, _SkyHrefDirective_checkRouteAccess = function _SkyHrefDirective_checkRouteAccess() {
126
+ __classPrivateFieldSet(this, _SkyHrefDirective_route, {
127
+ url: this.skyHref,
128
+ userHasAccess: false,
129
+ }, "f");
130
+ /* istanbul ignore else */
131
+ if (__classPrivateFieldGet(this, _SkyHrefDirective_hrefResolver, "f") && this.skyHref) {
132
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
133
+ try {
134
+ __classPrivateFieldGet(this, _SkyHrefDirective_hrefResolver, "f").resolveHref({ url: this.skyHref }).then((route) => {
135
+ __classPrivateFieldSet(this, _SkyHrefDirective_route, { ...route }, "f");
136
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
137
+ /* istanbul ignore else */
138
+ if (__classPrivateFieldGet(this, _SkyHrefDirective_changeDetectorRef, "f") && __classPrivateFieldGet(this, _SkyHrefDirective_applicationRef, "f")) {
139
+ __classPrivateFieldGet(this, _SkyHrefDirective_changeDetectorRef, "f").markForCheck();
140
+ __classPrivateFieldGet(this, _SkyHrefDirective_applicationRef, "f").tick();
141
+ }
135
142
  });
136
- this._href =
137
- baseUrl +
138
- (queryParamsMerged.keys().length > 0
139
- ? '?' + queryParamsMerged.toString()
140
- : '') +
141
- (fragment ? `#${fragment}` : '');
142
- return {
143
- href: this._href,
144
- hidden: false,
145
- };
143
+ }
144
+ catch (error) {
145
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
146
146
  }
147
147
  }
148
- getSkyuxParams() {
149
- return typeof this.skyAppConfig?.runtime.params?.getAll === 'function'
150
- ? this.skyAppConfig.runtime.params.getAll(true)
151
- : this.paramsProvider.params.getAll(true);
148
+ else {
149
+ // no resolver or skyHref is falsy
150
+ __classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess = !!this.skyHref;
151
+ __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
152
152
  }
153
- /* istanbul ignore next */
154
- getUrlTree() {
155
- const href = this._href.toLowerCase();
156
- if (!href ||
157
- !this.skyAppConfig?.skyux.host?.url ||
158
- !this.skyAppConfig?.runtime?.app?.base) {
159
- return false;
160
- }
161
- const baseUrl = (this.skyAppConfig.skyux.host.url +
162
- this.skyAppConfig.runtime.app.base.substr(0, this.skyAppConfig.runtime.app.base.length - 1)).toLowerCase();
163
- if (href === baseUrl ||
164
- // Make sure the base URL is not simply a partial match of the base URL plus additional
165
- // characters after the base URL that are not "terminating" characters
166
- href.indexOf(baseUrl + '/') === 0 ||
167
- href.indexOf(baseUrl + '?') === 0) {
168
- const routePath = this._href.substring(baseUrl.length);
169
- return this.router.parseUrl(routePath);
153
+ }, _SkyHrefDirective_getChanges = function _SkyHrefDirective_getChanges() {
154
+ const queryParams = {};
155
+ if (!__classPrivateFieldGet(this, _SkyHrefDirective_route, "f") || !__classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess) {
156
+ return {
157
+ href: '',
158
+ hidden: this.skyHrefElse === 'hide',
159
+ };
160
+ }
161
+ else {
162
+ const [beforeFragment, fragment] = __classPrivateFieldGet(this, _SkyHrefDirective_route, "f").url.split('#', 2);
163
+ const [baseUrl, search] = beforeFragment.split('?', 2);
164
+ if (search) {
165
+ const searchParams = new HttpParams({ fromString: search });
166
+ searchParams.keys().forEach((key) => {
167
+ queryParams[key] = searchParams.get(key);
168
+ });
170
169
  }
171
- return false;
170
+ const queryParamsMerged = new HttpParams({
171
+ fromObject: Object.assign({}, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getSkyuxParams).call(this), queryParams),
172
+ });
173
+ __classPrivateFieldSet(this, _SkyHrefDirective_href, baseUrl +
174
+ (queryParamsMerged.keys().length > 0
175
+ ? '?' + queryParamsMerged.toString()
176
+ : '') +
177
+ (fragment ? `#${fragment}` : ''), "f");
178
+ return {
179
+ href: __classPrivateFieldGet(this, _SkyHrefDirective_href, "f"),
180
+ hidden: false,
181
+ };
172
182
  }
173
- }
183
+ }, _SkyHrefDirective_getSkyuxParams = function _SkyHrefDirective_getSkyuxParams() {
184
+ return typeof __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.runtime.params?.getAll === 'function'
185
+ ? __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.params.getAll(true)
186
+ : __classPrivateFieldGet(this, _SkyHrefDirective_paramsProvider, "f")?.params.getAll(true);
187
+ };
174
188
  SkyHrefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyHrefDirective, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.SkyAppConfig, optional: true }, { token: i2.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: i3.SkyHrefResolverService, optional: true }, { token: i0.ApplicationRef, optional: true }, { token: i0.ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
175
189
  SkyHrefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyHrefDirective, selector: "[skyHref]", inputs: { skyHref: "skyHref", skyHrefElse: "skyHrefElse" }, outputs: { skyHrefChange: "skyHrefChange" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" } }, ngImport: i0 });
176
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyHrefDirective, decorators: [{
@@ -204,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
204
218
  '$event.metaKey',
205
219
  ]]
206
220
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHJlZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9ocmVmL2hyZWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVNqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBMkMzQixZQUNVLE1BQWMsRUFDZCxRQUFtQixFQUNuQixPQUFtQixFQUNQLFlBQTJCLEVBQzNCLGNBQWtELEVBQ2xELFlBQXFDLEVBQ3JDLGNBQStCLEVBQy9CLGlCQUFxQztRQVBqRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ1AsaUJBQVksR0FBWixZQUFZLENBQWU7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW9DO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQXRCM0Q7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRWpELFdB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RyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDakM7WUFDQSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBdk5VLGdCQUFnQjtpR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOzswQkFnREksUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs0Q0EzQ0EsT0FBTztzQkFEakIsS0FBSztnQkFpQkssV0FBVztzQkFEckIsS0FBSztnQkFVQyxhQUFhO3NCQURuQixNQUFNO2dCQThCQSxPQUFPO3NCQVBiLFlBQVk7dUJBQUMsT0FBTyxFQUFFO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTa3lBcHBDb25maWcsIFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlciB9IGZyb20gJ0Bza3l1eC9jb25maWcnO1xuXG5pbXBvcnQgeyBTa3lIcmVmUXVlcnlQYXJhbXMgfSBmcm9tICcuL2hyZWYtcXVlcnktcGFyYW1zJztcbmltcG9ydCB7IFNreUhyZWZSZXNvbHZlclNlcnZpY2UgfSBmcm9tICcuL2hyZWYtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lIcmVmIH0gZnJvbSAnLi90eXBlcy9ocmVmJztcbmltcG9ydCB7IFNreUhyZWZDaGFuZ2UgfSBmcm9tICcuL3R5cGVzL2hyZWYtY2hhbmdlJztcblxudHlwZSBIcmVmQ2hhbmdlcyA9IHsgaHJlZjogc3RyaW5nOyBoaWRkZW46IGJvb2xlYW4gfTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUhyZWZdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5SHJlZkRpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBQcm92aWRlIGEgbGluayBhcyBhIHN0cmluZyBvciBhcyBhbiBhcnJheSBvZiBzdHJpbmdzIHRvIGJlIGpvaW5lZCBieSBhIHNsYXNoIHRvIGZvcm0gYSBjb21wbGV0ZVxuICAgKiBVUkwuXG4gICAqXG4gICAqIEBwYXJhbSBza3lIcmVmXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreUhyZWYoc2t5SHJlZjogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIHNreUhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9za3lIcmVmID0gc2t5SHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2t5SHJlZiA9IHNreUhyZWYuam9pbignLycpO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tSb3V0ZUFjY2VzcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYmVoYXZpb3IgZm9yIHdoZW4gdGhlIGxpbmsgaXMgbm90IGF2YWlsYWJsZSB0byBlaXRoZXIgaGlkZSB0aGUgbGluayBvciBkaXNwbGF5IHVubGlua2VkIHRleHQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lIcmVmRWxzZSh2YWx1ZTogJ2hpZGUnIHwgJ3VubGluaycpIHtcbiAgICB0aGlzLl9za3lIcmVmRWxzZSA9IHZhbHVlO1xuICAgIHRoaXMuYXBwbHlDaGFuZ2VzKHRoaXMuZ2V0Q2hhbmdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGV0aGVyIHRoZSBsaW5rIGlzIGF2YWlsYWJsZSAodHJ1ZSkgb3Igbm90IChmYWxzZSkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNreUhyZWZDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUhyZWZDaGFuZ2U+KCk7XG5cbiAgcHJpdmF0ZSBfcm91dGU6IFNreUhyZWYgfCBmYWxzZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hyZWY6IHN0cmluZztcblxuICBwcml2YXRlIF9za3lIcmVmID0gJyc7XG5cbiAgcHJpdmF0ZSBfc2t5SHJlZkVsc2U6ICdoaWRlJyB8ICd1bmxpbmsnID0gJ2hpZGUnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHNreUFwcENvbmZpZz86IFNreUFwcENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmFtc1Byb3ZpZGVyPzogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaHJlZlJlc29sdmVyPzogU2t5SHJlZlJlc29sdmVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFwcGxpY2F0aW9uUmVmPzogQXBwbGljYXRpb25SZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZj86IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFtcbiAgICAnJGV2ZW50LmJ1dHRvbicsXG4gICAgJyRldmVudC5jdHJsS2V5JyxcbiAgICAnJGV2ZW50LnNoaWZ0S2V5JyxcbiAgICAnJGV2ZW50LmFsdEtleScsXG4gICAgJyRldmVudC5tZXRhS2V5JyxcbiAgXSlcbiAgcHVibGljIG9uQ2xpY2soXG4gICAgYnV0dG9uOiBudW1iZXIsXG4gICAgY3RybEtleTogYm9vbGVhbixcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBhbHRLZXk6IGJvb2xlYW4sXG4gICAgbWV0YUtleTogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX3JvdXRlIHx8ICF0aGlzLl9yb3V0ZS51c2VySGFzQWNjZXNzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGJ1dHRvbiAhPT0gMCB8fCBjdHJsS2V5IHx8IHNoaWZ0S2V5IHx8IGFsdEtleSB8fCBtZXRhS2V5KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpO1xuICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJyAmJiB0YXJnZXQgIT09ICdfc2VsZicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLmdldFVybFRyZWUoKTtcbiAgICBpZiAodXJsVHJlZSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmxUcmVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q2hhbmdlcyhjaGFuZ2U6IEhyZWZDaGFuZ2VzKSB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NreS1ocmVmJyk7XG4gICAgaWYgKGNoYW5nZS5oaWRkZW4pIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICdoaWRkZW4nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGRlbicpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlLmhyZWYpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hyZWYnLFxuICAgICAgICBjaGFuZ2UuaHJlZlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdocmVmJyk7XG4gICAgfVxuICAgIHRoaXMuc2t5SHJlZkNoYW5nZS5lbWl0KHsgdXNlckhhc0FjY2VzczogIWNoYW5nZS5oaWRkZW4gfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUm91dGVBY2Nlc3MoKSB7XG4gICAgdGhpcy5fcm91dGUgPSB7XG4gICAgICB1cmw6IHRoaXMuX3NreUhyZWYsXG4gICAgICB1c2VySGFzQWNjZXNzOiBmYWxzZSxcbiAgICB9O1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuaHJlZlJlc29sdmVyICYmIHRoaXMuX3NreUhyZWYpIHtcbiAgICAgIHRoaXMuYXBwbHlDaGFuZ2VzKHRoaXMuZ2V0Q2hhbmdlcygpKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaHJlZlJlc29sdmVyLnJlc29sdmVIcmVmKHsgdXJsOiB0aGlzLl9za3lIcmVmIH0pLnRoZW4oKHJvdXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcm91dGUgPSB7IC4uLnJvdXRlIH07XG4gICAgICAgICAgdGhpcy5hcHBseUNoYW5nZXModGhpcy5nZXRDaGFuZ2VzKCkpO1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYgJiYgdGhpcy5hcHBsaWNhdGlvblJlZikge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYudGljaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLmFwcGx5Q2hhbmdlcyh0aGlzLmdldENoYW5nZXMoKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG5vIHJlc29sdmVyIG9yIHNreUhyZWYgaXMgZmFsc3lcbiAgICAgIHRoaXMuX3JvdXRlLnVzZXJIYXNBY2Nlc3MgPSAhIXRoaXMuX3NreUhyZWY7XG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlcyh0aGlzLmdldENoYW5nZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGFuZ2VzKCk6IEhyZWZDaGFuZ2VzIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogU2t5SHJlZlF1ZXJ5UGFyYW1zID0ge307XG5cbiAgICBpZiAoIXRoaXMuX3JvdXRlIHx8ICF0aGlzLl9yb3V0ZS51c2VySGFzQWNjZXNzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBocmVmOiAnJyxcbiAgICAgICAgaGlkZGVuOiB0aGlzLl9za3lIcmVmRWxzZSA9PT0gJ2hpZGUnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgW2JlZm9yZUZyYWdtZW50LCBmcmFnbWVudF0gPSB0aGlzLl9yb3V0ZS51cmwuc3BsaXQoJyMnLCAyKTtcbiAgICAgIGNvbnN0IFtiYXNlVXJsLCBzZWFyY2hdID0gYmVmb3JlRnJhZ21lbnQuc3BsaXQoJz8nLCAyKTtcblxuICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGZyb21TdHJpbmc6IHNlYXJjaCB9KTtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBxdWVyeVBhcmFtc1trZXldID0gc2VhcmNoUGFyYW1zLmdldChrZXkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlQYXJhbXNNZXJnZWQgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgIGZyb21PYmplY3Q6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ2V0U2t5dXhQYXJhbXMoKSwgcXVlcnlQYXJhbXMpLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2hyZWYgPVxuICAgICAgICBiYXNlVXJsICtcbiAgICAgICAgKHF1ZXJ5UGFyYW1zTWVyZ2VkLmtleXMoKS5sZW5ndGggPiAwXG4gICAgICAgICAgPyAnPycgKyBxdWVyeVBhcmFtc01lcmdlZC50b1N0cmluZygpXG4gICAgICAgICAgOiAnJykgK1xuICAgICAgICAoZnJhZ21lbnQgPyBgIyR7ZnJhZ21lbnR9YCA6ICcnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhyZWY6IHRoaXMuX2hyZWYsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2t5dXhQYXJhbXMoKTogU2t5SHJlZlF1ZXJ5UGFyYW1zIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuc2t5QXBwQ29uZmlnPy5ydW50aW1lLnBhcmFtcz8uZ2V0QWxsID09PSAnZnVuY3Rpb24nXG4gICAgICA/IHRoaXMuc2t5QXBwQ29uZmlnLnJ1bnRpbWUucGFyYW1zLmdldEFsbCh0cnVlKVxuICAgICAgOiB0aGlzLnBhcmFtc1Byb3ZpZGVyLnBhcmFtcy5nZXRBbGwodHJ1ZSk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGdldFVybFRyZWUoKTogVXJsVHJlZSB8IGZhbHNlIHtcbiAgICBjb25zdCBocmVmID0gdGhpcy5faHJlZi50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKFxuICAgICAgIWhyZWYgfHxcbiAgICAgICF0aGlzLnNreUFwcENvbmZpZz8uc2t5dXguaG9zdD8udXJsIHx8XG4gICAgICAhdGhpcy5za3lBcHBDb25maWc/LnJ1bnRpbWU/LmFwcD8uYmFzZVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VVcmwgPSAoXG4gICAgICB0aGlzLnNreUFwcENvbmZpZy5za3l1eC5ob3N0LnVybCArXG4gICAgICB0aGlzLnNreUFwcENvbmZpZy5ydW50aW1lLmFwcC5iYXNlLnN1YnN0cihcbiAgICAgICAgMCxcbiAgICAgICAgdGhpcy5za3lBcHBDb25maWcucnVudGltZS5hcHAuYmFzZS5sZW5ndGggLSAxXG4gICAgICApXG4gICAgKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKFxuICAgICAgaHJlZiA9PT0gYmFzZVVybCB8fFxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBiYXNlIFVSTCBpcyBub3Qgc2ltcGx5IGEgcGFydGlhbCBtYXRjaCBvZiB0aGUgYmFzZSBVUkwgcGx1cyBhZGRpdGlvbmFsXG4gICAgICAvLyBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBiYXNlIFVSTCB0aGF0IGFyZSBub3QgXCJ0ZXJtaW5hdGluZ1wiIGNoYXJhY3RlcnNcbiAgICAgIGhyZWYuaW5kZXhPZihiYXNlVXJsICsgJy8nKSA9PT0gMCB8fFxuICAgICAgaHJlZi5pbmRleE9mKGJhc2VVcmwgKyAnPycpID09PSAwXG4gICAgKSB7XG4gICAgICBjb25zdCByb3V0ZVBhdGggPSB0aGlzLl9ocmVmLnN1YnN0cmluZyhiYXNlVXJsLmxlbmd0aCk7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIucGFyc2VVcmwocm91dGVQYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHJlZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9ocmVmL2hyZWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBU2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUE0RDNCLFlBQ0UsTUFBYyxFQUNkLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ1AsWUFBMkIsRUFDM0IsY0FBa0QsRUFDbEQsWUFBcUMsRUFDckMsY0FBK0IsRUFDL0IsaUJBQXFDOztRQS9CbkQ7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRXpELGtDQUEwQixLQUFLLEVBQUM7UUFFaEMsaUNBQVEsRUFBRSxFQUFDO1FBRVgscUNBQVksRUFBRSxFQUFDO1FBRWYseUNBQStDLE1BQU0sRUFBQztRQUV0RCwyQ0FBZ0I7UUFDaEIsNkNBQXFCO1FBQ3JCLDRDQUFxQjtRQUNyQixpREFBd0M7UUFDeEMsbURBQStEO1FBQy9ELGlEQUFrRDtRQUNsRCxtREFBNEM7UUFDNUMsc0RBQWtEO1FBdUpsRCwwQkFBMEI7UUFDMUIsdUNBQXFDLEdBQUcs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bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOzswQkFpRUksUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs0Q0E1REEsT0FBTztzQkFEakIsS0FBSztnQkFxQkssV0FBVztzQkFEckIsS0FBSztnQkFjQyxhQUFhO3NCQURuQixNQUFNO2dCQWdEQSxPQUFPO3NCQVBiLFlBQVk7dUJBQUMsT0FBTyxFQUFFO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTa3lBcHBDb25maWcsIFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlciB9IGZyb20gJ0Bza3l1eC9jb25maWcnO1xuXG5pbXBvcnQgeyBTa3lIcmVmUXVlcnlQYXJhbXMgfSBmcm9tICcuL2hyZWYtcXVlcnktcGFyYW1zJztcbmltcG9ydCB7IFNreUhyZWZSZXNvbHZlclNlcnZpY2UgfSBmcm9tICcuL2hyZWYtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lIcmVmIH0gZnJvbSAnLi90eXBlcy9ocmVmJztcbmltcG9ydCB7IFNreUhyZWZDaGFuZ2UgfSBmcm9tICcuL3R5cGVzL2hyZWYtY2hhbmdlJztcblxudHlwZSBIcmVmQ2hhbmdlcyA9IHsgaHJlZjogc3RyaW5nOyBoaWRkZW46IGJvb2xlYW4gfTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUhyZWZdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5SHJlZkRpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBQcm92aWRlIGEgbGluayBhcyBhIHN0cmluZyBvciBhcyBhbiBhcnJheSBvZiBzdHJpbmdzIHRvIGJlIGpvaW5lZCBieSBhIHNsYXNoIHRvIGZvcm0gYSBjb21wbGV0ZVxuICAgKiBVUkwuXG4gICAqXG4gICAqIEBwYXJhbSBza3lIcmVmXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreUhyZWYoc2t5SHJlZjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIHNreUhyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLiNfc2t5SHJlZiA9IHNreUhyZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19za3lIcmVmID0gc2t5SHJlZiA/IHNreUhyZWYuam9pbignLycpIDogJyc7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hlY2tSb3V0ZUFjY2VzcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBza3lIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19za3lIcmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYmVoYXZpb3IgZm9yIHdoZW4gdGhlIGxpbmsgaXMgbm90IGF2YWlsYWJsZSB0byBlaXRoZXIgaGlkZSB0aGUgbGluayBvciBkaXNwbGF5IHVubGlua2VkIHRleHQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lIcmVmRWxzZSh2YWx1ZTogJ2hpZGUnIHwgJ3VubGluaycgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc2t5SHJlZkVsc2UgPSB2YWx1ZTtcbiAgICB0aGlzLiNhcHBseUNoYW5nZXModGhpcy4jZ2V0Q2hhbmdlcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2t5SHJlZkVsc2UoKTogJ2hpZGUnIHwgJ3VubGluaycgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfc2t5SHJlZkVsc2U7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgd2hldGhlciB0aGUgbGluayBpcyBhdmFpbGFibGUgKHRydWUpIG9yIG5vdCAoZmFsc2UpLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBza3lIcmVmQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lIcmVmQ2hhbmdlPigpO1xuXG4gICNyb3V0ZTogU2t5SHJlZiB8IGZhbHNlID0gZmFsc2U7XG5cbiAgI2hyZWYgPSAnJztcblxuICAjX3NreUhyZWYgPSAnJztcblxuICAjX3NreUhyZWZFbHNlOiAnaGlkZScgfCAndW5saW5rJyB8IHVuZGVmaW5lZCA9ICdoaWRlJztcblxuICAjcm91dGVyOiBSb3V0ZXI7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjZWxlbWVudDogRWxlbWVudFJlZjtcbiAgI3NreUFwcENvbmZpZzogU2t5QXBwQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAjcGFyYW1zUHJvdmlkZXI6IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlciB8IHVuZGVmaW5lZDtcbiAgI2hyZWZSZXNvbHZlcjogU2t5SHJlZlJlc29sdmVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI2FwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZiB8IHVuZGVmaW5lZDtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByb3V0ZXI6IFJvdXRlcixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgc2t5QXBwQ29uZmlnPzogU2t5QXBwQ29uZmlnLFxuICAgIEBPcHRpb25hbCgpIHBhcmFtc1Byb3ZpZGVyPzogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIGhyZWZSZXNvbHZlcj86IFNreUhyZWZSZXNvbHZlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgYXBwbGljYXRpb25SZWY/OiBBcHBsaWNhdGlvblJlZixcbiAgICBAT3B0aW9uYWwoKSBjaGFuZ2VEZXRlY3RvclJlZj86IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuI3JvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgIHRoaXMuI2VsZW1lbnQgPSBlbGVtZW50O1xuICAgIHRoaXMuI3NreUFwcENvbmZpZyA9IHNreUFwcENvbmZpZztcbiAgICB0aGlzLiNwYXJhbXNQcm92aWRlciA9IHBhcmFtc1Byb3ZpZGVyO1xuICAgIHRoaXMuI2hyZWZSZXNvbHZlciA9IGhyZWZSZXNvbHZlcjtcbiAgICB0aGlzLiNhcHBsaWNhdGlvblJlZiA9IGFwcGxpY2F0aW9uUmVmO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFtcbiAgICAnJGV2ZW50LmJ1dHRvbicsXG4gICAgJyRldmVudC5jdHJsS2V5JyxcbiAgICAnJGV2ZW50LnNoaWZ0S2V5JyxcbiAgICAnJGV2ZW50LmFsdEtleScsXG4gICAgJyRldmVudC5tZXRhS2V5JyxcbiAgXSlcbiAgcHVibGljIG9uQ2xpY2soXG4gICAgYnV0dG9uOiBudW1iZXIsXG4gICAgY3RybEtleTogYm9vbGVhbixcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBhbHRLZXk6IGJvb2xlYW4sXG4gICAgbWV0YUtleTogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuI3JvdXRlIHx8ICF0aGlzLiNyb3V0ZS51c2VySGFzQWNjZXNzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGJ1dHRvbiAhPT0gMCB8fCBjdHJsS2V5IHx8IHNoaWZ0S2V5IHx8IGFsdEtleSB8fCBtZXRhS2V5KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiNlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKTtcbiAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy4jZ2V0VXJsVHJlZSgpO1xuICAgIGlmICh1cmxUcmVlKSB7XG4gICAgICB0aGlzLiNyb3V0ZXIubmF2aWdhdGVCeVVybCh1cmxUcmVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAjYXBwbHlDaGFuZ2VzKGNoYW5nZTogSHJlZkNoYW5nZXMpIHtcbiAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyh0aGlzLiNlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdza3ktaHJlZicpO1xuICAgIGlmIChjaGFuZ2UuaGlkZGVuKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuI2VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICdoaWRkZW4nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy4jZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2UuaHJlZikge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLiNlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdocmVmJyxcbiAgICAgICAgY2hhbmdlLmhyZWZcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLiNlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdocmVmJyk7XG4gICAgfVxuICAgIHRoaXMuc2t5SHJlZkNoYW5nZS5lbWl0KHsgdXNlckhhc0FjY2VzczogIWNoYW5nZS5oaWRkZW4gfSk7XG4gIH1cblxuICAjY2hlY2tSb3V0ZUFjY2VzcygpIHtcbiAgICB0aGlzLiNyb3V0ZSA9IHtcbiAgICAgIHVybDogdGhpcy5za3lIcmVmLFxuICAgICAgdXNlckhhc0FjY2VzczogZmFsc2UsXG4gICAgfTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNocmVmUmVzb2x2ZXIgJiYgdGhpcy5za3lIcmVmKSB7XG4gICAgICB0aGlzLiNhcHBseUNoYW5nZXModGhpcy4jZ2V0Q2hhbmdlcygpKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuI2hyZWZSZXNvbHZlci5yZXNvbHZlSHJlZih7IHVybDogdGhpcy5za3lIcmVmIH0pLnRoZW4oKHJvdXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcm91dGUgPSB7IC4uLnJvdXRlIH07XG4gICAgICAgICAgdGhpcy4jYXBwbHlDaGFuZ2VzKHRoaXMuI2dldENoYW5nZXMoKSk7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYgJiYgdGhpcy4jYXBwbGljYXRpb25SZWYpIHtcbiAgICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy4jYXBwbGljYXRpb25SZWYudGljaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLiNhcHBseUNoYW5nZXModGhpcy4jZ2V0Q2hhbmdlcygpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbm8gcmVzb2x2ZXIgb3Igc2t5SHJlZiBpcyBmYWxzeVxuICAgICAgdGhpcy4jcm91dGUudXNlckhhc0FjY2VzcyA9ICEhdGhpcy5za3lIcmVmO1xuICAgICAgdGhpcy4jYXBwbHlDaGFuZ2VzKHRoaXMuI2dldENoYW5nZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgI2dldENoYW5nZXMoKTogSHJlZkNoYW5nZXMge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBTa3lIcmVmUXVlcnlQYXJhbXMgPSB7fTtcblxuICAgIGlmICghdGhpcy4jcm91dGUgfHwgIXRoaXMuI3JvdXRlLnVzZXJIYXNBY2Nlc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhyZWY6ICcnLFxuICAgICAgICBoaWRkZW46IHRoaXMuc2t5SHJlZkVsc2UgPT09ICdoaWRlJyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtiZWZvcmVGcmFnbWVudCwgZnJhZ21lbnRdID0gdGhpcy4jcm91dGUudXJsLnNwbGl0KCcjJywgMik7XG4gICAgICBjb25zdCBbYmFzZVVybCwgc2VhcmNoXSA9IGJlZm9yZUZyYWdtZW50LnNwbGl0KCc/JywgMik7XG5cbiAgICAgIGlmIChzZWFyY2gpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiBzZWFyY2ggfSk7XG4gICAgICAgIHNlYXJjaFBhcmFtcy5rZXlzKCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IHNlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zTWVyZ2VkID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICBmcm9tT2JqZWN0OiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLiNnZXRTa3l1eFBhcmFtcygpLCBxdWVyeVBhcmFtcyksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy4jaHJlZiA9XG4gICAgICAgIGJhc2VVcmwgK1xuICAgICAgICAocXVlcnlQYXJhbXNNZXJnZWQua2V5cygpLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICc/JyArIHF1ZXJ5UGFyYW1zTWVyZ2VkLnRvU3RyaW5nKClcbiAgICAgICAgICA6ICcnKSArXG4gICAgICAgIChmcmFnbWVudCA/IGAjJHtmcmFnbWVudH1gIDogJycpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHJlZjogdGhpcy4jaHJlZixcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgI2dldFNreXV4UGFyYW1zKCk6IFNreUhyZWZRdWVyeVBhcmFtcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLiNza3lBcHBDb25maWc/LnJ1bnRpbWUucGFyYW1zPy5nZXRBbGwgPT09ICdmdW5jdGlvbidcbiAgICAgID8gdGhpcy4jc2t5QXBwQ29uZmlnLnJ1bnRpbWUucGFyYW1zLmdldEFsbCh0cnVlKVxuICAgICAgOiB0aGlzLiNwYXJhbXNQcm92aWRlcj8ucGFyYW1zLmdldEFsbCh0cnVlKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICNnZXRVcmxUcmVlOiAoKSA9PiBVcmxUcmVlIHwgZmFsc2UgPSAoKSA9PiB7XG4gICAgY29uc3QgaHJlZiA9IHRoaXMuI2hyZWYudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChcbiAgICAgICFocmVmIHx8XG4gICAgICAhdGhpcy4jc2t5QXBwQ29uZmlnPy5za3l1eC5ob3N0Py51cmwgfHxcbiAgICAgICF0aGlzLiNza3lBcHBDb25maWc/LnJ1bnRpbWU/LmFwcD8uYmFzZVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VVcmwgPSAoXG4gICAgICB0aGlzLiNza3lBcHBDb25maWcuc2t5dXguaG9zdC51cmwgK1xuICAgICAgdGhpcy4jc2t5QXBwQ29uZmlnLnJ1bnRpbWUuYXBwLmJhc2Uuc3Vic3RyKFxuICAgICAgICAwLFxuICAgICAgICB0aGlzLiNza3lBcHBDb25maWcucnVudGltZS5hcHAuYmFzZS5sZW5ndGggLSAxXG4gICAgICApXG4gICAgKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKFxuICAgICAgaHJlZiA9PT0gYmFzZVVybCB8fFxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBiYXNlIFVSTCBpcyBub3Qgc2ltcGx5IGEgcGFydGlhbCBtYXRjaCBvZiB0aGUgYmFzZSBVUkwgcGx1cyBhZGRpdGlvbmFsXG4gICAgICAvLyBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBiYXNlIFVSTCB0aGF0IGFyZSBub3QgXCJ0ZXJtaW5hdGluZ1wiIGNoYXJhY3RlcnNcbiAgICAgIGhyZWYuaW5kZXhPZihiYXNlVXJsICsgJy8nKSA9PT0gMCB8fFxuICAgICAgaHJlZi5pbmRleE9mKGJhc2VVcmwgKyAnPycpID09PSAwXG4gICAgKSB7XG4gICAgICBjb25zdCByb3V0ZVBhdGggPSB0aGlzLiNocmVmLnN1YnN0cmluZyhiYXNlVXJsLmxlbmd0aCk7XG4gICAgICByZXR1cm4gdGhpcy4jcm91dGVyLnBhcnNlVXJsKHJvdXRlUGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xufVxuIl19
@@ -1,3 +1,5 @@
1
+ var _SkyAppLinkExternalDirective_instances, _SkyAppLinkExternalDirective_window, _SkyAppLinkExternalDirective_skyAppConfig, _SkyAppLinkExternalDirective_paramsProvider, _SkyAppLinkExternalDirective_mergeQueryParams;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { PathLocationStrategy, PlatformLocation } from '@angular/common';
2
4
  import { Directive, Input, Optional, } from '@angular/core';
3
5
  import { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';
@@ -13,13 +15,17 @@ import * as i4 from "@skyux/config";
13
15
  */
14
16
  export class SkyAppLinkExternalDirective extends RouterLinkWithHref {
15
17
  constructor(router, route, platformLocation, window, skyAppConfig, paramsProvider, hostConfig) {
16
- super(router, route, new PathLocationStrategy(platformLocation, hostConfig ? hostConfig.host.url : skyAppConfig.skyux.host.url));
17
- this.window = window;
18
- this.skyAppConfig = skyAppConfig;
19
- this.paramsProvider = paramsProvider;
20
- if (this.window.nativeWindow.window.name &&
21
- this.window.nativeWindow.window.name !== '') {
22
- this.target = this.window.nativeWindow.window.name;
18
+ super(router, route, new PathLocationStrategy(platformLocation, hostConfig ? hostConfig.host.url : skyAppConfig?.skyux.host?.url));
19
+ _SkyAppLinkExternalDirective_instances.add(this);
20
+ _SkyAppLinkExternalDirective_window.set(this, void 0);
21
+ _SkyAppLinkExternalDirective_skyAppConfig.set(this, void 0);
22
+ _SkyAppLinkExternalDirective_paramsProvider.set(this, void 0);
23
+ __classPrivateFieldSet(this, _SkyAppLinkExternalDirective_window, window, "f");
24
+ __classPrivateFieldSet(this, _SkyAppLinkExternalDirective_skyAppConfig, skyAppConfig, "f");
25
+ __classPrivateFieldSet(this, _SkyAppLinkExternalDirective_paramsProvider, paramsProvider, "f");
26
+ if (__classPrivateFieldGet(this, _SkyAppLinkExternalDirective_window, "f").nativeWindow.window.name &&
27
+ __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_window, "f").nativeWindow.window.name !== '') {
28
+ this.target = __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_window, "f").nativeWindow.window.name;
23
29
  }
24
30
  else {
25
31
  this.target = '_top';
@@ -29,16 +35,16 @@ export class SkyAppLinkExternalDirective extends RouterLinkWithHref {
29
35
  this.routerLink = commands;
30
36
  }
31
37
  ngOnChanges(changes) {
32
- this.queryParams = this.mergeQueryParams(changes.queryParams?.currentValue);
38
+ this.queryParams = __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_instances, "m", _SkyAppLinkExternalDirective_mergeQueryParams).call(this, changes.queryParams?.currentValue);
33
39
  super.ngOnChanges(changes);
34
40
  }
35
- mergeQueryParams(queryParams) {
36
- const skyuxParams = this.skyAppConfig
37
- ? this.skyAppConfig.runtime.params.getAll()
38
- : this.paramsProvider.params.getAll();
39
- return Object.assign({}, this.queryParams, queryParams, skyuxParams);
40
- }
41
41
  }
42
+ _SkyAppLinkExternalDirective_window = new WeakMap(), _SkyAppLinkExternalDirective_skyAppConfig = new WeakMap(), _SkyAppLinkExternalDirective_paramsProvider = new WeakMap(), _SkyAppLinkExternalDirective_instances = new WeakSet(), _SkyAppLinkExternalDirective_mergeQueryParams = function _SkyAppLinkExternalDirective_mergeQueryParams(queryParams) {
43
+ const skyuxParams = __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_skyAppConfig, "f")
44
+ ? __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_skyAppConfig, "f").runtime.params.getAll()
45
+ : __classPrivateFieldGet(this, _SkyAppLinkExternalDirective_paramsProvider, "f")?.params.getAll();
46
+ return Object.assign({}, this.queryParams, queryParams, skyuxParams);
47
+ };
42
48
  SkyAppLinkExternalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppLinkExternalDirective, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.PlatformLocation }, { token: i3.SkyAppWindowRef }, { token: i4.SkyAppConfig, optional: true }, { token: i4.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: i4.SkyAppConfigHost, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
43
49
  SkyAppLinkExternalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAppLinkExternalDirective, selector: "[skyAppLinkExternal]", inputs: { skyAppLinkExternal: "skyAppLinkExternal" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
44
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppLinkExternalDirective, decorators: [{
@@ -55,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
55
61
  }] }]; }, propDecorators: { skyAppLinkExternal: [{
56
62
  type: Input
57
63
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1leHRlcm5hbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9saW5rL2xpbmstZXh0ZXJuYWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFDTCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGlDQUFpQyxHQUNsQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJOUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQ1gsU0FBUSxrQkFBa0I7SUFRMUIsWUFDRSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsZ0JBQWtDLEVBQzFCLE1BQXVCLEVBQ1gsWUFBMkIsRUFDM0IsY0FBa0QsRUFDMUQsVUFBNkI7UUFFekMsS0FBSyxDQUNILE1BQU0sRUFDTixLQUFLLEVBQ0wsSUFBSSxvQkFBb0IsQ0FDdEIsZ0JBQWdCLEVBQ2hCLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDL0QsQ0FDRixDQUFDO1FBWk0sV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDWCxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBb0M7UUFZdEUsSUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFDM0M7WUFDQSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDcEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQS9CRCxJQUNJLGtCQUFrQixDQUFDLFFBQXdCO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUE4Qk0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDNUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sZ0JBQWdCLENBQ3RCLFdBQWtDO1FBRWxDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV4QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7O3dIQWxEVSwyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzswQkFlSSxRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFROzRDQVhQLGtCQUFrQjtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGhMb2NhdGlvblN0cmF0ZWd5LCBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIFNreUFwcENvbmZpZyxcbiAgU2t5QXBwQ29uZmlnSG9zdCxcbiAgU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyLFxufSBmcm9tICdAc2t5dXgvY29uZmlnJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwTGlua1F1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9saW5rLXF1ZXJ5LXBhcmFtcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBza3lIcmVmYCBkaXJlY3RpdmUgaW5zdGVhZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFwcExpbmtFeHRlcm5hbF0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBMaW5rRXh0ZXJuYWxEaXJlY3RpdmVcbiAgZXh0ZW5kcyBSb3V0ZXJMaW5rV2l0aEhyZWZcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgc2V0IHNreUFwcExpbmtFeHRlcm5hbChjb21tYW5kczogYW55W10gfCBzdHJpbmcpIHtcbiAgICB0aGlzLnJvdXRlckxpbmsgPSBjb21tYW5kcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uLFxuICAgIHByaXZhdGUgd2luZG93OiBTa3lBcHBXaW5kb3dSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBza3lBcHBDb25maWc/OiBTa3lBcHBDb25maWcsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJhbXNQcm92aWRlcj86IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlcixcbiAgICBAT3B0aW9uYWwoKSBob3N0Q29uZmlnPzogU2t5QXBwQ29uZmlnSG9zdFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIHJvdXRlcixcbiAgICAgIHJvdXRlLFxuICAgICAgbmV3IFBhdGhMb2NhdGlvblN0cmF0ZWd5KFxuICAgICAgICBwbGF0Zm9ybUxvY2F0aW9uLFxuICAgICAgICBob3N0Q29uZmlnID8gaG9zdENvbmZpZy5ob3N0LnVybCA6IHNreUFwcENvbmZpZy5za3l1eC5ob3N0LnVybFxuICAgICAgKVxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLndpbmRvdy5uYXRpdmVXaW5kb3cud2luZG93Lm5hbWUgJiZcbiAgICAgIHRoaXMud2luZG93Lm5hdGl2ZVdpbmRvdy53aW5kb3cubmFtZSAhPT0gJydcbiAgICApIHtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGhpcy53aW5kb3cubmF0aXZlV2luZG93LndpbmRvdy5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9ICdfdG9wJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLm1lcmdlUXVlcnlQYXJhbXMoY2hhbmdlcy5xdWVyeVBhcmFtcz8uY3VycmVudFZhbHVlKTtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VRdWVyeVBhcmFtcyhcbiAgICBxdWVyeVBhcmFtczogU2t5QXBwTGlua1F1ZXJ5UGFyYW1zXG4gICk6IFNreUFwcExpbmtRdWVyeVBhcmFtcyB7XG4gICAgY29uc3Qgc2t5dXhQYXJhbXMgPSB0aGlzLnNreUFwcENvbmZpZ1xuICAgICAgPyB0aGlzLnNreUFwcENvbmZpZy5ydW50aW1lLnBhcmFtcy5nZXRBbGwoKVxuICAgICAgOiB0aGlzLnBhcmFtc1Byb3ZpZGVyLnBhcmFtcy5nZXRBbGwoKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnF1ZXJ5UGFyYW1zLCBxdWVyeVBhcmFtcywgc2t5dXhQYXJhbXMpO1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1leHRlcm5hbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9saW5rL2xpbmstZXh0ZXJuYWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsaUNBQWlDLEdBQ2xDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQUk5Qzs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFDWCxTQUFRLGtCQUFrQjtJQVkxQixZQUNFLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsTUFBdUIsRUFDWCxZQUEyQixFQUMzQixjQUFrRCxFQUNsRCxVQUE2QjtRQUV6QyxLQUFLLENBQ0gsTUFBTSxFQUNOLEtBQUssRUFDTCxJQUFJLG9CQUFvQixDQUN0QixnQkFBZ0IsRUFDaEIsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUNqRSxDQUNGLENBQUM7O1FBcEJKLHNEQUF5QjtRQUN6Qiw0REFBd0M7UUFDeEMsOERBQStEO1FBbUI3RCx1QkFBQSxJQUFJLHVDQUFXLE1BQU0sTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUksNkNBQWlCLFlBQVksTUFBQSxDQUFDO1FBQ2xDLHVCQUFBLElBQUksK0NBQW1CLGNBQWMsTUFBQSxDQUFDO1FBRXRDLElBQ0UsdUJBQUEsSUFBSSwyQ0FBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNyQyx1QkFBQSxJQUFJLDJDQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUM1QztZQUNBLElBQUksQ0FBQyxNQUFNLEdBQUcsdUJBQUEsSUFBSSwyQ0FBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN0QjtJQUNILENBQUM7SUF0Q0QsSUFDSSxrQkFBa0IsQ0FBQyxRQUF3QjtRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBcUNNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLHVCQUFBLElBQUksNkZBQWtCLE1BQXRCLElBQUksRUFDckIsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQ2xDLENBQUM7UUFDRixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRVQUVpQixXQUFrQztJQUNsRCxNQUFNLFdBQVcsR0FBRyx1QkFBQSxJQUFJLGlEQUFjO1FBQ3BDLENBQUMsQ0FBQyx1QkFBQSxJQUFJLGlEQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDNUMsQ0FBQyxDQUFDLHVCQUFBLElBQUksbURBQWdCLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDdkUsQ0FBQzt3SEF6RFUsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7MEJBbUJJLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVE7NENBZlAsa0JBQWtCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aExvY2F0aW9uU3RyYXRlZ3ksIFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgU2t5QXBwQ29uZmlnLFxuICBTa3lBcHBDb25maWdIb3N0LFxuICBTa3lBcHBSdW50aW1lQ29uZmlnUGFyYW1zUHJvdmlkZXIsXG59IGZyb20gJ0Bza3l1eC9jb25maWcnO1xuaW1wb3J0IHsgU2t5QXBwV2luZG93UmVmIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBcHBMaW5rUXVlcnlQYXJhbXMgfSBmcm9tICcuL2xpbmstcXVlcnktcGFyYW1zJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYHNreUhyZWZgIGRpcmVjdGl2ZSBpbnN0ZWFkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QXBwTGlua0V4dGVybmFsXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcExpbmtFeHRlcm5hbERpcmVjdGl2ZVxuICBleHRlbmRzIFJvdXRlckxpbmtXaXRoSHJlZlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBzZXQgc2t5QXBwTGlua0V4dGVybmFsKGNvbW1hbmRzOiBhbnlbXSB8IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyTGluayA9IGNvbW1hbmRzO1xuICB9XG5cbiAgI3dpbmRvdzogU2t5QXBwV2luZG93UmVmO1xuICAjc2t5QXBwQ29uZmlnOiBTa3lBcHBDb25maWcgfCB1bmRlZmluZWQ7XG4gICNwYXJhbXNQcm92aWRlcjogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uLFxuICAgIHdpbmRvdzogU2t5QXBwV2luZG93UmVmLFxuICAgIEBPcHRpb25hbCgpIHNreUFwcENvbmZpZz86IFNreUFwcENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBwYXJhbXNQcm92aWRlcj86IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlcixcbiAgICBAT3B0aW9uYWwoKSBob3N0Q29uZmlnPzogU2t5QXBwQ29uZmlnSG9zdFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIHJvdXRlcixcbiAgICAgIHJvdXRlLFxuICAgICAgbmV3IFBhdGhMb2NhdGlvblN0cmF0ZWd5KFxuICAgICAgICBwbGF0Zm9ybUxvY2F0aW9uLFxuICAgICAgICBob3N0Q29uZmlnID8gaG9zdENvbmZpZy5ob3N0LnVybCA6IHNreUFwcENvbmZpZz8uc2t5dXguaG9zdD8udXJsXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLiN3aW5kb3cgPSB3aW5kb3c7XG4gICAgdGhpcy4jc2t5QXBwQ29uZmlnID0gc2t5QXBwQ29uZmlnO1xuICAgIHRoaXMuI3BhcmFtc1Byb3ZpZGVyID0gcGFyYW1zUHJvdmlkZXI7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93LndpbmRvdy5uYW1lICYmXG4gICAgICB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93LndpbmRvdy5uYW1lICE9PSAnJ1xuICAgICkge1xuICAgICAgdGhpcy50YXJnZXQgPSB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93LndpbmRvdy5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9ICdfdG9wJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLiNtZXJnZVF1ZXJ5UGFyYW1zKFxuICAgICAgY2hhbmdlcy5xdWVyeVBhcmFtcz8uY3VycmVudFZhbHVlXG4gICAgKTtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gICNtZXJnZVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBTa3lBcHBMaW5rUXVlcnlQYXJhbXMpOiBTa3lBcHBMaW5rUXVlcnlQYXJhbXMge1xuICAgIGNvbnN0IHNreXV4UGFyYW1zID0gdGhpcy4jc2t5QXBwQ29uZmlnXG4gICAgICA/IHRoaXMuI3NreUFwcENvbmZpZy5ydW50aW1lLnBhcmFtcy5nZXRBbGwoKVxuICAgICAgOiB0aGlzLiNwYXJhbXNQcm92aWRlcj8ucGFyYW1zLmdldEFsbCgpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucXVlcnlQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBza3l1eFBhcmFtcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,5 @@
1
+ var _SkyAppLinkDirective_instances, _SkyAppLinkDirective_skyAppConfig, _SkyAppLinkDirective_paramsProvider, _SkyAppLinkDirective_mergeQueryParams;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { LocationStrategy } from '@angular/common';
2
4
  import { Directive, Input, Optional, } from '@angular/core';
3
5
  import { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';
@@ -9,23 +11,26 @@ import * as i3 from "@skyux/config";
9
11
  export class SkyAppLinkDirective extends RouterLinkWithHref {
10
12
  constructor(router, route, locationStrategy, skyAppConfig, paramsProvider) {
11
13
  super(router, route, locationStrategy);
12
- this.skyAppConfig = skyAppConfig;
13
- this.paramsProvider = paramsProvider;
14
+ _SkyAppLinkDirective_instances.add(this);
15
+ _SkyAppLinkDirective_skyAppConfig.set(this, void 0);
16
+ _SkyAppLinkDirective_paramsProvider.set(this, void 0);
17
+ __classPrivateFieldSet(this, _SkyAppLinkDirective_skyAppConfig, skyAppConfig, "f");
18
+ __classPrivateFieldSet(this, _SkyAppLinkDirective_paramsProvider, paramsProvider, "f");
14
19
  }
15
20
  set skyAppLink(commands) {
16
21
  this.routerLink = commands;
17
22
  }
18
23
  ngOnChanges(changes) {
19
- this.queryParams = this.mergeQueryParams(changes.queryParams?.currentValue);
24
+ this.queryParams = __classPrivateFieldGet(this, _SkyAppLinkDirective_instances, "m", _SkyAppLinkDirective_mergeQueryParams).call(this, changes.queryParams?.currentValue);
20
25
  super.ngOnChanges(changes);
21
26
  }
22
- mergeQueryParams(queryParams) {
23
- const skyuxParams = this.skyAppConfig
24
- ? this.skyAppConfig.runtime.params.getAll(true)
25
- : this.paramsProvider.params.getAll(true);
26
- return Object.assign({}, this.queryParams, queryParams, skyuxParams);
27
- }
28
27
  }
28
+ _SkyAppLinkDirective_skyAppConfig = new WeakMap(), _SkyAppLinkDirective_paramsProvider = new WeakMap(), _SkyAppLinkDirective_instances = new WeakSet(), _SkyAppLinkDirective_mergeQueryParams = function _SkyAppLinkDirective_mergeQueryParams(queryParams) {
29
+ const skyuxParams = __classPrivateFieldGet(this, _SkyAppLinkDirective_skyAppConfig, "f")
30
+ ? __classPrivateFieldGet(this, _SkyAppLinkDirective_skyAppConfig, "f").runtime.params.getAll(true)
31
+ : __classPrivateFieldGet(this, _SkyAppLinkDirective_paramsProvider, "f")?.params.getAll(true);
32
+ return Object.assign({}, this.queryParams, queryParams, skyuxParams);
33
+ };
29
34
  SkyAppLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppLinkDirective, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.LocationStrategy }, { token: i3.SkyAppConfig, optional: true }, { token: i3.SkyAppRuntimeConfigParamsProvider, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
30
35
  SkyAppLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAppLinkDirective, selector: "[skyAppLink]", inputs: { skyAppLink: "skyAppLink" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
31
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppLinkDirective, decorators: [{
@@ -40,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
40
45
  }] }]; }, propDecorators: { skyAppLink: [{
41
46
  type: Input
42
47
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9saW5rL2xpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT2hGLE1BQU0sT0FBTyxtQkFDWCxTQUFRLGtCQUFrQjtJQVExQixZQUNFLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDZCxZQUEyQixFQUMzQixjQUFrRDtRQUV0RSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBSG5CLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQztJQUd4RSxDQUFDO0lBYkQsSUFDSSxVQUFVLENBQUMsUUFBd0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQVlNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzVFLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixXQUFrQztRQUVsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWTtZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7O2dIQWhDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7MEJBY0ksUUFBUTs7MEJBQ1IsUUFBUTs0Q0FUUCxVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNreUFwcENvbmZpZywgU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyIH0gZnJvbSAnQHNreXV4L2NvbmZpZyc7XG5cbmltcG9ydCB7IFNreUFwcExpbmtRdWVyeVBhcmFtcyB9IGZyb20gJy4vbGluay1xdWVyeS1wYXJhbXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5QXBwTGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBMaW5rRGlyZWN0aXZlXG4gIGV4dGVuZHMgUm91dGVyTGlua1dpdGhIcmVmXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpXG4gIHNldCBza3lBcHBMaW5rKGNvbW1hbmRzOiBhbnlbXSB8IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyTGluayA9IGNvbW1hbmRzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIGxvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3ksXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBza3lBcHBDb25maWc/OiBTa3lBcHBDb25maWcsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJhbXNQcm92aWRlcj86IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlclxuICApIHtcbiAgICBzdXBlcihyb3V0ZXIsIHJvdXRlLCBsb2NhdGlvblN0cmF0ZWd5KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHRoaXMubWVyZ2VRdWVyeVBhcmFtcyhjaGFuZ2VzLnF1ZXJ5UGFyYW1zPy5jdXJyZW50VmFsdWUpO1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZVF1ZXJ5UGFyYW1zKFxuICAgIHF1ZXJ5UGFyYW1zOiBTa3lBcHBMaW5rUXVlcnlQYXJhbXNcbiAgKTogU2t5QXBwTGlua1F1ZXJ5UGFyYW1zIHtcbiAgICBjb25zdCBza3l1eFBhcmFtcyA9IHRoaXMuc2t5QXBwQ29uZmlnXG4gICAgICA/IHRoaXMuc2t5QXBwQ29uZmlnLnJ1bnRpbWUucGFyYW1zLmdldEFsbCh0cnVlKVxuICAgICAgOiB0aGlzLnBhcmFtc1Byb3ZpZGVyLnBhcmFtcy5nZXRBbGwodHJ1ZSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5xdWVyeVBhcmFtcywgcXVlcnlQYXJhbXMsIHNreXV4UGFyYW1zKTtcbiAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcm91dGVyL3NyYy9saWIvbW9kdWxlcy9saW5rL2xpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPaEYsTUFBTSxPQUFPLG1CQUNYLFNBQVEsa0JBQWtCO0lBVzFCLFlBQ0UsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLGdCQUFrQyxFQUN0QixZQUEyQixFQUMzQixjQUFrRDtRQUU5RCxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDOztRQVZ6QyxvREFBd0M7UUFDeEMsc0RBQStEO1FBVTdELHVCQUFBLElBQUkscUNBQWlCLFlBQVksTUFBQSxDQUFDO1FBQ2xDLHVCQUFBLElBQUksdUNBQW1CLGNBQWMsTUFBQSxDQUFDO0lBQ3hDLENBQUM7SUFsQkQsSUFDSSxVQUFVLENBQUMsUUFBd0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQWlCTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBQSxJQUFJLDZFQUFrQixNQUF0QixJQUFJLEVBQ3JCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUNsQyxDQUFDO1FBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDOzsrT0FFaUIsV0FBa0M7SUFDbEQsTUFBTSxXQUFXLEdBQUcsdUJBQUEsSUFBSSx5Q0FBYztRQUNwQyxDQUFDLENBQUMsdUJBQUEsSUFBSSx5Q0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNoRCxDQUFDLENBQUMsdUJBQUEsSUFBSSwyQ0FBZ0IsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDdkUsQ0FBQztnSEFyQ1UsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7OzBCQWlCSSxRQUFROzswQkFDUixRQUFROzRDQVpQLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2t5QXBwQ29uZmlnLCBTa3lBcHBSdW50aW1lQ29uZmlnUGFyYW1zUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29uZmlnJztcblxuaW1wb3J0IHsgU2t5QXBwTGlua1F1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9saW5rLXF1ZXJ5LXBhcmFtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBcHBMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcExpbmtEaXJlY3RpdmVcbiAgZXh0ZW5kcyBSb3V0ZXJMaW5rV2l0aEhyZWZcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgc2V0IHNreUFwcExpbmsoY29tbWFuZHM6IGFueVtdIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5yb3V0ZXJMaW5rID0gY29tbWFuZHM7XG4gIH1cblxuICAjc2t5QXBwQ29uZmlnOiBTa3lBcHBDb25maWcgfCB1bmRlZmluZWQ7XG4gICNwYXJhbXNQcm92aWRlcjogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBsb2NhdGlvblN0cmF0ZWd5OiBMb2NhdGlvblN0cmF0ZWd5LFxuICAgIEBPcHRpb25hbCgpIHNreUFwcENvbmZpZz86IFNreUFwcENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBwYXJhbXNQcm92aWRlcj86IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXNQcm92aWRlclxuICApIHtcbiAgICBzdXBlcihyb3V0ZXIsIHJvdXRlLCBsb2NhdGlvblN0cmF0ZWd5KTtcbiAgICB0aGlzLiNza3lBcHBDb25maWcgPSBza3lBcHBDb25maWc7XG4gICAgdGhpcy4jcGFyYW1zUHJvdmlkZXIgPSBwYXJhbXNQcm92aWRlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHRoaXMuI21lcmdlUXVlcnlQYXJhbXMoXG4gICAgICBjaGFuZ2VzLnF1ZXJ5UGFyYW1zPy5jdXJyZW50VmFsdWVcbiAgICApO1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICB9XG5cbiAgI21lcmdlUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IFNreUFwcExpbmtRdWVyeVBhcmFtcyk6IFNreUFwcExpbmtRdWVyeVBhcmFtcyB7XG4gICAgY29uc3Qgc2t5dXhQYXJhbXMgPSB0aGlzLiNza3lBcHBDb25maWdcbiAgICAgID8gdGhpcy4jc2t5QXBwQ29uZmlnLnJ1bnRpbWUucGFyYW1zLmdldEFsbCh0cnVlKVxuICAgICAgOiB0aGlzLiNwYXJhbXNQcm92aWRlcj8ucGFyYW1zLmdldEFsbCh0cnVlKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnF1ZXJ5UGFyYW1zLCBxdWVyeVBhcmFtcywgc2t5dXhQYXJhbXMpO1xuICB9XG59XG4iXX0=