@skyux/router 6.16.0 → 6.18.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.
- package/esm2020/lib/modules/href/href.directive.mjs +130 -116
- package/esm2020/lib/modules/link/link-external.directive.mjs +21 -15
- package/esm2020/lib/modules/link/link.directive.mjs +15 -10
- package/fesm2015/skyux-router.mjs +166 -140
- package/fesm2015/skyux-router.mjs.map +1 -1
- package/fesm2020/skyux-router.mjs +161 -138
- package/fesm2020/skyux-router.mjs.map +1 -1
- package/lib/modules/href/href.directive.d.ts +5 -19
- package/lib/modules/link/link-external.directive.d.ts +1 -4
- package/lib/modules/link/link.directive.d.ts +1 -3
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, Optional, Input, NgModule, Injectable, EventEmitter, Output, HostListener } from '@angular/core';
|
|
3
|
+
import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
|
|
3
4
|
import * as i2 from '@angular/common';
|
|
4
5
|
import { PathLocationStrategy, CommonModule } from '@angular/common';
|
|
5
6
|
import * as i1 from '@angular/router';
|
|
@@ -8,18 +9,23 @@ import * as i4 from '@skyux/config';
|
|
|
8
9
|
import * as i3 from '@skyux/core';
|
|
9
10
|
import { HttpParams } from '@angular/common/http';
|
|
10
11
|
|
|
12
|
+
var _SkyAppLinkExternalDirective_instances, _SkyAppLinkExternalDirective_window, _SkyAppLinkExternalDirective_skyAppConfig, _SkyAppLinkExternalDirective_paramsProvider, _SkyAppLinkExternalDirective_mergeQueryParams;
|
|
11
13
|
/**
|
|
12
14
|
* @deprecated Use `skyHref` directive instead.
|
|
13
15
|
*/
|
|
14
16
|
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
|
|
17
|
-
this
|
|
18
|
-
this
|
|
19
|
-
this
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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 @@ class SkyAppLinkExternalDirective extends RouterLinkWithHref {
|
|
|
29
35
|
this.routerLink = commands;
|
|
30
36
|
}
|
|
31
37
|
ngOnChanges(changes) {
|
|
32
|
-
this.queryParams = this.
|
|
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: [{
|
|
@@ -56,26 +62,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
56
62
|
type: Input
|
|
57
63
|
}] } });
|
|
58
64
|
|
|
65
|
+
var _SkyAppLinkDirective_instances, _SkyAppLinkDirective_skyAppConfig, _SkyAppLinkDirective_paramsProvider, _SkyAppLinkDirective_mergeQueryParams;
|
|
59
66
|
class SkyAppLinkDirective extends RouterLinkWithHref {
|
|
60
67
|
constructor(router, route, locationStrategy, skyAppConfig, paramsProvider) {
|
|
61
68
|
super(router, route, locationStrategy);
|
|
62
|
-
this
|
|
63
|
-
this
|
|
69
|
+
_SkyAppLinkDirective_instances.add(this);
|
|
70
|
+
_SkyAppLinkDirective_skyAppConfig.set(this, void 0);
|
|
71
|
+
_SkyAppLinkDirective_paramsProvider.set(this, void 0);
|
|
72
|
+
__classPrivateFieldSet(this, _SkyAppLinkDirective_skyAppConfig, skyAppConfig, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _SkyAppLinkDirective_paramsProvider, paramsProvider, "f");
|
|
64
74
|
}
|
|
65
75
|
set skyAppLink(commands) {
|
|
66
76
|
this.routerLink = commands;
|
|
67
77
|
}
|
|
68
78
|
ngOnChanges(changes) {
|
|
69
|
-
this.queryParams = this.
|
|
79
|
+
this.queryParams = __classPrivateFieldGet(this, _SkyAppLinkDirective_instances, "m", _SkyAppLinkDirective_mergeQueryParams).call(this, changes.queryParams?.currentValue);
|
|
70
80
|
super.ngOnChanges(changes);
|
|
71
81
|
}
|
|
72
|
-
mergeQueryParams(queryParams) {
|
|
73
|
-
const skyuxParams = this.skyAppConfig
|
|
74
|
-
? this.skyAppConfig.runtime.params.getAll(true)
|
|
75
|
-
: this.paramsProvider.params.getAll(true);
|
|
76
|
-
return Object.assign({}, this.queryParams, queryParams, skyuxParams);
|
|
77
|
-
}
|
|
78
82
|
}
|
|
83
|
+
_SkyAppLinkDirective_skyAppConfig = new WeakMap(), _SkyAppLinkDirective_paramsProvider = new WeakMap(), _SkyAppLinkDirective_instances = new WeakSet(), _SkyAppLinkDirective_mergeQueryParams = function _SkyAppLinkDirective_mergeQueryParams(queryParams) {
|
|
84
|
+
const skyuxParams = __classPrivateFieldGet(this, _SkyAppLinkDirective_skyAppConfig, "f")
|
|
85
|
+
? __classPrivateFieldGet(this, _SkyAppLinkDirective_skyAppConfig, "f").runtime.params.getAll(true)
|
|
86
|
+
: __classPrivateFieldGet(this, _SkyAppLinkDirective_paramsProvider, "f")?.params.getAll(true);
|
|
87
|
+
return Object.assign({}, this.queryParams, queryParams, skyuxParams);
|
|
88
|
+
};
|
|
79
89
|
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: i4.SkyAppConfig, optional: true }, { token: i4.SkyAppRuntimeConfigParamsProvider, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
80
90
|
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 });
|
|
81
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppLinkDirective, decorators: [{
|
|
@@ -122,23 +132,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
122
132
|
type: Injectable
|
|
123
133
|
}] });
|
|
124
134
|
|
|
135
|
+
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;
|
|
125
136
|
class SkyHrefDirective {
|
|
126
137
|
constructor(router, renderer, element, skyAppConfig, paramsProvider, hrefResolver, applicationRef, changeDetectorRef) {
|
|
127
|
-
this
|
|
128
|
-
this.renderer = renderer;
|
|
129
|
-
this.element = element;
|
|
130
|
-
this.skyAppConfig = skyAppConfig;
|
|
131
|
-
this.paramsProvider = paramsProvider;
|
|
132
|
-
this.hrefResolver = hrefResolver;
|
|
133
|
-
this.applicationRef = applicationRef;
|
|
134
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
138
|
+
_SkyHrefDirective_instances.add(this);
|
|
135
139
|
/**
|
|
136
140
|
* Emits whether the link is available (true) or not (false).
|
|
137
141
|
*/
|
|
138
142
|
this.skyHrefChange = new EventEmitter();
|
|
139
|
-
this
|
|
140
|
-
this
|
|
141
|
-
this
|
|
143
|
+
_SkyHrefDirective_route.set(this, false);
|
|
144
|
+
_SkyHrefDirective_href.set(this, '');
|
|
145
|
+
_SkyHrefDirective__skyHref.set(this, '');
|
|
146
|
+
_SkyHrefDirective__skyHrefElse.set(this, 'hide');
|
|
147
|
+
_SkyHrefDirective_router.set(this, void 0);
|
|
148
|
+
_SkyHrefDirective_renderer.set(this, void 0);
|
|
149
|
+
_SkyHrefDirective_element.set(this, void 0);
|
|
150
|
+
_SkyHrefDirective_skyAppConfig.set(this, void 0);
|
|
151
|
+
_SkyHrefDirective_paramsProvider.set(this, void 0);
|
|
152
|
+
_SkyHrefDirective_hrefResolver.set(this, void 0);
|
|
153
|
+
_SkyHrefDirective_applicationRef.set(this, void 0);
|
|
154
|
+
_SkyHrefDirective_changeDetectorRef.set(this, void 0);
|
|
155
|
+
/* istanbul ignore next */
|
|
156
|
+
_SkyHrefDirective_getUrlTree.set(this, () => {
|
|
157
|
+
const href = __classPrivateFieldGet(this, _SkyHrefDirective_href, "f").toLowerCase();
|
|
158
|
+
if (!href ||
|
|
159
|
+
!__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.skyux.host?.url ||
|
|
160
|
+
!__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.runtime?.app?.base) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
const baseUrl = (__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").skyux.host.url +
|
|
164
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.app.base.substr(0, __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.app.base.length - 1)).toLowerCase();
|
|
165
|
+
if (href === baseUrl ||
|
|
166
|
+
// Make sure the base URL is not simply a partial match of the base URL plus additional
|
|
167
|
+
// characters after the base URL that are not "terminating" characters
|
|
168
|
+
href.indexOf(baseUrl + '/') === 0 ||
|
|
169
|
+
href.indexOf(baseUrl + '?') === 0) {
|
|
170
|
+
const routePath = __classPrivateFieldGet(this, _SkyHrefDirective_href, "f").substring(baseUrl.length);
|
|
171
|
+
return __classPrivateFieldGet(this, _SkyHrefDirective_router, "f").parseUrl(routePath);
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
});
|
|
175
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_router, router, "f");
|
|
176
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_renderer, renderer, "f");
|
|
177
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_element, element, "f");
|
|
178
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_skyAppConfig, skyAppConfig, "f");
|
|
179
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_paramsProvider, paramsProvider, "f");
|
|
180
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_hrefResolver, hrefResolver, "f");
|
|
181
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_applicationRef, applicationRef, "f");
|
|
182
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_changeDetectorRef, changeDetectorRef, "f");
|
|
142
183
|
}
|
|
143
184
|
/**
|
|
144
185
|
* Provide a link as a string or as an array of strings to be joined by a slash to form a complete
|
|
@@ -148,12 +189,15 @@ class SkyHrefDirective {
|
|
|
148
189
|
*/
|
|
149
190
|
set skyHref(skyHref) {
|
|
150
191
|
if (typeof skyHref === 'string') {
|
|
151
|
-
this
|
|
192
|
+
__classPrivateFieldSet(this, _SkyHrefDirective__skyHref, skyHref, "f");
|
|
152
193
|
}
|
|
153
194
|
else {
|
|
154
|
-
this
|
|
195
|
+
__classPrivateFieldSet(this, _SkyHrefDirective__skyHref, skyHref ? skyHref.join('/') : '', "f");
|
|
155
196
|
}
|
|
156
|
-
this.
|
|
197
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_checkRouteAccess).call(this);
|
|
198
|
+
}
|
|
199
|
+
get skyHref() {
|
|
200
|
+
return __classPrivateFieldGet(this, _SkyHrefDirective__skyHref, "f");
|
|
157
201
|
}
|
|
158
202
|
/**
|
|
159
203
|
* Set the behavior for when the link is not available to either hide the link or display unlinked text.
|
|
@@ -161,131 +205,110 @@ class SkyHrefDirective {
|
|
|
161
205
|
* @param value
|
|
162
206
|
*/
|
|
163
207
|
set skyHrefElse(value) {
|
|
164
|
-
this
|
|
165
|
-
this.
|
|
208
|
+
__classPrivateFieldSet(this, _SkyHrefDirective__skyHrefElse, value, "f");
|
|
209
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
|
|
210
|
+
}
|
|
211
|
+
get skyHrefElse() {
|
|
212
|
+
return __classPrivateFieldGet(this, _SkyHrefDirective__skyHrefElse, "f");
|
|
166
213
|
}
|
|
167
214
|
/* istanbul ignore next */
|
|
168
215
|
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
169
|
-
if (!this
|
|
216
|
+
if (!__classPrivateFieldGet(this, _SkyHrefDirective_route, "f") || !__classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess) {
|
|
170
217
|
return false;
|
|
171
218
|
}
|
|
172
219
|
if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
|
|
173
220
|
return true;
|
|
174
221
|
}
|
|
175
|
-
const target = this.
|
|
222
|
+
const target = __classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement.getAttribute('target');
|
|
176
223
|
if (typeof target === 'string' && target !== '_self') {
|
|
177
224
|
return true;
|
|
178
225
|
}
|
|
179
|
-
const urlTree = this.
|
|
226
|
+
const urlTree = __classPrivateFieldGet(this, _SkyHrefDirective_getUrlTree, "f").call(this);
|
|
180
227
|
if (urlTree) {
|
|
181
|
-
this.
|
|
228
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_router, "f").navigateByUrl(urlTree);
|
|
182
229
|
return false;
|
|
183
230
|
}
|
|
184
231
|
return true;
|
|
185
232
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
else {
|
|
192
|
-
this.renderer.removeAttribute(this.element.nativeElement, 'hidden');
|
|
193
|
-
}
|
|
194
|
-
if (change.href) {
|
|
195
|
-
this.renderer.setAttribute(this.element.nativeElement, 'href', change.href);
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
this.renderer.removeAttribute(this.element.nativeElement, 'href');
|
|
199
|
-
}
|
|
200
|
-
this.skyHrefChange.emit({ userHasAccess: !change.hidden });
|
|
233
|
+
}
|
|
234
|
+
_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) {
|
|
235
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").addClass(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'sky-href');
|
|
236
|
+
if (change.hidden) {
|
|
237
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'hidden', 'hidden');
|
|
201
238
|
}
|
|
202
|
-
|
|
203
|
-
this.
|
|
204
|
-
url: this._skyHref,
|
|
205
|
-
userHasAccess: false,
|
|
206
|
-
};
|
|
207
|
-
/* istanbul ignore else */
|
|
208
|
-
if (this.hrefResolver && this._skyHref) {
|
|
209
|
-
this.applyChanges(this.getChanges());
|
|
210
|
-
try {
|
|
211
|
-
this.hrefResolver.resolveHref({ url: this._skyHref }).then((route) => {
|
|
212
|
-
this._route = { ...route };
|
|
213
|
-
this.applyChanges(this.getChanges());
|
|
214
|
-
/* istanbul ignore else */
|
|
215
|
-
if (this.changeDetectorRef && this.applicationRef) {
|
|
216
|
-
this.changeDetectorRef.markForCheck();
|
|
217
|
-
this.applicationRef.tick();
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
catch (error) {
|
|
222
|
-
this.applyChanges(this.getChanges());
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
// no resolver or skyHref is falsy
|
|
227
|
-
this._route.userHasAccess = !!this._skyHref;
|
|
228
|
-
this.applyChanges(this.getChanges());
|
|
229
|
-
}
|
|
239
|
+
else {
|
|
240
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'hidden');
|
|
230
241
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
|
|
242
|
+
if (change.href) {
|
|
243
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'href', change.href);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyHrefDirective_element, "f").nativeElement, 'href');
|
|
247
|
+
}
|
|
248
|
+
this.skyHrefChange.emit({ userHasAccess: !change.hidden });
|
|
249
|
+
}, _SkyHrefDirective_checkRouteAccess = function _SkyHrefDirective_checkRouteAccess() {
|
|
250
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_route, {
|
|
251
|
+
url: this.skyHref,
|
|
252
|
+
userHasAccess: false,
|
|
253
|
+
}, "f");
|
|
254
|
+
/* istanbul ignore else */
|
|
255
|
+
if (__classPrivateFieldGet(this, _SkyHrefDirective_hrefResolver, "f") && this.skyHref) {
|
|
256
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
|
|
257
|
+
try {
|
|
258
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_hrefResolver, "f").resolveHref({ url: this.skyHref }).then((route) => {
|
|
259
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_route, { ...route }, "f");
|
|
260
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
|
|
261
|
+
/* istanbul ignore else */
|
|
262
|
+
if (__classPrivateFieldGet(this, _SkyHrefDirective_changeDetectorRef, "f") && __classPrivateFieldGet(this, _SkyHrefDirective_applicationRef, "f")) {
|
|
263
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_changeDetectorRef, "f").markForCheck();
|
|
264
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_applicationRef, "f").tick();
|
|
265
|
+
}
|
|
250
266
|
});
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
? '?' + queryParamsMerged.toString()
|
|
255
|
-
: '') +
|
|
256
|
-
(fragment ? `#${fragment}` : '');
|
|
257
|
-
return {
|
|
258
|
-
href: this._href,
|
|
259
|
-
hidden: false,
|
|
260
|
-
};
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
|
|
261
270
|
}
|
|
262
271
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
272
|
+
else {
|
|
273
|
+
// no resolver or skyHref is falsy
|
|
274
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess = !!this.skyHref;
|
|
275
|
+
__classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_applyChanges).call(this, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getChanges).call(this));
|
|
267
276
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
return this.router.parseUrl(routePath);
|
|
277
|
+
}, _SkyHrefDirective_getChanges = function _SkyHrefDirective_getChanges() {
|
|
278
|
+
const queryParams = {};
|
|
279
|
+
if (!__classPrivateFieldGet(this, _SkyHrefDirective_route, "f") || !__classPrivateFieldGet(this, _SkyHrefDirective_route, "f").userHasAccess) {
|
|
280
|
+
return {
|
|
281
|
+
href: '',
|
|
282
|
+
hidden: this.skyHrefElse === 'hide',
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
const [beforeFragment, fragment] = __classPrivateFieldGet(this, _SkyHrefDirective_route, "f").url.split('#', 2);
|
|
287
|
+
const [baseUrl, search] = beforeFragment.split('?', 2);
|
|
288
|
+
if (search) {
|
|
289
|
+
const searchParams = new HttpParams({ fromString: search });
|
|
290
|
+
searchParams.keys().forEach((key) => {
|
|
291
|
+
queryParams[key] = searchParams.get(key);
|
|
292
|
+
});
|
|
285
293
|
}
|
|
286
|
-
|
|
294
|
+
const queryParamsMerged = new HttpParams({
|
|
295
|
+
fromObject: Object.assign({}, __classPrivateFieldGet(this, _SkyHrefDirective_instances, "m", _SkyHrefDirective_getSkyuxParams).call(this), queryParams),
|
|
296
|
+
});
|
|
297
|
+
__classPrivateFieldSet(this, _SkyHrefDirective_href, baseUrl +
|
|
298
|
+
(queryParamsMerged.keys().length > 0
|
|
299
|
+
? '?' + queryParamsMerged.toString()
|
|
300
|
+
: '') +
|
|
301
|
+
(fragment ? `#${fragment}` : ''), "f");
|
|
302
|
+
return {
|
|
303
|
+
href: __classPrivateFieldGet(this, _SkyHrefDirective_href, "f"),
|
|
304
|
+
hidden: false,
|
|
305
|
+
};
|
|
287
306
|
}
|
|
288
|
-
}
|
|
307
|
+
}, _SkyHrefDirective_getSkyuxParams = function _SkyHrefDirective_getSkyuxParams() {
|
|
308
|
+
return typeof __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f")?.runtime.params?.getAll === 'function'
|
|
309
|
+
? __classPrivateFieldGet(this, _SkyHrefDirective_skyAppConfig, "f").runtime.params.getAll(true)
|
|
310
|
+
: __classPrivateFieldGet(this, _SkyHrefDirective_paramsProvider, "f")?.params.getAll(true);
|
|
311
|
+
};
|
|
289
312
|
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: i4.SkyAppConfig, optional: true }, { token: i4.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: SkyHrefResolverService, optional: true }, { token: i0.ApplicationRef, optional: true }, { token: i0.ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
290
313
|
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 });
|
|
291
314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyHrefDirective, decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-router.mjs","sources":["../../../../../libs/components/router/src/lib/modules/link/link-external.directive.ts","../../../../../libs/components/router/src/lib/modules/link/link.directive.ts","../../../../../libs/components/router/src/lib/modules/link/link.module.ts","../../../../../libs/components/router/src/lib/modules/href/href-resolver.service.ts","../../../../../libs/components/router/src/lib/modules/href/href.directive.ts","../../../../../libs/components/router/src/lib/modules/href/href.module.ts","../../../../../libs/components/router/src/lib/modules/recently-accessed/recently-accessed.service.ts","../../../../../libs/components/router/src/skyux-router.ts"],"sourcesContent":["import { PathLocationStrategy, PlatformLocation } from '@angular/common';\nimport {\n Directive,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';\nimport {\n SkyAppConfig,\n SkyAppConfigHost,\n SkyAppRuntimeConfigParamsProvider,\n} from '@skyux/config';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { SkyAppLinkQueryParams } from './link-query-params';\n\n/**\n * @deprecated Use `skyHref` directive instead.\n */\n@Directive({\n selector: '[skyAppLinkExternal]',\n})\nexport class SkyAppLinkExternalDirective\n extends RouterLinkWithHref\n implements OnChanges\n{\n @Input()\n set skyAppLinkExternal(commands: any[] | string) {\n this.routerLink = commands;\n }\n\n constructor(\n router: Router,\n route: ActivatedRoute,\n platformLocation: PlatformLocation,\n private window: SkyAppWindowRef,\n @Optional() private skyAppConfig?: SkyAppConfig,\n @Optional() private paramsProvider?: SkyAppRuntimeConfigParamsProvider,\n @Optional() hostConfig?: SkyAppConfigHost\n ) {\n super(\n router,\n route,\n new PathLocationStrategy(\n platformLocation,\n hostConfig ? hostConfig.host.url : skyAppConfig.skyux.host.url\n )\n );\n\n if (\n this.window.nativeWindow.window.name &&\n this.window.nativeWindow.window.name !== ''\n ) {\n this.target = this.window.nativeWindow.window.name;\n } else {\n this.target = '_top';\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.queryParams = this.mergeQueryParams(changes.queryParams?.currentValue);\n super.ngOnChanges(changes);\n }\n\n private mergeQueryParams(\n queryParams: SkyAppLinkQueryParams\n ): SkyAppLinkQueryParams {\n const skyuxParams = this.skyAppConfig\n ? this.skyAppConfig.runtime.params.getAll()\n : this.paramsProvider.params.getAll();\n\n return Object.assign({}, this.queryParams, queryParams, skyuxParams);\n }\n}\n","import { LocationStrategy } from '@angular/common';\nimport {\n Directive,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';\nimport { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';\n\nimport { SkyAppLinkQueryParams } from './link-query-params';\n\n@Directive({\n selector: '[skyAppLink]',\n})\nexport class SkyAppLinkDirective\n extends RouterLinkWithHref\n implements OnChanges\n{\n @Input()\n set skyAppLink(commands: any[] | string) {\n this.routerLink = commands;\n }\n\n constructor(\n router: Router,\n route: ActivatedRoute,\n locationStrategy: LocationStrategy,\n @Optional() private skyAppConfig?: SkyAppConfig,\n @Optional() private paramsProvider?: SkyAppRuntimeConfigParamsProvider\n ) {\n super(router, route, locationStrategy);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.queryParams = this.mergeQueryParams(changes.queryParams?.currentValue);\n super.ngOnChanges(changes);\n }\n\n private mergeQueryParams(\n queryParams: SkyAppLinkQueryParams\n ): SkyAppLinkQueryParams {\n const skyuxParams = this.skyAppConfig\n ? this.skyAppConfig.runtime.params.getAll(true)\n : this.paramsProvider.params.getAll(true);\n\n return Object.assign({}, this.queryParams, queryParams, skyuxParams);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyAppLinkExternalDirective } from './link-external.directive';\nimport { SkyAppLinkDirective } from './link.directive';\n\n@NgModule({\n declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective],\n exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective],\n})\n/* istanbul ignore next */\nexport class SkyAppLinkModule {}\n","import { Injectable } from '@angular/core';\n\nimport { SkyHrefResolver } from './href-resolver';\nimport { SkyHref } from './types/href';\nimport { SkyHrefResolverArgs } from './types/href-resolver.args';\n\n/**\n * Return the link as-is.\n */\n@Injectable()\nexport class SkyHrefResolverService implements SkyHrefResolver {\n public resolveHref(args: SkyHrefResolverArgs): Promise<SkyHref> {\n return Promise.resolve<SkyHref>({\n url: args.url,\n userHasAccess: true,\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport {\n ApplicationRef,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Optional,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\nimport { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';\n\nimport { SkyHrefQueryParams } from './href-query-params';\nimport { SkyHrefResolverService } from './href-resolver.service';\nimport { SkyHref } from './types/href';\nimport { SkyHrefChange } from './types/href-change';\n\ntype HrefChanges = { href: string; hidden: boolean };\n\n@Directive({\n selector: '[skyHref]',\n})\nexport class SkyHrefDirective {\n /**\n * Provide a link as a string or as an array of strings to be joined by a slash to form a complete\n * URL.\n *\n * @param skyHref\n */\n @Input()\n public set skyHref(skyHref: string | string[]) {\n if (typeof skyHref === 'string') {\n this._skyHref = skyHref;\n } else {\n this._skyHref = skyHref.join('/');\n }\n\n this.checkRouteAccess();\n }\n\n /**\n * Set the behavior for when the link is not available to either hide the link or display unlinked text.\n *\n * @param value\n */\n @Input()\n public set skyHrefElse(value: 'hide' | 'unlink') {\n this._skyHrefElse = value;\n this.applyChanges(this.getChanges());\n }\n\n /**\n * Emits whether the link is available (true) or not (false).\n */\n @Output()\n public skyHrefChange = new EventEmitter<SkyHrefChange>();\n\n private _route: SkyHref | false = false;\n\n private _href: string;\n\n private _skyHref = '';\n\n private _skyHrefElse: 'hide' | 'unlink' = 'hide';\n\n constructor(\n private router: Router,\n private renderer: Renderer2,\n private element: ElementRef,\n @Optional() private skyAppConfig?: SkyAppConfig,\n @Optional() private paramsProvider?: SkyAppRuntimeConfigParamsProvider,\n @Optional() private hrefResolver?: SkyHrefResolverService,\n @Optional() private applicationRef?: ApplicationRef,\n @Optional() private changeDetectorRef?: ChangeDetectorRef\n ) {}\n\n /* istanbul ignore next */\n @HostListener('click', [\n '$event.button',\n '$event.ctrlKey',\n '$event.shiftKey',\n '$event.altKey',\n '$event.metaKey',\n ])\n public onClick(\n button: number,\n ctrlKey: boolean,\n shiftKey: boolean,\n altKey: boolean,\n metaKey: boolean\n ): boolean {\n if (!this._route || !this._route.userHasAccess) {\n return false;\n }\n\n if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {\n return true;\n }\n\n const target = this.element.nativeElement.getAttribute('target');\n if (typeof target === 'string' && target !== '_self') {\n return true;\n }\n\n const urlTree = this.getUrlTree();\n if (urlTree) {\n this.router.navigateByUrl(urlTree);\n return false;\n }\n return true;\n }\n\n private applyChanges(change: HrefChanges) {\n this.renderer.addClass(this.element.nativeElement, 'sky-href');\n if (change.hidden) {\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'hidden',\n 'hidden'\n );\n } else {\n this.renderer.removeAttribute(this.element.nativeElement, 'hidden');\n }\n if (change.href) {\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'href',\n change.href\n );\n } else {\n this.renderer.removeAttribute(this.element.nativeElement, 'href');\n }\n this.skyHrefChange.emit({ userHasAccess: !change.hidden });\n }\n\n private checkRouteAccess() {\n this._route = {\n url: this._skyHref,\n userHasAccess: false,\n };\n /* istanbul ignore else */\n if (this.hrefResolver && this._skyHref) {\n this.applyChanges(this.getChanges());\n try {\n this.hrefResolver.resolveHref({ url: this._skyHref }).then((route) => {\n this._route = { ...route };\n this.applyChanges(this.getChanges());\n /* istanbul ignore else */\n if (this.changeDetectorRef && this.applicationRef) {\n this.changeDetectorRef.markForCheck();\n this.applicationRef.tick();\n }\n });\n } catch (error) {\n this.applyChanges(this.getChanges());\n }\n } else {\n // no resolver or skyHref is falsy\n this._route.userHasAccess = !!this._skyHref;\n this.applyChanges(this.getChanges());\n }\n }\n\n private getChanges(): HrefChanges {\n const queryParams: SkyHrefQueryParams = {};\n\n if (!this._route || !this._route.userHasAccess) {\n return {\n href: '',\n hidden: this._skyHrefElse === 'hide',\n };\n } else {\n const [beforeFragment, fragment] = this._route.url.split('#', 2);\n const [baseUrl, search] = beforeFragment.split('?', 2);\n\n if (search) {\n const searchParams = new HttpParams({ fromString: search });\n searchParams.keys().forEach((key) => {\n queryParams[key] = searchParams.get(key);\n });\n }\n\n const queryParamsMerged = new HttpParams({\n fromObject: Object.assign({}, this.getSkyuxParams(), queryParams),\n });\n\n this._href =\n baseUrl +\n (queryParamsMerged.keys().length > 0\n ? '?' + queryParamsMerged.toString()\n : '') +\n (fragment ? `#${fragment}` : '');\n return {\n href: this._href,\n hidden: false,\n };\n }\n }\n\n private getSkyuxParams(): SkyHrefQueryParams {\n return typeof this.skyAppConfig?.runtime.params?.getAll === 'function'\n ? this.skyAppConfig.runtime.params.getAll(true)\n : this.paramsProvider.params.getAll(true);\n }\n\n /* istanbul ignore next */\n private getUrlTree(): UrlTree | false {\n const href = this._href.toLowerCase();\n\n if (\n !href ||\n !this.skyAppConfig?.skyux.host?.url ||\n !this.skyAppConfig?.runtime?.app?.base\n ) {\n return false;\n }\n\n const baseUrl = (\n this.skyAppConfig.skyux.host.url +\n this.skyAppConfig.runtime.app.base.substr(\n 0,\n this.skyAppConfig.runtime.app.base.length - 1\n )\n ).toLowerCase();\n\n if (\n href === baseUrl ||\n // Make sure the base URL is not simply a partial match of the base URL plus additional\n // characters after the base URL that are not \"terminating\" characters\n href.indexOf(baseUrl + '/') === 0 ||\n href.indexOf(baseUrl + '?') === 0\n ) {\n const routePath = this._href.substring(baseUrl.length);\n return this.router.parseUrl(routePath);\n }\n\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyHrefDirective } from './href.directive';\n\n@NgModule({\n declarations: [SkyHrefDirective],\n exports: [SkyHrefDirective],\n imports: [CommonModule],\n})\nexport class SkyHrefModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { SkyRecentlyAccessedAddLinkArgs } from './recently-accessed-add-link-args';\nimport { SkyRecentlyAccessedAddLinkResult } from './recently-accessed-add-link-result';\nimport { SkyRecentlyAccessedAddRouteArgs } from './recently-accessed-add-route-args';\nimport { SkyRecentlyAccessedGetLinksArgs } from './recently-accessed-get-links-args';\nimport { SkyRecentlyAccessedLinkList } from './recently-accessed-link-list';\n\n/**\n * A service for creating and retrieving recently accessed links.\n */\n@Injectable()\nexport abstract class SkyRecentlyAccessedService {\n /**\n * Adds a recently accessed link based on an Angular route.\n * @param args The route to add.\n */\n public abstract addRoute(\n args: SkyRecentlyAccessedAddRouteArgs\n ): Observable<SkyRecentlyAccessedAddLinkResult>;\n\n /**\n * Adds a recently accessed link based on metadata about the link.\n * @param args The link to add.\n */\n public abstract addLink(\n args: SkyRecentlyAccessedAddLinkArgs\n ): Observable<SkyRecentlyAccessedAddLinkResult>;\n\n /**\n * Gets a list of recently accessed links.\n * @param args The links to retrieve.\n */\n public abstract getLinks(\n args: SkyRecentlyAccessedGetLinksArgs\n ): Observable<SkyRecentlyAccessedLinkList>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i2","i3.SkyHrefResolverService"],"mappings":";;;;;;;;;;AAkBA;;AAEG;AAIG,MAAO,2BACX,SAAQ,kBAAkB,CAAA;AAQ1B,IAAA,WAAA,CACE,MAAc,EACd,KAAqB,EACrB,gBAAkC,EAC1B,MAAuB,EACX,YAA2B,EAC3B,cAAkD,EAC1D,UAA6B,EAAA;AAEzC,QAAA,KAAK,CACH,MAAM,EACN,KAAK,EACL,IAAI,oBAAoB,CACtB,gBAAgB,EAChB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAC/D,CACF,CAAC;QAZM,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;QACX,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QAC3B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAoC;QAYtE,IACE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;YACpC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,EAC3C;AACA,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,SAAA;KACF;IA/BD,IACI,kBAAkB,CAAC,QAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC5B;AA8BM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5E,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;AAEO,IAAA,gBAAgB,CACtB,WAAkC,EAAA;AAElC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY;cACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;cACzC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAExC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACtE;;wHAlDU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;;0BAeI,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;4CAXP,kBAAkB,EAAA,CAAA;sBADrB,KAAK;;;ACZF,MAAO,mBACX,SAAQ,kBAAkB,CAAA;IAQ1B,WACE,CAAA,MAAc,EACd,KAAqB,EACrB,gBAAkC,EACd,YAA2B,EAC3B,cAAkD,EAAA;AAEtE,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAHnB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QAC3B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAoC;KAGvE;IAbD,IACI,UAAU,CAAC,QAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC5B;AAYM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5E,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;AAEO,IAAA,gBAAgB,CACtB,WAAkC,EAAA;AAElC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY;AACnC,cAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;cAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAE5C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACtE;;gHAhCU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;;0BAcI,QAAQ;;0BACR,QAAQ;4CATP,UAAU,EAAA,CAAA;sBADb,KAAK;;;ACXR;MACa,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAJZ,mBAAmB,EAAE,2BAA2B,CACrD,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;8GAG/C,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;AAChE,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;AAC5D,iBAAA,CAAA;;;ACFD;;AAEG;MAEU,sBAAsB,CAAA;AAC1B,IAAA,WAAW,CAAC,IAAyB,EAAA;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAU;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,YAAA,aAAa,EAAE,IAAI;AACpB,SAAA,CAAC,CAAC;KACJ;;mHANU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;uHAAtB,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCiBE,gBAAgB,CAAA;AA2C3B,IAAA,WAAA,CACU,MAAc,EACd,QAAmB,EACnB,OAAmB,EACP,YAA2B,EAC3B,cAAkD,EAClD,YAAqC,EACrC,cAA+B,EAC/B,iBAAqC,EAAA;QAPjD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACP,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QAC3B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAoC;QAClD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QACrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;QAC/B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAoB;AAtB3D;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAiB,CAAC;QAEjD,IAAM,CAAA,MAAA,GAAoB,KAAK,CAAC;QAIhC,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QAEd,IAAY,CAAA,YAAA,GAAsB,MAAM,CAAC;KAW7C;AAnDJ;;;;;AAKG;IACH,IACW,OAAO,CAAC,OAA0B,EAAA;AAC3C,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACzB,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,SAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED;;;;AAIG;IACH,IACW,WAAW,CAAC,KAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACtC;;IAmCM,OAAO,CACZ,MAAc,EACd,OAAgB,EAChB,QAAiB,EACjB,MAAe,EACf,OAAgB,EAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AAC9C,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE;AAC5D,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAClC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACnC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,YAAY,CAAC,MAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,QAAQ,EACR,QAAQ,CACT,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACrE,SAAA;QACD,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,MAAM,EACN,MAAM,CAAC,IAAI,CACZ,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACnE,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAC5D;IAEO,gBAAgB,GAAA;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,QAAQ;AAClB,YAAA,aAAa,EAAE,KAAK;SACrB,CAAC;;AAEF,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrC,IAAI;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AACnE,oBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;;AAErC,oBAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE;AACjD,wBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACtC,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC5B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AAAM,aAAA;;YAEL,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACtC,SAAA;KACF;IAEO,UAAU,GAAA;QAChB,MAAM,WAAW,GAAuB,EAAE,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9C,OAAO;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,MAAM,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM;aACrC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACjE,YAAA,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEvD,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC5D,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;oBAClC,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC;AACvC,gBAAA,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC;AAClE,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,KAAK;gBACR,OAAO;AACP,qBAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAClC,0BAAE,GAAG,GAAG,iBAAiB,CAAC,QAAQ,EAAE;0BAClC,EAAE,CAAC;AACP,qBAAC,QAAQ,GAAG,CAAI,CAAA,EAAA,QAAQ,CAAE,CAAA,GAAG,EAAE,CAAC,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;AAChB,gBAAA,MAAM,EAAE,KAAK;aACd,CAAC;AACH,SAAA;KACF;IAEO,cAAc,GAAA;QACpB,OAAO,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU;AACpE,cAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;cAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C;;IAGO,UAAU,GAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAEtC,QAAA,IACE,CAAC,IAAI;YACL,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG;YACnC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EACtC;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,MAAM,OAAO,GAAG,CACd,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CACvC,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC9C,EACD,WAAW,EAAE,CAAC;QAEhB,IACE,IAAI,KAAK,OAAO;;;YAGhB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EACjC;AACA,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;6GAvNU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,oFAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA,CAAA;;0BAgDI,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;4CA3CA,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAiBK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAUC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBA8BA,OAAO,EAAA,CAAA;sBAPb,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE;wBACrB,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,gBAAgB;AACjB,qBAAA,CAAA;;;MC7EU,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAJT,YAAA,EAAA,CAAA,gBAAgB,CAErB,EAAA,OAAA,EAAA,CAAA,YAAY,aADZ,gBAAgB,CAAA,EAAA,CAAA,CAAA;2GAGf,aAAa,EAAA,OAAA,EAAA,CAFf,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAEZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACCD;;AAEG;MAEmB,0BAA0B,CAAA;;uHAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;;;ACbX;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"skyux-router.mjs","sources":["../../../../../libs/components/router/src/lib/modules/link/link-external.directive.ts","../../../../../libs/components/router/src/lib/modules/link/link.directive.ts","../../../../../libs/components/router/src/lib/modules/link/link.module.ts","../../../../../libs/components/router/src/lib/modules/href/href-resolver.service.ts","../../../../../libs/components/router/src/lib/modules/href/href.directive.ts","../../../../../libs/components/router/src/lib/modules/href/href.module.ts","../../../../../libs/components/router/src/lib/modules/recently-accessed/recently-accessed.service.ts","../../../../../libs/components/router/src/skyux-router.ts"],"sourcesContent":["import { PathLocationStrategy, PlatformLocation } from '@angular/common';\nimport {\n Directive,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';\nimport {\n SkyAppConfig,\n SkyAppConfigHost,\n SkyAppRuntimeConfigParamsProvider,\n} from '@skyux/config';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { SkyAppLinkQueryParams } from './link-query-params';\n\n/**\n * @deprecated Use `skyHref` directive instead.\n */\n@Directive({\n selector: '[skyAppLinkExternal]',\n})\nexport class SkyAppLinkExternalDirective\n extends RouterLinkWithHref\n implements OnChanges\n{\n @Input()\n set skyAppLinkExternal(commands: any[] | string) {\n this.routerLink = commands;\n }\n\n #window: SkyAppWindowRef;\n #skyAppConfig: SkyAppConfig | undefined;\n #paramsProvider: SkyAppRuntimeConfigParamsProvider | undefined;\n\n constructor(\n router: Router,\n route: ActivatedRoute,\n platformLocation: PlatformLocation,\n window: SkyAppWindowRef,\n @Optional() skyAppConfig?: SkyAppConfig,\n @Optional() paramsProvider?: SkyAppRuntimeConfigParamsProvider,\n @Optional() hostConfig?: SkyAppConfigHost\n ) {\n super(\n router,\n route,\n new PathLocationStrategy(\n platformLocation,\n hostConfig ? hostConfig.host.url : skyAppConfig?.skyux.host?.url\n )\n );\n this.#window = window;\n this.#skyAppConfig = skyAppConfig;\n this.#paramsProvider = paramsProvider;\n\n if (\n this.#window.nativeWindow.window.name &&\n this.#window.nativeWindow.window.name !== ''\n ) {\n this.target = this.#window.nativeWindow.window.name;\n } else {\n this.target = '_top';\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.queryParams = this.#mergeQueryParams(\n changes.queryParams?.currentValue\n );\n super.ngOnChanges(changes);\n }\n\n #mergeQueryParams(queryParams: SkyAppLinkQueryParams): SkyAppLinkQueryParams {\n const skyuxParams = this.#skyAppConfig\n ? this.#skyAppConfig.runtime.params.getAll()\n : this.#paramsProvider?.params.getAll();\n\n return Object.assign({}, this.queryParams, queryParams, skyuxParams);\n }\n}\n","import { LocationStrategy } from '@angular/common';\nimport {\n Directive,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';\nimport { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';\n\nimport { SkyAppLinkQueryParams } from './link-query-params';\n\n@Directive({\n selector: '[skyAppLink]',\n})\nexport class SkyAppLinkDirective\n extends RouterLinkWithHref\n implements OnChanges\n{\n @Input()\n set skyAppLink(commands: any[] | string) {\n this.routerLink = commands;\n }\n\n #skyAppConfig: SkyAppConfig | undefined;\n #paramsProvider: SkyAppRuntimeConfigParamsProvider | undefined;\n\n constructor(\n router: Router,\n route: ActivatedRoute,\n locationStrategy: LocationStrategy,\n @Optional() skyAppConfig?: SkyAppConfig,\n @Optional() paramsProvider?: SkyAppRuntimeConfigParamsProvider\n ) {\n super(router, route, locationStrategy);\n this.#skyAppConfig = skyAppConfig;\n this.#paramsProvider = paramsProvider;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.queryParams = this.#mergeQueryParams(\n changes.queryParams?.currentValue\n );\n super.ngOnChanges(changes);\n }\n\n #mergeQueryParams(queryParams: SkyAppLinkQueryParams): SkyAppLinkQueryParams {\n const skyuxParams = this.#skyAppConfig\n ? this.#skyAppConfig.runtime.params.getAll(true)\n : this.#paramsProvider?.params.getAll(true);\n\n return Object.assign({}, this.queryParams, queryParams, skyuxParams);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyAppLinkExternalDirective } from './link-external.directive';\nimport { SkyAppLinkDirective } from './link.directive';\n\n@NgModule({\n declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective],\n exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective],\n})\n/* istanbul ignore next */\nexport class SkyAppLinkModule {}\n","import { Injectable } from '@angular/core';\n\nimport { SkyHrefResolver } from './href-resolver';\nimport { SkyHref } from './types/href';\nimport { SkyHrefResolverArgs } from './types/href-resolver.args';\n\n/**\n * Return the link as-is.\n */\n@Injectable()\nexport class SkyHrefResolverService implements SkyHrefResolver {\n public resolveHref(args: SkyHrefResolverArgs): Promise<SkyHref> {\n return Promise.resolve<SkyHref>({\n url: args.url,\n userHasAccess: true,\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport {\n ApplicationRef,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Optional,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\nimport { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';\n\nimport { SkyHrefQueryParams } from './href-query-params';\nimport { SkyHrefResolverService } from './href-resolver.service';\nimport { SkyHref } from './types/href';\nimport { SkyHrefChange } from './types/href-change';\n\ntype HrefChanges = { href: string; hidden: boolean };\n\n@Directive({\n selector: '[skyHref]',\n})\nexport class SkyHrefDirective {\n /**\n * Provide a link as a string or as an array of strings to be joined by a slash to form a complete\n * URL.\n *\n * @param skyHref\n */\n @Input()\n public set skyHref(skyHref: string | string[] | undefined) {\n if (typeof skyHref === 'string') {\n this.#_skyHref = skyHref;\n } else {\n this.#_skyHref = skyHref ? skyHref.join('/') : '';\n }\n\n this.#checkRouteAccess();\n }\n\n public get skyHref(): string {\n return this.#_skyHref;\n }\n\n /**\n * Set the behavior for when the link is not available to either hide the link or display unlinked text.\n *\n * @param value\n */\n @Input()\n public set skyHrefElse(value: 'hide' | 'unlink' | undefined) {\n this.#_skyHrefElse = value;\n this.#applyChanges(this.#getChanges());\n }\n\n public get skyHrefElse(): 'hide' | 'unlink' | undefined {\n return this.#_skyHrefElse;\n }\n\n /**\n * Emits whether the link is available (true) or not (false).\n */\n @Output()\n public skyHrefChange = new EventEmitter<SkyHrefChange>();\n\n #route: SkyHref | false = false;\n\n #href = '';\n\n #_skyHref = '';\n\n #_skyHrefElse: 'hide' | 'unlink' | undefined = 'hide';\n\n #router: Router;\n #renderer: Renderer2;\n #element: ElementRef;\n #skyAppConfig: SkyAppConfig | undefined;\n #paramsProvider: SkyAppRuntimeConfigParamsProvider | undefined;\n #hrefResolver: SkyHrefResolverService | undefined;\n #applicationRef: ApplicationRef | undefined;\n #changeDetectorRef: ChangeDetectorRef | undefined;\n\n constructor(\n router: Router,\n renderer: Renderer2,\n element: ElementRef,\n @Optional() skyAppConfig?: SkyAppConfig,\n @Optional() paramsProvider?: SkyAppRuntimeConfigParamsProvider,\n @Optional() hrefResolver?: SkyHrefResolverService,\n @Optional() applicationRef?: ApplicationRef,\n @Optional() changeDetectorRef?: ChangeDetectorRef\n ) {\n this.#router = router;\n this.#renderer = renderer;\n this.#element = element;\n this.#skyAppConfig = skyAppConfig;\n this.#paramsProvider = paramsProvider;\n this.#hrefResolver = hrefResolver;\n this.#applicationRef = applicationRef;\n this.#changeDetectorRef = changeDetectorRef;\n }\n\n /* istanbul ignore next */\n @HostListener('click', [\n '$event.button',\n '$event.ctrlKey',\n '$event.shiftKey',\n '$event.altKey',\n '$event.metaKey',\n ])\n public onClick(\n button: number,\n ctrlKey: boolean,\n shiftKey: boolean,\n altKey: boolean,\n metaKey: boolean\n ): boolean {\n if (!this.#route || !this.#route.userHasAccess) {\n return false;\n }\n\n if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {\n return true;\n }\n\n const target = this.#element.nativeElement.getAttribute('target');\n if (typeof target === 'string' && target !== '_self') {\n return true;\n }\n\n const urlTree = this.#getUrlTree();\n if (urlTree) {\n this.#router.navigateByUrl(urlTree);\n return false;\n }\n return true;\n }\n\n #applyChanges(change: HrefChanges) {\n this.#renderer.addClass(this.#element.nativeElement, 'sky-href');\n if (change.hidden) {\n this.#renderer.setAttribute(\n this.#element.nativeElement,\n 'hidden',\n 'hidden'\n );\n } else {\n this.#renderer.removeAttribute(this.#element.nativeElement, 'hidden');\n }\n if (change.href) {\n this.#renderer.setAttribute(\n this.#element.nativeElement,\n 'href',\n change.href\n );\n } else {\n this.#renderer.removeAttribute(this.#element.nativeElement, 'href');\n }\n this.skyHrefChange.emit({ userHasAccess: !change.hidden });\n }\n\n #checkRouteAccess() {\n this.#route = {\n url: this.skyHref,\n userHasAccess: false,\n };\n /* istanbul ignore else */\n if (this.#hrefResolver && this.skyHref) {\n this.#applyChanges(this.#getChanges());\n try {\n this.#hrefResolver.resolveHref({ url: this.skyHref }).then((route) => {\n this.#route = { ...route };\n this.#applyChanges(this.#getChanges());\n /* istanbul ignore else */\n if (this.#changeDetectorRef && this.#applicationRef) {\n this.#changeDetectorRef.markForCheck();\n this.#applicationRef.tick();\n }\n });\n } catch (error) {\n this.#applyChanges(this.#getChanges());\n }\n } else {\n // no resolver or skyHref is falsy\n this.#route.userHasAccess = !!this.skyHref;\n this.#applyChanges(this.#getChanges());\n }\n }\n\n #getChanges(): HrefChanges {\n const queryParams: SkyHrefQueryParams = {};\n\n if (!this.#route || !this.#route.userHasAccess) {\n return {\n href: '',\n hidden: this.skyHrefElse === 'hide',\n };\n } else {\n const [beforeFragment, fragment] = this.#route.url.split('#', 2);\n const [baseUrl, search] = beforeFragment.split('?', 2);\n\n if (search) {\n const searchParams = new HttpParams({ fromString: search });\n searchParams.keys().forEach((key) => {\n queryParams[key] = searchParams.get(key);\n });\n }\n\n const queryParamsMerged = new HttpParams({\n fromObject: Object.assign({}, this.#getSkyuxParams(), queryParams),\n });\n\n this.#href =\n baseUrl +\n (queryParamsMerged.keys().length > 0\n ? '?' + queryParamsMerged.toString()\n : '') +\n (fragment ? `#${fragment}` : '');\n return {\n href: this.#href,\n hidden: false,\n };\n }\n }\n\n #getSkyuxParams(): SkyHrefQueryParams | undefined {\n return typeof this.#skyAppConfig?.runtime.params?.getAll === 'function'\n ? this.#skyAppConfig.runtime.params.getAll(true)\n : this.#paramsProvider?.params.getAll(true);\n }\n\n /* istanbul ignore next */\n #getUrlTree: () => UrlTree | false = () => {\n const href = this.#href.toLowerCase();\n\n if (\n !href ||\n !this.#skyAppConfig?.skyux.host?.url ||\n !this.#skyAppConfig?.runtime?.app?.base\n ) {\n return false;\n }\n\n const baseUrl = (\n this.#skyAppConfig.skyux.host.url +\n this.#skyAppConfig.runtime.app.base.substr(\n 0,\n this.#skyAppConfig.runtime.app.base.length - 1\n )\n ).toLowerCase();\n\n if (\n href === baseUrl ||\n // Make sure the base URL is not simply a partial match of the base URL plus additional\n // characters after the base URL that are not \"terminating\" characters\n href.indexOf(baseUrl + '/') === 0 ||\n href.indexOf(baseUrl + '?') === 0\n ) {\n const routePath = this.#href.substring(baseUrl.length);\n return this.#router.parseUrl(routePath);\n }\n\n return false;\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyHrefDirective } from './href.directive';\n\n@NgModule({\n declarations: [SkyHrefDirective],\n exports: [SkyHrefDirective],\n imports: [CommonModule],\n})\nexport class SkyHrefModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { SkyRecentlyAccessedAddLinkArgs } from './recently-accessed-add-link-args';\nimport { SkyRecentlyAccessedAddLinkResult } from './recently-accessed-add-link-result';\nimport { SkyRecentlyAccessedAddRouteArgs } from './recently-accessed-add-route-args';\nimport { SkyRecentlyAccessedGetLinksArgs } from './recently-accessed-get-links-args';\nimport { SkyRecentlyAccessedLinkList } from './recently-accessed-link-list';\n\n/**\n * A service for creating and retrieving recently accessed links.\n */\n@Injectable()\nexport abstract class SkyRecentlyAccessedService {\n /**\n * Adds a recently accessed link based on an Angular route.\n * @param args The route to add.\n */\n public abstract addRoute(\n args: SkyRecentlyAccessedAddRouteArgs\n ): Observable<SkyRecentlyAccessedAddLinkResult>;\n\n /**\n * Adds a recently accessed link based on metadata about the link.\n * @param args The link to add.\n */\n public abstract addLink(\n args: SkyRecentlyAccessedAddLinkArgs\n ): Observable<SkyRecentlyAccessedAddLinkResult>;\n\n /**\n * Gets a list of recently accessed links.\n * @param args The links to retrieve.\n */\n public abstract getLinks(\n args: SkyRecentlyAccessedGetLinksArgs\n ): Observable<SkyRecentlyAccessedLinkList>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i2","i3.SkyHrefResolverService"],"mappings":"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"}
|
|
@@ -5,42 +5,28 @@ import { SkyHrefResolverService } from './href-resolver.service';
|
|
|
5
5
|
import { SkyHrefChange } from './types/href-change';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class SkyHrefDirective {
|
|
8
|
-
private
|
|
9
|
-
private renderer;
|
|
10
|
-
private element;
|
|
11
|
-
private skyAppConfig?;
|
|
12
|
-
private paramsProvider?;
|
|
13
|
-
private hrefResolver?;
|
|
14
|
-
private applicationRef?;
|
|
15
|
-
private changeDetectorRef?;
|
|
8
|
+
#private;
|
|
16
9
|
/**
|
|
17
10
|
* Provide a link as a string or as an array of strings to be joined by a slash to form a complete
|
|
18
11
|
* URL.
|
|
19
12
|
*
|
|
20
13
|
* @param skyHref
|
|
21
14
|
*/
|
|
22
|
-
set skyHref(skyHref: string | string[]);
|
|
15
|
+
set skyHref(skyHref: string | string[] | undefined);
|
|
16
|
+
get skyHref(): string;
|
|
23
17
|
/**
|
|
24
18
|
* Set the behavior for when the link is not available to either hide the link or display unlinked text.
|
|
25
19
|
*
|
|
26
20
|
* @param value
|
|
27
21
|
*/
|
|
28
|
-
set skyHrefElse(value: 'hide' | 'unlink');
|
|
22
|
+
set skyHrefElse(value: 'hide' | 'unlink' | undefined);
|
|
23
|
+
get skyHrefElse(): 'hide' | 'unlink' | undefined;
|
|
29
24
|
/**
|
|
30
25
|
* Emits whether the link is available (true) or not (false).
|
|
31
26
|
*/
|
|
32
27
|
skyHrefChange: EventEmitter<SkyHrefChange>;
|
|
33
|
-
private _route;
|
|
34
|
-
private _href;
|
|
35
|
-
private _skyHref;
|
|
36
|
-
private _skyHrefElse;
|
|
37
28
|
constructor(router: Router, renderer: Renderer2, element: ElementRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hrefResolver?: SkyHrefResolverService, applicationRef?: ApplicationRef, changeDetectorRef?: ChangeDetectorRef);
|
|
38
29
|
onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean;
|
|
39
|
-
private applyChanges;
|
|
40
|
-
private checkRouteAccess;
|
|
41
|
-
private getChanges;
|
|
42
|
-
private getSkyuxParams;
|
|
43
|
-
private getUrlTree;
|
|
44
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<SkyHrefDirective, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
45
31
|
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyHrefDirective, "[skyHref]", never, { "skyHref": "skyHref"; "skyHrefElse": "skyHrefElse"; }, { "skyHrefChange": "skyHrefChange"; }, never>;
|
|
46
32
|
}
|
|
@@ -8,13 +8,10 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
* @deprecated Use `skyHref` directive instead.
|
|
9
9
|
*/
|
|
10
10
|
export declare class SkyAppLinkExternalDirective extends RouterLinkWithHref implements OnChanges {
|
|
11
|
-
private
|
|
12
|
-
private skyAppConfig?;
|
|
13
|
-
private paramsProvider?;
|
|
11
|
+
#private;
|
|
14
12
|
set skyAppLinkExternal(commands: any[] | string);
|
|
15
13
|
constructor(router: Router, route: ActivatedRoute, platformLocation: PlatformLocation, window: SkyAppWindowRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hostConfig?: SkyAppConfigHost);
|
|
16
14
|
ngOnChanges(changes: SimpleChanges): void;
|
|
17
|
-
private mergeQueryParams;
|
|
18
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkExternalDirective, [null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
19
16
|
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkExternalDirective, "[skyAppLinkExternal]", never, { "skyAppLinkExternal": "skyAppLinkExternal"; }, {}, never>;
|
|
20
17
|
}
|
|
@@ -4,12 +4,10 @@ import { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';
|
|
|
4
4
|
import { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class SkyAppLinkDirective extends RouterLinkWithHref implements OnChanges {
|
|
7
|
-
private
|
|
8
|
-
private paramsProvider?;
|
|
7
|
+
#private;
|
|
9
8
|
set skyAppLink(commands: any[] | string);
|
|
10
9
|
constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider);
|
|
11
10
|
ngOnChanges(changes: SimpleChanges): void;
|
|
12
|
-
private mergeQueryParams;
|
|
13
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkDirective, [null, null, null, { optional: true; }, { optional: true; }]>;
|
|
14
12
|
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkDirective, "[skyAppLink]", never, { "skyAppLink": "skyAppLink"; }, {}, never>;
|
|
15
13
|
}
|