@coolon/angular-ui-powerups 0.0.38 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +183 -63
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/esm2015/lib/angular-ui-powerups.module.js +3 -1
  7. package/esm2015/lib/interaction/interaction.module.js +4 -1
  8. package/esm2015/lib/place/components/abstract-place-navigation.component.js +4 -4
  9. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
  10. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +110 -16
  11. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
  12. package/esm2015/lib/place/guards/leave-place.guard.js +12 -4
  13. package/esm2015/lib/place/guards/place-route.guard.js +2 -2
  14. package/esm2015/lib/place/place-component.js +3 -8
  15. package/esm2015/lib/place/place.service.js +6 -28
  16. package/esm5/lib/angular-ui-powerups.module.js +3 -1
  17. package/esm5/lib/interaction/interaction.module.js +4 -1
  18. package/esm5/lib/place/components/abstract-place-navigation.component.js +4 -4
  19. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
  20. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +141 -20
  21. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
  22. package/esm5/lib/place/guards/leave-place.guard.js +11 -3
  23. package/esm5/lib/place/guards/place-route.guard.js +2 -2
  24. package/esm5/lib/place/place-component.js +7 -9
  25. package/esm5/lib/place/place.service.js +22 -32
  26. package/fesm2015/coolon-angular-ui-powerups.js +132 -53
  27. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  28. package/fesm5/coolon-angular-ui-powerups.js +181 -61
  29. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  30. package/lib/place/components/abstract-place-navigation.component.d.ts +1 -1
  31. package/lib/place/components/place-outlet/place-outlet.component.d.ts +16 -8
  32. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material'), require('@angular/platform-browser/animations'), require('@coolon/pectin'), require('@angular/cdk/portal'), require('@coolon/pectin/lib/promise/deferred.class'), require('@coolon/typescript-utilities'), require('@angular/material/dialog'), require('@angular/material/icon'), require('@angular/material/list'), require('@angular/material/tabs'), require('@angular/material/tooltip'), require('@angular/router'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('@typescript-plus/fast-memoize-decorator'), require('lodash'), require('reflect-metadata'), require('@angular/animations'), require('resize-observer-polyfill')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material', '@angular/platform-browser/animations', '@coolon/pectin', '@angular/cdk/portal', '@coolon/pectin/lib/promise/deferred.class', '@coolon/typescript-utilities', '@angular/material/dialog', '@angular/material/icon', '@angular/material/list', '@angular/material/tabs', '@angular/material/tooltip', '@angular/router', '@typescript-plus/fast-memoize-decorator/dist/src', '@typescript-plus/fast-memoize-decorator', 'lodash', 'reflect-metadata', '@angular/animations', 'resize-observer-polyfill'], factory) :
4
- (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material, global.ng.platformBrowser.animations, global.pectin, global.ng.cdk.portal, global.deferred_class, global.typescriptUtilities, global.ng.material.dialog, global.ng.material.icon, global.ng.material.list, global.ng.material.tabs, global.ng.material.tooltip, global.ng.router, global.src, global.fastMemoizeDecorator, global.lodash, null, global.ng.animations, global.ResizeObserver));
5
- }(this, function (exports, common, core, forms, material, animations, pectin, portal, deferred_class, typescriptUtilities, dialog, icon, list, tabs, tooltip, router, src, fastMemoizeDecorator, lodash, reflectMetadata, animations$1, ResizeObserver) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@coolon/pectin'), require('@angular/cdk/portal'), require('@coolon/pectin/lib/promise/deferred.class'), require('@coolon/typescript-utilities'), require('@angular/material/dialog'), require('@angular/material/icon'), require('@angular/material/list'), require('@angular/material/tooltip'), require('@angular/router'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('@typescript-plus/fast-memoize-decorator'), require('lodash'), require('reflect-metadata'), require('@angular/animations'), require('resize-observer-polyfill')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material', '@angular/material/tabs', '@angular/platform-browser/animations', '@coolon/pectin', '@angular/cdk/portal', '@coolon/pectin/lib/promise/deferred.class', '@coolon/typescript-utilities', '@angular/material/dialog', '@angular/material/icon', '@angular/material/list', '@angular/material/tooltip', '@angular/router', '@typescript-plus/fast-memoize-decorator/dist/src', '@typescript-plus/fast-memoize-decorator', 'lodash', 'reflect-metadata', '@angular/animations', 'resize-observer-polyfill'], factory) :
4
+ (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material, global.ng.material.tabs, global.ng.platformBrowser.animations, global.pectin, global.ng.cdk.portal, global.deferred_class, global.typescriptUtilities, global.ng.material.dialog, global.ng.material.icon, global.ng.material.list, global.ng.material.tooltip, global.ng.router, global.src, global.fastMemoizeDecorator, global.lodash, null, global.ng.animations, global.ResizeObserver));
5
+ }(this, function (exports, common, core, forms, material, tabs, animations, pectin, portal, deferred_class, typescriptUtilities, dialog, icon, list, tooltip, router, src, fastMemoizeDecorator, lodash, reflectMetadata, animations$1, ResizeObserver) { 'use strict';
6
6
 
7
7
  ResizeObserver = ResizeObserver && ResizeObserver.hasOwnProperty('default') ? ResizeObserver['default'] : ResizeObserver;
8
8
 
@@ -1847,6 +1847,9 @@
1847
1847
  AlertDialogComponent,
1848
1848
  exports.ɵu
1849
1849
  ],
1850
+ exports: [
1851
+ exports.ɵt,
1852
+ ],
1850
1853
  entryComponents: [
1851
1854
  exports.ɵt,
1852
1855
  ConfirmationDialogComponent,
@@ -2518,10 +2521,14 @@
2518
2521
  function () {
2519
2522
  return true;
2520
2523
  };
2524
+ // @Trace()
2525
+ // @Trace()
2521
2526
  /**
2522
2527
  * @return {?}
2523
2528
  */
2524
- PlaceComponent.prototype.onPlaceReady = /**
2529
+ PlaceComponent.prototype.onPlaceReady =
2530
+ // @Trace()
2531
+ /**
2525
2532
  * @return {?}
2526
2533
  */
2527
2534
  function () {
@@ -2531,12 +2538,6 @@
2531
2538
  __metadata("design:type", PlaceComponent.Definition),
2532
2539
  __metadata("design:paramtypes", [])
2533
2540
  ], PlaceComponent.prototype, "placeDefinition", null);
2534
- __decorate([
2535
- pectin.Trace(),
2536
- __metadata("design:type", Function),
2537
- __metadata("design:paramtypes", []),
2538
- __metadata("design:returntype", void 0)
2539
- ], PlaceComponent.prototype, "onPlaceReady", null);
2540
2541
  return PlaceComponent;
2541
2542
  }(DisposableComponent));
2542
2543
  if (false) {
@@ -2728,13 +2729,13 @@
2728
2729
  * @param {?} placeDef
2729
2730
  * @return {?}
2730
2731
  */
2731
- AbstractPlaceNavigationComponent.prototype.getNavItem = /**
2732
+ AbstractPlaceNavigationComponent.prototype.getNav = /**
2732
2733
  * @param {?} placeDef
2733
2734
  * @return {?}
2734
2735
  */
2735
2736
  function (placeDef) {
2736
2737
  /** @type {?} */
2737
- var navItem = (/** @type {?} */ (placeDef.getData('navItem')));
2738
+ var navItem = (/** @type {?} */ (placeDef.getData('nav')));
2738
2739
  return {
2739
2740
  title: (/**
2740
2741
  * @return {?}
@@ -2775,7 +2776,7 @@
2775
2776
  __metadata("design:type", Function),
2776
2777
  __metadata("design:paramtypes", [exports.PlaceComponent.Definition]),
2777
2778
  __metadata("design:returntype", Object)
2778
- ], AbstractPlaceNavigationComponent.prototype, "getNavItem", null);
2779
+ ], AbstractPlaceNavigationComponent.prototype, "getNav", null);
2779
2780
  return AbstractPlaceNavigationComponent;
2780
2781
  }(DisposableComponent));
2781
2782
  if (false) {
@@ -2828,7 +2829,7 @@
2828
2829
  ListPlaceNavComponent.decorators = [
2829
2830
  { type: core.Component, args: [{
2830
2831
  selector: 'angular-ui-powerups-list-place-nav',
2831
- template: "<mat-nav-list class=\"app-menu\">\n <a mat-list-item *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [matTooltip]=\"getNavItem(place).tooltip()\">\n <mat-icon *ngIf=\"getNavItem(place).icon()\">{{getNavItem(place).icon()}}</mat-icon>\n <span class=\"expanded-only\">{{getNavItem(place).title()}}</span>\n </a>\n</mat-nav-list>\n",
2832
+ template: "<mat-nav-list class=\"app-menu\">\n <a mat-list-item *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span class=\"expanded-only\">{{getNav(place).title()}}</span>\n </a>\n</mat-nav-list>\n",
2832
2833
  styles: [":host{display:flex;flex-direction:column;--expanded-width:235px;--nav-item-width:var(--nav-bar-height);width:var(--nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--expanded-width);max-width:var(--expanded-width)}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}.header{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;height:var(--nav-bar-height);border-bottom:var(--pinstripe-border);cursor:pointer}.header .menu{flex:1}.header button{color:inherit;width:var(--nav-item-width);height:var(--nav-bar-height)}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--nav-item-width);height:var(--nav-bar-height);color:inherit}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item mat-icon{margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}a[ng-reflect-router-link=manage-instruments] mat-icon{transform:rotate(90deg)}.app-menu{padding-top:0}"]
2833
2834
  }] }
2834
2835
  ];
@@ -2867,33 +2868,45 @@
2867
2868
  enumerable: true,
2868
2869
  configurable: true
2869
2870
  });
2871
+ // @Trace()
2872
+ // @Trace()
2870
2873
  /**
2871
2874
  * @param {?} place
2872
2875
  * @return {?}
2873
2876
  */
2874
- PlaceService.prototype.onActivate = /**
2877
+ PlaceService.prototype.onActivate =
2878
+ // @Trace()
2879
+ /**
2875
2880
  * @param {?} place
2876
2881
  * @return {?}
2877
2882
  */
2878
2883
  function (place) {
2879
2884
  this._activePlaces.push(place);
2880
2885
  };
2886
+ // @Trace()
2887
+ // @Trace()
2881
2888
  /**
2882
2889
  * @param {?} place
2883
2890
  * @return {?}
2884
2891
  */
2885
- PlaceService.prototype.onDeactivate = /**
2892
+ PlaceService.prototype.onDeactivate =
2893
+ // @Trace()
2894
+ /**
2886
2895
  * @param {?} place
2887
2896
  * @return {?}
2888
2897
  */
2889
2898
  function (place) {
2890
2899
  this._activePlaces.remove(place);
2891
2900
  };
2901
+ // @Trace()
2902
+ // @Trace()
2892
2903
  /**
2893
2904
  * @param {?} params
2894
2905
  * @return {?}
2895
2906
  */
2896
- PlaceService.prototype.notifyRouteParametersChanged = /**
2907
+ PlaceService.prototype.notifyRouteParametersChanged =
2908
+ // @Trace()
2909
+ /**
2897
2910
  * @param {?} params
2898
2911
  * @return {?}
2899
2912
  */
@@ -2911,11 +2924,15 @@
2911
2924
  });
2912
2925
  }
2913
2926
  };
2927
+ // @Trace()
2928
+ // @Trace()
2914
2929
  /**
2915
2930
  * @param {?} snapshot
2916
2931
  * @return {?}
2917
2932
  */
2918
- PlaceService.prototype.sanitise = /**
2933
+ PlaceService.prototype.sanitise =
2934
+ // @Trace()
2935
+ /**
2919
2936
  * @param {?} snapshot
2920
2937
  * @return {?}
2921
2938
  */
@@ -2937,30 +2954,6 @@
2937
2954
  { type: core.Injector }
2938
2955
  ]; };
2939
2956
  /** @nocollapse */ PlaceService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function PlaceService_Factory() { return new PlaceService(core.ɵɵinject(router.Router), core.ɵɵinject(core.INJECTOR)); }, token: PlaceService, providedIn: "root" });
2940
- __decorate([
2941
- pectin.Trace(),
2942
- __metadata("design:type", Function),
2943
- __metadata("design:paramtypes", [exports.PlaceComponent]),
2944
- __metadata("design:returntype", void 0)
2945
- ], PlaceService.prototype, "onActivate", null);
2946
- __decorate([
2947
- pectin.Trace(),
2948
- __metadata("design:type", Function),
2949
- __metadata("design:paramtypes", [exports.PlaceComponent]),
2950
- __metadata("design:returntype", void 0)
2951
- ], PlaceService.prototype, "onDeactivate", null);
2952
- __decorate([
2953
- pectin.Trace(),
2954
- __metadata("design:type", Function),
2955
- __metadata("design:paramtypes", [Object]),
2956
- __metadata("design:returntype", void 0)
2957
- ], PlaceService.prototype, "notifyRouteParametersChanged", null);
2958
- __decorate([
2959
- pectin.Trace(),
2960
- __metadata("design:type", Function),
2961
- __metadata("design:paramtypes", [exports.ParameterSnapshot]),
2962
- __metadata("design:returntype", Promise)
2963
- ], PlaceService.prototype, "sanitise", null);
2964
2957
  return PlaceService;
2965
2958
  }(pectin.GarbageCollector));
2966
2959
  if (false) {
@@ -3038,10 +3031,49 @@
3038
3031
  * @fileoverview added by tsickle
3039
3032
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3040
3033
  */
3041
- var PlaceOutletComponent = /** @class */ (function () {
3042
- function PlaceOutletComponent(placeService) {
3043
- this.placeService = placeService;
3044
- this.animate = true;
3034
+ var PlaceOutletComponent = /** @class */ (function (_super) {
3035
+ __extends(PlaceOutletComponent, _super);
3036
+ function PlaceOutletComponent(placeService, activatedRoute) {
3037
+ var _this = _super.call(this) || this;
3038
+ _this.placeService = placeService;
3039
+ _this.activatedRoute = activatedRoute;
3040
+ _this.animate = true;
3041
+ _this.outletUrlSegment = new pectin.MutableListModel();
3042
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
3043
+ _this.myPath = observe.listsFrom(activatedRoute.url).last().map((/**
3044
+ * @param {?} s
3045
+ * @return {?}
3046
+ */
3047
+ function (s) { return s.toString(); })).reduce((/**
3048
+ * @param {?} bits
3049
+ * @return {?}
3050
+ */
3051
+ function (bits) { return bits.join(','); }));
3052
+ console.log("new outlet@(" + _this.myPath.value + ")");
3053
+ _this.outletChildPath = chain(_this.outletUrlSegment).map((/**
3054
+ * @param {?} s
3055
+ * @return {?}
3056
+ */
3057
+ function (s) { return s.toString(); })).reduce((/**
3058
+ * @param {?} bits
3059
+ * @return {?}
3060
+ */
3061
+ function (bits) { return bits.join(","); }));
3062
+ _this.state = chain(_this.myPath).map((/**
3063
+ * @param {?} path
3064
+ * @return {?}
3065
+ */
3066
+ function (path) {
3067
+ return "outlet@(" + path + "), child path->" + _this.outletChildPath.value;
3068
+ }), { dependsOn: _this.outletChildPath });
3069
+ when.valueOf(_this.state).changes((/**
3070
+ * @param {?} debug
3071
+ * @return {?}
3072
+ */
3073
+ function (debug) {
3074
+ console.log("Outlet Changed -> " + debug);
3075
+ }));
3076
+ return _this;
3045
3077
  }
3046
3078
  /**
3047
3079
  * @return {?}
@@ -3051,26 +3083,71 @@
3051
3083
  */
3052
3084
  function () {
3053
3085
  };
3086
+ /**
3087
+ * @return {?}
3088
+ */
3089
+ PlaceOutletComponent.prototype.ngAfterViewInit = /**
3090
+ * @return {?}
3091
+ */
3092
+ function () {
3093
+ // this.routerOutLetQuery.changes.subscribe(() => {
3094
+ // this.updateRouterOutlet(this.routerOutLetQuery.first);
3095
+ // });
3096
+ };
3097
+ /**
3098
+ * @return {?}
3099
+ */
3100
+ PlaceOutletComponent.prototype.ngAfterViewChecked = /**
3101
+ * @return {?}
3102
+ */
3103
+ function () {
3104
+ // console.log(`@AfterViewChecked: ${this.state.value}`);
3105
+ this.updateRouterOutlet(this.routerOutLetQuery.first);
3106
+ };
3107
+ // @Trace()
3108
+ // ngOnDestroy(): void {
3109
+ // console.log('outletSegments', this.outletUrlSegment.value);
3110
+ // console.log('mySegments', this.myPath.value);
3111
+ // super.ngOnDestroy();
3112
+ // }
3113
+ // @Trace()
3114
+ // @Trace()
3115
+ // ngOnDestroy(): void {
3116
+ // console.log('outletSegments', this.outletUrlSegment.value);
3117
+ // console.log('mySegments', this.myPath.value);
3118
+ // super.ngOnDestroy();
3119
+ // }
3120
+ // @Trace()
3054
3121
  /**
3055
3122
  * @param {?} $event
3056
3123
  * @return {?}
3057
3124
  */
3058
- PlaceOutletComponent.prototype.onActivate = /**
3125
+ PlaceOutletComponent.prototype.onOutletActivated =
3126
+ // @Trace()
3127
+ // ngOnDestroy(): void {
3128
+ // console.log('outletSegments', this.outletUrlSegment.value);
3129
+ // console.log('mySegments', this.myPath.value);
3130
+ // super.ngOnDestroy();
3131
+ // }
3132
+ // @Trace()
3133
+ /**
3059
3134
  * @param {?} $event
3060
3135
  * @return {?}
3061
3136
  */
3062
3137
  function ($event) {
3138
+ // console.log(this.routerOutLet.activatedRoute.snapshot.url);
3063
3139
  this.currentPlace = $event;
3064
3140
  this.placeService.onActivate($event);
3065
3141
  if (!this.animate) {
3066
- this.notifyPlaceReady();
3142
+ // we're not animating so trigger any post animation callbacks now.
3143
+ this.animationDone();
3067
3144
  }
3068
3145
  };
3069
3146
  /**
3070
3147
  * @param {?} $event
3071
3148
  * @return {?}
3072
3149
  */
3073
- PlaceOutletComponent.prototype.onDeactivate = /**
3150
+ PlaceOutletComponent.prototype.onOutletDeactivated = /**
3074
3151
  * @param {?} $event
3075
3152
  * @return {?}
3076
3153
  */
@@ -3096,54 +3173,88 @@
3096
3173
  * @return {?}
3097
3174
  */
3098
3175
  function () {
3099
- this.notifyPlaceReady();
3176
+ if (this.currentPlace) {
3177
+ this.currentPlace.onPlaceReady();
3178
+ }
3100
3179
  };
3180
+ // @Trace()
3181
+ // @Trace()
3101
3182
  /**
3102
3183
  * @private
3184
+ * @param {?} first
3103
3185
  * @return {?}
3104
3186
  */
3105
- PlaceOutletComponent.prototype.notifyPlaceReady = /**
3187
+ PlaceOutletComponent.prototype.updateRouterOutlet =
3188
+ // @Trace()
3189
+ /**
3106
3190
  * @private
3191
+ * @param {?} first
3107
3192
  * @return {?}
3108
3193
  */
3109
- function () {
3110
- if (this.currentPlace) {
3111
- this.currentPlace.onPlaceReady();
3194
+ function (first) {
3195
+ if (first.isActivated) {
3196
+ this.outletUrlSegment.value = first.activatedRoute.snapshot.url;
3112
3197
  }
3113
3198
  };
3114
3199
  PlaceOutletComponent.decorators = [
3115
3200
  { type: core.Component, args: [{
3116
3201
  selector: 'angular-ui-powerups-place-outlet',
3117
- template: "<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onActivate($event)\"\n (deactivate)=\"onDeactivate($event)\">\n </router-outlet>\n</div>\n\n",
3202
+ template: "<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated($event)\"\n (deactivate)=\"onOutletDeactivated($event)\">\n </router-outlet>\n</div>\n\n",
3118
3203
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
3119
3204
  styles: [":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0}router-outlet{display:none}"]
3120
3205
  }] }
3121
3206
  ];
3122
3207
  /** @nocollapse */
3123
3208
  PlaceOutletComponent.ctorParameters = function () { return [
3124
- { type: PlaceService }
3209
+ { type: PlaceService },
3210
+ { type: router.ActivatedRoute }
3125
3211
  ]; };
3126
3212
  PlaceOutletComponent.propDecorators = {
3127
3213
  animate: [{ type: core.Input }],
3128
- routerOutLet: [{ type: core.ViewChild, args: ['routerOutlet', { static: false },] }]
3214
+ routerOutLetQuery: [{ type: core.ViewChildren, args: [router.RouterOutlet,] }]
3129
3215
  };
3130
3216
  return PlaceOutletComponent;
3131
- }());
3217
+ }(DisposableComponent));
3132
3218
  if (false) {
3133
3219
  /** @type {?} */
3134
3220
  PlaceOutletComponent.prototype.animate;
3135
3221
  /** @type {?} */
3136
- PlaceOutletComponent.prototype.routerOutLet;
3222
+ PlaceOutletComponent.prototype.routerOutLetQuery;
3137
3223
  /**
3138
3224
  * @type {?}
3139
3225
  * @private
3140
3226
  */
3141
3227
  PlaceOutletComponent.prototype.currentPlace;
3228
+ /**
3229
+ * @type {?}
3230
+ * @private
3231
+ */
3232
+ PlaceOutletComponent.prototype.myPath;
3233
+ /**
3234
+ * @type {?}
3235
+ * @private
3236
+ */
3237
+ PlaceOutletComponent.prototype.outletUrlSegment;
3238
+ /**
3239
+ * @type {?}
3240
+ * @private
3241
+ */
3242
+ PlaceOutletComponent.prototype.outletChildPath;
3243
+ /**
3244
+ * @type {?}
3245
+ * @private
3246
+ */
3247
+ PlaceOutletComponent.prototype.state;
3142
3248
  /**
3143
3249
  * @type {?}
3144
3250
  * @private
3145
3251
  */
3146
3252
  PlaceOutletComponent.prototype.placeService;
3253
+ /**
3254
+ * @type {?}
3255
+ * @private
3256
+ */
3257
+ PlaceOutletComponent.prototype.activatedRoute;
3147
3258
  }
3148
3259
 
3149
3260
  /**
@@ -3158,7 +3269,7 @@
3158
3269
  TabbedPlaceNavigationComponent.decorators = [
3159
3270
  { type: core.Component, args: [{
3160
3271
  selector: 'angular-ui-powerups-tabbed-place-navigation',
3161
- template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNavItem(place).tooltip()\">\n <mat-icon *ngIf=\"getNavItem(place).icon()\">{{getNavItem(place).icon()}}</mat-icon>\n <span>{{getNavItem(place).title()}}</span>\n </a>\n</nav>\n",
3272
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n",
3162
3273
  styles: [""]
3163
3274
  }] }
3164
3275
  ];
@@ -3233,6 +3344,7 @@
3233
3344
  material.MatInputModule,
3234
3345
  material.MatFormFieldModule,
3235
3346
  material.MatSelectModule,
3347
+ tabs.MatTabsModule,
3236
3348
  PlaceModule,
3237
3349
  InteractionModule
3238
3350
  ],
@@ -3744,7 +3856,15 @@
3744
3856
  // HACK: this will break with child routes...
3745
3857
  /** @type {?} */
3746
3858
  var path = "/" + component.placeDefinition.path;
3747
- console.log({ path: path, next: nextState.url });
3859
+ console.log({
3860
+ placePath: path,
3861
+ currentRoute: currentRoute.toString(),
3862
+ currentStateUrl: currentState.url,
3863
+ nextStateUrl: nextState.url,
3864
+ currentStateUrlTree: this.router.parseUrl(currentState.url).root.children[router.PRIMARY_OUTLET].segments,
3865
+ nextStateUrlTree: this.router.parseUrl(nextState.url).root.children[router.PRIMARY_OUTLET].segments
3866
+ });
3867
+ // nextState is the full path...
3748
3868
  if (!nextState.url.startsWith(path)) {
3749
3869
  return component.canDeactivate();
3750
3870
  }
@@ -3803,7 +3923,7 @@
3803
3923
  // Id snapshot are repesented by 2 url segments
3804
3924
  // ID => [{'/basePath', params}, {'id', params}]
3805
3925
  // NO ID => [{'/basePath', params}]
3806
- console.log({ urlSegments: route.url });
3926
+ // console.log({urlSegments: route.url});
3807
3927
  // const snapshot = ParameterSnapshot.create(PlaceComponent.getDefinition(route.component as Constructable<PlaceComponent>), route.paramMap);
3808
3928
  // return this.placeService.sanitise(snapshot).then(sanitised => {
3809
3929
  // if (sanitised.hasChanged(snapshot)) {