@skyux/router 5.0.1 → 5.5.0-beta.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/README.md +6 -4
- package/bundles/skyux-router.umd.js +53 -54
- package/esm2015/index.js +13 -0
- package/esm2015/index.js.map +1 -0
- package/esm2015/lib/modules/href/href-query-params.js +2 -0
- package/esm2015/lib/modules/href/href-query-params.js.map +1 -0
- package/esm2015/lib/modules/href/href-resolver.js +2 -0
- package/esm2015/lib/modules/href/href-resolver.js.map +1 -0
- package/esm2015/lib/modules/href/href-resolver.service.js +19 -0
- package/esm2015/lib/modules/href/href-resolver.service.js.map +1 -0
- package/esm2015/lib/modules/href/href.directive.js +186 -0
- package/esm2015/lib/modules/href/href.directive.js.map +1 -0
- package/esm2015/lib/modules/href/href.module.js +18 -0
- package/esm2015/lib/modules/href/href.module.js.map +1 -0
- package/esm2015/lib/modules/href/types/href-resolver.args.js +2 -0
- package/esm2015/lib/modules/href/types/href-resolver.args.js.map +1 -0
- package/esm2015/lib/modules/href/types/href.js +2 -0
- package/esm2015/lib/modules/href/types/href.js.map +1 -0
- package/esm2015/lib/modules/link/link-external.directive.js +59 -0
- package/esm2015/lib/modules/link/link-external.directive.js.map +1 -0
- package/esm2015/lib/modules/link/link-query-params.js +2 -0
- package/esm2015/lib/modules/link/link-query-params.js.map +1 -0
- package/esm2015/lib/modules/link/link.directive.js +44 -0
- package/esm2015/lib/modules/link/link.directive.js.map +1 -0
- package/esm2015/lib/modules/link/link.module.js +18 -0
- package/esm2015/lib/modules/link/link.module.js.map +1 -0
- package/esm2015/skyux-router.js +2 -2
- package/esm2015/skyux-router.js.map +1 -0
- package/fesm2015/skyux-router.js +55 -56
- package/fesm2015/skyux-router.js.map +1 -1
- package/index.d.ts +10 -0
- package/{modules → lib/modules}/href/href-query-params.d.ts +0 -0
- package/{modules → lib/modules}/href/href-resolver.d.ts +0 -0
- package/{modules → lib/modules}/href/href-resolver.service.d.ts +0 -0
- package/{modules → lib/modules}/href/href.directive.d.ts +0 -0
- package/{modules → lib/modules}/href/href.module.d.ts +0 -0
- package/{modules → lib/modules}/href/types/href-resolver.args.d.ts +0 -0
- package/{modules → lib/modules}/href/types/href.d.ts +0 -0
- package/{modules → lib/modules}/link/link-external.directive.d.ts +0 -0
- package/{modules → lib/modules}/link/link-query-params.d.ts +0 -0
- package/{modules → lib/modules}/link/link.directive.d.ts +0 -0
- package/{modules → lib/modules}/link/link.module.d.ts +0 -0
- package/package.json +20 -6
- package/skyux-router.d.ts +1 -1
- package/LICENSE +0 -21
- package/bundles/skyux-router.umd.js.map +0 -1
- package/documentation.json +0 -1725
- package/esm2015/modules/href/href-query-params.js +0 -2
- package/esm2015/modules/href/href-resolver.js +0 -2
- package/esm2015/modules/href/href-resolver.service.js +0 -19
- package/esm2015/modules/href/href.directive.js +0 -175
- package/esm2015/modules/href/href.module.js +0 -18
- package/esm2015/modules/href/types/href-resolver.args.js +0 -2
- package/esm2015/modules/href/types/href.js +0 -2
- package/esm2015/modules/link/link-external.directive.js +0 -58
- package/esm2015/modules/link/link-query-params.js +0 -2
- package/esm2015/modules/link/link.directive.js +0 -42
- package/esm2015/modules/link/link.module.js +0 -26
- package/esm2015/public-api.js +0 -13
- package/public-api.d.ts +0 -10
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# router
|
|
2
2
|
|
|
3
|
-
[
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
This library was generated with [Nx](https://nx.dev).
|
|
4
|
+
|
|
5
|
+
## Running unit tests
|
|
6
|
+
|
|
7
|
+
Run `nx test router` to execute the unit tests.
|
|
@@ -367,19 +367,19 @@
|
|
|
367
367
|
_super.prototype.ngOnChanges.call(this, changes);
|
|
368
368
|
};
|
|
369
369
|
SkyAppLinkDirective.prototype.mergeQueryParams = function (queryParams) {
|
|
370
|
-
var skyuxParams =
|
|
370
|
+
var skyuxParams = this.skyAppConfig
|
|
371
371
|
? this.skyAppConfig.runtime.params.getAll(true)
|
|
372
372
|
: this.paramsProvider.params.getAll(true);
|
|
373
373
|
return Object.assign({}, this.queryParams, queryParams, skyuxParams);
|
|
374
374
|
};
|
|
375
375
|
return SkyAppLinkDirective;
|
|
376
376
|
}(i1.RouterLinkWithHref));
|
|
377
|
-
SkyAppLinkDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
378
|
-
SkyAppLinkDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
379
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
377
|
+
SkyAppLinkDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkDirective, deps: [{ token: i1__namespace.Router }, { token: i1__namespace.ActivatedRoute }, { token: i2__namespace.LocationStrategy }, { token: i4__namespace.SkyAppConfig, optional: true }, { token: i4__namespace.SkyAppRuntimeConfigParamsProvider, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
|
|
378
|
+
SkyAppLinkDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAppLinkDirective, selector: "[skyAppLink]", inputs: { skyAppLink: "skyAppLink" }, usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
|
|
379
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkDirective, decorators: [{
|
|
380
380
|
type: i0.Directive,
|
|
381
381
|
args: [{
|
|
382
|
-
selector: '[skyAppLink]'
|
|
382
|
+
selector: '[skyAppLink]',
|
|
383
383
|
}]
|
|
384
384
|
}], ctorParameters: function () {
|
|
385
385
|
return [{ type: i1__namespace.Router }, { type: i1__namespace.ActivatedRoute }, { type: i2__namespace.LocationStrategy }, { type: i4__namespace.SkyAppConfig, decorators: [{
|
|
@@ -397,13 +397,12 @@
|
|
|
397
397
|
var SkyAppLinkExternalDirective = /** @class */ (function (_super) {
|
|
398
398
|
__extends(SkyAppLinkExternalDirective, _super);
|
|
399
399
|
function SkyAppLinkExternalDirective(router, route, platformLocation, window, skyAppConfig, paramsProvider, hostConfig) {
|
|
400
|
-
var _this = _super.call(this, router, route, new i2.PathLocationStrategy(platformLocation,
|
|
401
|
-
? hostConfig.host.url
|
|
402
|
-
: skyAppConfig.skyux.host.url)) || this;
|
|
400
|
+
var _this = _super.call(this, router, route, new i2.PathLocationStrategy(platformLocation, hostConfig ? hostConfig.host.url : skyAppConfig.skyux.host.url)) || this;
|
|
403
401
|
_this.window = window;
|
|
404
402
|
_this.skyAppConfig = skyAppConfig;
|
|
405
403
|
_this.paramsProvider = paramsProvider;
|
|
406
|
-
if (_this.window.nativeWindow.window.name &&
|
|
404
|
+
if (_this.window.nativeWindow.window.name &&
|
|
405
|
+
_this.window.nativeWindow.window.name !== '') {
|
|
407
406
|
_this.target = _this.window.nativeWindow.window.name;
|
|
408
407
|
}
|
|
409
408
|
else {
|
|
@@ -424,19 +423,19 @@
|
|
|
424
423
|
_super.prototype.ngOnChanges.call(this, changes);
|
|
425
424
|
};
|
|
426
425
|
SkyAppLinkExternalDirective.prototype.mergeQueryParams = function (queryParams) {
|
|
427
|
-
var skyuxParams =
|
|
426
|
+
var skyuxParams = this.skyAppConfig
|
|
428
427
|
? this.skyAppConfig.runtime.params.getAll()
|
|
429
428
|
: this.paramsProvider.params.getAll();
|
|
430
429
|
return Object.assign({}, this.queryParams, queryParams, skyuxParams);
|
|
431
430
|
};
|
|
432
431
|
return SkyAppLinkExternalDirective;
|
|
433
432
|
}(i1.RouterLinkWithHref));
|
|
434
|
-
SkyAppLinkExternalDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
435
|
-
SkyAppLinkExternalDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
436
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
433
|
+
SkyAppLinkExternalDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkExternalDirective, deps: [{ token: i1__namespace.Router }, { token: i1__namespace.ActivatedRoute }, { token: i2__namespace.PlatformLocation }, { token: i3__namespace.SkyAppWindowRef }, { token: i4__namespace.SkyAppConfig, optional: true }, { token: i4__namespace.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: i4__namespace.SkyAppConfigHost, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
|
|
434
|
+
SkyAppLinkExternalDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAppLinkExternalDirective, selector: "[skyAppLinkExternal]", inputs: { skyAppLinkExternal: "skyAppLinkExternal" }, usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
|
|
435
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkExternalDirective, decorators: [{
|
|
437
436
|
type: i0.Directive,
|
|
438
437
|
args: [{
|
|
439
|
-
selector: '[skyAppLinkExternal]'
|
|
438
|
+
selector: '[skyAppLinkExternal]',
|
|
440
439
|
}]
|
|
441
440
|
}], ctorParameters: function () {
|
|
442
441
|
return [{ type: i1__namespace.Router }, { type: i1__namespace.ActivatedRoute }, { type: i2__namespace.PlatformLocation }, { type: i3__namespace.SkyAppWindowRef }, { type: i4__namespace.SkyAppConfig, decorators: [{
|
|
@@ -456,22 +455,14 @@
|
|
|
456
455
|
}
|
|
457
456
|
return SkyAppLinkModule;
|
|
458
457
|
}());
|
|
459
|
-
SkyAppLinkModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
460
|
-
SkyAppLinkModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
SkyAppLinkModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0__namespace, type: SkyAppLinkModule });
|
|
464
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.8", ngImport: i0__namespace, type: SkyAppLinkModule, decorators: [{
|
|
458
|
+
SkyAppLinkModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
459
|
+
SkyAppLinkModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkModule, declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective], exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective] });
|
|
460
|
+
SkyAppLinkModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkModule });
|
|
461
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyAppLinkModule, decorators: [{
|
|
465
462
|
type: i0.NgModule,
|
|
466
463
|
args: [{
|
|
467
|
-
declarations: [
|
|
468
|
-
|
|
469
|
-
SkyAppLinkExternalDirective
|
|
470
|
-
],
|
|
471
|
-
exports: [
|
|
472
|
-
SkyAppLinkDirective,
|
|
473
|
-
SkyAppLinkExternalDirective
|
|
474
|
-
]
|
|
464
|
+
declarations: [SkyAppLinkDirective, SkyAppLinkExternalDirective],
|
|
465
|
+
exports: [SkyAppLinkDirective, SkyAppLinkExternalDirective],
|
|
475
466
|
}]
|
|
476
467
|
}] });
|
|
477
468
|
|
|
@@ -484,14 +475,14 @@
|
|
|
484
475
|
SkyHrefResolverService.prototype.resolveHref = function (args) {
|
|
485
476
|
return Promise.resolve({
|
|
486
477
|
url: args.url,
|
|
487
|
-
userHasAccess: true
|
|
478
|
+
userHasAccess: true,
|
|
488
479
|
});
|
|
489
480
|
};
|
|
490
481
|
return SkyHrefResolverService;
|
|
491
482
|
}());
|
|
492
|
-
SkyHrefResolverService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
493
|
-
SkyHrefResolverService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
494
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
483
|
+
SkyHrefResolverService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefResolverService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
484
|
+
SkyHrefResolverService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefResolverService });
|
|
485
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefResolverService, decorators: [{
|
|
495
486
|
type: i0.Injectable
|
|
496
487
|
}] });
|
|
497
488
|
|
|
@@ -572,15 +563,13 @@
|
|
|
572
563
|
var _this = this;
|
|
573
564
|
this._route = {
|
|
574
565
|
url: this._skyHref,
|
|
575
|
-
userHasAccess: false
|
|
566
|
+
userHasAccess: false,
|
|
576
567
|
};
|
|
577
568
|
/* istanbul ignore else */
|
|
578
569
|
if (this.hrefResolver && this._skyHref) {
|
|
579
570
|
this.applyChanges(this.getChanges());
|
|
580
571
|
try {
|
|
581
|
-
this.hrefResolver
|
|
582
|
-
.resolveHref({ url: this._skyHref })
|
|
583
|
-
.then(function (route) {
|
|
572
|
+
this.hrefResolver.resolveHref({ url: this._skyHref }).then(function (route) {
|
|
584
573
|
_this._route = Object.assign({}, route);
|
|
585
574
|
_this.applyChanges(_this.getChanges());
|
|
586
575
|
});
|
|
@@ -600,7 +589,7 @@
|
|
|
600
589
|
if (!this._route || !this._route.userHasAccess) {
|
|
601
590
|
return {
|
|
602
591
|
href: '',
|
|
603
|
-
hidden: this._skyHrefElse === 'hide'
|
|
592
|
+
hidden: this._skyHrefElse === 'hide',
|
|
604
593
|
};
|
|
605
594
|
}
|
|
606
595
|
else {
|
|
@@ -613,14 +602,17 @@
|
|
|
613
602
|
});
|
|
614
603
|
}
|
|
615
604
|
var queryParamsMerged = new http.HttpParams({
|
|
616
|
-
fromObject: Object.assign({}, this.getSkyuxParams(), queryParams)
|
|
605
|
+
fromObject: Object.assign({}, this.getSkyuxParams(), queryParams),
|
|
617
606
|
});
|
|
618
|
-
this._href =
|
|
619
|
-
|
|
620
|
-
|
|
607
|
+
this._href =
|
|
608
|
+
baseUrl +
|
|
609
|
+
(queryParamsMerged.keys().length > 0
|
|
610
|
+
? '?' + queryParamsMerged.toString()
|
|
611
|
+
: '') +
|
|
612
|
+
(fragment ? "#" + fragment : '');
|
|
621
613
|
return {
|
|
622
614
|
href: this._href,
|
|
623
|
-
hidden: false
|
|
615
|
+
hidden: false,
|
|
624
616
|
};
|
|
625
617
|
}
|
|
626
618
|
};
|
|
@@ -634,7 +626,9 @@
|
|
|
634
626
|
SkyHrefDirective.prototype.getUrlTree = function () {
|
|
635
627
|
var _a, _b, _c, _d, _e;
|
|
636
628
|
var href = this._href.toLowerCase();
|
|
637
|
-
if (!href ||
|
|
629
|
+
if (!href ||
|
|
630
|
+
!((_b = (_a = this.skyAppConfig) === null || _a === void 0 ? void 0 : _a.skyux.host) === null || _b === void 0 ? void 0 : _b.url) ||
|
|
631
|
+
!((_e = (_d = (_c = this.skyAppConfig) === null || _c === void 0 ? void 0 : _c.runtime) === null || _d === void 0 ? void 0 : _d.app) === null || _e === void 0 ? void 0 : _e.base)) {
|
|
638
632
|
return false;
|
|
639
633
|
}
|
|
640
634
|
var baseUrl = (this.skyAppConfig.skyux.host.url +
|
|
@@ -651,12 +645,12 @@
|
|
|
651
645
|
};
|
|
652
646
|
return SkyHrefDirective;
|
|
653
647
|
}());
|
|
654
|
-
SkyHrefDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
655
|
-
SkyHrefDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
656
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
648
|
+
SkyHrefDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefDirective, deps: [{ token: i1__namespace.Router }, { token: i0__namespace.Renderer2 }, { token: i0__namespace.ElementRef }, { token: i4__namespace.SkyAppConfig, optional: true }, { token: i4__namespace.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: SkyHrefResolverService, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
|
|
649
|
+
SkyHrefDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyHrefDirective, selector: "[skyHref]", inputs: { skyHref: "skyHref", skyHrefElse: "skyHrefElse" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" } }, ngImport: i0__namespace });
|
|
650
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefDirective, decorators: [{
|
|
657
651
|
type: i0.Directive,
|
|
658
652
|
args: [{
|
|
659
|
-
selector: '[skyHref]'
|
|
653
|
+
selector: '[skyHref]',
|
|
660
654
|
}]
|
|
661
655
|
}], ctorParameters: function () {
|
|
662
656
|
return [{ type: i1__namespace.Router }, { type: i0__namespace.Renderer2 }, { type: i0__namespace.ElementRef }, { type: i4__namespace.SkyAppConfig, decorators: [{
|
|
@@ -672,8 +666,13 @@
|
|
|
672
666
|
type: i0.Input
|
|
673
667
|
}], onClick: [{
|
|
674
668
|
type: i0.HostListener,
|
|
675
|
-
args: ['click',
|
|
676
|
-
|
|
669
|
+
args: ['click', [
|
|
670
|
+
'$event.button',
|
|
671
|
+
'$event.ctrlKey',
|
|
672
|
+
'$event.shiftKey',
|
|
673
|
+
'$event.altKey',
|
|
674
|
+
'$event.metaKey',
|
|
675
|
+
]]
|
|
677
676
|
}] } });
|
|
678
677
|
|
|
679
678
|
var SkyHrefModule = /** @class */ (function () {
|
|
@@ -681,15 +680,15 @@
|
|
|
681
680
|
}
|
|
682
681
|
return SkyHrefModule;
|
|
683
682
|
}());
|
|
684
|
-
SkyHrefModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
685
|
-
SkyHrefModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
686
|
-
SkyHrefModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
687
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
683
|
+
SkyHrefModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
684
|
+
SkyHrefModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefModule, declarations: [SkyHrefDirective], imports: [i2.CommonModule], exports: [SkyHrefDirective] });
|
|
685
|
+
SkyHrefModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefModule, imports: [[i2.CommonModule]] });
|
|
686
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyHrefModule, decorators: [{
|
|
688
687
|
type: i0.NgModule,
|
|
689
688
|
args: [{
|
|
690
689
|
declarations: [SkyHrefDirective],
|
|
691
690
|
exports: [SkyHrefDirective],
|
|
692
|
-
imports: [i2.CommonModule]
|
|
691
|
+
imports: [i2.CommonModule],
|
|
693
692
|
}]
|
|
694
693
|
}] });
|
|
695
694
|
|
package/esm2015/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './lib/modules/link/link-query-params';
|
|
2
|
+
export * from './lib/modules/link/link.module';
|
|
3
|
+
export * from './lib/modules/href/href.module';
|
|
4
|
+
export * from './lib/modules/href/href-resolver';
|
|
5
|
+
export * from './lib/modules/href/href-resolver.service';
|
|
6
|
+
export * from './lib/modules/href/types/href';
|
|
7
|
+
export * from './lib/modules/href/types/href-resolver.args';
|
|
8
|
+
// Components and directives must be exported to support Angular's "partial" Ivy compiler.
|
|
9
|
+
// Obscure names are used to indicate types are not part of public API.
|
|
10
|
+
export { SkyHrefDirective as λ1 } from './lib/modules/href/href.directive';
|
|
11
|
+
export { SkyAppLinkExternalDirective as λ2 } from './lib/modules/link/link-external.directive';
|
|
12
|
+
export { SkyAppLinkDirective as λ3 } from './lib/modules/link/link.directive';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/components/router/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAE5D,0FAA0F;AAC1F,uEAAuE;AACvE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,IAAI,EAAE,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,mBAAmB,IAAI,EAAE,EAAE,MAAM,mCAAmC,CAAC","sourcesContent":["export * from './lib/modules/link/link-query-params';\nexport * from './lib/modules/link/link.module';\nexport * from './lib/modules/href/href.module';\nexport * from './lib/modules/href/href-resolver';\nexport * from './lib/modules/href/href-resolver.service';\nexport * from './lib/modules/href/types/href';\nexport * from './lib/modules/href/types/href-resolver.args';\n\n// Components and directives must be exported to support Angular's \"partial\" Ivy compiler.\n// Obscure names are used to indicate types are not part of public API.\nexport { SkyHrefDirective as λ1 } from './lib/modules/href/href.directive';\nexport { SkyAppLinkExternalDirective as λ2 } from './lib/modules/link/link-external.directive';\nexport { SkyAppLinkDirective as λ3 } from './lib/modules/link/link.directive';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href-query-params.js","sourceRoot":"","sources":["../../../../../../../../libs/components/router/src/lib/modules/href/href-query-params.ts"],"names":[],"mappings":"","sourcesContent":["export type SkyHrefQueryParams = { [k: string]: any };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href-resolver.js","sourceRoot":"","sources":["../../../../../../../../libs/components/router/src/lib/modules/href/href-resolver.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyHref } from './types/href';\n\nexport interface SkyHrefResolver {\n resolveHref(param: { url: string }): Promise<SkyHref>;\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Return the link as-is.
|
|
5
|
+
*/
|
|
6
|
+
export class SkyHrefResolverService {
|
|
7
|
+
resolveHref(args) {
|
|
8
|
+
return Promise.resolve({
|
|
9
|
+
url: args.url,
|
|
10
|
+
userHasAccess: true,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SkyHrefResolverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
SkyHrefResolverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefResolverService });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefResolverService, decorators: [{
|
|
17
|
+
type: Injectable
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=href-resolver.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href-resolver.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/router/src/lib/modules/href/href-resolver.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAM3C;;GAEG;AAEH,MAAM,OAAO,sBAAsB;IAC1B,WAAW,CAAC,IAAyB;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAU;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;;oHANU,sBAAsB;wHAAtB,sBAAsB;4FAAtB,sBAAsB;kBADlC,UAAU","sourcesContent":["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"]}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
|
2
|
+
import { Directive, ElementRef, HostListener, Input, Optional, Renderer2, } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { SkyAppConfig, SkyAppRuntimeConfigParamsProvider } from '@skyux/config';
|
|
5
|
+
import { SkyHrefResolverService } from './href-resolver.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "@skyux/config";
|
|
9
|
+
import * as i3 from "./href-resolver.service";
|
|
10
|
+
export class SkyHrefDirective {
|
|
11
|
+
constructor(router, renderer, element, skyAppConfig, paramsProvider, hrefResolver) {
|
|
12
|
+
this.router = router;
|
|
13
|
+
this.renderer = renderer;
|
|
14
|
+
this.element = element;
|
|
15
|
+
this.skyAppConfig = skyAppConfig;
|
|
16
|
+
this.paramsProvider = paramsProvider;
|
|
17
|
+
this.hrefResolver = hrefResolver;
|
|
18
|
+
this._route = false;
|
|
19
|
+
this._skyHref = '';
|
|
20
|
+
this._skyHrefElse = 'hide';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Provide a link as a string or as an array of strings to be joined by a slash to form a complete
|
|
24
|
+
* URL.
|
|
25
|
+
*
|
|
26
|
+
* @param skyHref
|
|
27
|
+
*/
|
|
28
|
+
set skyHref(skyHref) {
|
|
29
|
+
if (typeof skyHref === 'string') {
|
|
30
|
+
this._skyHref = skyHref;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this._skyHref = skyHref.join('/');
|
|
34
|
+
}
|
|
35
|
+
this.checkRouteAccess();
|
|
36
|
+
}
|
|
37
|
+
set skyHrefElse(value) {
|
|
38
|
+
this._skyHrefElse = value;
|
|
39
|
+
this.applyChanges(this.getChanges());
|
|
40
|
+
}
|
|
41
|
+
/* istanbul ignore next */
|
|
42
|
+
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
43
|
+
if (!this._route || !this._route.userHasAccess) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
const target = this.element.nativeElement.getAttribute('target');
|
|
50
|
+
if (typeof target === 'string' && target !== '_self') {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const urlTree = this.getUrlTree();
|
|
54
|
+
if (urlTree) {
|
|
55
|
+
this.router.navigateByUrl(urlTree);
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
applyChanges(change) {
|
|
61
|
+
this.renderer.addClass(this.element.nativeElement, 'sky-href');
|
|
62
|
+
if (change.hidden) {
|
|
63
|
+
this.renderer.setAttribute(this.element.nativeElement, 'hidden', 'hidden');
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.renderer.removeAttribute(this.element.nativeElement, 'hidden');
|
|
67
|
+
}
|
|
68
|
+
if (change.href) {
|
|
69
|
+
this.renderer.setAttribute(this.element.nativeElement, 'href', change.href);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.renderer.removeAttribute(this.element.nativeElement, 'href');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
checkRouteAccess() {
|
|
76
|
+
this._route = {
|
|
77
|
+
url: this._skyHref,
|
|
78
|
+
userHasAccess: false,
|
|
79
|
+
};
|
|
80
|
+
/* istanbul ignore else */
|
|
81
|
+
if (this.hrefResolver && this._skyHref) {
|
|
82
|
+
this.applyChanges(this.getChanges());
|
|
83
|
+
try {
|
|
84
|
+
this.hrefResolver.resolveHref({ url: this._skyHref }).then((route) => {
|
|
85
|
+
this._route = Object.assign({}, route);
|
|
86
|
+
this.applyChanges(this.getChanges());
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
this.applyChanges(this.getChanges());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// no resolver or skyHref is falsy
|
|
95
|
+
this._route.userHasAccess = !!this._skyHref;
|
|
96
|
+
this.applyChanges(this.getChanges());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getChanges() {
|
|
100
|
+
let queryParams = {};
|
|
101
|
+
if (!this._route || !this._route.userHasAccess) {
|
|
102
|
+
return {
|
|
103
|
+
href: '',
|
|
104
|
+
hidden: this._skyHrefElse === 'hide',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const [beforeFragment, fragment] = this._route.url.split('#', 2);
|
|
109
|
+
const [baseUrl, search] = beforeFragment.split('?', 2);
|
|
110
|
+
if (search) {
|
|
111
|
+
const searchParams = new HttpParams({ fromString: search });
|
|
112
|
+
searchParams.keys().forEach((key) => {
|
|
113
|
+
queryParams[key] = searchParams.get(key);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
const queryParamsMerged = new HttpParams({
|
|
117
|
+
fromObject: Object.assign({}, this.getSkyuxParams(), queryParams),
|
|
118
|
+
});
|
|
119
|
+
this._href =
|
|
120
|
+
baseUrl +
|
|
121
|
+
(queryParamsMerged.keys().length > 0
|
|
122
|
+
? '?' + queryParamsMerged.toString()
|
|
123
|
+
: '') +
|
|
124
|
+
(fragment ? `#${fragment}` : '');
|
|
125
|
+
return {
|
|
126
|
+
href: this._href,
|
|
127
|
+
hidden: false,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
getSkyuxParams() {
|
|
132
|
+
var _a, _b;
|
|
133
|
+
return typeof ((_b = (_a = this.skyAppConfig) === null || _a === void 0 ? void 0 : _a.runtime.params) === null || _b === void 0 ? void 0 : _b.getAll) === 'function'
|
|
134
|
+
? this.skyAppConfig.runtime.params.getAll(true)
|
|
135
|
+
: this.paramsProvider.params.getAll(true);
|
|
136
|
+
}
|
|
137
|
+
/* istanbul ignore next */
|
|
138
|
+
getUrlTree() {
|
|
139
|
+
var _a, _b, _c, _d, _e;
|
|
140
|
+
const href = this._href.toLowerCase();
|
|
141
|
+
if (!href ||
|
|
142
|
+
!((_b = (_a = this.skyAppConfig) === null || _a === void 0 ? void 0 : _a.skyux.host) === null || _b === void 0 ? void 0 : _b.url) ||
|
|
143
|
+
!((_e = (_d = (_c = this.skyAppConfig) === null || _c === void 0 ? void 0 : _c.runtime) === null || _d === void 0 ? void 0 : _d.app) === null || _e === void 0 ? void 0 : _e.base)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
const baseUrl = (this.skyAppConfig.skyux.host.url +
|
|
147
|
+
this.skyAppConfig.runtime.app.base.substr(0, this.skyAppConfig.runtime.app.base.length - 1)).toLowerCase();
|
|
148
|
+
if (href === baseUrl ||
|
|
149
|
+
// Make sure the base URL is not simply a partial match of the base URL plus additional
|
|
150
|
+
// characters after the base URL that are not "terminating" characters
|
|
151
|
+
href.indexOf(baseUrl + '/') === 0 ||
|
|
152
|
+
href.indexOf(baseUrl + '?') === 0) {
|
|
153
|
+
const routePath = this._href.substring(baseUrl.length);
|
|
154
|
+
return this.router.parseUrl(routePath);
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
SkyHrefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefDirective, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.SkyAppConfig, optional: true }, { token: i2.SkyAppRuntimeConfigParamsProvider, optional: true }, { token: i3.SkyHrefResolverService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
160
|
+
SkyHrefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyHrefDirective, selector: "[skyHref]", inputs: { skyHref: "skyHref", skyHrefElse: "skyHrefElse" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" } }, ngImport: i0 });
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefDirective, decorators: [{
|
|
162
|
+
type: Directive,
|
|
163
|
+
args: [{
|
|
164
|
+
selector: '[skyHref]',
|
|
165
|
+
}]
|
|
166
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.SkyAppConfig, decorators: [{
|
|
167
|
+
type: Optional
|
|
168
|
+
}] }, { type: i2.SkyAppRuntimeConfigParamsProvider, decorators: [{
|
|
169
|
+
type: Optional
|
|
170
|
+
}] }, { type: i3.SkyHrefResolverService, decorators: [{
|
|
171
|
+
type: Optional
|
|
172
|
+
}] }]; }, propDecorators: { skyHref: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], skyHrefElse: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], onClick: [{
|
|
177
|
+
type: HostListener,
|
|
178
|
+
args: ['click', [
|
|
179
|
+
'$event.button',
|
|
180
|
+
'$event.ctrlKey',
|
|
181
|
+
'$event.shiftKey',
|
|
182
|
+
'$event.altKey',
|
|
183
|
+
'$event.metaKey',
|
|
184
|
+
]]
|
|
185
|
+
}] } });
|
|
186
|
+
//# sourceMappingURL=href.directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/router/src/lib/modules/href/href.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAW,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;;;;;AASjE,MAAM,OAAO,gBAAgB;IAgC3B,YACU,MAAc,EACd,QAAmB,EACnB,OAAmB,EACP,YAA2B,EAC3B,cAAkD,EAClD,YAAqC;QALjD,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAY;QACP,iBAAY,GAAZ,YAAY,CAAe;QAC3B,mBAAc,GAAd,cAAc,CAAoC;QAClD,iBAAY,GAAZ,YAAY,CAAyB;QAdnD,WAAM,GAAoB,KAAK,CAAC;QAIhC,aAAQ,GAAG,EAAE,CAAC;QAEd,iBAAY,GAAsB,MAAM,CAAC;IAS9C,CAAC;IAtCJ;;;;;OAKG;IACH,IACW,OAAO,CAAC,OAA0B;QAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,IACW,WAAW,CAAC,KAAwB;QAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvC,CAAC;IAmBD,0BAA0B;IAQnB,OAAO,CACZ,MAAc,EACd,OAAgB,EAChB,QAAiB,EACjB,MAAe,EACf,OAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;QAED,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;YACpD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,MAAmB;QACtC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,QAAQ,EACR,QAAQ,CACT,CAAC;SACH;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;SACrE;QACD,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,MAAM,EACN,MAAM,CAAC,IAAI,CACZ,CAAC;SACH;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SACnE;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,aAAa,EAAE,KAAK;SACrB,CAAC;QACF,0BAA0B;QAC1B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrC,IAAI;gBACF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBACnE,IAAI,CAAC,MAAM,qBAAQ,KAAK,CAAE,CAAC;oBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;aACtC;SACF;aAAM;YACL,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACtC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,WAAW,GAAuB,EAAE,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9C,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM;aACrC,CAAC;SACH;aAAM;YACL,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAEvD,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,EAAE,EAAE;oBAClC,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACJ;YAED,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC;gBACvC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC;aAClE,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK;gBACR,OAAO;oBACP,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;wBAClC,CAAC,CAAC,GAAG,GAAG,iBAAiB,CAAC,QAAQ,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACP,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,MAAM,EAAE,KAAK;aACd,CAAC;SACH;IACH,CAAC;IAEO,cAAc;;QACpB,OAAO,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAA,KAAK,UAAU;YACpE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,0BAA0B;IAClB,UAAU;;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEtC,IACE,CAAC,IAAI;YACL,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,CAAC,IAAI,0CAAE,GAAG,CAAA;YACnC,CAAC,CAAA,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,0CAAE,GAAG,0CAAE,IAAI,CAAA,EACtC;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,OAAO,GAAG,CACd,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YAChC,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,CACF,CAAC,WAAW,EAAE,CAAC;QAEhB,IACE,IAAI,KAAK,OAAO;YAChB,uFAAuF;YACvF,sEAAsE;YACtE,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EACjC;YACA,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;SACxC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;8GApMU,gBAAgB;kGAAhB,gBAAgB;4FAAhB,gBAAgB;kBAH5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;iBACtB;;0BAqCI,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;4CA9BA,OAAO;sBADjB,KAAK;gBAYK,WAAW;sBADrB,KAAK;gBA+BC,OAAO;sBAPb,YAAY;uBAAC,OAAO,EAAE;wBACrB,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,gBAAgB;qBACjB","sourcesContent":["import { HttpParams } from '@angular/common/http';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Input,\n Optional,\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';\n\nimport { SkyHref } from './types/href';\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 @Input()\n public set skyHrefElse(value: 'hide' | 'unlink') {\n this._skyHrefElse = value;\n this.applyChanges(this.getChanges());\n }\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 ) {}\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 }\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 });\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 let 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"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SkyHrefDirective } from './href.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SkyHrefModule {
|
|
6
|
+
}
|
|
7
|
+
SkyHrefModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
SkyHrefModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefModule, declarations: [SkyHrefDirective], imports: [CommonModule], exports: [SkyHrefDirective] });
|
|
9
|
+
SkyHrefModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefModule, imports: [[CommonModule]] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyHrefModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [SkyHrefDirective],
|
|
14
|
+
exports: [SkyHrefDirective],
|
|
15
|
+
imports: [CommonModule],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=href.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/router/src/lib/modules/href/href.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;;AAOpD,MAAM,OAAO,aAAa;;2GAAb,aAAa;4GAAb,aAAa,iBAJT,gBAAgB,aAErB,YAAY,aADZ,gBAAgB;4GAGf,aAAa,YAFf,CAAC,YAAY,CAAC;4FAEZ,aAAa;kBALzB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB","sourcesContent":["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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href-resolver.args.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/router/src/lib/modules/href/types/href-resolver.args.ts"],"names":[],"mappings":"","sourcesContent":["export type SkyHrefResolverArgs = { url: string };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"href.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/router/src/lib/modules/href/types/href.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyHref {\n app?: string;\n route?: string;\n url: string;\n userHasAccess?: boolean;\n aliases?: string[];\n}\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Directive, Input, Optional, } from '@angular/core';
|
|
2
|
+
import { PathLocationStrategy, PlatformLocation } from '@angular/common';
|
|
3
|
+
import { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';
|
|
4
|
+
import { SkyAppConfig, SkyAppConfigHost, SkyAppRuntimeConfigParamsProvider, } from '@skyux/config';
|
|
5
|
+
import { SkyAppWindowRef } from '@skyux/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@skyux/core";
|
|
10
|
+
import * as i4 from "@skyux/config";
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use `skyHref` directive instead.
|
|
13
|
+
*/
|
|
14
|
+
export class SkyAppLinkExternalDirective extends RouterLinkWithHref {
|
|
15
|
+
constructor(router, route, platformLocation, window, skyAppConfig, paramsProvider, hostConfig) {
|
|
16
|
+
super(router, route, new PathLocationStrategy(platformLocation, hostConfig ? hostConfig.host.url : skyAppConfig.skyux.host.url));
|
|
17
|
+
this.window = window;
|
|
18
|
+
this.skyAppConfig = skyAppConfig;
|
|
19
|
+
this.paramsProvider = paramsProvider;
|
|
20
|
+
if (this.window.nativeWindow.window.name &&
|
|
21
|
+
this.window.nativeWindow.window.name !== '') {
|
|
22
|
+
this.target = this.window.nativeWindow.window.name;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.target = '_top';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
set skyAppLinkExternal(commands) {
|
|
29
|
+
this.routerLink = commands;
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
var _a;
|
|
33
|
+
this.queryParams = this.mergeQueryParams((_a = changes.queryParams) === null || _a === void 0 ? void 0 : _a.currentValue);
|
|
34
|
+
super.ngOnChanges(changes);
|
|
35
|
+
}
|
|
36
|
+
mergeQueryParams(queryParams) {
|
|
37
|
+
const skyuxParams = this.skyAppConfig
|
|
38
|
+
? this.skyAppConfig.runtime.params.getAll()
|
|
39
|
+
: this.paramsProvider.params.getAll();
|
|
40
|
+
return Object.assign({}, this.queryParams, queryParams, skyuxParams);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
SkyAppLinkExternalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", 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 });
|
|
44
|
+
SkyAppLinkExternalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAppLinkExternalDirective, selector: "[skyAppLinkExternal]", inputs: { skyAppLinkExternal: "skyAppLinkExternal" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAppLinkExternalDirective, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: '[skyAppLinkExternal]',
|
|
49
|
+
}]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.PlatformLocation }, { type: i3.SkyAppWindowRef }, { type: i4.SkyAppConfig, decorators: [{
|
|
51
|
+
type: Optional
|
|
52
|
+
}] }, { type: i4.SkyAppRuntimeConfigParamsProvider, decorators: [{
|
|
53
|
+
type: Optional
|
|
54
|
+
}] }, { type: i4.SkyAppConfigHost, decorators: [{
|
|
55
|
+
type: Optional
|
|
56
|
+
}] }]; }, propDecorators: { skyAppLinkExternal: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=link-external.directive.js.map
|