@skyux/router 8.7.0 → 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/{esm2020 → esm2022}/lib/modules/href/href-resolver.service.mjs +4 -4
  2. package/esm2022/lib/modules/href/href.directive.mjs +206 -0
  3. package/{esm2020 → esm2022}/lib/modules/href/href.module.mjs +5 -5
  4. package/esm2022/lib/modules/link/link-external.directive.mjs +59 -0
  5. package/esm2022/lib/modules/link/link.directive.mjs +43 -0
  6. package/{esm2020 → esm2022}/lib/modules/link/link.module.mjs +5 -5
  7. package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed.service.mjs +4 -4
  8. package/esm2022/testing/href/href-harness.mjs +40 -0
  9. package/{esm2020 → esm2022}/testing/href/href-resolver-mock.service.mjs +4 -4
  10. package/esm2022/testing/href/href-testing.module.mjs +51 -0
  11. package/{fesm2020 → fesm2022}/skyux-router-testing.mjs +18 -18
  12. package/{fesm2020 → fesm2022}/skyux-router-testing.mjs.map +1 -1
  13. package/fesm2022/skyux-router.mjs +360 -0
  14. package/{fesm2020 → fesm2022}/skyux-router.mjs.map +1 -1
  15. package/lib/modules/href/href.directive.d.ts +1 -1
  16. package/lib/modules/link/link-external.directive.d.ts +1 -1
  17. package/lib/modules/link/link.directive.d.ts +1 -1
  18. package/package.json +14 -22
  19. package/esm2020/lib/modules/href/href.directive.mjs +0 -201
  20. package/esm2020/lib/modules/link/link-external.directive.mjs +0 -62
  21. package/esm2020/lib/modules/link/link.directive.mjs +0 -46
  22. package/esm2020/testing/href/href-harness.mjs +0 -40
  23. package/esm2020/testing/href/href-testing.module.mjs +0 -51
  24. package/fesm2015/skyux-router-testing.mjs +0 -130
  25. package/fesm2015/skyux-router-testing.mjs.map +0 -1
  26. package/fesm2015/skyux-router.mjs +0 -372
  27. package/fesm2015/skyux-router.mjs.map +0 -1
  28. package/fesm2020/skyux-router.mjs +0 -359
  29. /package/{esm2020 → esm2022}/index.mjs +0 -0
  30. /package/{esm2020 → esm2022}/lib/modules/href/href-resolver.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/modules/href/types/href-change.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/modules/href/types/href-resolver.args.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/modules/href/types/href.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/modules/link/link-query-params.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-add-link-args.mjs +0 -0
  36. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-add-link-result.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-add-link.mjs +0 -0
  38. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-add-route-args.mjs +0 -0
  39. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-get-links-args.mjs +0 -0
  40. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-link-list.mjs +0 -0
  41. /package/{esm2020 → esm2022}/lib/modules/recently-accessed/recently-accessed-link.mjs +0 -0
  42. /package/{esm2020 → esm2022}/skyux-router.mjs +0 -0
  43. /package/{esm2020 → esm2022}/testing/href/href-harness-filters.mjs +0 -0
  44. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  45. /package/{esm2020 → esm2022}/testing/skyux-router-testing.mjs +0 -0
@@ -7,6 +7,7 @@ import { SkyHrefModule, SkyHrefResolverService } from '@skyux/router';
7
7
  * Allows interaction with a SkyHref directive during testing.
8
8
  */
9
9
  class SkyHrefHarness extends SkyComponentHarness {
10
+ static { this.hostSelector = '[skyHref]'; }
10
11
  /**
11
12
  * Gets a `HarnessPredicate` that can be used to search for a
12
13
  * `SkyHrefHarness` that meets certain criteria.
@@ -40,7 +41,6 @@ class SkyHrefHarness extends SkyComponentHarness {
40
41
  .then((hidden) => !hidden);
41
42
  }
42
43
  }
43
- SkyHrefHarness.hostSelector = '[skyHref]';
44
44
 
45
45
  const MockUserHasAccess = new InjectionToken('MockUserHasAccess');
46
46
  /**
@@ -56,10 +56,10 @@ class SkyHrefResolverMockService {
56
56
  userHasAccess: this.userHasAccess,
57
57
  });
58
58
  }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverMockService, deps: [{ token: MockUserHasAccess }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverMockService }); }
59
61
  }
60
- SkyHrefResolverMockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefResolverMockService, deps: [{ token: MockUserHasAccess }], target: i0.ɵɵFactoryTarget.Injectable });
61
- SkyHrefResolverMockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefResolverMockService });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefResolverMockService, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverMockService, decorators: [{
63
63
  type: Injectable
64
64
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
65
65
  type: Inject,
@@ -81,21 +81,21 @@ class SkyHrefTestingModule {
81
81
  ],
82
82
  };
83
83
  }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
85
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefTestingModule, exports: [SkyHrefModule] }); }
86
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefTestingModule, providers: [
87
+ SkyHrefResolverMockService,
88
+ {
89
+ provide: SkyHrefResolverService,
90
+ useClass: SkyHrefResolverMockService,
91
+ },
92
+ {
93
+ provide: MockUserHasAccess,
94
+ useValue: true,
95
+ },
96
+ ], imports: [SkyHrefModule] }); }
84
97
  }
85
- SkyHrefTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
- SkyHrefTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefTestingModule, exports: [SkyHrefModule] });
87
- SkyHrefTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefTestingModule, providers: [
88
- SkyHrefResolverMockService,
89
- {
90
- provide: SkyHrefResolverService,
91
- useClass: SkyHrefResolverMockService,
92
- },
93
- {
94
- provide: MockUserHasAccess,
95
- useValue: true,
96
- },
97
- ], imports: [SkyHrefModule] });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyHrefTestingModule, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefTestingModule, decorators: [{
99
99
  type: NgModule,
100
100
  args: [{
101
101
  exports: [SkyHrefModule],
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-router-testing.mjs","sources":["../../../../../libs/components/router/testing/src/href/href-harness.ts","../../../../../libs/components/router/testing/src/href/href-resolver-mock.service.ts","../../../../../libs/components/router/testing/src/href/href-testing.module.ts","../../../../../libs/components/router/testing/src/skyux-router-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyHrefHarnessFilters } from './href-harness-filters';\n\n/**\n * Allows interaction with a SkyHref directive during testing.\n */\nexport class SkyHrefHarness extends SkyComponentHarness {\n public static hostSelector = '[skyHref]';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyHrefHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyHrefHarnessFilters\n ): HarnessPredicate<SkyHrefHarness> {\n return this.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the href attribute of the host element.\n */\n public async getHref(): Promise<string | null> {\n return await (await this.host()).getAttribute('href');\n }\n\n /**\n * Gets the visible text.\n */\n public async getText(): Promise<string> {\n return await this.isVisible().then(async (visible) => {\n if (visible) {\n return await (await this.host()).text();\n }\n return '';\n });\n }\n\n /**\n * Returns true if the text is visible.\n */\n public async isVisible(): Promise<boolean> {\n return await (await this.host())\n .matchesSelector('[hidden]')\n .then((hidden) => !hidden);\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { SkyHref, SkyHrefResolver } from '@skyux/router';\n\nexport const MockUserHasAccess = new InjectionToken<boolean>(\n 'MockUserHasAccess'\n);\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyHrefResolverMockService implements SkyHrefResolver {\n constructor(@Inject(MockUserHasAccess) private userHasAccess: boolean) {}\n\n public resolveHref(param: { url: string }): Promise<SkyHref> {\n return Promise.resolve({\n url: param.url,\n userHasAccess: this.userHasAccess,\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SkyHrefModule, SkyHrefResolverService } from '@skyux/router';\n\nimport {\n MockUserHasAccess,\n SkyHrefResolverMockService,\n} from './href-resolver-mock.service';\n\n/**\n * Testing module for the `SkyHref` directive and route resolver.\n */\n@NgModule({\n exports: [SkyHrefModule],\n providers: [\n SkyHrefResolverMockService,\n {\n provide: SkyHrefResolverService,\n useClass: SkyHrefResolverMockService,\n },\n {\n provide: MockUserHasAccess,\n useValue: true,\n },\n ],\n})\nexport class SkyHrefTestingModule {\n public static with(options: {\n userHasAccess: boolean;\n }): ModuleWithProviders<SkyHrefTestingModule> {\n return {\n ngModule: SkyHrefTestingModule,\n providers: [\n {\n provide: MockUserHasAccess,\n useValue: options.userHasAccess,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-router-testing.mjs","sources":["../../../../../libs/components/router/testing/src/href/href-harness.ts","../../../../../libs/components/router/testing/src/href/href-resolver-mock.service.ts","../../../../../libs/components/router/testing/src/href/href-testing.module.ts","../../../../../libs/components/router/testing/src/skyux-router-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyHrefHarnessFilters } from './href-harness-filters';\n\n/**\n * Allows interaction with a SkyHref directive during testing.\n */\nexport class SkyHrefHarness extends SkyComponentHarness {\n public static hostSelector = '[skyHref]';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyHrefHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyHrefHarnessFilters\n ): HarnessPredicate<SkyHrefHarness> {\n return this.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the href attribute of the host element.\n */\n public async getHref(): Promise<string | null> {\n return await (await this.host()).getAttribute('href');\n }\n\n /**\n * Gets the visible text.\n */\n public async getText(): Promise<string> {\n return await this.isVisible().then(async (visible) => {\n if (visible) {\n return await (await this.host()).text();\n }\n return '';\n });\n }\n\n /**\n * Returns true if the text is visible.\n */\n public async isVisible(): Promise<boolean> {\n return await (await this.host())\n .matchesSelector('[hidden]')\n .then((hidden) => !hidden);\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { SkyHref, SkyHrefResolver } from '@skyux/router';\n\nexport const MockUserHasAccess = new InjectionToken<boolean>(\n 'MockUserHasAccess'\n);\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyHrefResolverMockService implements SkyHrefResolver {\n constructor(@Inject(MockUserHasAccess) private userHasAccess: boolean) {}\n\n public resolveHref(param: { url: string }): Promise<SkyHref> {\n return Promise.resolve({\n url: param.url,\n userHasAccess: this.userHasAccess,\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SkyHrefModule, SkyHrefResolverService } from '@skyux/router';\n\nimport {\n MockUserHasAccess,\n SkyHrefResolverMockService,\n} from './href-resolver-mock.service';\n\n/**\n * Testing module for the `SkyHref` directive and route resolver.\n */\n@NgModule({\n exports: [SkyHrefModule],\n providers: [\n SkyHrefResolverMockService,\n {\n provide: SkyHrefResolverService,\n useClass: SkyHrefResolverMockService,\n },\n {\n provide: MockUserHasAccess,\n useValue: true,\n },\n ],\n})\nexport class SkyHrefTestingModule {\n public static with(options: {\n userHasAccess: boolean;\n }): ModuleWithProviders<SkyHrefTestingModule> {\n return {\n ngModule: SkyHrefTestingModule,\n providers: [\n {\n provide: MockUserHasAccess,\n useValue: options.userHasAccess,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,360 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, Optional, Input, NgModule, Injectable, EventEmitter, Output, HostListener } from '@angular/core';
3
+ import * as i2 from '@angular/common';
4
+ import { PathLocationStrategy, CommonModule } from '@angular/common';
5
+ import * as i1 from '@angular/router';
6
+ import { RouterLink } from '@angular/router';
7
+ import * as i3 from '@skyux/core';
8
+ import * as i4 from '@skyux/config';
9
+
10
+ /**
11
+ * @deprecated Use `skyHref` directive instead.
12
+ */
13
+ class SkyAppLinkExternalDirective extends RouterLink {
14
+ set skyAppLinkExternal(commands) {
15
+ this.routerLink = commands;
16
+ }
17
+ #window;
18
+ #skyAppConfig;
19
+ #paramsProvider;
20
+ constructor(router, route, renderer, elementRef, platformLocation, window, skyAppConfig, paramsProvider, hostConfig) {
21
+ super(router, route, undefined, renderer, elementRef, new PathLocationStrategy(platformLocation, hostConfig ? hostConfig.host.url : skyAppConfig?.skyux.host?.url));
22
+ this.#window = window;
23
+ this.#skyAppConfig = skyAppConfig;
24
+ this.#paramsProvider = paramsProvider;
25
+ if (this.#window.nativeWindow.window.name &&
26
+ this.#window.nativeWindow.window.name !== '') {
27
+ this.target = this.#window.nativeWindow.window.name;
28
+ }
29
+ else {
30
+ this.target = '_top';
31
+ }
32
+ }
33
+ ngOnChanges(changes) {
34
+ this.queryParams = this.#mergeQueryParams(changes['queryParams']?.currentValue);
35
+ super.ngOnChanges(changes);
36
+ }
37
+ #mergeQueryParams(queryParams) {
38
+ const skyuxParams = this.#skyAppConfig
39
+ ? this.#skyAppConfig.runtime.params.getAll()
40
+ : this.#paramsProvider?.params.getAll();
41
+ return Object.assign({}, this.queryParams, queryParams, skyuxParams);
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkExternalDirective, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { 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 }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: SkyAppLinkExternalDirective, selector: "[skyAppLinkExternal]", inputs: { skyAppLinkExternal: "skyAppLinkExternal" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkExternalDirective, decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: '[skyAppLinkExternal]',
50
+ }]
51
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.PlatformLocation }, { type: i3.SkyAppWindowRef }, { type: i4.SkyAppConfig, decorators: [{
52
+ type: Optional
53
+ }] }, { type: i4.SkyAppRuntimeConfigParamsProvider, decorators: [{
54
+ type: Optional
55
+ }] }, { type: i4.SkyAppConfigHost, decorators: [{
56
+ type: Optional
57
+ }] }]; }, propDecorators: { skyAppLinkExternal: [{
58
+ type: Input
59
+ }] } });
60
+
61
+ class SkyAppLinkDirective extends RouterLink {
62
+ set skyAppLink(commands) {
63
+ this.routerLink = commands;
64
+ }
65
+ #skyAppConfig;
66
+ #paramsProvider;
67
+ constructor(router, route, locationStrategy, renderer, elementRef, skyAppConfig, paramsProvider) {
68
+ super(router, route, undefined, renderer, elementRef, locationStrategy);
69
+ this.#skyAppConfig = skyAppConfig;
70
+ this.#paramsProvider = paramsProvider;
71
+ }
72
+ ngOnChanges(changes) {
73
+ this.queryParams = this.#mergeQueryParams(changes['queryParams']?.currentValue);
74
+ super.ngOnChanges(changes);
75
+ }
76
+ #mergeQueryParams(queryParams) {
77
+ const skyuxParams = this.#skyAppConfig
78
+ ? this.#skyAppConfig.runtime.params.getAll(true)
79
+ : this.#paramsProvider?.params.getAll(true);
80
+ return Object.assign({}, this.queryParams, queryParams, skyuxParams);
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkDirective, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.LocationStrategy }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i4.SkyAppConfig, optional: true }, { token: i4.SkyAppRuntimeConfigParamsProvider, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: SkyAppLinkDirective, selector: "[skyAppLink]", inputs: { skyAppLink: "skyAppLink" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkDirective, decorators: [{
86
+ type: Directive,
87
+ args: [{
88
+ selector: '[skyAppLink]',
89
+ }]
90
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.LocationStrategy }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i4.SkyAppConfig, decorators: [{
91
+ type: Optional
92
+ }] }, { type: i4.SkyAppRuntimeConfigParamsProvider, decorators: [{
93
+ type: Optional
94
+ }] }]; }, propDecorators: { skyAppLink: [{
95
+ type: Input
96
+ }] } });
97
+
98
+ /* istanbul ignore next */
99
+ class SkyAppLinkModule {
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkModule, declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective], exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective] }); }
102
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkModule }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppLinkModule, decorators: [{
105
+ type: NgModule,
106
+ args: [{
107
+ declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective],
108
+ exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective],
109
+ }]
110
+ }] });
111
+
112
+ /**
113
+ * Return the link as-is.
114
+ */
115
+ class SkyHrefResolverService {
116
+ resolveHref(args) {
117
+ return Promise.resolve({
118
+ url: args.url,
119
+ userHasAccess: true,
120
+ });
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverService }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefResolverService, decorators: [{
126
+ type: Injectable
127
+ }] });
128
+
129
+ class SkyHrefDirective {
130
+ /**
131
+ * Provide a link as a string or as an array of strings to be joined by a slash to form a complete
132
+ * URL.
133
+ *
134
+ * @param skyHref
135
+ */
136
+ set skyHref(skyHref) {
137
+ if (typeof skyHref === 'string') {
138
+ this.#_skyHref = skyHref;
139
+ }
140
+ else {
141
+ this.#_skyHref = skyHref ? skyHref.join('/') : '';
142
+ }
143
+ this.#checkRouteAccess();
144
+ }
145
+ get skyHref() {
146
+ return this.#_skyHref;
147
+ }
148
+ /**
149
+ * Set the behavior for when the link is not available to either hide the link or display unlinked text.
150
+ *
151
+ * @param value
152
+ */
153
+ set skyHrefElse(value) {
154
+ this.#_skyHrefElse = value;
155
+ this.#applyChanges(this.#getChanges());
156
+ }
157
+ get skyHrefElse() {
158
+ return this.#_skyHrefElse;
159
+ }
160
+ #route;
161
+ #href;
162
+ #_skyHref;
163
+ #_skyHrefElse;
164
+ #router;
165
+ #renderer;
166
+ #element;
167
+ #skyAppConfig;
168
+ #paramsProvider;
169
+ #hrefResolver;
170
+ #applicationRef;
171
+ #changeDetectorRef;
172
+ constructor(router, renderer, element, skyAppConfig, paramsProvider, hrefResolver, applicationRef, changeDetectorRef) {
173
+ /**
174
+ * Emits whether the link is available (true) or not (false).
175
+ */
176
+ this.skyHrefChange = new EventEmitter();
177
+ this.#route = false;
178
+ this.#href = '';
179
+ this.#_skyHref = '';
180
+ this.#_skyHrefElse = 'hide';
181
+ /* istanbul ignore next */
182
+ this.#getUrlTree = () => {
183
+ const href = this.#href.toLowerCase();
184
+ if (!href ||
185
+ !this.#skyAppConfig?.skyux.host?.url ||
186
+ !this.#skyAppConfig?.runtime?.app?.base) {
187
+ return false;
188
+ }
189
+ const baseUrl = (this.#skyAppConfig.skyux.host.url +
190
+ this.#skyAppConfig.runtime.app.base.substr(0, this.#skyAppConfig.runtime.app.base.length - 1)).toLowerCase();
191
+ if (href === baseUrl ||
192
+ // Make sure the base URL is not simply a partial match of the base URL plus additional
193
+ // characters after the base URL that are not "terminating" characters
194
+ href.indexOf(baseUrl + '/') === 0 ||
195
+ href.indexOf(baseUrl + '?') === 0) {
196
+ const routePath = this.#href.substring(baseUrl.length);
197
+ return this.#router.parseUrl(routePath);
198
+ }
199
+ return false;
200
+ };
201
+ this.#router = router;
202
+ this.#renderer = renderer;
203
+ this.#element = element;
204
+ this.#skyAppConfig = skyAppConfig;
205
+ this.#paramsProvider = paramsProvider;
206
+ this.#hrefResolver = hrefResolver;
207
+ this.#applicationRef = applicationRef;
208
+ this.#changeDetectorRef = changeDetectorRef;
209
+ }
210
+ onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
211
+ if (!this.#route || !this.#route.userHasAccess) {
212
+ return false;
213
+ }
214
+ if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
215
+ return true;
216
+ }
217
+ const target = this.#element.nativeElement.getAttribute('target');
218
+ if (typeof target === 'string' && target !== '_self') {
219
+ return true;
220
+ }
221
+ const urlTree = this.#getUrlTree();
222
+ if (urlTree) {
223
+ this.#router.navigateByUrl(urlTree);
224
+ return false;
225
+ }
226
+ return true;
227
+ }
228
+ #applyChanges(change) {
229
+ this.#renderer.addClass(this.#element.nativeElement, 'sky-href');
230
+ if (change.hidden) {
231
+ this.#renderer.setAttribute(this.#element.nativeElement, 'hidden', 'hidden');
232
+ }
233
+ else {
234
+ this.#renderer.removeAttribute(this.#element.nativeElement, 'hidden');
235
+ }
236
+ if (change.href) {
237
+ this.#renderer.setAttribute(this.#element.nativeElement, 'href', change.href);
238
+ }
239
+ else {
240
+ this.#renderer.removeAttribute(this.#element.nativeElement, 'href');
241
+ }
242
+ this.skyHrefChange.emit({ userHasAccess: !change.hidden });
243
+ }
244
+ #checkRouteAccess() {
245
+ this.#route = {
246
+ url: this.skyHref,
247
+ userHasAccess: false,
248
+ };
249
+ /* istanbul ignore else */
250
+ if (this.#hrefResolver && this.skyHref) {
251
+ this.#applyChanges(this.#getChanges());
252
+ try {
253
+ this.#hrefResolver.resolveHref({ url: this.skyHref }).then((route) => {
254
+ this.#route = { ...route };
255
+ this.#applyChanges(this.#getChanges());
256
+ /* istanbul ignore else */
257
+ if (this.#changeDetectorRef && this.#applicationRef) {
258
+ this.#changeDetectorRef.markForCheck();
259
+ this.#applicationRef.tick();
260
+ }
261
+ });
262
+ }
263
+ catch (error) {
264
+ this.#applyChanges(this.#getChanges());
265
+ }
266
+ }
267
+ else {
268
+ // no resolver or skyHref is falsy
269
+ this.#route.userHasAccess = !!this.skyHref;
270
+ this.#applyChanges(this.#getChanges());
271
+ }
272
+ }
273
+ #getChanges() {
274
+ if (!this.#route || !this.#route.userHasAccess) {
275
+ return {
276
+ href: '',
277
+ hidden: this.skyHrefElse === 'hide',
278
+ };
279
+ }
280
+ else {
281
+ const params =
282
+ // The SkyAppRuntimeParamsProvider is provided in root, so it will never be undefined.
283
+ // TODO: rework the injectors so that #paramsProvider is not possibly undefined.
284
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
285
+ this.#skyAppConfig?.runtime.params ?? this.#paramsProvider.params;
286
+ this.#href = params.getLinkUrl(this.#route.url);
287
+ return {
288
+ href: this.#href,
289
+ hidden: false,
290
+ };
291
+ }
292
+ }
293
+ /* istanbul ignore next */
294
+ #getUrlTree;
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", 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 }); }
296
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", 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 }); }
297
+ }
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefDirective, decorators: [{
299
+ type: Directive,
300
+ args: [{
301
+ selector: '[skyHref]',
302
+ }]
303
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i4.SkyAppConfig, decorators: [{
304
+ type: Optional
305
+ }] }, { type: i4.SkyAppRuntimeConfigParamsProvider, decorators: [{
306
+ type: Optional
307
+ }] }, { type: SkyHrefResolverService, decorators: [{
308
+ type: Optional
309
+ }] }, { type: i0.ApplicationRef, decorators: [{
310
+ type: Optional
311
+ }] }, { type: i0.ChangeDetectorRef, decorators: [{
312
+ type: Optional
313
+ }] }]; }, propDecorators: { skyHref: [{
314
+ type: Input
315
+ }], skyHrefElse: [{
316
+ type: Input
317
+ }], skyHrefChange: [{
318
+ type: Output
319
+ }], onClick: [{
320
+ type: HostListener,
321
+ args: ['click', [
322
+ '$event.button',
323
+ '$event.ctrlKey',
324
+ '$event.shiftKey',
325
+ '$event.altKey',
326
+ '$event.metaKey',
327
+ ]]
328
+ }] } });
329
+
330
+ class SkyHrefModule {
331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
332
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefModule, declarations: [SkyHrefDirective], imports: [CommonModule], exports: [SkyHrefDirective] }); }
333
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefModule, imports: [CommonModule] }); }
334
+ }
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyHrefModule, decorators: [{
336
+ type: NgModule,
337
+ args: [{
338
+ declarations: [SkyHrefDirective],
339
+ exports: [SkyHrefDirective],
340
+ imports: [CommonModule],
341
+ }]
342
+ }] });
343
+
344
+ /**
345
+ * A service for creating and retrieving recently accessed links.
346
+ */
347
+ class SkyRecentlyAccessedService {
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyRecentlyAccessedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
349
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyRecentlyAccessedService }); }
350
+ }
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyRecentlyAccessedService, decorators: [{
352
+ type: Injectable
353
+ }] });
354
+
355
+ /**
356
+ * Generated bundle index. Do not edit.
357
+ */
358
+
359
+ export { SkyAppLinkModule, SkyHrefModule, SkyHrefResolverService, SkyRecentlyAccessedService, SkyHrefDirective as λ1, SkyAppLinkExternalDirective as λ2, SkyAppLinkDirective as λ3 };
360
+ //# sourceMappingURL=skyux-router.mjs.map
@@ -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 ElementRef,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink } 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 RouterLink\n implements OnChanges\n{\n @Input()\n public 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 renderer: Renderer2,\n elementRef: ElementRef,\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 undefined,\n renderer,\n elementRef,\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 override 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 ElementRef,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink } 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 extends RouterLink implements OnChanges {\n @Input()\n public 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 renderer: Renderer2,\n elementRef: ElementRef,\n @Optional() skyAppConfig?: SkyAppConfig,\n @Optional() paramsProvider?: SkyAppRuntimeConfigParamsProvider\n ) {\n super(router, route, undefined, renderer, elementRef, locationStrategy);\n this.#skyAppConfig = skyAppConfig;\n this.#paramsProvider = paramsProvider;\n }\n\n public override 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 {\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 { 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 @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 if (!this.#route || !this.#route.userHasAccess) {\n return {\n href: '',\n hidden: this.skyHrefElse === 'hide',\n };\n } else {\n const params =\n // The SkyAppRuntimeParamsProvider is provided in root, so it will never be undefined.\n // TODO: rework the injectors so that #paramsProvider is not possibly undefined.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.#skyAppConfig?.runtime.params ?? this.#paramsProvider!.params;\n\n this.#href = params.getLinkUrl(this.#route.url);\n\n return {\n href: this.#href,\n hidden: false,\n };\n }\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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"}
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 ElementRef,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink } 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 RouterLink\n implements OnChanges\n{\n @Input()\n public 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 renderer: Renderer2,\n elementRef: ElementRef,\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 undefined,\n renderer,\n elementRef,\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 override 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 ElementRef,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink } 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 extends RouterLink implements OnChanges {\n @Input()\n public 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 renderer: Renderer2,\n elementRef: ElementRef,\n @Optional() skyAppConfig?: SkyAppConfig,\n @Optional() paramsProvider?: SkyAppRuntimeConfigParamsProvider\n ) {\n super(router, route, undefined, renderer, elementRef, locationStrategy);\n this.#skyAppConfig = skyAppConfig;\n this.#paramsProvider = paramsProvider;\n }\n\n public override 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 {\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 { 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 @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 if (!this.#route || !this.#route.userHasAccess) {\n return {\n href: '',\n hidden: this.skyHrefElse === 'hide',\n };\n } else {\n const params =\n // The SkyAppRuntimeParamsProvider is provided in root, so it will never be undefined.\n // TODO: rework the injectors so that #paramsProvider is not possibly undefined.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.#skyAppConfig?.runtime.params ?? this.#paramsProvider!.params;\n\n this.#href = params.getLinkUrl(this.#route.url);\n\n return {\n href: this.#href,\n hidden: false,\n };\n }\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":";;;;;;;;;AAoBA;;AAEG;AAIG,MAAO,2BACX,SAAQ,UAAU,CAAA;IAGlB,IACW,kBAAkB,CAAC,QAAwB,EAAA;AACpD,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC5B;AAED,IAAA,OAAO,CAAkB;AACzB,IAAA,aAAa,CAA2B;AACxC,IAAA,eAAe,CAAgD;AAE/D,IAAA,WAAA,CACE,MAAc,EACd,KAAqB,EACrB,QAAmB,EACnB,UAAsB,EACtB,gBAAkC,EAClC,MAAuB,EACX,YAA2B,EAC3B,cAAkD,EAClD,UAA6B,EAAA;AAEzC,QAAA,KAAK,CACH,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,oBAAoB,CACtB,gBAAgB,EAChB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CACjE,CACF,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QAEtC,IACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;YACrC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,EAC5C;AACA,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,SAAA;KACF;AAEe,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CACvC,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,CACrC,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,WAAkC,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;cAClC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;cAC1C,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAE1C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACtE;8GA9DU,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,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,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,EAAA;kGAA3B,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,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;;0BAqBI,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;4CAjBA,kBAAkB,EAAA,CAAA;sBAD5B,KAAK;;;ACZF,MAAO,mBAAoB,SAAQ,UAAU,CAAA;IACjD,IACW,UAAU,CAAC,QAAwB,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC5B;AAED,IAAA,aAAa,CAA2B;AACxC,IAAA,eAAe,CAAgD;AAE/D,IAAA,WAAA,CACE,MAAc,EACd,KAAqB,EACrB,gBAAkC,EAClC,QAAmB,EACnB,UAAsB,EACV,YAA2B,EAC3B,cAAkD,EAAA;AAE9D,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;KACvC;AAEe,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CACvC,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,CACrC,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,WAAkC,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;AACpC,cAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;cAC9C,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAE9C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACtE;8GApCU,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,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,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,EAAA;kGAAnB,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,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;;0BAgBI,QAAQ;;0BACR,QAAQ;4CAdA,UAAU,EAAA,CAAA;sBADpB,KAAK;;;ACVR;MACa,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,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,EAAA;+GAG/C,gBAAgB,EAAA,CAAA,CAAA,EAAA;;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;8GANU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCeE,gBAAgB,CAAA;AAC3B;;;;;AAKG;IACH,IACW,OAAO,CAAC,OAAsC,EAAA;AACvD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnD,SAAA;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED;;;;AAIG;IACH,IACW,WAAW,CAAC,KAAoC,EAAA;AACzD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACxC;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;AAQD,IAAA,MAAM,CAA0B;AAEhC,IAAA,KAAK,CAAM;AAEX,IAAA,SAAS,CAAM;AAEf,IAAA,aAAa,CAAyC;AAEtD,IAAA,OAAO,CAAS;AAChB,IAAA,SAAS,CAAY;AACrB,IAAA,QAAQ,CAAa;AACrB,IAAA,aAAa,CAA2B;AACxC,IAAA,eAAe,CAAgD;AAC/D,IAAA,aAAa,CAAqC;AAClD,IAAA,eAAe,CAA6B;AAC5C,IAAA,kBAAkB,CAAgC;AAElD,IAAA,WAAA,CACE,MAAc,EACd,QAAmB,EACnB,OAAmB,EACP,YAA2B,EAC3B,cAAkD,EAClD,YAAqC,EACrC,cAA+B,EAC/B,iBAAqC,EAAA;AA/BnD;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAiB,CAAC;QAEzD,IAAM,CAAA,MAAA,GAAoB,KAAK,CAAC;QAEhC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QAEX,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QAEf,IAAa,CAAA,aAAA,GAAkC,MAAM,CAAC;;QA4ItD,IAAW,CAAA,WAAA,GAA0B,MAAK;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAEtC,YAAA,IACE,CAAC,IAAI;gBACL,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG;gBACpC,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EACvC;AACA,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,MAAM,OAAO,GAAG,CACd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;AACjC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CACxC,CAAC,EACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC/C,EACD,WAAW,EAAE,CAAC;YAEhB,IACE,IAAI,KAAK,OAAO;;;gBAGhB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EACjC;AACA,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAtJA,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;KAC7C;IASM,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,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,aAAa,CAAC,MAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,QAAQ,EACR,QAAQ,CACT,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACvE,SAAA;QACD,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,MAAM,EACN,MAAM,CAAC,IAAI,CACZ,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACrE,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAC5D;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,OAAO;AACjB,YAAA,aAAa,EAAE,KAAK;SACrB,CAAC;;AAEF,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE;YACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACvC,IAAI;AACF,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AACnE,oBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;;AAEvC,oBAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE;AACnD,wBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACvC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC7B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;AAAM,aAAA;;YAEL,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACxC,SAAA;KACF;IAED,WAAW,GAAA;QACT,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,WAAW,KAAK,MAAM;aACpC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,MAAM;;;;AAIV,YAAA,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,eAAgB,CAAC,MAAM,CAAC;AAErE,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhD,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;AAChB,gBAAA,MAAM,EAAE,KAAK;aACd,CAAC;AACH,SAAA;KACF;;AAGD,IAAA,WAAW,CA+BT;8GA5NS,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,EAAA;kGAAhB,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,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA,CAAA;;0BAiEI,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;4CA5DA,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAqBK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAcC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBA+CA,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;;;MCpGU,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,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,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAFd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEX,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;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;;;ACbX;;AAEG;;;;"}
@@ -28,5 +28,5 @@ export declare class SkyHrefDirective {
28
28
  constructor(router: Router, renderer: Renderer2, element: ElementRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hrefResolver?: SkyHrefResolverService, applicationRef?: ApplicationRef, changeDetectorRef?: ChangeDetectorRef);
29
29
  onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean;
30
30
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyHrefDirective, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
31
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyHrefDirective, "[skyHref]", never, { "skyHref": "skyHref"; "skyHrefElse": "skyHrefElse"; }, { "skyHrefChange": "skyHrefChange"; }, never, never, false, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyHrefDirective, "[skyHref]", never, { "skyHref": { "alias": "skyHref"; "required": false; }; "skyHrefElse": { "alias": "skyHrefElse"; "required": false; }; }, { "skyHrefChange": "skyHrefChange"; }, never, never, false, never>;
32
32
  }
@@ -13,5 +13,5 @@ export declare class SkyAppLinkExternalDirective extends RouterLink implements O
13
13
  constructor(router: Router, route: ActivatedRoute, renderer: Renderer2, elementRef: ElementRef, platformLocation: PlatformLocation, window: SkyAppWindowRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hostConfig?: SkyAppConfigHost);
14
14
  ngOnChanges(changes: SimpleChanges): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkExternalDirective, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkExternalDirective, "[skyAppLinkExternal]", never, { "skyAppLinkExternal": "skyAppLinkExternal"; }, {}, never, never, false, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkExternalDirective, "[skyAppLinkExternal]", never, { "skyAppLinkExternal": { "alias": "skyAppLinkExternal"; "required": false; }; }, {}, never, never, false, never>;
17
17
  }
@@ -9,5 +9,5 @@ export declare class SkyAppLinkDirective extends RouterLink implements OnChanges
9
9
  constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy, renderer: Renderer2, elementRef: ElementRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider);
10
10
  ngOnChanges(changes: SimpleChanges): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkDirective, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkDirective, "[skyAppLink]", never, { "skyAppLink": "skyAppLink"; }, {}, never, never, false, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkDirective, "[skyAppLink]", never, { "skyAppLink": { "alias": "skyAppLink"; "required": false; }; }, {}, never, never, false, never>;
13
13
  }