@coolon/angular-ui-powerups 0.0.120 → 0.0.122
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/bundles/coolon-angular-ui-powerups.umd.js +54 -16
- 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/esm2015/lib/place/components/place-outlet/place-outlet.component.js +8 -3
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
- package/esm2015/lib/place/place-component.js +28 -6
- 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 +7 -1
- package/esm2015/lib/place/place-definition.js.map +1 -1
- package/esm2015/lib/place/route/parameter-decorators.js +6 -6
- package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +8 -3
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
- package/esm5/lib/place/place-component.js +32 -7
- package/esm5/lib/place/place-component.js.map +1 -1
- package/esm5/lib/place/place-definition.js +11 -2
- package/esm5/lib/place/place-definition.js.map +1 -1
- package/esm5/lib/place/route/parameter-decorators.js +6 -6
- package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +47 -15
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +55 -17
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/place/place-component.d.ts +4 -2
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, EventEmitter, Inject, Input, Optional, Output, SkipSelf, ViewChild } from '@angular/core';
|
|
7
7
|
import { Router, RouterOutlet } from '@angular/router';
|
|
8
|
-
import { DelegatingValueModel, Dsl, Guard, ListModel, MutableValueModel, StoreInListModel, StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
|
|
8
|
+
import { DebugContext, DelegatingValueModel, Dsl, Guard, ListModel, MutableValueModel, StoreInListModel, StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
|
|
9
9
|
import * as _ from 'lodash';
|
|
10
10
|
import { DisposableComponent } from '../../../components/disposable-component';
|
|
11
11
|
import { AUP_PLACE_CONFIG } from '../../place-config';
|
|
@@ -51,7 +51,11 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
51
51
|
this.initialPlaceIndex = null;
|
|
52
52
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
53
53
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
54
|
-
|
|
54
|
+
/** @type {?} */
|
|
55
|
+
const mutableValueModel = new MutableValueModel();
|
|
56
|
+
DebugContext.tag(mutableValueModel, "PlaceOutletComponent -> mutableValueModel");
|
|
57
|
+
this._activePlaceVisitModel.setDelegate(mutableValueModel);
|
|
58
|
+
DebugContext.tag(this._activePlaceVisitModel, "PlaceOutletComponent._activePlaceVisitModel");
|
|
55
59
|
this._inOutletUpdate = valueOf.any(this._inOutletDeactivation, this._inOutletActivation).areTruthy();
|
|
56
60
|
/** @type {?} */
|
|
57
61
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -211,8 +215,9 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
211
215
|
this._placeDefinition.value = place.placeDefinition;
|
|
212
216
|
/** @type {?} */
|
|
213
217
|
const visitModel = new MutableValueModel();
|
|
218
|
+
DebugContext.tag(visitModel, "PlaceOutletCompeont.visitModel");
|
|
214
219
|
this._activePlaceVisitModel.setDelegate(visitModel);
|
|
215
|
-
place.
|
|
220
|
+
place.initialiseVisit(visitModel);
|
|
216
221
|
}
|
|
217
222
|
catch (error) {
|
|
218
223
|
console.error(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAU,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EAAkB,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAGL,oBAAoB,EACpB,GAAG,EACH,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;;;;AAGhE,uBAMC;;;IALC,mCAAyC;;;;;IAEzC,6DAAmD;;;;IAEnD,kDAAqB;;AASvB,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;;;;;;;IAsC3D,YAA6B,MAAc,EACd,WAAwB,EACM,WAAwB,EAC/C,YAAkC;QACpE,KAAK,EAAE,CAAC;QAJmB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACM,gBAAW,GAAX,WAAW,CAAa;QAvB1E,iBAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;QAK1C,iBAAY,GAAG,IAAI,iBAAiB,EAAkB,CAAC;QACvD,2BAAsB,GAAG,IAAI,oBAAoB,EAAS,CAAC;QAE3D,wBAAmB,GAAG,IAAI,KAAK,EAAE,CAAC;QAClC,0BAAqB,GAAG,IAAI,KAAK,EAAE,CAAC;QAEpC,wBAAmB,GAAG,IAAI,KAAK,EAAE,CAAC;QAClC,yBAAoB,GAAG,IAAI,iBAAiB,EAAkB,CAAC;QAE/D,qBAAgB,GAAG,IAAI,iBAAiB,EAAmB,CAAC;QAIrE,sBAAiB,GAAW,IAAI,CAAC;cAQjC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QAExF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,iBAAiB,EAAS,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC;;cAE/F,0BAA0B,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;aAC7D,cAAc;;;;QAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAC;aACvC,KAAK,CAAC,iBAAiB,CAAC;aACxB,SAAS,CAAC,UAAU,CAAC;aACrB,KAAK,CAAC,WAAW,CAAC;;cAEf,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG;;;;QAAC,CAAC,CAAC,EAAE,CAAC,mBAAA,CAAC,CAAC,WAAW,EAAiC,EAAC;QAC/G,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC;aAClE,SAAS,CAAC,0BAA0B,CAAC;aACrC,MAAM;;;;QAAC,CAAC,aAAa,EAAE,EAAE;;gBACpB,UAAU,GAAG,CAAC;YAClB,IAAI,iBAAiB,CAAC,KAAK,EAAE;gBAC3B,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;oBACnC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;iBACrC;aACF;YACD,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnF,CAAC,GAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEvC,2CAA2C;QAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC1G,8GAA8G;QAC9G,gGAAgG;QAChG,4GAA4G;QAC5G,uGAAuG;QACvG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO;;;QAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAE,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAE/G,iCAAiC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO;;;;;QAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACnE,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC,GAAE;YACD,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB;SAC9C,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;aACrB,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC;aAC/C,SAAS;;;;QAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;IAEvD,CAAC;;;;IAED,QAAQ;IACR,CAAC;;;;;IAGD,iBAAiB;QACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;IACxC,CAAC;;;;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/G,CAAC;;;;;;IAGD,QAAQ,CAAC,KAAY;QACnB,oEAAoE;QACpE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC/B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;SACnF,CAAC,CAAC;IACL,CAAC;;;;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACtC,CAAC;;;;;IAGD,uBAAuB;;cACf,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;QACpC,gBAAgB;QAChB,WAAW;QACX,2DAA2D;QAC3D,wDAAwD;QACxD,qEAAqE;QACrE,MAAM;QACN,IAAI,KAAK,EAAE,EAAE,gDAAgD;YAC3D,IAAI,CAAC,mBAAmB,CAAC,SAAS;;;YAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;YAC5C,CAAC,EAAC,CAAC;SACJ;IACH,CAAC;;;;;;IAED,uBAAuB,CAAC,IAAW,EAAE,QAAe;;cAC5C,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK;QACtD,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;;;;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;IACpC,CAAC;;;;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;IAC5C,CAAC;;;;;;;IAGD,iBAAiB,CAAC,YAA0B,EAAE,KAAqB;QACjE,IAAI,CAAC,mBAAmB,CAAC,SAAS;;;QAAC,GAAG,EAAE;YACtC,IAAI;gBACF,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;;sBAC9C,UAAU,GAAG,IAAI,iBAAiB,EAAS;gBACjD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACpD,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;aACtC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;QACH,CAAC,EAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC5B,mEAAmE;YACnE,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;;;;;IAGD,mBAAmB;QACjB,IAAI,CAAC,qBAAqB,CAAC,SAAS;;;QAAC,GAAG,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,EAAC,CAAC;IACL,CAAC;;;;;IAGD,gBAAgB;QACd,yDAAyD;IAC3D,CAAC;;;;;IAGD,aAAa;QACX,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;SACxC;IACH,CAAC;;;YA7LF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,sfAA4C;gBAE5C,UAAU,EAAE,CAAC,0BAA0B,CAAC;;aACzC;;;;YAvCwB,MAAM;YAoBtB,WAAW;4CA4DL,QAAQ,YAAI,MAAM,SAAC,gBAAgB;YACE,oBAAoB,uBAAzD,QAAQ,YAAI,QAAQ;;;sBAvChC,KAAK;2BAGL,KAAK;6CAIL,KAAK,SAAC,0BAA0B;wCAIhC,KAAK,SAAC,qBAAqB;2BAG3B,MAAM;wBAGN,SAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAhB1C;IADU,iBAAiB,CAAC,cAAc,CAAC;;qDAC1B;AAGjB;IADU,WAAW,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;sCAC/B,UAAU;0DAAU;AAIlC;IADoC,WAAW,EAAE;sCACjB,SAAS;4EAAgC;AAIzE;IAD+B,gBAAgB,CAAC,gCAAgC,CAAC;;uEACtB;;;IAZ3D,uCACiB;;IAEjB,4CACkC;;IAGlC,8DACyE;;IAGzE,yDAC2D;;IAE3D,4CAC2D;;IAE3D,yCACwB;;;;;IAExB,4CAAwE;;;;;IACxE,sDAA4E;;;;;IAE5E,mDAAmD;;;;;IACnD,qDAAqD;;;;;IACrD,+CAAyD;;;;;IACzD,mDAAmD;;;;;IACnD,oDAAgF;;;;;IAEhF,gDAA6E;;;;;IAC7E,iDAAmE;;IACnE,mDAA6D;;;;;IAE7D,iDAAyC;;;;;IACzC,2CAA4C;;;;;IAEhC,sCAA+B;;;;;IAC/B,2CAAyC;;IACzC,2CAAuE","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n BooleanValueModelChain,\n Constructable,\n DelegatingValueModel,\n Dsl,\n Guard,\n ListModel,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel,\n UseDelegate,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @UseDelegate({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @UseDelegate()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private readonly _activePlace = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceVisitModel = new DelegatingValueModel<Visit>();\n\n private readonly _inOutletActivation = new Guard();\n private readonly _inOutletDeactivation = new Guard();\n private readonly _inOutletUpdate: BooleanValueModelChain;\n private readonly _inRouteVisitUpdate = new Guard();\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n\n private readonly _placeDefinition = new MutableValueModel<PlaceDefinition>();\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly placeAnimationOrder: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisit: ValueModelChain<Visit>;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n this._activePlaceVisitModel.setDelegate(new MutableValueModel<Visit>());\n this._inOutletUpdate = valueOf.any(this._inOutletDeactivation, this._inOutletActivation).areTruthy();\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder)\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n // Push incoming changes into the component\n this.routerVisit = chain(this._activePlace).pluck('placeDefinition').findIn(placeRouter.activeVisitIndex);\n // Our router visit will change when our active is nullified during deactivation, which will push a null visit\n // the the deactivated component, which will nuke it's view before the animations have finished.\n // The visit will alway updated after the router session is finsised (when the new visits are registered) so\n // we can safely ignore it during outlet changes as these always happen before the router session ends.\n when.valueOf(this.routerVisit).changes(() => this.pushRouteChangesToVisit(), { unless: this._inOutletUpdate });\n\n // Handle component based changes\n when.valueOf(this._activePlaceVisitModel).changes((next, previous) => {\n this.pushVisitChangesToRoute(next, previous);\n }, {\n unless: this.placeRouter.navigationInProgress\n });\n\n chain(this._activePlace)\n .postponeWhile(placeRouter.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.placeAnimationOrder.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // console.log({ activatedRoute: this._activatedRouteModel.value });\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n // @Trace()\n pushRouteChangesToVisit() {\n const visit = this.routerVisit.value;\n // console.log({\n // visit,\n // place: visit ? visit.placeDefinition.component : null,\n // inOutletActivation: this._inOutletActivation.value,\n // inRoutingSession: this.placeRouter.navigationSessionActive.value\n // });\n if (visit) { // can be null while the place and index sync up\n this._inRouteVisitUpdate.whileTrue(() => {\n this._activePlaceVisitModel.value = visit;\n });\n }\n }\n\n pushVisitChangesToRoute(next: Visit, previous: Visit) {\n const activatedRoute = this._activatedRouteModel.value;\n this.placeRouter.pushVisitChangesToRoute(activatedRoute, previous, next);\n }\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlace.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n // @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._inOutletActivation.whileTrue(() => {\n try {\n this._activePlace.value = place;\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._placeDefinition.value = place.placeDefinition;\n const visitModel = new MutableValueModel<Visit>();\n this._activePlaceVisitModel.setDelegate(visitModel);\n place.initialiseBindings(visitModel);\n } catch (error) {\n console.error(error);\n }\n });\n if (!this.animateModel.value) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n // @Trace()\n onOutletDeactivated() {\n this._inOutletDeactivation.whileTrue(() => {\n this._activePlace.value = null;\n this._activatedRouteModel.value = null;\n this._placeDefinition.value = null;\n this._activePlaceVisitModel.setDelegate(null);\n });\n }\n\n // @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlace.value });\n }\n\n // @Trace()\n animationDone() {\n if (this._activePlace.value) {\n this._activePlace.value.onPlaceReady();\n }\n }\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n BooleanValueModelChain,\n Constructable, DebugContext,\n DelegatingValueModel,\n Dsl,\n Guard,\n ListModel,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel,\n UseDelegate,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @UseDelegate({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @UseDelegate()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private readonly _activePlace = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceVisitModel = new DelegatingValueModel<Visit>();\n\n private readonly _inOutletActivation = new Guard();\n private readonly _inOutletDeactivation = new Guard();\n private readonly _inOutletUpdate: BooleanValueModelChain;\n private readonly _inRouteVisitUpdate = new Guard();\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n\n private readonly _placeDefinition = new MutableValueModel<PlaceDefinition>();\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly placeAnimationOrder: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisit: ValueModelChain<Visit>;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n const mutableValueModel = new MutableValueModel<Visit>();\n DebugContext.tag(mutableValueModel, \"PlaceOutletComponent -> mutableValueModel\");\n this._activePlaceVisitModel.setDelegate(mutableValueModel);\n DebugContext.tag(this._activePlaceVisitModel, \"PlaceOutletComponent._activePlaceVisitModel\");\n this._inOutletUpdate = valueOf.any(this._inOutletDeactivation, this._inOutletActivation).areTruthy();\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder)\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n // Push incoming changes into the component\n this.routerVisit = chain(this._activePlace).pluck('placeDefinition').findIn(placeRouter.activeVisitIndex);\n // Our router visit will change when our active is nullified during deactivation, which will push a null visit\n // the the deactivated component, which will nuke it's view before the animations have finished.\n // The visit will alway updated after the router session is finsised (when the new visits are registered) so\n // we can safely ignore it during outlet changes as these always happen before the router session ends.\n when.valueOf(this.routerVisit).changes(() => this.pushRouteChangesToVisit(), { unless: this._inOutletUpdate });\n\n // Handle component based changes\n when.valueOf(this._activePlaceVisitModel).changes((next, previous) => {\n this.pushVisitChangesToRoute(next, previous);\n }, {\n unless: this.placeRouter.navigationInProgress\n });\n\n chain(this._activePlace)\n .postponeWhile(placeRouter.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.placeAnimationOrder.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // console.log({ activatedRoute: this._activatedRouteModel.value });\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n // @Trace()\n pushRouteChangesToVisit() {\n const visit = this.routerVisit.value;\n // console.log({\n // visit,\n // place: visit ? visit.placeDefinition.component : null,\n // inOutletActivation: this._inOutletActivation.value,\n // inRoutingSession: this.placeRouter.navigationSessionActive.value\n // });\n if (visit) { // can be null while the place and index sync up\n this._inRouteVisitUpdate.whileTrue(() => {\n this._activePlaceVisitModel.value = visit;\n });\n }\n }\n\n pushVisitChangesToRoute(next: Visit, previous: Visit) {\n const activatedRoute = this._activatedRouteModel.value;\n this.placeRouter.pushVisitChangesToRoute(activatedRoute, previous, next);\n }\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlace.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n // @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._inOutletActivation.whileTrue(() => {\n try {\n this._activePlace.value = place;\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._placeDefinition.value = place.placeDefinition;\n const visitModel = new MutableValueModel<Visit>();\n DebugContext.tag(visitModel, \"PlaceOutletCompeont.visitModel\");\n this._activePlaceVisitModel.setDelegate(visitModel);\n place.initialiseVisit(visitModel);\n } catch (error) {\n console.error(error);\n }\n });\n if (!this.animateModel.value) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n // @Trace()\n onOutletDeactivated() {\n this._inOutletDeactivation.whileTrue(() => {\n this._activePlace.value = null;\n this._activatedRouteModel.value = null;\n this._placeDefinition.value = null;\n this._activePlaceVisitModel.setDelegate(null);\n });\n }\n\n // @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlace.value });\n }\n\n // @Trace()\n animationDone() {\n if (this._activePlace.value) {\n this._activePlace.value.onPlaceReady();\n }\n }\n\n\n}\n"]}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { assert, Binding, lang } from '@coolon/pectin';
|
|
6
|
+
import { assert, Binding, DebugContext, lang, Trace } from '@coolon/pectin';
|
|
7
7
|
import { Klass } from '@coolon/typescript-utilities';
|
|
8
8
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
9
9
|
import 'reflect-metadata';
|
|
10
10
|
import { DisposableComponent } from '../components/disposable-component';
|
|
11
11
|
import { PlaceDefinition } from './place-definition';
|
|
12
|
+
import { ParameterDefinition } from './route/parameter-definition.class';
|
|
12
13
|
// RAKE: making this Symbol(...) broke things.
|
|
13
14
|
/** @type {?} */
|
|
14
15
|
export const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';
|
|
@@ -23,10 +24,18 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
23
24
|
* @param {?} visit
|
|
24
25
|
* @return {?}
|
|
25
26
|
*/
|
|
26
|
-
|
|
27
|
+
initialiseVisit(visit) {
|
|
27
28
|
assert.isNil(this.visit);
|
|
28
29
|
this.visit = visit;
|
|
29
|
-
|
|
30
|
+
DebugContext.get(this.visit).tag(`${this.placeDefinition.component.name}.visit`);
|
|
31
|
+
// this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => {
|
|
32
|
+
// this.installBinding(parameterDef);
|
|
33
|
+
// });
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @return {?}
|
|
37
|
+
*/
|
|
38
|
+
ngAfterViewInit() {
|
|
30
39
|
this.placeDefinition.getVisitParameterDefs().forEach((/**
|
|
31
40
|
* @param {?} parameterDef
|
|
32
41
|
* @return {?}
|
|
@@ -44,8 +53,9 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
44
53
|
installBinding(parameterDef) {
|
|
45
54
|
/** @type {?} */
|
|
46
55
|
const model = (/** @type {?} */ (this[parameterDef.propertyName]));
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
57
|
+
/** @type {?} */
|
|
58
|
+
const binding = this.registerDisposable(new Binding(this.visit, model, {
|
|
49
59
|
/**
|
|
50
60
|
* @param {?} visit
|
|
51
61
|
* @return {?}
|
|
@@ -53,7 +63,7 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
53
63
|
toRight(visit) {
|
|
54
64
|
/** @type {?} */
|
|
55
65
|
const value = visit.getParameter(parameterDef.name);
|
|
56
|
-
|
|
66
|
+
console.log('push to component', { name: parameterDef.name, value, visit });
|
|
57
67
|
return value;
|
|
58
68
|
},
|
|
59
69
|
/**
|
|
@@ -66,6 +76,12 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
66
76
|
return currentVisit.replace(parameterDef, value);
|
|
67
77
|
}
|
|
68
78
|
}));
|
|
79
|
+
setTimeout((/**
|
|
80
|
+
* @return {?}
|
|
81
|
+
*/
|
|
82
|
+
() => {
|
|
83
|
+
binding.writeRight();
|
|
84
|
+
}));
|
|
69
85
|
}
|
|
70
86
|
/**
|
|
71
87
|
* @return {?}
|
|
@@ -89,6 +105,12 @@ export class PlaceComponent extends DisposableComponent {
|
|
|
89
105
|
onPlaceReady() {
|
|
90
106
|
}
|
|
91
107
|
}
|
|
108
|
+
tslib_1.__decorate([
|
|
109
|
+
Trace(),
|
|
110
|
+
tslib_1.__metadata("design:type", Function),
|
|
111
|
+
tslib_1.__metadata("design:paramtypes", [ParameterDefinition]),
|
|
112
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
113
|
+
], PlaceComponent.prototype, "installBinding", null);
|
|
92
114
|
tslib_1.__decorate([
|
|
93
115
|
Memoize(),
|
|
94
116
|
tslib_1.__metadata("design:type", PlaceDefinition),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-component.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"place-component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { AfterViewInit } from '@angular/core';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n IMutableHasValue,\n lang, Trace,\n TransactionObserver,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { Visit } from './visit';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\nexport class PlaceComponent extends DisposableComponent implements AfterViewInit {\n\n private visit: ValueModel<Visit>;\n // private _inDeactivationGuard = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n }\n\n public initialiseVisit(visit: ValueModel<Visit>) {\n assert.isNil(this.visit);\n this.visit = visit;\n DebugContext.get(this.visit).tag(`${this.placeDefinition.component.name}.visit`);\n // this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => {\n // this.installBinding(parameterDef);\n // });\n }\n\n ngAfterViewInit(): void {\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => {\n this.installBinding(parameterDef);\n });\n }\n\n @Trace()\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<S>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visit, model, {\n toRight(visit: Visit): S {\n const value = visit.getParameter(parameterDef.name);\n console.log('push to component', {name:parameterDef.name, value, visit});\n return value;\n },\n toLeft(value: S, currentVisit?: Visit): Visit {\n console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n setTimeout(() => {\n binding.writeRight();\n })\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n return PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n get childPlaces(): Constructable<PlaceComponent>[] {\n return this.placeDefinition.children.map(d => d.component);\n }\n\n onPlaceReady() {\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY);\n }\n\n export function getDefinition(klass: Constructable<PlaceComponent>): PlaceDefinition {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":25,"character":36},"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"installBinding":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":53,"character":3}}]}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":73,"character":3}}]}],"onPlaceReady":[{"__symbolic":"method"}]}}}}]
|
|
@@ -122,6 +122,7 @@ export class PlaceDefinition {
|
|
|
122
122
|
// an empty string.
|
|
123
123
|
return visit.hasRouteId() ? this.getRouteIdParameterDef().urlFormat.format(visit.getRouteId()) : "";
|
|
124
124
|
}
|
|
125
|
+
// @Trace()
|
|
125
126
|
/**
|
|
126
127
|
* @param {?} visit
|
|
127
128
|
* @param {?=} includeRouteId
|
|
@@ -196,8 +197,13 @@ export class PlaceDefinition {
|
|
|
196
197
|
// params will return null for non existent names
|
|
197
198
|
if (params.has(def.name)) {
|
|
198
199
|
if (def.isArray) {
|
|
200
|
+
// const values = params.getAll(def.name); // TODO: EEEK getAll is returning ["1,2,3,4"] when we gave it ["1","2","3","4"].
|
|
199
201
|
/** @type {?} */
|
|
200
|
-
const values = params.
|
|
202
|
+
const values = params.get(def.name).split(',').map((/**
|
|
203
|
+
* @param {?} s
|
|
204
|
+
* @return {?}
|
|
205
|
+
*/
|
|
206
|
+
s => s.trim()));
|
|
201
207
|
result[def.name] = values.map((/**
|
|
202
208
|
* @param {?} v
|
|
203
209
|
* @return {?}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-definition.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-definition.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParamMap } from '@angular/router';\nimport { assert, Constructable, Trace } from '@coolon/pectin';\nimport { Opts } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { Visit } from './visit';\n\nexport class PlaceDefinition {\n\n constructor(readonly component: Constructable<PlaceComponent>,\n readonly path: string,\n readonly authenticate: boolean,\n readonly data: { [key: string]: any },\n readonly routeParameters: ParameterDefinition<any>[],\n readonly children: PlaceDefinition[]) {\n }\n\n hasRouteId() {\n return !!this.getRouteIdParameterDef();\n }\n\n @Memoize()\n getRouteIdParameterDef(): ParameterDefinition<any> {\n return this.routeParameters.find(p => p.isRouteId);\n }\n\n @Memoize()\n getRouteParameterDefs(includeRouteId = false): ParameterDefinition<any>[] {\n return this.getVisitParameterDefs({ includeRouteId, includeRouteParameters: true });\n }\n\n @Memoize()\n getVisitParameterDefs(include?: PlaceDefinition.ParameterOptions): ParameterDefinition<any>[] {\n const opts = Opts.get(include);\n // includes\n const includeRouteId = !include || opts.getOptional('includeRouteId', false);\n const includeRouteParameters = !include || opts.getOptional('includeRouteParameters', false);\n const includeNonRouteParameters = !include || opts.getOptional('includeNonRouteParameters', false);\n return this.routeParameters.filter(p => {\n return (includeRouteId && p.isRouteId)\n || (includeRouteParameters && p.isRouteParameter && !p.isRouteId) // route id is included in the line above\n || (includeNonRouteParameters && !p.isRouteParameter);\n });\n }\n\n getPlaceData<T>(key: string, defaultValue?: T): T {\n return this.data ?\n _.isNil(this.data[key]) ? defaultValue : this.data[key] :\n defaultValue;\n }\n\n searchPlaceData<T>(keys: string[], defaultValue?: T): T {\n if (this.data) {\n const found = keys.find(key => !_.isNil(this.data[key]));\n return found ? this.data[found] : defaultValue;\n } else {\n return defaultValue;\n }\n }\n\n getRouteIdFrom(visit: Visit) {\n const routeIdParameterDef = this.getRouteIdParameterDef();\n return routeIdParameterDef ? visit.getParameter(routeIdParameterDef.name) : null;\n }\n\n getFormattedRouteId(visit: Visit): any {\n // Note: RouteIds are always present in the url and are just empty strings when not defined. This is\n // mandated by the fact that redirects from <path> to <path>/:id always include the id parameter as\n // an empty string.\n return visit.hasRouteId() ? this.getRouteIdParameterDef().urlFormat.format(visit.getRouteId()) : \"\";\n }\n\n getFormattedRouteParameters(visit: Visit, includeRouteId = false): { [p: string]: string } {\n const result: { [p: string]: string } = {};\n this.getVisitParameterDefs({\n includeRouteId, includeRouteParameters: true\n }).forEach(def => {\n const value = visit.getParameter(def.name);\n if (!def.isEmptyValue(value)) {\n if (def.isArray) {\n assert.isArray(value);\n result[def.name] = value.map(v => def.urlFormat.format(v));\n } else {\n assert.isFalsey(Array.isArray(value));\n result[def.name] = def.urlFormat.format(value);\n }\n }\n });\n return result;\n }\n\n getNonRouteParameters(visit: Visit): { [p: string]: string } {\n const result: { [p: string]: string } = {};\n this.getVisitParameterDefs({ includeNonRouteParameters: true }).forEach(def => {\n const value = visit.getParameter(def.name);\n if (!def.isEmptyValue(value)) {\n result[def.name] = value;\n }\n });\n return result;\n }\n\n // @Trace()\n parseRouteParams(params: ParamMap): { [p: string]: any } {\n const result: { [p: string]: any } = {};\n this.getVisitParameterDefs({\n includeRouteId: true,\n includeRouteParameters: true,\n includeNonRouteParameters: false\n }).forEach(def => {\n // params will return null for non existent names\n if (params.has(def.name)) {\n if (def.isArray) {\n const values = params.getAll(def.name);\n result[def.name] = values.map(v => def.urlFormat.parse(v));\n } else {\n const value = params.get(def.name);\n if (def.isRouteId) { // TODO: Move this to parameter def so it's a strategy pattern\n // because our id routes redirect if the id isn't present we always have a id\n // parameter in our params. This will bugger our remember and defaultvalue sanitisation\n // as it'll see that the id is present (event thought its a blank string).\n if (!_.isEmpty(value)) {\n result[def.name] = def.urlFormat.parse(value);\n }\n } else {\n result[def.name] = def.urlFormat.parse(value);\n }\n }\n }\n });\n return result;\n }\n\n}\n\nexport namespace PlaceDefinition {\n export interface ParameterOptions {\n includeRouteId?: boolean;\n includeRouteParameters?: boolean;\n includeNonRouteParameters?: boolean;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"place-definition.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-definition.ts"],"names":[],"mappings":";;;;;AACA,OAAO,EAAE,MAAM,EAAwB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAC3E,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,MAAM,OAAO,eAAe;;;;;;;;;IAE1B,YAAqB,SAAwC,EACxC,IAAY,EACZ,YAAqB,EACrB,IAA4B,EAC5B,eAA2C,EAC3C,QAA2B;QAL3B,cAAS,GAAT,SAAS,CAA+B;QACxC,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAS;QACrB,SAAI,GAAJ,IAAI,CAAwB;QAC5B,oBAAe,GAAf,eAAe,CAA4B;QAC3C,aAAQ,GAAR,QAAQ,CAAmB;IAChD,CAAC;;;;IAED,UAAU;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;;;;IAGD,sBAAsB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI;;;;QAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAC,CAAC;IACrD,CAAC;;;;;IAGD,qBAAqB,CAAC,cAAc,GAAG,KAAK;QAC1C,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;;;;;IAGD,qBAAqB,CAAC,OAA0C;;cACxD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;;;cAExB,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC;;cACtE,sBAAsB,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,CAAC;;cACtF,yBAAyB,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,KAAK,CAAC;QAClG,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM;;;;QAAC,CAAC,CAAC,EAAE;YACrC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC;mBACjC,CAAC,sBAAsB,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,yCAAyC;mBACxG,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC1D,CAAC,EAAC,CAAC;IACL,CAAC;;;;;;;IAED,YAAY,CAAI,GAAW,EAAE,YAAgB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,YAAY,CAAC;IACjB,CAAC;;;;;;;IAED,eAAe,CAAI,IAAc,EAAE,YAAgB;QACjD,IAAI,IAAI,CAAC,IAAI,EAAE;;kBACP,KAAK,GAAG,IAAI,CAAC,IAAI;;;;YAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;YACxD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SAChD;aAAM;YACL,OAAO,YAAY,CAAC;SACrB;IACH,CAAC;;;;;IAED,cAAc,CAAC,KAAY;;cACnB,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE;QACzD,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,CAAC;;;;;IAED,mBAAmB,CAAC,KAAY;QAC9B,qGAAqG;QACrG,mGAAmG;QACnG,mBAAmB;QACnB,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,CAAC;;;;;;;IAGD,2BAA2B,CAAC,KAAY,EAAE,cAAc,GAAG,KAAK;;cACxD,MAAM,GAA4B,EAAE;QAC1C,IAAI,CAAC,qBAAqB,CAAC;YACzB,cAAc,EAAE,sBAAsB,EAAE,IAAI;SAC7C,CAAC,CAAC,OAAO;;;;QAAC,GAAG,CAAC,EAAE;;kBACT,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,GAAG,CAAC,OAAO,EAAE;oBACf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG;;;;oBAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;iBAC5D;qBAAM;oBACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAChD;aACF;QACH,CAAC,EAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;;;;;IAED,qBAAqB,CAAC,KAAY;;cAC1B,MAAM,GAA4B,EAAE;QAC1C,IAAI,CAAC,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO;;;;QAAC,GAAG,CAAC,EAAE;;kBACtE,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAC5B;QACH,CAAC,EAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;;;;;;IAGD,gBAAgB,CAAC,MAAgB;;cACzB,MAAM,GAAyB,EAAE;QACvC,IAAI,CAAC,qBAAqB,CAAC;YACzB,cAAc,EAAE,IAAI;YACpB,sBAAsB,EAAE,IAAI;YAC5B,yBAAyB,EAAE,KAAK;SACjC,CAAC,CAAC,OAAO;;;;QAAC,GAAG,CAAC,EAAE;YACf,iDAAiD;YACjD,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,GAAG,CAAC,OAAO,EAAE;;;0BAET,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG;;;;oBAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC;oBACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG;;;;oBAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC;iBAC5D;qBAAM;;0BACC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAClC,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,8DAA8D;wBACjF,6EAA6E;wBAC7E,wFAAwF;wBACxF,0EAA0E;wBAC1E,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACrB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;yBAC/C;qBACF;yBAAM;wBACL,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC/C;iBACF;aACF;QACH,CAAC,EAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF;AAjHC;IADC,OAAO,EAAE;;;4CACgB,mBAAmB;6DAE5C;AAGD;IADC,OAAO,EAAE;;;;4DAGT;AAGD;IADC,OAAO,EAAE;;;;4DAYT;;;IAlCW,oCAAiD;;IACjD,+BAAqB;;IACrB,uCAA8B;;IAC9B,+BAAqC;;IACrC,0CAAoD;;IACpD,mCAAoC;;AA2HlD,WAAiB,eAAe;;;;IAC9B,+BAIC;;;;QAHC,0CAAyB;;QACzB,kDAAiC;;QACjC,qDAAoC;;AAExC,CAAC,EANgB,eAAe,KAAf,eAAe,QAM/B","sourcesContent":["import { ParamMap } from '@angular/router';\nimport { assert, Constructable, Trace } from '@coolon/pectin';\nimport { Opts } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { Visit } from './visit';\n\nexport class PlaceDefinition {\n\n constructor(readonly component: Constructable<PlaceComponent>,\n readonly path: string,\n readonly authenticate: boolean,\n readonly data: { [key: string]: any },\n readonly routeParameters: ParameterDefinition<any>[],\n readonly children: PlaceDefinition[]) {\n }\n\n hasRouteId() {\n return !!this.getRouteIdParameterDef();\n }\n\n @Memoize()\n getRouteIdParameterDef(): ParameterDefinition<any> {\n return this.routeParameters.find(p => p.isRouteId);\n }\n\n @Memoize()\n getRouteParameterDefs(includeRouteId = false): ParameterDefinition<any>[] {\n return this.getVisitParameterDefs({ includeRouteId, includeRouteParameters: true });\n }\n\n @Memoize()\n getVisitParameterDefs(include?: PlaceDefinition.ParameterOptions): ParameterDefinition<any>[] {\n const opts = Opts.get(include);\n // includes\n const includeRouteId = !include || opts.getOptional('includeRouteId', false);\n const includeRouteParameters = !include || opts.getOptional('includeRouteParameters', false);\n const includeNonRouteParameters = !include || opts.getOptional('includeNonRouteParameters', false);\n return this.routeParameters.filter(p => {\n return (includeRouteId && p.isRouteId)\n || (includeRouteParameters && p.isRouteParameter && !p.isRouteId) // route id is included in the line above\n || (includeNonRouteParameters && !p.isRouteParameter);\n });\n }\n\n getPlaceData<T>(key: string, defaultValue?: T): T {\n return this.data ?\n _.isNil(this.data[key]) ? defaultValue : this.data[key] :\n defaultValue;\n }\n\n searchPlaceData<T>(keys: string[], defaultValue?: T): T {\n if (this.data) {\n const found = keys.find(key => !_.isNil(this.data[key]));\n return found ? this.data[found] : defaultValue;\n } else {\n return defaultValue;\n }\n }\n\n getRouteIdFrom(visit: Visit) {\n const routeIdParameterDef = this.getRouteIdParameterDef();\n return routeIdParameterDef ? visit.getParameter(routeIdParameterDef.name) : null;\n }\n\n getFormattedRouteId(visit: Visit): any {\n // Note: RouteIds are always present in the url and are just empty strings when not defined. This is\n // mandated by the fact that redirects from <path> to <path>/:id always include the id parameter as\n // an empty string.\n return visit.hasRouteId() ? this.getRouteIdParameterDef().urlFormat.format(visit.getRouteId()) : \"\";\n }\n\n // @Trace()\n getFormattedRouteParameters(visit: Visit, includeRouteId = false): { [p: string]: string } {\n const result: { [p: string]: string } = {};\n this.getVisitParameterDefs({\n includeRouteId, includeRouteParameters: true\n }).forEach(def => {\n const value = visit.getParameter(def.name);\n if (!def.isEmptyValue(value)) {\n if (def.isArray) {\n assert.isArray(value);\n result[def.name] = value.map(v => def.urlFormat.format(v));\n } else {\n assert.isFalsey(Array.isArray(value));\n result[def.name] = def.urlFormat.format(value);\n }\n }\n });\n return result;\n }\n\n getNonRouteParameters(visit: Visit): { [p: string]: string } {\n const result: { [p: string]: string } = {};\n this.getVisitParameterDefs({ includeNonRouteParameters: true }).forEach(def => {\n const value = visit.getParameter(def.name);\n if (!def.isEmptyValue(value)) {\n result[def.name] = value;\n }\n });\n return result;\n }\n\n // @Trace()\n parseRouteParams(params: ParamMap): { [p: string]: any } {\n const result: { [p: string]: any } = {};\n this.getVisitParameterDefs({\n includeRouteId: true,\n includeRouteParameters: true,\n includeNonRouteParameters: false\n }).forEach(def => {\n // params will return null for non existent names\n if (params.has(def.name)) {\n if (def.isArray) {\n // const values = params.getAll(def.name); // TODO: EEEK getAll is returning [\"1,2,3,4\"] when we gave it [\"1\",\"2\",\"3\",\"4\"].\n const values = params.get(def.name).split(',').map(s => s.trim());\n result[def.name] = values.map(v => def.urlFormat.parse(v));\n } else {\n const value = params.get(def.name);\n if (def.isRouteId) { // TODO: Move this to parameter def so it's a strategy pattern\n // because our id routes redirect if the id isn't present we always have a id\n // parameter in our params. This will bugger our remember and defaultvalue sanitisation\n // as it'll see that the id is present (event thought its a blank string).\n if (!_.isEmpty(value)) {\n result[def.name] = def.urlFormat.parse(value);\n }\n } else {\n result[def.name] = def.urlFormat.parse(value);\n }\n }\n }\n });\n return result;\n }\n\n}\n\nexport namespace PlaceDefinition {\n export interface ParameterOptions {\n includeRouteId?: boolean;\n includeRouteParameters?: boolean;\n includeNonRouteParameters?: boolean;\n }\n}\n"]}
|
|
@@ -71,8 +71,8 @@ export function RouteId(type, options) {
|
|
|
71
71
|
/** @type {?} */
|
|
72
72
|
const param = new ParameterDefinition.RouteId(propertyKey.toString(), options, type);
|
|
73
73
|
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
|
|
74
|
-
|
|
75
|
-
UseDelegate()(prototype, propertyKey);
|
|
74
|
+
UseDelegate({ tag: `@RouteId(${prototype.constructor.name}.${propertyKey.toString()})` })(prototype, propertyKey);
|
|
75
|
+
// UseDelegate()(prototype, propertyKey);
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
@@ -92,8 +92,8 @@ export function VisitParameter(options) {
|
|
|
92
92
|
/** @type {?} */
|
|
93
93
|
const param = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional("storeInUrl", null));
|
|
94
94
|
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
|
|
95
|
-
|
|
96
|
-
UseDelegate()(prototype, propertyKey);
|
|
95
|
+
UseDelegate({ tag: `@VisitParameter(${prototype.constructor.name}.${propertyKey.toString()})` })(prototype, propertyKey);
|
|
96
|
+
// UseDelegate()(prototype, propertyKey);
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
@@ -112,8 +112,8 @@ export function VisitParameterList(options) {
|
|
|
112
112
|
(prototype, propertyKey) => {
|
|
113
113
|
/** @type {?} */
|
|
114
114
|
const param = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional("storeInUrl", null));
|
|
115
|
-
|
|
116
|
-
UseDelegate()(prototype, propertyKey);
|
|
115
|
+
UseDelegate({ tag: `@VisitParameterList(${prototype.constructor.name}.${propertyKey.toString()})` })(prototype, propertyKey);
|
|
116
|
+
// UseDelegate()(prototype, propertyKey);
|
|
117
117
|
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decorators.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-decorators.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;;;;;AAInE,oCAMC;;;IALC,4BAAY;;IACZ,kCAAmB;;IACnB,kCAAmB;;IACnB,sCAAiB;;;;;;AAInB,2CAOC;;;IANC,mCAAY;;IACZ,yCAAmB;;IACnB,yCAAmB;;IACnB,6CAAiB;;IACjB,2CAAyB;;;;;;AAI3B,+CAOC;;;IANC,uCAAY;;IACZ,6CAAmB;;IACnB,6CAAmB;;IACnB,iDAAmB;;IACnB,+CAAyB;;;;;;;;AAI3B,MAAM,UAAU,OAAO,CAA4B,IAAkB,EAAE,OAA2B;IAChG;;;;;IAAO,CAAC,SAAiB,EAAE,WAA4B,EAAE,EAAE;;cACnD,KAAK,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;QACpF,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC3E,
|
|
1
|
+
{"version":3,"file":"parameter-decorators.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-decorators.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;;;;;AAInE,oCAMC;;;IALC,4BAAY;;IACZ,kCAAmB;;IACnB,kCAAmB;;IACnB,sCAAiB;;;;;;AAInB,2CAOC;;;IANC,mCAAY;;IACZ,yCAAmB;;IACnB,yCAAmB;;IACnB,6CAAiB;;IACjB,2CAAyB;;;;;;AAI3B,+CAOC;;;IANC,uCAAY;;IACZ,6CAAmB;;IACnB,6CAAmB;;IACnB,iDAAmB;;IACnB,+CAAyB;;;;;;;;AAI3B,MAAM,UAAU,OAAO,CAA4B,IAAkB,EAAE,OAA2B;IAChG;;;;;IAAO,CAAC,SAAiB,EAAE,WAA4B,EAAE,EAAE;;cACnD,KAAK,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;QACpF,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC3E,WAAW,CAAC,EAAC,GAAG,EAAE,YAAY,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAChH,yCAAyC;IAC3C,CAAC,EAAC;AACJ,CAAC;;;;;;AAED,MAAM,UAAU,cAAc,CAAI,OAAkC;;UAC5D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC9B;;;;;IAAO,CAAC,SAAiB,EAAE,WAA4B,EAAE,EAAE;;cACnD,KAAK,GAAG,IAAI,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3H,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC3E,WAAW,CAAC,EAAC,GAAG,EAAE,mBAAmB,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvH,yCAAyC;IAC3C,CAAC,EAAC;AACJ,CAAC;;;;;;AAED,MAAM,UAAU,kBAAkB,CAAI,OAAsC;;UACpE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC9B;;;;;IAAO,CAAC,SAAiB,EAAE,WAA4B,EAAE,EAAE;;cACnD,KAAK,GAAG,IAAI,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3H,WAAW,CAAC,EAAC,GAAG,EAAE,uBAAuB,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3H,yCAAyC;QACzC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC,EAAC;AACJ,CAAC","sourcesContent":["import { UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ROUTE_PARAMETER_LIST_KEY } from '../place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { Formatter } from './formatter';\n\n\nexport interface RouteIdOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;\n}\n\nexport interface RouteParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n storeInUrl?: Formatter<T>\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;\n}\n\nexport interface RouteListParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T[];\n storeInUrl?: Formatter<T>\n // sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser<T[]>;\n}\n\nexport function RouteId<T extends string | number>(type: Formatter<T>, options?: RouteIdOptions<T>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.RouteId(propertyKey.toString(), options, type);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate({tag: `@RouteId(${prototype.constructor.name}.${propertyKey.toString()})`})(prototype, propertyKey);\n // UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function VisitParameter<T>(options?: RouteParameterOptions<T>): PropertyDecorator {\n const opts = Opts.get(options);\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional(\"storeInUrl\", null));\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate({tag: `@VisitParameter(${prototype.constructor.name}.${propertyKey.toString()})`})(prototype, propertyKey);\n // UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function VisitParameterList<E>(options?: RouteListParameterOptions<E>): PropertyDecorator {\n const opts = Opts.get(options);\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional(\"storeInUrl\", null));\n UseDelegate({tag: `@VisitParameterList(${prototype.constructor.name}.${propertyKey.toString()})`})(prototype, propertyKey);\n // UseDelegate()(prototype, propertyKey);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n };\n}\n\n// export function RouteParameter<T>(type: ParameterType<T>, options?: RouteParameterOptions<T>): PropertyDecorator {\n// return (prototype: Object, propertyKey: string | symbol) => {\n// const param = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, type);\n// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n// UseDelegate()(prototype, propertyKey);\n// };\n// }\n//\n// export function RouteParameterList<E>(elementType: ParameterType<E>, options?: RouteListParameterOptions<E>): PropertyDecorator {\n// return (prototype: Object, propertyKey: string | symbol) => {\n// const param = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, elementType);\n// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n// UseDelegate()(prototype, propertyKey);\n// };\n// }\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, EventEmitter, Inject, Input, Optional, Output, SkipSelf, ViewChild } from '@angular/core';
|
|
7
7
|
import { Router, RouterOutlet } from '@angular/router';
|
|
8
|
-
import { DelegatingValueModel, Dsl, Guard, ListModel, MutableValueModel, StoreInListModel, StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
|
|
8
|
+
import { DebugContext, DelegatingValueModel, Dsl, Guard, ListModel, MutableValueModel, StoreInListModel, StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';
|
|
9
9
|
import * as _ from 'lodash';
|
|
10
10
|
import { DisposableComponent } from '../../../components/disposable-component';
|
|
11
11
|
import { AUP_PLACE_CONFIG } from '../../place-config';
|
|
@@ -46,7 +46,11 @@ var PlaceOutletComponent = /** @class */ (function (_super) {
|
|
|
46
46
|
_this.initialPlaceIndex = null;
|
|
47
47
|
var _a = Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
|
|
48
48
|
_this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
49
|
-
|
|
49
|
+
/** @type {?} */
|
|
50
|
+
var mutableValueModel = new MutableValueModel();
|
|
51
|
+
DebugContext.tag(mutableValueModel, "PlaceOutletComponent -> mutableValueModel");
|
|
52
|
+
_this._activePlaceVisitModel.setDelegate(mutableValueModel);
|
|
53
|
+
DebugContext.tag(_this._activePlaceVisitModel, "PlaceOutletComponent._activePlaceVisitModel");
|
|
50
54
|
_this._inOutletUpdate = valueOf.any(_this._inOutletDeactivation, _this._inOutletActivation).areTruthy();
|
|
51
55
|
/** @type {?} */
|
|
52
56
|
var defaultPlaceAnimationOrder = chain(_this.parentOutletModel)
|
|
@@ -260,8 +264,9 @@ var PlaceOutletComponent = /** @class */ (function (_super) {
|
|
|
260
264
|
_this._placeDefinition.value = place.placeDefinition;
|
|
261
265
|
/** @type {?} */
|
|
262
266
|
var visitModel = new MutableValueModel();
|
|
267
|
+
DebugContext.tag(visitModel, "PlaceOutletCompeont.visitModel");
|
|
263
268
|
_this._activePlaceVisitModel.setDelegate(visitModel);
|
|
264
|
-
place.
|
|
269
|
+
place.initialiseVisit(visitModel);
|
|
265
270
|
}
|
|
266
271
|
catch (error) {
|
|
267
272
|
console.error(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n BooleanValueModelChain,\n Constructable,\n DelegatingValueModel,\n Dsl,\n Guard,\n ListModel,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel,\n UseDelegate,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @UseDelegate({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @UseDelegate()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private readonly _activePlace = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceVisitModel = new DelegatingValueModel<Visit>();\n\n private readonly _inOutletActivation = new Guard();\n private readonly _inOutletDeactivation = new Guard();\n private readonly _inOutletUpdate: BooleanValueModelChain;\n private readonly _inRouteVisitUpdate = new Guard();\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n\n private readonly _placeDefinition = new MutableValueModel<PlaceDefinition>();\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly placeAnimationOrder: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisit: ValueModelChain<Visit>;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n this._activePlaceVisitModel.setDelegate(new MutableValueModel<Visit>());\n this._inOutletUpdate = valueOf.any(this._inOutletDeactivation, this._inOutletActivation).areTruthy();\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder)\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n // Push incoming changes into the component\n this.routerVisit = chain(this._activePlace).pluck('placeDefinition').findIn(placeRouter.activeVisitIndex);\n // Our router visit will change when our active is nullified during deactivation, which will push a null visit\n // the the deactivated component, which will nuke it's view before the animations have finished.\n // The visit will alway updated after the router session is finsised (when the new visits are registered) so\n // we can safely ignore it during outlet changes as these always happen before the router session ends.\n when.valueOf(this.routerVisit).changes(() => this.pushRouteChangesToVisit(), { unless: this._inOutletUpdate });\n\n // Handle component based changes\n when.valueOf(this._activePlaceVisitModel).changes((next, previous) => {\n this.pushVisitChangesToRoute(next, previous);\n }, {\n unless: this.placeRouter.navigationInProgress\n });\n\n chain(this._activePlace)\n .postponeWhile(placeRouter.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.placeAnimationOrder.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // console.log({ activatedRoute: this._activatedRouteModel.value });\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n // @Trace()\n pushRouteChangesToVisit() {\n const visit = this.routerVisit.value;\n // console.log({\n // visit,\n // place: visit ? visit.placeDefinition.component : null,\n // inOutletActivation: this._inOutletActivation.value,\n // inRoutingSession: this.placeRouter.navigationSessionActive.value\n // });\n if (visit) { // can be null while the place and index sync up\n this._inRouteVisitUpdate.whileTrue(() => {\n this._activePlaceVisitModel.value = visit;\n });\n }\n }\n\n pushVisitChangesToRoute(next: Visit, previous: Visit) {\n const activatedRoute = this._activatedRouteModel.value;\n this.placeRouter.pushVisitChangesToRoute(activatedRoute, previous, next);\n }\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlace.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n // @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._inOutletActivation.whileTrue(() => {\n try {\n this._activePlace.value = place;\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._placeDefinition.value = place.placeDefinition;\n const visitModel = new MutableValueModel<Visit>();\n this._activePlaceVisitModel.setDelegate(visitModel);\n place.initialiseBindings(visitModel);\n } catch (error) {\n console.error(error);\n }\n });\n if (!this.animateModel.value) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n // @Trace()\n onOutletDeactivated() {\n this._inOutletDeactivation.whileTrue(() => {\n this._activePlace.value = null;\n this._activatedRouteModel.value = null;\n this._placeDefinition.value = null;\n this._activePlaceVisitModel.setDelegate(null);\n });\n }\n\n // @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlace.value });\n }\n\n // @Trace()\n animationDone() {\n if (this._activePlace.value) {\n this._activePlace.value.onPlaceReady();\n }\n }\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n BooleanValueModelChain,\n Constructable, DebugContext,\n DelegatingValueModel,\n Dsl,\n Guard,\n ListModel,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel,\n UseDelegate,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @UseDelegate({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @UseDelegate()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private readonly _activePlace = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceVisitModel = new DelegatingValueModel<Visit>();\n\n private readonly _inOutletActivation = new Guard();\n private readonly _inOutletDeactivation = new Guard();\n private readonly _inOutletUpdate: BooleanValueModelChain;\n private readonly _inRouteVisitUpdate = new Guard();\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n\n private readonly _placeDefinition = new MutableValueModel<PlaceDefinition>();\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly placeAnimationOrder: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisit: ValueModelChain<Visit>;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n const mutableValueModel = new MutableValueModel<Visit>();\n DebugContext.tag(mutableValueModel, \"PlaceOutletComponent -> mutableValueModel\");\n this._activePlaceVisitModel.setDelegate(mutableValueModel);\n DebugContext.tag(this._activePlaceVisitModel, \"PlaceOutletComponent._activePlaceVisitModel\");\n this._inOutletUpdate = valueOf.any(this._inOutletDeactivation, this._inOutletActivation).areTruthy();\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder)\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n // Push incoming changes into the component\n this.routerVisit = chain(this._activePlace).pluck('placeDefinition').findIn(placeRouter.activeVisitIndex);\n // Our router visit will change when our active is nullified during deactivation, which will push a null visit\n // the the deactivated component, which will nuke it's view before the animations have finished.\n // The visit will alway updated after the router session is finsised (when the new visits are registered) so\n // we can safely ignore it during outlet changes as these always happen before the router session ends.\n when.valueOf(this.routerVisit).changes(() => this.pushRouteChangesToVisit(), { unless: this._inOutletUpdate });\n\n // Handle component based changes\n when.valueOf(this._activePlaceVisitModel).changes((next, previous) => {\n this.pushVisitChangesToRoute(next, previous);\n }, {\n unless: this.placeRouter.navigationInProgress\n });\n\n chain(this._activePlace)\n .postponeWhile(placeRouter.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.placeAnimationOrder.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // console.log({ activatedRoute: this._activatedRouteModel.value });\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n // @Trace()\n pushRouteChangesToVisit() {\n const visit = this.routerVisit.value;\n // console.log({\n // visit,\n // place: visit ? visit.placeDefinition.component : null,\n // inOutletActivation: this._inOutletActivation.value,\n // inRoutingSession: this.placeRouter.navigationSessionActive.value\n // });\n if (visit) { // can be null while the place and index sync up\n this._inRouteVisitUpdate.whileTrue(() => {\n this._activePlaceVisitModel.value = visit;\n });\n }\n }\n\n pushVisitChangesToRoute(next: Visit, previous: Visit) {\n const activatedRoute = this._activatedRouteModel.value;\n this.placeRouter.pushVisitChangesToRoute(activatedRoute, previous, next);\n }\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlace.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n // @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._inOutletActivation.whileTrue(() => {\n try {\n this._activePlace.value = place;\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._placeDefinition.value = place.placeDefinition;\n const visitModel = new MutableValueModel<Visit>();\n DebugContext.tag(visitModel, \"PlaceOutletCompeont.visitModel\");\n this._activePlaceVisitModel.setDelegate(visitModel);\n place.initialiseVisit(visitModel);\n } catch (error) {\n console.error(error);\n }\n });\n if (!this.animateModel.value) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n // @Trace()\n onOutletDeactivated() {\n this._inOutletDeactivation.whileTrue(() => {\n this._activePlace.value = null;\n this._activatedRouteModel.value = null;\n this._placeDefinition.value = null;\n this._activePlaceVisitModel.setDelegate(null);\n });\n }\n\n // @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlace.value });\n }\n\n // @Trace()\n animationDone() {\n if (this._activePlace.value) {\n this._activePlace.value.onPlaceReady();\n }\n }\n\n\n}\n"]}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { assert, Binding, lang } from '@coolon/pectin';
|
|
6
|
+
import { assert, Binding, DebugContext, lang, Trace } from '@coolon/pectin';
|
|
7
7
|
import { Klass } from '@coolon/typescript-utilities';
|
|
8
8
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
9
9
|
import 'reflect-metadata';
|
|
10
10
|
import { DisposableComponent } from '../components/disposable-component';
|
|
11
11
|
import { PlaceDefinition } from './place-definition';
|
|
12
|
+
import { ParameterDefinition } from './route/parameter-definition.class';
|
|
12
13
|
// RAKE: making this Symbol(...) broke things.
|
|
13
14
|
/** @type {?} */
|
|
14
15
|
export var DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';
|
|
@@ -24,15 +25,26 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
24
25
|
* @param {?} visit
|
|
25
26
|
* @return {?}
|
|
26
27
|
*/
|
|
27
|
-
PlaceComponent.prototype.
|
|
28
|
+
PlaceComponent.prototype.initialiseVisit = /**
|
|
28
29
|
* @param {?} visit
|
|
29
30
|
* @return {?}
|
|
30
31
|
*/
|
|
31
32
|
function (visit) {
|
|
32
|
-
var _this = this;
|
|
33
33
|
assert.isNil(this.visit);
|
|
34
34
|
this.visit = visit;
|
|
35
|
-
|
|
35
|
+
DebugContext.get(this.visit).tag(this.placeDefinition.component.name + ".visit");
|
|
36
|
+
// this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => {
|
|
37
|
+
// this.installBinding(parameterDef);
|
|
38
|
+
// });
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
PlaceComponent.prototype.ngAfterViewInit = /**
|
|
44
|
+
* @return {?}
|
|
45
|
+
*/
|
|
46
|
+
function () {
|
|
47
|
+
var _this = this;
|
|
36
48
|
this.placeDefinition.getVisitParameterDefs().forEach((/**
|
|
37
49
|
* @param {?} parameterDef
|
|
38
50
|
* @return {?}
|
|
@@ -56,8 +68,9 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
56
68
|
function (parameterDef) {
|
|
57
69
|
/** @type {?} */
|
|
58
70
|
var model = (/** @type {?} */ (this[parameterDef.propertyName]));
|
|
59
|
-
|
|
60
|
-
|
|
71
|
+
DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
|
|
72
|
+
/** @type {?} */
|
|
73
|
+
var binding = this.registerDisposable(new Binding(this.visit, model, {
|
|
61
74
|
toRight: /**
|
|
62
75
|
* @param {?} visit
|
|
63
76
|
* @return {?}
|
|
@@ -65,7 +78,7 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
65
78
|
function (visit) {
|
|
66
79
|
/** @type {?} */
|
|
67
80
|
var value = visit.getParameter(parameterDef.name);
|
|
68
|
-
|
|
81
|
+
console.log('push to component', { name: parameterDef.name, value: value, visit: visit });
|
|
69
82
|
return value;
|
|
70
83
|
},
|
|
71
84
|
toLeft: /**
|
|
@@ -78,6 +91,12 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
78
91
|
return currentVisit.replace(parameterDef, value);
|
|
79
92
|
}
|
|
80
93
|
}));
|
|
94
|
+
setTimeout((/**
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
function () {
|
|
98
|
+
binding.writeRight();
|
|
99
|
+
}));
|
|
81
100
|
};
|
|
82
101
|
Object.defineProperty(PlaceComponent.prototype, "placeDefinition", {
|
|
83
102
|
get: /**
|
|
@@ -111,6 +130,12 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
111
130
|
*/
|
|
112
131
|
function () {
|
|
113
132
|
};
|
|
133
|
+
tslib_1.__decorate([
|
|
134
|
+
Trace(),
|
|
135
|
+
tslib_1.__metadata("design:type", Function),
|
|
136
|
+
tslib_1.__metadata("design:paramtypes", [ParameterDefinition]),
|
|
137
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
138
|
+
], PlaceComponent.prototype, "installBinding", null);
|
|
114
139
|
tslib_1.__decorate([
|
|
115
140
|
Memoize(),
|
|
116
141
|
tslib_1.__metadata("design:type", PlaceDefinition),
|