@coolon/angular-ui-powerups 3.5.3 → 3.7.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.
- package/CHANGELOG.md +14 -0
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js +41 -1
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.js +248 -191
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/cypress/components/aup-navigation.d.ts +9 -0
- package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
- package/cypress/exports.d.ts +1 -0
- package/cypress/package.json +2 -1
- package/cypress/page.d.ts +3 -0
- package/cypress/section.d.ts +5 -0
- package/esm2015/cypress/components/aup-navigation.js +21 -0
- package/esm2015/cypress/components/aup-navigation.js.map +1 -0
- package/esm2015/cypress/components/aup-navigation.metadata.json +1 -0
- package/esm2015/cypress/exports.js +1 -0
- package/esm2015/cypress/exports.js.map +1 -1
- package/esm2015/cypress/exports.metadata.json +1 -1
- package/esm2015/cypress/page.js +10 -1
- package/esm2015/cypress/page.js.map +1 -1
- package/esm2015/cypress/page.metadata.json +1 -1
- package/esm2015/cypress/section.js +7 -0
- package/esm2015/cypress/section.js.map +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.js +2 -3
- package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.js +5 -4
- package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.js +2 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +12 -0
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
- package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +7 -5
- package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +6 -6
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
- package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +5 -5
- package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
- package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +5 -5
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/exports.js +1 -0
- package/esm2015/lib/place/exports.js.map +1 -1
- package/esm2015/lib/place/exports.metadata.json +1 -1
- package/esm2015/lib/place/guards/place.guard.js +94 -43
- package/esm2015/lib/place/guards/place.guard.js.map +1 -1
- package/esm2015/lib/place/guards/place.guard.metadata.json +1 -1
- package/esm2015/lib/place/guards/place.guard.ngfactory.js.map +1 -0
- package/esm2015/lib/place/place-auth-service.js +3 -0
- package/esm2015/lib/place/place-auth-service.js.map +1 -0
- package/esm2015/lib/place/place-auth-service.metadata.json +1 -0
- package/esm2015/lib/place/place-component.js +12 -2
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-component.metadata.json +1 -1
- package/esm2015/lib/place/place-definition.js +2 -1
- package/esm2015/lib/place/place-definition.js.map +1 -1
- package/esm2015/lib/place/place-definition.metadata.json +1 -1
- package/esm2015/lib/place/place-router.js +6 -0
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/place.decorator.js +1 -1
- package/esm2015/lib/place/place.decorator.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups-cypress.js +36 -2
- package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +205 -135
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/forms/number-input/number-input.component.d.ts +1 -0
- package/lib/components/forms/password-input/password-input.component.d.ts +1 -0
- package/lib/components/forms/string-input/string-input.component.d.ts +1 -0
- package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +12 -0
- package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
- package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +2 -2
- package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +2 -2
- package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -2
- package/lib/place/exports.d.ts +1 -0
- package/lib/place/guards/place.guard.d.ts +5 -7
- package/lib/place/place-auth-service.d.ts +36 -0
- package/lib/place/place-component.d.ts +2 -1
- package/lib/place/place-definition.d.ts +2 -1
- package/lib/place/place-router.d.ts +1 -0
- package/lib/place/place.decorator.d.ts +1 -0
- package/package.json +1 -1
- package/schematics/bootstrap-app/index.js +4 -0
- package/schematics/bootstrap-app/index.js.map +1 -1
- package/schematics/bootstrap-app/templates/app/app.module.ts.template +4 -2
- package/schematics/bootstrap-app/templates/app/auth/place-auth.service.ts.template +41 -0
- package/schematics/collection.json +5 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/place-add/index.js +2 -1
- package/schematics/place-add/index.js.map +1 -1
- package/schematics/place-add/templates/component/__name@dasherize__.component.scss.template +1 -0
- package/schematics/place-bootstrap/index.d.ts +3 -0
- package/schematics/place-bootstrap/index.js +21 -0
- package/schematics/place-bootstrap/index.js.map +1 -0
- package/schematics/place-bootstrap/schema.d.ts +4 -0
- package/schematics/place-bootstrap/schema.js +3 -0
- package/schematics/place-bootstrap/schema.js.map +1 -0
- package/schematics/place-bootstrap/schema.json +28 -0
- package/schematics/place-routes/place-builder.d.ts +0 -1
- package/schematics/place-routes/place-builder.js +34 -24
- package/schematics/place-routes/place-builder.js.map +1 -1
- package/schematics/place-routes/place-class-scanner.js +2 -1
- package/schematics/place-routes/place-class-scanner.js.map +1 -1
- package/schematics/place-routes/place-def.d.ts +1 -0
- package/schematics/place-routes/place-def.js +2 -2
- package/schematics/place-routes/place-def.js.map +1 -1
- package/schematics/place-routes/schema.d.ts +1 -4
- package/schematics/place-routes/schema.json +9 -1
- package/schematics/place-routes/templates/place-destinations.ts.template +1 -9
- package/schematics/place-routes/templates/place-routes.ts.template +3 -39
- package/schematics/place-routes/templates/place-visits.ts.template +1 -10
- package/schematics/bootstrap-app/templates/app/auth/auth.guard.ts.template +0 -23
- package/schematics/bootstrap-app/templates/app/auth/auth.module.ts.template +0 -13
- package/schematics/bootstrap-app/templates/app/auth/auth.service.ts.template +0 -13
- package/schematics/bootstrap-app/templates/app/places/places.json5.template +0 -3
- /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/place-routes.ts.template +0 -0
- /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/places.module.ts.template +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT, CommonModule, Location } from '@angular/common';
|
|
2
|
-
import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, Component, ContentChild, EventEmitter, SkipSelf, ViewChild, Output, ViewChildren, HostBinding, ViewEncapsulation, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver } from '@angular/core';
|
|
2
|
+
import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, Component, ContentChild, EventEmitter, SkipSelf, ViewChild, Output, ViewChildren, HostBinding, ViewEncapsulation, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver, INJECTOR } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
5
5
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -21,13 +21,13 @@ import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
|
21
21
|
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableValueModel, StoreInValueModel, ValueModel, MutableListModel, ListModel, StoreInListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Functions } from '@coolon/pectin';
|
|
22
22
|
import { __decorate, __metadata, __awaiter } from 'tslib';
|
|
23
23
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
24
|
-
import _, {
|
|
24
|
+
import _, { isNil, isEqual } from 'lodash';
|
|
25
25
|
import { Enum } from 'typescript-string-enums';
|
|
26
26
|
import { assert as assert$1, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
|
|
27
27
|
import produce from 'immer';
|
|
28
28
|
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
29
29
|
import { MatDialogModule, MatDialog, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig } from '@angular/material/dialog';
|
|
30
|
-
import { RouterModule, NavigationStart, NavigationCancel, UrlSegment, Router, UrlSerializer, NavigationEnd, NavigationError, RouterOutlet } from '@angular/router';
|
|
30
|
+
import { RouterModule, ActivatedRouteSnapshot, NavigationStart, NavigationCancel, UrlSegment, Router, UrlSerializer, NavigationEnd, NavigationError, RouterOutlet, RouterStateSnapshot } from '@angular/router';
|
|
31
31
|
import { Overlay, CdkScrollable } from '@angular/cdk/overlay';
|
|
32
32
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
33
33
|
import { MatListModule } from '@angular/material/list';
|
|
@@ -35,7 +35,6 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
|
35
35
|
import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
|
|
36
36
|
import 'reflect-metadata';
|
|
37
37
|
import { style, query, group, animate, trigger, transition } from '@angular/animations';
|
|
38
|
-
import { Observable } from 'rxjs';
|
|
39
38
|
|
|
40
39
|
class CommandDirective extends GarbageCollector {
|
|
41
40
|
constructor(elementRef, matButton, matMenuItem) {
|
|
@@ -1617,8 +1616,6 @@ __decorate([
|
|
|
1617
1616
|
class NumberInputComponent extends AbstractValueInputComponent {
|
|
1618
1617
|
constructor() {
|
|
1619
1618
|
super();
|
|
1620
|
-
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1621
|
-
// valueModel: Form.ValueModelBase<number> | MutableValueModel<number>;
|
|
1622
1619
|
this.min = Number.MIN_SAFE_INTEGER;
|
|
1623
1620
|
this.max = Number.MAX_SAFE_INTEGER;
|
|
1624
1621
|
}
|
|
@@ -1628,19 +1625,18 @@ class NumberInputComponent extends AbstractValueInputComponent {
|
|
|
1628
1625
|
NumberInputComponent.decorators = [
|
|
1629
1626
|
{ type: Component, args: [{
|
|
1630
1627
|
selector: 'aup-number-input',
|
|
1631
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1628
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1632
1629
|
styles: [""]
|
|
1633
1630
|
},] }
|
|
1634
1631
|
];
|
|
1635
1632
|
NumberInputComponent.ctorParameters = () => [];
|
|
1636
1633
|
NumberInputComponent.propDecorators = {
|
|
1634
|
+
autocomplete: [{ type: Input }],
|
|
1637
1635
|
min: [{ type: Input }],
|
|
1638
1636
|
max: [{ type: Input }]
|
|
1639
1637
|
};
|
|
1640
1638
|
|
|
1641
1639
|
class PasswordInputComponent extends AbstractValueInputComponent {
|
|
1642
|
-
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1643
|
-
// valueModel: Form.ValueModelBase<string> | MutableValueModel<string>;
|
|
1644
1640
|
constructor() {
|
|
1645
1641
|
super();
|
|
1646
1642
|
}
|
|
@@ -1650,11 +1646,14 @@ class PasswordInputComponent extends AbstractValueInputComponent {
|
|
|
1650
1646
|
PasswordInputComponent.decorators = [
|
|
1651
1647
|
{ type: Component, args: [{
|
|
1652
1648
|
selector: 'aup-password-input',
|
|
1653
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
1649
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
1654
1650
|
styles: [""]
|
|
1655
1651
|
},] }
|
|
1656
1652
|
];
|
|
1657
1653
|
PasswordInputComponent.ctorParameters = () => [];
|
|
1654
|
+
PasswordInputComponent.propDecorators = {
|
|
1655
|
+
autocomplete: [{ type: Input }]
|
|
1656
|
+
};
|
|
1658
1657
|
|
|
1659
1658
|
/**
|
|
1660
1659
|
* Using templates:
|
|
@@ -1712,12 +1711,13 @@ class StringInputComponent extends AbstractValueInputComponent {
|
|
|
1712
1711
|
StringInputComponent.decorators = [
|
|
1713
1712
|
{ type: Component, args: [{
|
|
1714
1713
|
selector: 'aup-string-input',
|
|
1715
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
|
|
1714
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
|
|
1716
1715
|
styles: ["button[disabled]{visibility:hidden}"]
|
|
1717
1716
|
},] }
|
|
1718
1717
|
];
|
|
1719
1718
|
StringInputComponent.ctorParameters = () => [];
|
|
1720
1719
|
StringInputComponent.propDecorators = {
|
|
1720
|
+
autocomplete: [{ type: Input }],
|
|
1721
1721
|
enableClearModel: [{ type: Input }],
|
|
1722
1722
|
enableClear: [{ type: Input }]
|
|
1723
1723
|
};
|
|
@@ -3867,6 +3867,18 @@ InteractionService.ctorParameters = () => [
|
|
|
3867
3867
|
InteractionService.ApiAdapter = ApiAdapter;
|
|
3868
3868
|
})(InteractionService || (InteractionService = {}));
|
|
3869
3869
|
|
|
3870
|
+
/**
|
|
3871
|
+
* @example
|
|
3872
|
+
* <aup-in-place-interaction-context #inPlaceInteractionContext>
|
|
3873
|
+
*
|
|
3874
|
+
* </aup-in-place-interaction-context>
|
|
3875
|
+
*
|
|
3876
|
+
* in your component
|
|
3877
|
+
* @ViewChild('inPlaceInteractionContext', { static: true })
|
|
3878
|
+
* interactionContext: InteractionContext;
|
|
3879
|
+
*
|
|
3880
|
+
*
|
|
3881
|
+
*/
|
|
3870
3882
|
class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
3871
3883
|
constructor(interactionService, tabConfig) {
|
|
3872
3884
|
super();
|
|
@@ -4376,6 +4388,8 @@ InteractionModule.decorators = [
|
|
|
4376
4388
|
},] }
|
|
4377
4389
|
];
|
|
4378
4390
|
|
|
4391
|
+
const PLACE_AUTH_SERVICE = new InjectionToken("PlaceAuthService");
|
|
4392
|
+
|
|
4379
4393
|
class ParameterDefinition {
|
|
4380
4394
|
constructor(propertyName, options, urlFormat) {
|
|
4381
4395
|
this.propertyName = propertyName;
|
|
@@ -4461,10 +4475,11 @@ class ParameterDefinition {
|
|
|
4461
4475
|
})(ParameterDefinition || (ParameterDefinition = {}));
|
|
4462
4476
|
|
|
4463
4477
|
class PlaceDefinition {
|
|
4464
|
-
constructor(component, path, authenticate, data, routeParameters, children) {
|
|
4478
|
+
constructor(component, path, authenticate, roles, data, routeParameters, children) {
|
|
4465
4479
|
this.component = component;
|
|
4466
4480
|
this.path = path;
|
|
4467
4481
|
this.authenticate = authenticate;
|
|
4482
|
+
this.roles = roles;
|
|
4468
4483
|
this.data = data;
|
|
4469
4484
|
this.routeParameters = routeParameters;
|
|
4470
4485
|
this.children = children;
|
|
@@ -4684,8 +4699,17 @@ __decorate([
|
|
|
4684
4699
|
return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY);
|
|
4685
4700
|
}
|
|
4686
4701
|
PlaceComponent.getRouteParameters = getRouteParameters;
|
|
4687
|
-
function getDefinition(
|
|
4688
|
-
|
|
4702
|
+
function getDefinition(snapshotOrConstructor) {
|
|
4703
|
+
if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {
|
|
4704
|
+
const component = snapshotOrConstructor.component;
|
|
4705
|
+
if (!isPlaceComponentConstructor(component)) {
|
|
4706
|
+
throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);
|
|
4707
|
+
}
|
|
4708
|
+
return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);
|
|
4709
|
+
}
|
|
4710
|
+
else {
|
|
4711
|
+
return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);
|
|
4712
|
+
}
|
|
4689
4713
|
}
|
|
4690
4714
|
PlaceComponent.getDefinition = getDefinition;
|
|
4691
4715
|
function injectDefinition(klass, definition) {
|
|
@@ -4694,6 +4718,72 @@ __decorate([
|
|
|
4694
4718
|
PlaceComponent.injectDefinition = injectDefinition;
|
|
4695
4719
|
})(PlaceComponent || (PlaceComponent = {}));
|
|
4696
4720
|
|
|
4721
|
+
class Visit {
|
|
4722
|
+
constructor(placeDefinition, visitParameters = {}) {
|
|
4723
|
+
this.placeDefinition = placeDefinition;
|
|
4724
|
+
this.visitParameters = visitParameters;
|
|
4725
|
+
}
|
|
4726
|
+
// @Trace()
|
|
4727
|
+
getRouteId() {
|
|
4728
|
+
return this.placeDefinition.getRouteIdFrom(this);
|
|
4729
|
+
}
|
|
4730
|
+
// @Trace()
|
|
4731
|
+
hasRouteId() {
|
|
4732
|
+
return !isNil(this.getRouteId());
|
|
4733
|
+
}
|
|
4734
|
+
/**
|
|
4735
|
+
* Returns the value of the place parameter with the specified name. The parameter
|
|
4736
|
+
* name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
|
|
4737
|
+
* same as the the ValueModel property name.
|
|
4738
|
+
* @param parameterName the field name of the property model or the `as` option if specified.
|
|
4739
|
+
*/
|
|
4740
|
+
getParameter(parameterName) {
|
|
4741
|
+
return this.visitParameters[parameterName];
|
|
4742
|
+
}
|
|
4743
|
+
// @Trace()
|
|
4744
|
+
hasParameter(parameterName) {
|
|
4745
|
+
return Object.keys(this.visitParameters).includes(parameterName);
|
|
4746
|
+
}
|
|
4747
|
+
replace(parameter, value) {
|
|
4748
|
+
return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
|
|
4749
|
+
}
|
|
4750
|
+
mergeRouteParameters(routeParams) {
|
|
4751
|
+
// todo: whitelist parameters.
|
|
4752
|
+
const routeParameterKeys = Object.keys(routeParams);
|
|
4753
|
+
const params = {};
|
|
4754
|
+
this.placeDefinition.getVisitParameterDefs().forEach(def => {
|
|
4755
|
+
if (def.isRouteId || def.isRouteParameter) {
|
|
4756
|
+
if (routeParameterKeys.includes(def.name)) {
|
|
4757
|
+
params[def.name] = routeParams[def.name];
|
|
4758
|
+
}
|
|
4759
|
+
}
|
|
4760
|
+
else {
|
|
4761
|
+
// copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
|
|
4762
|
+
// defaults and remember sanitisation process.
|
|
4763
|
+
const value = this.getParameter(def.name);
|
|
4764
|
+
if (this.hasParameter(def.name)) {
|
|
4765
|
+
params[def.name] = value;
|
|
4766
|
+
}
|
|
4767
|
+
}
|
|
4768
|
+
});
|
|
4769
|
+
return new Visit(this.placeDefinition, params);
|
|
4770
|
+
}
|
|
4771
|
+
hasRoutingChangedFrom(other) {
|
|
4772
|
+
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
4773
|
+
const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
|
|
4774
|
+
return !samePlace || !sameRouteParameters;
|
|
4775
|
+
}
|
|
4776
|
+
hasChangedFrom(other) {
|
|
4777
|
+
const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
4778
|
+
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
4779
|
+
}
|
|
4780
|
+
toDebugString() {
|
|
4781
|
+
return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
|
|
4782
|
+
}
|
|
4783
|
+
}
|
|
4784
|
+
|
|
4785
|
+
const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
|
|
4786
|
+
|
|
4697
4787
|
/**
|
|
4698
4788
|
* This class handles the logic around canDeactivate for a given router state transition. It's core responsibilities are:
|
|
4699
4789
|
* 1. Ensure we only ask the component to deactivate once on a given navigation cycle (since visit sanitisation can result in multiple round trips to through the router.)
|
|
@@ -5762,6 +5852,9 @@ class PlaceRouter extends GarbageCollector {
|
|
|
5762
5852
|
this.navigationSessionModel = new MutableValueModel();
|
|
5763
5853
|
this._activeVisits = new MutableListModel();
|
|
5764
5854
|
this.sessionFinishedJobs = [];
|
|
5855
|
+
if (window['Cypress']) {
|
|
5856
|
+
window['aup.PlaceRouter'] = this;
|
|
5857
|
+
}
|
|
5765
5858
|
this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);
|
|
5766
5859
|
// TODO: Make this an interface and use 'this' instead.
|
|
5767
5860
|
this.navigationContext = new NavigationContext.Impl(this.urlService, this.routerInteractionAdapter, (urlSnapshot, options) => {
|
|
@@ -5823,6 +5916,9 @@ class PlaceRouter extends GarbageCollector {
|
|
|
5823
5916
|
get currentSession() {
|
|
5824
5917
|
return this.navigationSessionModel.value;
|
|
5825
5918
|
}
|
|
5919
|
+
isNavigating() {
|
|
5920
|
+
return this.navigationInProgress.value;
|
|
5921
|
+
}
|
|
5826
5922
|
// @Trace()
|
|
5827
5923
|
onPopState(event) {
|
|
5828
5924
|
assert.isTruthy(event.navigationTrigger === 'popstate');
|
|
@@ -6015,72 +6111,6 @@ PlaceRouter.ctorParameters = () => [
|
|
|
6015
6111
|
{ type: PlaceHistory }
|
|
6016
6112
|
];
|
|
6017
6113
|
|
|
6018
|
-
class Visit {
|
|
6019
|
-
constructor(placeDefinition, visitParameters = {}) {
|
|
6020
|
-
this.placeDefinition = placeDefinition;
|
|
6021
|
-
this.visitParameters = visitParameters;
|
|
6022
|
-
}
|
|
6023
|
-
// @Trace()
|
|
6024
|
-
getRouteId() {
|
|
6025
|
-
return this.placeDefinition.getRouteIdFrom(this);
|
|
6026
|
-
}
|
|
6027
|
-
// @Trace()
|
|
6028
|
-
hasRouteId() {
|
|
6029
|
-
return !isNil(this.getRouteId());
|
|
6030
|
-
}
|
|
6031
|
-
/**
|
|
6032
|
-
* Returns the value of the place parameter with the specified name. The parameter
|
|
6033
|
-
* name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
|
|
6034
|
-
* same as the the ValueModel property name.
|
|
6035
|
-
* @param parameterName the field name of the property model or the `as` option if specified.
|
|
6036
|
-
*/
|
|
6037
|
-
getParameter(parameterName) {
|
|
6038
|
-
return this.visitParameters[parameterName];
|
|
6039
|
-
}
|
|
6040
|
-
// @Trace()
|
|
6041
|
-
hasParameter(parameterName) {
|
|
6042
|
-
return Object.keys(this.visitParameters).includes(parameterName);
|
|
6043
|
-
}
|
|
6044
|
-
replace(parameter, value) {
|
|
6045
|
-
return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
|
|
6046
|
-
}
|
|
6047
|
-
mergeRouteParameters(routeParams) {
|
|
6048
|
-
// todo: whitelist parameters.
|
|
6049
|
-
const routeParameterKeys = Object.keys(routeParams);
|
|
6050
|
-
const params = {};
|
|
6051
|
-
this.placeDefinition.getVisitParameterDefs().forEach(def => {
|
|
6052
|
-
if (def.isRouteId || def.isRouteParameter) {
|
|
6053
|
-
if (routeParameterKeys.includes(def.name)) {
|
|
6054
|
-
params[def.name] = routeParams[def.name];
|
|
6055
|
-
}
|
|
6056
|
-
}
|
|
6057
|
-
else {
|
|
6058
|
-
// copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
|
|
6059
|
-
// defaults and remember sanitisation process.
|
|
6060
|
-
const value = this.getParameter(def.name);
|
|
6061
|
-
if (this.hasParameter(def.name)) {
|
|
6062
|
-
params[def.name] = value;
|
|
6063
|
-
}
|
|
6064
|
-
}
|
|
6065
|
-
});
|
|
6066
|
-
return new Visit(this.placeDefinition, params);
|
|
6067
|
-
}
|
|
6068
|
-
hasRoutingChangedFrom(other) {
|
|
6069
|
-
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
6070
|
-
const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
|
|
6071
|
-
return !samePlace || !sameRouteParameters;
|
|
6072
|
-
}
|
|
6073
|
-
hasChangedFrom(other) {
|
|
6074
|
-
const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
6075
|
-
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
6076
|
-
}
|
|
6077
|
-
toDebugString() {
|
|
6078
|
-
return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
|
|
6079
|
-
}
|
|
6080
|
-
}
|
|
6081
|
-
|
|
6082
|
-
const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
|
|
6083
|
-
|
|
6084
6114
|
// Freezes the state of the components at the start of the animation.
|
|
6085
6115
|
const animationStartStyle = style({ position: 'absolute', top: '0', left: '0', bottom: '0', right: '0' });
|
|
6086
6116
|
const left = [
|
|
@@ -6336,11 +6366,13 @@ __decorate([
|
|
|
6336
6366
|
], PlaceOutletComponent.prototype, "onOutletDeactivated", null);
|
|
6337
6367
|
|
|
6338
6368
|
class AbstractPlaceNavigationComponent extends DisposableComponent {
|
|
6339
|
-
constructor(
|
|
6369
|
+
constructor(authService) {
|
|
6340
6370
|
super();
|
|
6341
6371
|
this._activePlaceComponent = new DelegatingValueModel();
|
|
6342
6372
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
6343
|
-
this.placeDefinitions = chain(this.placesModel)
|
|
6373
|
+
this.placeDefinitions = chain(this.placesModel)
|
|
6374
|
+
.map(c => PlaceComponent.getDefinition(c))
|
|
6375
|
+
.select(d => authService.authoriserModel.value(d), { dependsOn: authService.authoriserModel });
|
|
6344
6376
|
this.commandFactory = Command.createFactory((placeDefinition) => {
|
|
6345
6377
|
this.placeOutlet.navigate(new Visit(placeDefinition));
|
|
6346
6378
|
});
|
|
@@ -6372,7 +6404,7 @@ AbstractPlaceNavigationComponent.decorators = [
|
|
|
6372
6404
|
},] }
|
|
6373
6405
|
];
|
|
6374
6406
|
AbstractPlaceNavigationComponent.ctorParameters = () => [
|
|
6375
|
-
{ type:
|
|
6407
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
|
|
6376
6408
|
];
|
|
6377
6409
|
AbstractPlaceNavigationComponent.propDecorators = {
|
|
6378
6410
|
places: [{ type: Input }],
|
|
@@ -6450,19 +6482,19 @@ EmptyStateComponent.decorators = [
|
|
|
6450
6482
|
EmptyStateComponent.ctorParameters = () => [];
|
|
6451
6483
|
|
|
6452
6484
|
class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
|
|
6453
|
-
constructor(
|
|
6454
|
-
super(
|
|
6485
|
+
constructor(authService) {
|
|
6486
|
+
super(authService);
|
|
6455
6487
|
}
|
|
6456
6488
|
}
|
|
6457
6489
|
ListPlaceNavComponent.decorators = [
|
|
6458
6490
|
{ type: Component, args: [{
|
|
6459
6491
|
selector: 'aup-list-place-nav',
|
|
6460
6492
|
template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(placeDefinition)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
|
|
6461
|
-
styles: [":host{--selected-background:#f1f1f1;--selected-border-color:#838383;--selected-color:inherit;display:flex;flex-direction:column}mat-nav-list{padding-top:0}a.active{background:var(--selected-background);border-right:2px solid var(--selected-border-color);color:var(--selected-color)}"]
|
|
6493
|
+
styles: [":host{--selected-background:#f1f1f1;--selected-border-color:#838383;--selected-color:inherit;display:flex;flex-direction:column}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{background:var(--selected-background);border-right:2px solid var(--selected-border-color);color:var(--selected-color)}"]
|
|
6462
6494
|
},] }
|
|
6463
6495
|
];
|
|
6464
6496
|
ListPlaceNavComponent.ctorParameters = () => [
|
|
6465
|
-
{ type:
|
|
6497
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
|
|
6466
6498
|
];
|
|
6467
6499
|
|
|
6468
6500
|
/**
|
|
@@ -6508,8 +6540,8 @@ ListPlaceNavComponent.ctorParameters = () => [
|
|
|
6508
6540
|
* })
|
|
6509
6541
|
*/
|
|
6510
6542
|
class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
6511
|
-
constructor(router,
|
|
6512
|
-
super(
|
|
6543
|
+
constructor(router, authService) {
|
|
6544
|
+
super(authService);
|
|
6513
6545
|
this.router = router;
|
|
6514
6546
|
this.expanded = false;
|
|
6515
6547
|
}
|
|
@@ -6532,7 +6564,7 @@ SidePlaceNavigationComponent.decorators = [
|
|
|
6532
6564
|
];
|
|
6533
6565
|
SidePlaceNavigationComponent.ctorParameters = () => [
|
|
6534
6566
|
{ type: Router },
|
|
6535
|
-
{ type:
|
|
6567
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
|
|
6536
6568
|
];
|
|
6537
6569
|
SidePlaceNavigationComponent.propDecorators = {
|
|
6538
6570
|
expanded: [{ type: HostBinding, args: ['class.expanded',] }],
|
|
@@ -6540,8 +6572,8 @@ SidePlaceNavigationComponent.propDecorators = {
|
|
|
6540
6572
|
};
|
|
6541
6573
|
|
|
6542
6574
|
class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
6543
|
-
constructor(
|
|
6544
|
-
super(
|
|
6575
|
+
constructor(authService) {
|
|
6576
|
+
super(authService);
|
|
6545
6577
|
}
|
|
6546
6578
|
}
|
|
6547
6579
|
TabbedPlaceNavigationComponent.decorators = [
|
|
@@ -6552,7 +6584,7 @@ TabbedPlaceNavigationComponent.decorators = [
|
|
|
6552
6584
|
},] }
|
|
6553
6585
|
];
|
|
6554
6586
|
TabbedPlaceNavigationComponent.ctorParameters = () => [
|
|
6555
|
-
{ type:
|
|
6587
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
|
|
6556
6588
|
];
|
|
6557
6589
|
|
|
6558
6590
|
class PlaceModule {
|
|
@@ -6745,7 +6777,7 @@ DialogInteractionContextFactory.ctorParameters = () => [
|
|
|
6745
6777
|
function Place(options) {
|
|
6746
6778
|
return (target) => {
|
|
6747
6779
|
if (PlaceComponent.isPlaceComponentConstructor(target)) {
|
|
6748
|
-
PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, isNil(options.authenticate) ? true : options.authenticate, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
|
|
6780
|
+
PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, isNil(options.authenticate) ? true : options.authenticate, isNil(options.roles) ? [] : options.roles, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
|
|
6749
6781
|
}
|
|
6750
6782
|
else {
|
|
6751
6783
|
lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);
|
|
@@ -6862,20 +6894,27 @@ class VisitSanitiser {
|
|
|
6862
6894
|
}
|
|
6863
6895
|
|
|
6864
6896
|
class PlaceGuard {
|
|
6865
|
-
constructor(router, urlService, placeRouter, placeHistory, interactionService, injector) {
|
|
6897
|
+
constructor(router, urlService, placeRouter, placeHistory, placeAuthService, interactionService, injector) {
|
|
6866
6898
|
this.router = router;
|
|
6867
6899
|
this.urlService = urlService;
|
|
6868
6900
|
this.placeRouter = placeRouter;
|
|
6869
6901
|
this.placeHistory = placeHistory;
|
|
6902
|
+
this.placeAuthService = placeAuthService;
|
|
6870
6903
|
this.interactionService = interactionService;
|
|
6871
6904
|
this.injector = injector;
|
|
6872
6905
|
}
|
|
6873
|
-
// @Trace()
|
|
6874
6906
|
canActivate(activatedRoute, state) {
|
|
6875
6907
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6908
|
+
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
6909
|
+
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
6910
|
+
const needsAuth = placeDefinition.authenticate;
|
|
6911
|
+
const proceed = !needsAuth || (yield this.placeAuthService.isAuthenticated());
|
|
6912
|
+
if (!proceed) {
|
|
6913
|
+
return this.handleGuardResult(this.placeAuthService.handleNotAuthenticated(activatedRoute, state));
|
|
6914
|
+
}
|
|
6915
|
+
if (!this.placeAuthService.isAuthorised(placeDefinition)) {
|
|
6916
|
+
return this.handleGuardResult(this.placeAuthService.handleNotAuthorisation(activatedRoute, state));
|
|
6917
|
+
}
|
|
6879
6918
|
const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
|
|
6880
6919
|
// Parse our route params.
|
|
6881
6920
|
const params = new ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);
|
|
@@ -6896,57 +6935,51 @@ class PlaceGuard {
|
|
|
6896
6935
|
return true;
|
|
6897
6936
|
}
|
|
6898
6937
|
}));
|
|
6899
|
-
return
|
|
6900
|
-
}
|
|
6938
|
+
return result instanceof UrlSnapshot ? result.urlTree : result;
|
|
6939
|
+
}
|
|
6940
|
+
else {
|
|
6941
|
+
return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
|
|
6942
|
+
}
|
|
6901
6943
|
});
|
|
6902
6944
|
}
|
|
6903
|
-
// @Trace()
|
|
6904
6945
|
canDeactivate(component, currentRoute, currentState, nextState) {
|
|
6905
6946
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6906
6947
|
const currentUrl = this.urlService.parseUrl(currentState.url);
|
|
6907
6948
|
const nextUrl = this.urlService.parseUrl(nextState.url);
|
|
6908
6949
|
const result = yield this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);
|
|
6909
|
-
return
|
|
6950
|
+
return result instanceof UrlSnapshot ? result.urlTree : result;
|
|
6910
6951
|
});
|
|
6911
6952
|
}
|
|
6912
|
-
// @Trace()
|
|
6913
6953
|
handleGuardResult(result) {
|
|
6914
6954
|
if (result instanceof UrlSnapshot) {
|
|
6915
6955
|
return result.urlTree;
|
|
6916
6956
|
}
|
|
6917
6957
|
else {
|
|
6918
|
-
return result;
|
|
6958
|
+
return this.urlService.createUrlSnapshot(result).urlTree;
|
|
6919
6959
|
}
|
|
6920
6960
|
}
|
|
6961
|
+
// protected async ensureAuthenticatedThen(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot, next: (placeDefinition: PlaceDefinition) => Promise<boolean | UrlTree>): Promise<boolean | UrlTree> {
|
|
6962
|
+
// const authoriseResult = placeDefinition.authenticate ? await this.isAuthorised(activatedRoute, state) : true;
|
|
6963
|
+
// if (authoriseResult === true) {
|
|
6964
|
+
// // we're authorised, now run the place guards.
|
|
6965
|
+
// return next(placeDefinition);
|
|
6966
|
+
// } else {
|
|
6967
|
+
// console.log('not authorised result', authoriseResult);
|
|
6968
|
+
// return authoriseResult;
|
|
6969
|
+
// }
|
|
6970
|
+
// }
|
|
6971
|
+
//
|
|
6972
|
+
// // @Trace()
|
|
6973
|
+
// protected async ensureAuthorisedThen(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot, next: (placeDefinition: PlaceDefinition) => Promise<boolean | UrlTree>): Promise<boolean | UrlTree> {
|
|
6974
|
+
//
|
|
6975
|
+
// }
|
|
6921
6976
|
// @Trace()
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
// we're authorised, now run the place guards.
|
|
6929
|
-
return runPlaceGuards(placeDefinition);
|
|
6930
|
-
}
|
|
6931
|
-
else {
|
|
6932
|
-
console.log('not authorised result', authoriseResult);
|
|
6933
|
-
return authoriseResult;
|
|
6934
|
-
}
|
|
6935
|
-
}
|
|
6936
|
-
else {
|
|
6937
|
-
return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
|
|
6938
|
-
}
|
|
6939
|
-
});
|
|
6940
|
-
}
|
|
6941
|
-
// @Trace()
|
|
6942
|
-
isAuthorised(activatedRoute, state) {
|
|
6943
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
6944
|
-
const authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);
|
|
6945
|
-
return (authorised instanceof Observable) ? authorised.toPromise() : authorised;
|
|
6946
|
-
});
|
|
6947
|
-
}
|
|
6948
|
-
// @Trace()
|
|
6949
|
-
cleanInteractionState(route, state, then) {
|
|
6977
|
+
// async isAuthorised(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {
|
|
6978
|
+
// const authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);
|
|
6979
|
+
// return (authorised instanceof Observable) ? authorised.toPromise() : authorised;
|
|
6980
|
+
// }
|
|
6981
|
+
// abstract getAuthGuard(injector: Injector): CanActivate;
|
|
6982
|
+
cleanInteractionState(route, state, next) {
|
|
6950
6983
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6951
6984
|
const url = this.urlService.parseUrl(state.url);
|
|
6952
6985
|
if (!this.interactionService.isActive() && url.hasInteractions()) {
|
|
@@ -6955,11 +6988,48 @@ class PlaceGuard {
|
|
|
6955
6988
|
return url.removeInteractionIds();
|
|
6956
6989
|
}
|
|
6957
6990
|
else {
|
|
6958
|
-
return
|
|
6991
|
+
return next();
|
|
6959
6992
|
}
|
|
6960
6993
|
});
|
|
6961
6994
|
}
|
|
6962
6995
|
}
|
|
6996
|
+
PlaceGuard.ɵprov = ɵɵdefineInjectable({ factory: function PlaceGuard_Factory() { return new PlaceGuard(ɵɵinject(Router), ɵɵinject(UrlService), ɵɵinject(PlaceRouter), ɵɵinject(PlaceHistory), ɵɵinject(PLACE_AUTH_SERVICE), ɵɵinject(InteractionService), ɵɵinject(INJECTOR)); }, token: PlaceGuard, providedIn: "root" });
|
|
6997
|
+
PlaceGuard.decorators = [
|
|
6998
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6999
|
+
];
|
|
7000
|
+
PlaceGuard.ctorParameters = () => [
|
|
7001
|
+
{ type: Router },
|
|
7002
|
+
{ type: UrlService },
|
|
7003
|
+
{ type: PlaceRouter },
|
|
7004
|
+
{ type: PlaceHistory },
|
|
7005
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] },
|
|
7006
|
+
{ type: InteractionService },
|
|
7007
|
+
{ type: Injector }
|
|
7008
|
+
];
|
|
7009
|
+
__decorate([
|
|
7010
|
+
Trace(),
|
|
7011
|
+
__metadata("design:type", Function),
|
|
7012
|
+
__metadata("design:paramtypes", [ActivatedRouteSnapshot, RouterStateSnapshot]),
|
|
7013
|
+
__metadata("design:returntype", Promise)
|
|
7014
|
+
], PlaceGuard.prototype, "canActivate", null);
|
|
7015
|
+
__decorate([
|
|
7016
|
+
Trace(),
|
|
7017
|
+
__metadata("design:type", Function),
|
|
7018
|
+
__metadata("design:paramtypes", [PlaceComponent, ActivatedRouteSnapshot, RouterStateSnapshot, RouterStateSnapshot]),
|
|
7019
|
+
__metadata("design:returntype", Promise)
|
|
7020
|
+
], PlaceGuard.prototype, "canDeactivate", null);
|
|
7021
|
+
__decorate([
|
|
7022
|
+
Trace(),
|
|
7023
|
+
__metadata("design:type", Function),
|
|
7024
|
+
__metadata("design:paramtypes", [Object]),
|
|
7025
|
+
__metadata("design:returntype", void 0)
|
|
7026
|
+
], PlaceGuard.prototype, "handleGuardResult", null);
|
|
7027
|
+
__decorate([
|
|
7028
|
+
Trace(),
|
|
7029
|
+
__metadata("design:type", Function),
|
|
7030
|
+
__metadata("design:paramtypes", [ActivatedRouteSnapshot, RouterStateSnapshot, Function]),
|
|
7031
|
+
__metadata("design:returntype", Promise)
|
|
7032
|
+
], PlaceGuard.prototype, "cleanInteractionState", null);
|
|
6963
7033
|
|
|
6964
7034
|
var Formatter;
|
|
6965
7035
|
(function (Formatter) {
|
|
@@ -7061,5 +7131,5 @@ function VisitParameterList(options) {
|
|
|
7061
7131
|
* Generated bundle index. Do not edit.
|
|
7062
7132
|
*/
|
|
7063
7133
|
|
|
7064
|
-
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandDirective, CommandFace, CommandFaceComponent, CommandGroup, CommandGroupComponent, CommandGroupMenuRendererComponent, CommandGroupRendererComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, Registration, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, UrlService, UrlSnapshot, VerticalFocusContainerComponent, ViewData, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
|
|
7134
|
+
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandDirective, CommandFace, CommandFaceComponent, CommandGroup, CommandGroupComponent, CommandGroupMenuRendererComponent, CommandGroupRendererComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PLACE_AUTH_SERVICE, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, Registration, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, UrlService, UrlSnapshot, VerticalFocusContainerComponent, ViewData, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
|
|
7065
7135
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|