@coolon/angular-ui-powerups 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +435 -158
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.d.ts +26 -25
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +24 -23
- package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/components.module.js +9 -2
- package/esm2015/lib/components/components.module.js.map +1 -1
- package/esm2015/lib/components/components.module.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.js +12 -1
- package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
- package/esm2015/lib/components/index.js +1 -0
- package/esm2015/lib/components/index.js.map +1 -1
- package/esm2015/lib/components/index.metadata.json +1 -1
- package/esm2015/lib/components/switch-case/switch-case.component.js +124 -0
- package/esm2015/lib/components/switch-case/switch-case.component.js.map +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/directives/command.directive.js +4 -4
- package/esm2015/lib/directives/command.directive.js.map +1 -1
- package/esm2015/lib/directives/focus-binding.directive.js +3 -3
- package/esm2015/lib/directives/focus-binding.directive.js.map +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
- package/esm2015/lib/place/guards/place.guard.js +4 -3
- package/esm2015/lib/place/guards/place.guard.js.map +1 -1
- package/esm2015/lib/place/place-component.js +2 -2
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-history.js +116 -13
- package/esm2015/lib/place/place-history.js.map +1 -1
- package/esm2015/lib/place/place-history.metadata.json +1 -1
- package/esm2015/lib/place/place-router.js +13 -6
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/route/parameter-definition.class.js +10 -9
- package/esm2015/lib/place/route/parameter-definition.class.js.map +1 -1
- package/esm2015/lib/place/route/visit-sanitiser.js +14 -6
- package/esm2015/lib/place/route/visit-sanitiser.js.map +1 -1
- package/esm2015/lib/place/route/visit-sanitiser.metadata.json +1 -1
- package/esm5/coolon-angular-ui-powerups.js +24 -23
- package/esm5/coolon-angular-ui-powerups.js.map +1 -1
- package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/components.module.js +9 -2
- package/esm5/lib/components/components.module.js.map +1 -1
- package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/forms/abstract-input.component.js +12 -1
- package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm5/lib/components/index.js +1 -0
- package/esm5/lib/components/index.js.map +1 -1
- package/esm5/lib/components/switch-case/switch-case.component.js +144 -0
- package/esm5/lib/components/switch-case/switch-case.component.js.map +1 -0
- package/esm5/lib/components/switch-case/switch-case.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/switch-case/switch-case.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/directives/command.directive.js +4 -4
- package/esm5/lib/directives/command.directive.js.map +1 -1
- package/esm5/lib/directives/focus-binding.directive.js +3 -3
- package/esm5/lib/directives/focus-binding.directive.js.map +1 -1
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm5/lib/place/guards/place.guard.js +5 -4
- package/esm5/lib/place/guards/place.guard.js.map +1 -1
- package/esm5/lib/place/place-component.js +2 -2
- package/esm5/lib/place/place-component.js.map +1 -1
- package/esm5/lib/place/place-history.js +117 -11
- package/esm5/lib/place/place-history.js.map +1 -1
- package/esm5/lib/place/place-router.js +13 -7
- package/esm5/lib/place/place-router.js.map +1 -1
- package/esm5/lib/place/route/parameter-definition.class.js +11 -11
- package/esm5/lib/place/route/parameter-definition.class.js.map +1 -1
- package/esm5/lib/place/route/visit-sanitiser.js +14 -6
- package/esm5/lib/place/route/visit-sanitiser.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +365 -115
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +393 -123
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/forms/abstract-input.component.d.ts +11 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/switch-case/switch-case.component.d.ts +32 -0
- package/lib/place/place-history.d.ts +17 -3
- package/lib/place/route/parameter-definition.class.d.ts +1 -1
- package/lib/place/route/visit-sanitiser.d.ts +3 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.directive.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/directives/command.directive.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,MAAM,EAAW,oBAAoB,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMlH;IAA+C,oCAAgB;IA2B7D,0BAAwC,UAAsB;QAA9D,YACE,iBAAO,SACR;QAFuC,gBAAU,GAAV,UAAU,CAAY;QAxBtD,qBAAe,GAAG,IAAI,oBAAoB,EAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAYzE,+BAAyB,GAAG,KAAK,CAAC;;IAc1C,CAAC;IAvBD,sBAAI,2CAAa;aAIjB;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAND,UAAkB,OAAuC;YACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;;;OAAA;IASD,sBAAI,8CAAgB;aAKpB;YACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;aAPD,UAAqB,KAAQ;YAC3B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC;;;OAAA;IAUD,mCAAQ,GAAR;QACE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa,YAAY,YAAY,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACnC,IAAI,CAAC,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"command.directive.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/directives/command.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { assert, Command, DelegatingValueModel, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n private _command: Command<any> | UnaryCommand<P>;\n private _commandEnabled = new DelegatingValueModel<boolean>().withDefault(false);\n\n @Input()\n set pectinCommand(command: Command<any> | UnaryCommand<P>) {\n this._command = command;\n this._commandEnabled.setDelegate(command ? command.enabled : null);\n }\n get pectinCommand():Command<any> | UnaryCommand<P> {\n return this._command;\n }\n\n private _commandParameter: P;\n private _commandParameterProvided = false;\n\n @Input()\n set commandParameter(value: P) {\n this._commandParameterProvided = true;\n this._commandParameter = value;\n }\n\n get commandParameter(): P {\n return this._commandParameter;\n }\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n if (this.pectinCommand instanceof UnaryCommand) {\n if (!this._commandParameterProvided) {\n lang.illegalState('UnaryCommands require the command parameter to be specified.');\n }\n } else {\n if (this._commandParameterProvided) {\n lang.illegalState('command parameters are only supported by UnaryCommands');\n }\n }\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const { when } = Dsl.disposeWith(this);\n when.valueOf(this._commandEnabled).changes(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n }, {initialValue: 'triggerChange'});\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.enabled.value) {\n if (this.pectinCommand instanceof UnaryCommand) {\n this.pectinCommand.withContext({ event: $event }).execute(this.commandParameter);\n } else {\n this.pectinCommand.withContext({ event: $event }).execute();\n }\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n"]}
|
|
@@ -29,12 +29,12 @@ var FocusBindingDirective = /** @class */ (function (_super) {
|
|
|
29
29
|
var _this = this;
|
|
30
30
|
// TODO: Make this also track the current enabled/disabled state.
|
|
31
31
|
if (this.hasBinding()) {
|
|
32
|
-
var
|
|
33
|
-
|
|
32
|
+
var when = Dsl.disposeWith(this).when;
|
|
33
|
+
when.valueOf(this.pectinFocusBinding.focusContext.focused).changes(function (focused) {
|
|
34
34
|
if (focused && !_this.alreadyHasFocus()) {
|
|
35
35
|
_this.tryAndFocus();
|
|
36
36
|
}
|
|
37
|
-
});
|
|
37
|
+
}, { initialValue: 'triggerChange' });
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
40
|
Logger.get(this).warn('pectinFocusBinding was nil');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-binding.directive.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/directives/focus-binding.directive.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAOzE;IAA2C,yCAAmB;IAqB5D,+BAAiD,EAAc,EAClB,MAAc,EAC7B,QAAa;QAF3C,YAGE,iBAAO,SAGR;QANgD,QAAE,GAAF,EAAE,CAAY;QAClB,YAAM,GAAN,MAAM,CAAQ;QAGzD,kHAAkH;QAClH,KAAI,CAAC,QAAQ,GAAG,QAAoB,CAAC;;IACvC,CAAC;IAnBD,yCAAS,GAAT;QACE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;SACtD;IACH,CAAC;IAGD,0CAAU,GAAV;QACE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;SACvD;IACH,CAAC;IAUD,wCAAQ,GAAR;IACA,CAAC;IAED,+CAAe,GAAf;QAAA,iBAYC;QAXC,iEAAiE;QACjE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACb,IAAA,
|
|
1
|
+
{"version":3,"file":"focus-binding.directive.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/directives/focus-binding.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit } from '@angular/core';\nimport { Dsl, HasFocusTracking, Logger } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusIn();\n }\n }\n\n @HostListener('focusout')\n onFocusOut() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusOut();\n }\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n if (this.hasBinding()) {\n const { when } = Dsl.disposeWith(this);\n when.valueOf(this.pectinFocusBinding.focusContext.focused).changes((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n }, {initialValue: 'triggerChange'});\n } else {\n Logger.get(this).warn('pectinFocusBinding was nil');\n }\n }\n\n private hasBinding() {\n return !!this.pectinFocusBinding && !!this.pectinFocusBinding.focusContext;\n }\n\n// Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.hasBinding() && this.pectinFocusBinding.focusContext.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n"]}
|
|
@@ -17,7 +17,7 @@ var AlertDialogComponent = /** @class */ (function (_super) {
|
|
|
17
17
|
Component({
|
|
18
18
|
selector: 'aup-alert-dialog',
|
|
19
19
|
template: "<h3 matDialogTitle *ngIf=\"alert.title\">{{alert.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of alert.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\" data-cy=\"close-button\">{{alert.ok()}}</button>\n</div>\n",
|
|
20
|
-
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{justify-content:flex-end}"]
|
|
20
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
21
21
|
}),
|
|
22
22
|
__param(0, Inject(ACTIVITY_DATA)),
|
|
23
23
|
__metadata("design:paramtypes", [Object])
|
package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js
CHANGED
|
@@ -35,7 +35,7 @@ var ConfirmThenDialogComponent = /** @class */ (function (_super) {
|
|
|
35
35
|
Component({
|
|
36
36
|
selector: 'aup-confirmation-dialog',
|
|
37
37
|
template: "<h3 matDialogTitle *ngIf=\"confirm.title\">{{confirm.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-button (click)=\"cancel()\" data-cy=\"cancel-button\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\"\n (click)=\"onConfirm()\" data-cy=\"confirm-button\">{{confirm.ok()}}</button>\n</div>\n\n",
|
|
38
|
-
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{justify-content:flex-end}"]
|
|
38
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
39
39
|
}),
|
|
40
40
|
__param(0, Inject(ACTIVITY_DATA)),
|
|
41
41
|
__metadata("design:paramtypes", [Object])
|
package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js
CHANGED
|
@@ -22,7 +22,7 @@ var ConfirmationDialogComponent = /** @class */ (function (_super) {
|
|
|
22
22
|
Component({
|
|
23
23
|
selector: 'aup-confirmation-dialog',
|
|
24
24
|
template: "<h3 matDialogTitle *ngIf=\"confirm.title\">{{confirm.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-button (click)=\"cancel()\" data-cy=\"cancel-button\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\"\n (click)=\"done()\" data-cy=\"confirm-button\">{{confirm.ok()}}</button>\n</div>\n\n",
|
|
25
|
-
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{justify-content:flex-end}"]
|
|
25
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
26
26
|
}),
|
|
27
27
|
__param(0, Inject(ACTIVITY_DATA)),
|
|
28
28
|
__metadata("design:paramtypes", [Object])
|
|
@@ -28,19 +28,20 @@ var PlaceGuard = /** @class */ (function () {
|
|
|
28
28
|
return __generator(this, function (_a) {
|
|
29
29
|
switch (_a.label) {
|
|
30
30
|
case 0: return [4 /*yield*/, this.cleanInteractionState(activatedRoute, state, function () { return __awaiter(_this, void 0, void 0, function () {
|
|
31
|
-
var params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
|
|
31
|
+
var params, parsedParams, navigationSession, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
|
|
32
32
|
return __generator(this, function (_a) {
|
|
33
33
|
switch (_a.label) {
|
|
34
34
|
case 0:
|
|
35
35
|
params = new ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);
|
|
36
36
|
parsedParams = placeDefinition.parseRouteParams(params);
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
navigationSession = this.placeRouter.navigationSession;
|
|
38
|
+
initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
|
|
39
|
+
sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
|
|
39
40
|
return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
|
|
40
41
|
case 1:
|
|
41
42
|
sanitisedVisit = _a.sent();
|
|
42
43
|
// Save the visit with any updated parameters. We need to save it so we remember any non route parameters
|
|
43
|
-
|
|
44
|
+
navigationSession.storeVisit(sanitisedVisit);
|
|
44
45
|
if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {
|
|
45
46
|
urlSnapshot = this.urlService.parseUrl(state.url).updateVisitSegments(sanitisedVisit);
|
|
46
47
|
// console.log('##### Place Guard Redirect', urlSnapshot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.guard.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/guards/place.guard.ts"],"names":[],"mappings":";AAUA,OAAO,EAAE,IAAI,EAAS,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE;IAGE,oBAA6B,MAAc,EACvB,UAAsB,EACb,WAAwB,EACxB,YAA0B,EAC1B,kBAAsC,EACtC,QAAkB;QALlB,WAAM,GAAN,MAAM,CAAQ;QACvB,eAAU,GAAV,UAAU,CAAY;QACb,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,aAAQ,GAAR,QAAQ,CAAU;IAC/C,CAAC;IAED,WAAW;IACL,gCAAW,GAAjB,UAAkB,cAAsC,EAAE,KAA0B;;;;gBAElF,yGAAyG;gBACzG,6DAA6D;gBAC7D,sBAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,UAAO,eAAe;;;;;wCAE3D,qBAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,KAAK,EAAE;;;;;oDAE/D,MAAM,GAAG,IAAI,wBAAwB,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;oDACnF,YAAY,GAAG,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oDAExD,
|
|
1
|
+
{"version":3,"file":"place.guard.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/guards/place.guard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlSerializer,\n UrlTree\n} from '@angular/router';\nimport { lang, Trace } from '@coolon/pectin';\nimport { Observable } from 'rxjs';\nimport { InteractionService } from '../../interaction/services/interaction.service';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\nimport { PlaceHistory } from '../place-history';\nimport { PlaceRouter } from '../place-router';\nimport { VisitSanitiser } from '../route/visit-sanitiser';\nimport { UrlService } from '../url-service';\nimport { UrlSnapshot } from '../url-snapshot';\nimport { Visit } from '../visit';\nimport { ConsolidatedParameterMap } from './consolidated-param-map';\n\n\nexport abstract class PlaceGuard implements CanActivate, CanDeactivate<PlaceComponent> {\n\n\n constructor(private readonly router: Router,\n private urlService: UrlService,\n private readonly placeRouter: PlaceRouter,\n private readonly placeHistory: PlaceHistory,\n private readonly interactionService: InteractionService,\n private readonly injector: Injector) {\n }\n\n // @Trace()\n async canActivate(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {\n\n // TODO: this is ugly now that I'm return UrlSnapshots and not UrlTrees. It'd be better if the functions\n // weren't nested or if I implemented a handler chain.\n return this.authorisePlaceThen(activatedRoute, state, async (placeDefinition) => {\n\n const result = await this.cleanInteractionState(activatedRoute, state, async () => {\n // Parse our route params.\n const params = new ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);\n const parsedParams = placeDefinition.parseRouteParams(params);\n\n const navigationSession = this.placeRouter.navigationSession;\n const initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);\n const sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);\n const sanitisedVisit = await sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams));\n\n // Save the visit with any updated parameters. We need to save it so we remember any non route parameters\n navigationSession.storeVisit(sanitisedVisit);\n if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {\n // Regenerate the url\n const urlSnapshot = this.urlService.parseUrl(state.url).updateVisitSegments(sanitisedVisit);\n // console.log('##### Place Guard Redirect', urlSnapshot);\n return urlSnapshot;\n } else {\n return true;\n }\n });\n return this.handleGuardResult(result);\n\n });\n }\n\n // @Trace()\n async canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Promise<boolean | UrlTree> {\n const currentUrl = this.urlService.parseUrl(currentState.url);\n const nextUrl = this.urlService.parseUrl(nextState.url);\n const result = await this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);\n return this.handleGuardResult(result);\n }\n\n // @Trace()\n private handleGuardResult(result) {\n if (result instanceof UrlSnapshot) {\n return result.urlTree;\n } else {\n return result;\n }\n }\n\n // @Trace()\n protected async authorisePlaceThen(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot, runPlaceGuards: (placeDefinition: PlaceDefinition) => Promise<boolean | UrlTree>) {\n if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {\n const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);\n const authoriseResult = placeDefinition.authenticate ? await this.isAuthorised(activatedRoute, state) : true;\n if (authoriseResult === true) {\n // we're authorised, now run the place guards.\n return runPlaceGuards(placeDefinition);\n } else {\n console.log('not authorised result', authoriseResult);\n return authoriseResult;\n }\n } else {\n return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);\n }\n }\n\n // @Trace()\n async isAuthorised(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {\n const authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);\n return (authorised instanceof Observable) ? authorised.toPromise() : authorised;\n }\n\n abstract getAuthGuard(injector: Injector): CanActivate;\n\n // @Trace()\n async cleanInteractionState(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, then: () => Promise<boolean | UrlSnapshot>): Promise<boolean | UrlSnapshot> {\n const url = this.urlService.parseUrl(state.url);\n if (!this.interactionService.isActive() && url.hasInteractions()) {\n // This happens if we reload the page or the url was pasted as the route should only be activated\n // after the interaction context has become active.\n return url.removeInteractionIds();\n } else {\n return then();\n }\n }\n\n}\n"]}
|
|
@@ -49,11 +49,11 @@ var PlaceComponent = /** @class */ (function (_super) {
|
|
|
49
49
|
var binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
50
50
|
toRight: function (visit) {
|
|
51
51
|
var value = visit.getParameter(parameterDef.name);
|
|
52
|
-
console.log('push to component', { name: parameterDef.name, value
|
|
52
|
+
// console.log('push to component', { name: parameterDef.name, value, visit });
|
|
53
53
|
return value;
|
|
54
54
|
},
|
|
55
55
|
toLeft: function (value, currentVisit) {
|
|
56
|
-
console.log('push to route', { name: parameterDef.name, value
|
|
56
|
+
// console.log('push to route', { name: parameterDef.name, value, currentVisit });
|
|
57
57
|
return currentVisit.replace(parameterDef, value);
|
|
58
58
|
}
|
|
59
59
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,MAAM,EACN,OAAO,EAEP,YAAY,EACZ,GAAG,EACH,KAAK,EAEL,IAAI,EACJ,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,8CAA8C;AAC9C,MAAM,CAAC,IAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,qBAAqB;AACrB,MAAM,CAAC,IAAM,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAGzE;IAAoC,kCAAmB;IASrD;QAAA,YACE,iBAAO,SACR;QATO,gBAAU,GAAG,IAAI,iBAAiB,EAAS,CAAC;QAC5C,oBAAc,GAAG,IAAI,KAAK,EAAE,CAAC;;IAQrC,CAAC;uBAXU,cAAc;IAazB,WAAW;IACJ,wCAAe,GAAtB,UAAuB,KAAY,EAAE,kBAA4D;QAAjG,iBAWC;QAVC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAA,iCAAI,CAA2B;QAEvC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,gBAAa,CAAC,CAAC;QAC3F,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,UAAA,YAAY,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAjC,CAAiC,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,OAAO,EAAC,QAAQ;YACrD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC;IACpC,CAAC;IAEM,oCAAW,GAAlB,UAAmB,KAAY;QAA/B,iBAMC;QALC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAC5B,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sCAAa,GAAb;QACE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,WAAW;IACH,uCAAc,GAAtB,UAA6B,YAAuC;QAClE,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAwB,CAAC;QACrE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAK,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,SAAI,YAAY,CAAC,YAAc,CAAC,CAAC;QAC/F,IAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;YAC1E,OAAO,EAAP,UAAQ,KAAY;gBAClB,IAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACpD
|
|
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 { Directive } from '@angular/core';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel\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\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n\n interactionContext?: InteractionContext;\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n }\n\n // @Trace()\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous:Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.get(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));\n when.valueOf(this.visitModel).changes((current,previous) => {\n notifyVisitChanged(current, previous);\n }, {unless: this._inVisitUpdate});\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\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.visitModel, 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\n binding.writeRight();\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) as ParameterDefinition<any>[];\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,22 +1,36 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
+
import { assert } from '@coolon/pectin';
|
|
3
4
|
import _ from 'lodash';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
var PlaceHistory = /** @class */ (function () {
|
|
6
7
|
function PlaceHistory() {
|
|
7
|
-
this.
|
|
8
|
+
this._archive = new Map();
|
|
9
|
+
this.placeHistoryDepth = 4;
|
|
8
10
|
}
|
|
9
|
-
|
|
10
|
-
PlaceHistory.prototype.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
history.unshift(state); // LIFO
|
|
15
|
-
this.setHistory(state.placeDefinition, history.slice(0, 3)); // limit our history to 4 visits
|
|
11
|
+
PlaceHistory_1 = PlaceHistory;
|
|
12
|
+
PlaceHistory.prototype.notifyNavigationStarted = function () {
|
|
13
|
+
if (this._activeVisits) {
|
|
14
|
+
this.archive(this._activeVisits.visits);
|
|
15
|
+
this._previousVisits = this._activeVisits;
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
+
PlaceHistory.prototype.notifyNavigationFinished = function (visits) {
|
|
19
|
+
this._activeVisits = new PlaceHistory_1.VisitRecord(visits);
|
|
20
|
+
};
|
|
21
|
+
PlaceHistory.prototype.updateVisit = function (visit) {
|
|
22
|
+
assert.isTruthy(this._activeVisits);
|
|
23
|
+
this._activeVisits.update(visit);
|
|
24
|
+
};
|
|
25
|
+
PlaceHistory.prototype.lastVisitIncluded = function (placeDef) {
|
|
26
|
+
var _a;
|
|
27
|
+
return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
|
|
28
|
+
};
|
|
29
|
+
PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
|
|
30
|
+
return _.first(this.getHistory(placeDef));
|
|
31
|
+
};
|
|
18
32
|
PlaceHistory.prototype.getHistory = function (placeDef) {
|
|
19
|
-
var history = this.
|
|
33
|
+
var history = this._archive.get(placeDef);
|
|
20
34
|
if (!history) {
|
|
21
35
|
history = [];
|
|
22
36
|
this.setHistory(placeDef, history);
|
|
@@ -24,10 +38,22 @@ var PlaceHistory = /** @class */ (function () {
|
|
|
24
38
|
return history;
|
|
25
39
|
};
|
|
26
40
|
PlaceHistory.prototype.setHistory = function (placeDef, history) {
|
|
27
|
-
this.
|
|
41
|
+
this._archive.set(placeDef, history);
|
|
42
|
+
};
|
|
43
|
+
PlaceHistory.prototype.archive = function (visits) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
visits.forEach(function (state) {
|
|
46
|
+
var history = _this.getHistory(state.placeDefinition);
|
|
47
|
+
var previousState = _.first(history);
|
|
48
|
+
if (!previousState || state.hasChangedFrom(previousState)) {
|
|
49
|
+
history.unshift(state); // LIFO
|
|
50
|
+
_this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
|
|
51
|
+
}
|
|
52
|
+
});
|
|
28
53
|
};
|
|
54
|
+
var PlaceHistory_1;
|
|
29
55
|
PlaceHistory.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlaceHistory_Factory() { return new PlaceHistory(); }, token: PlaceHistory, providedIn: "root" });
|
|
30
|
-
PlaceHistory = __decorate([
|
|
56
|
+
PlaceHistory = PlaceHistory_1 = __decorate([
|
|
31
57
|
Injectable({
|
|
32
58
|
providedIn: 'root'
|
|
33
59
|
}),
|
|
@@ -36,4 +62,84 @@ var PlaceHistory = /** @class */ (function () {
|
|
|
36
62
|
return PlaceHistory;
|
|
37
63
|
}());
|
|
38
64
|
export { PlaceHistory };
|
|
65
|
+
(function (PlaceHistory) {
|
|
66
|
+
var VisitRecord = /** @class */ (function () {
|
|
67
|
+
function VisitRecord(visits) {
|
|
68
|
+
this.visits = visits;
|
|
69
|
+
}
|
|
70
|
+
VisitRecord.prototype.update = function (visit) {
|
|
71
|
+
this.visits = this.visits.filter(function (v) { return v.placeDefinition !== visit.placeDefinition; }).concat(visit);
|
|
72
|
+
};
|
|
73
|
+
VisitRecord.prototype.getVisitFor = function (placeDef) {
|
|
74
|
+
return this.visits.find(function (v) { return v.placeDefinition === placeDef; });
|
|
75
|
+
};
|
|
76
|
+
return VisitRecord;
|
|
77
|
+
}());
|
|
78
|
+
PlaceHistory.VisitRecord = VisitRecord;
|
|
79
|
+
// export class Query {
|
|
80
|
+
// private _history: Visit.State[];
|
|
81
|
+
// private _places: Place[];
|
|
82
|
+
// private _predicate: (visit: any) => boolean;
|
|
83
|
+
// private _limit: number;
|
|
84
|
+
//
|
|
85
|
+
// constructor(history, limit = history.length) {
|
|
86
|
+
// this._history = history;
|
|
87
|
+
// this._places = [];
|
|
88
|
+
// this._predicate = (visit => true);
|
|
89
|
+
// this._limit = limit;
|
|
90
|
+
// }
|
|
91
|
+
//
|
|
92
|
+
// to(...places:Place[]):this {
|
|
93
|
+
// this._places = places;
|
|
94
|
+
// return this;
|
|
95
|
+
// }
|
|
96
|
+
//
|
|
97
|
+
// with(parameters: { [parameter: string]: any }): this {
|
|
98
|
+
// this.matching(state => {
|
|
99
|
+
// return Object.keys(parameters).reduce((acc, key) => {
|
|
100
|
+
// const matchValue = parameters[key];
|
|
101
|
+
// const visitValue = state.get(key);
|
|
102
|
+
// const matched = matchValue === '*' ? !_.isNil(visitValue) : visitValue == matchValue;
|
|
103
|
+
// // Logger.get(this).info(`matched=${matched}`, parameters, visitValue);
|
|
104
|
+
// return acc && matched;
|
|
105
|
+
// }, true);
|
|
106
|
+
// });
|
|
107
|
+
// return this;
|
|
108
|
+
// }
|
|
109
|
+
//
|
|
110
|
+
// last(): Visit.State {
|
|
111
|
+
// return _.findLast(this._history, visit => this._matches(visit))
|
|
112
|
+
// }
|
|
113
|
+
//
|
|
114
|
+
// // @trace
|
|
115
|
+
// allThatMatch(): Visit.State[] {
|
|
116
|
+
// return _.filter(this._history, visit => this._matches(visit)).slice(-this._limit);
|
|
117
|
+
// }
|
|
118
|
+
//
|
|
119
|
+
// // @trace
|
|
120
|
+
// mostRecentValueOf<T=any>(param: string, defaultValue: T = null): T {
|
|
121
|
+
// const lastStateWithParam = _.findLast(this.allThatMatch(), state => !_.isNil(state.get(param)));
|
|
122
|
+
// return _.isNil(lastStateWithParam) ? defaultValue : lastStateWithParam.get(param);
|
|
123
|
+
// }
|
|
124
|
+
//
|
|
125
|
+
// limit(limit: number): this {
|
|
126
|
+
// this._limit = limit;
|
|
127
|
+
// return this;
|
|
128
|
+
// }
|
|
129
|
+
//
|
|
130
|
+
// matching(predicate: (visit: Visit.State) => boolean): this {
|
|
131
|
+
// this._predicate = predicate;
|
|
132
|
+
// return this;
|
|
133
|
+
// }
|
|
134
|
+
//
|
|
135
|
+
// _matches(visit: Visit.State) {
|
|
136
|
+
// return this._isPlaceMatch(visit) && this._predicate(visit);
|
|
137
|
+
// }
|
|
138
|
+
//
|
|
139
|
+
// _isPlaceMatch(visit: Visit.State) {
|
|
140
|
+
// return this._places.length < 1 || this._places.includes(visit.place)
|
|
141
|
+
// }
|
|
142
|
+
//
|
|
143
|
+
// }
|
|
144
|
+
})(PlaceHistory || (PlaceHistory = {}));
|
|
39
145
|
//# sourceMappingURL=place-history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-history.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-history.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"place-history.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { assert, Trace } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { PlaceDefinition } from './place-definition';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceHistory {\n\n private _activeVisits: PlaceHistory.VisitRecord;\n private _previousVisits: PlaceHistory.VisitRecord;\n\n private _archive = new Map<PlaceDefinition, Visit[]>();\n private readonly placeHistoryDepth: number = 4;\n\n constructor() {\n }\n\n notifyNavigationStarted() {\n if (this._activeVisits) {\n this.archive(this._activeVisits.visits);\n this._previousVisits = this._activeVisits;\n }\n }\n\n notifyNavigationFinished(visits: Visit[]) {\n this._activeVisits = new PlaceHistory.VisitRecord(visits);\n }\n\n updateVisit(visit: Visit) {\n assert.isTruthy(this._activeVisits);\n this._activeVisits.update(visit);\n }\n\n lastVisitIncluded(placeDef: PlaceDefinition): boolean {\n return !!this._previousVisits?.getVisitFor(placeDef);\n }\n\n getMostRecentVisitFor(placeDef: PlaceDefinition) {\n return _.first(this.getHistory(placeDef));\n }\n\n getHistory(placeDef: PlaceDefinition): Visit[] {\n let history = this._archive.get(placeDef);\n if (!history) {\n history = [];\n this.setHistory(placeDef, history);\n }\n return history;\n }\n\n private setHistory(placeDef: PlaceDefinition, history: Visit[]) {\n this._archive.set(placeDef, history);\n }\n\n protected archive(visits: Visit[]) {\n visits.forEach(state => {\n const history = this.getHistory(state.placeDefinition);\n const previousState = _.first(history);\n if (!previousState || state.hasChangedFrom(previousState)) {\n history.unshift(state); // LIFO\n this.setHistory(state.placeDefinition, history.slice(0, this.placeHistoryDepth));\n }\n });\n }\n\n\n}\n\nexport namespace PlaceHistory {\n\n export class VisitRecord {\n constructor(public visits: Visit[]) {\n }\n\n update(visit: Visit) {\n this.visits = this.visits.filter(v => v.placeDefinition !== visit.placeDefinition).concat(visit);\n }\n\n getVisitFor(placeDef: PlaceDefinition): Visit | undefined {\n return this.visits.find(v => v.placeDefinition === placeDef);\n }\n }\n\n // export class Query {\n // private _history: Visit.State[];\n // private _places: Place[];\n // private _predicate: (visit: any) => boolean;\n // private _limit: number;\n //\n // constructor(history, limit = history.length) {\n // this._history = history;\n // this._places = [];\n // this._predicate = (visit => true);\n // this._limit = limit;\n // }\n //\n // to(...places:Place[]):this {\n // this._places = places;\n // return this;\n // }\n //\n // with(parameters: { [parameter: string]: any }): this {\n // this.matching(state => {\n // return Object.keys(parameters).reduce((acc, key) => {\n // const matchValue = parameters[key];\n // const visitValue = state.get(key);\n // const matched = matchValue === '*' ? !_.isNil(visitValue) : visitValue == matchValue;\n // // Logger.get(this).info(`matched=${matched}`, parameters, visitValue);\n // return acc && matched;\n // }, true);\n // });\n // return this;\n // }\n //\n // last(): Visit.State {\n // return _.findLast(this._history, visit => this._matches(visit))\n // }\n //\n // // @trace\n // allThatMatch(): Visit.State[] {\n // return _.filter(this._history, visit => this._matches(visit)).slice(-this._limit);\n // }\n //\n // // @trace\n // mostRecentValueOf<T=any>(param: string, defaultValue: T = null): T {\n // const lastStateWithParam = _.findLast(this.allThatMatch(), state => !_.isNil(state.get(param)));\n // return _.isNil(lastStateWithParam) ? defaultValue : lastStateWithParam.get(param);\n // }\n //\n // limit(limit: number): this {\n // this._limit = limit;\n // return this;\n // }\n //\n // matching(predicate: (visit: Visit.State) => boolean): this {\n // this._predicate = predicate;\n // return this;\n // }\n //\n // _matches(visit: Visit.State) {\n // return this._isPlaceMatch(visit) && this._predicate(visit);\n // }\n //\n // _isPlaceMatch(visit: Visit.State) {\n // return this._places.length < 1 || this._places.includes(visit.place)\n // }\n //\n // }\n\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { __awaiter, __decorate, __extends, __generator, __metadata, __read, __sp
|
|
|
2
2
|
import { Location } from '@angular/common';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
|
5
|
-
import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel } from '@coolon/pectin';
|
|
5
|
+
import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
|
|
6
6
|
import { InteractionService } from '../interaction/services/interaction.service';
|
|
7
7
|
import { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';
|
|
8
8
|
import { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';
|
|
@@ -12,6 +12,7 @@ import { NavigationContext } from './navigation/session/navigation-context';
|
|
|
12
12
|
import { PopStateNavigation } from './navigation/session/pop-state-navigation';
|
|
13
13
|
import { PlaceHistory } from './place-history';
|
|
14
14
|
import { UrlService } from './url-service';
|
|
15
|
+
import { Visit } from './visit';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "@angular/router";
|
|
17
18
|
import * as i2 from "@angular/common";
|
|
@@ -213,14 +214,11 @@ var PlaceRouter = /** @class */ (function (_super) {
|
|
|
213
214
|
enumerable: true,
|
|
214
215
|
configurable: true
|
|
215
216
|
});
|
|
216
|
-
// @Trace()
|
|
217
217
|
PlaceRouter.prototype.pushVisitChangesToRoute = function (previous, next) {
|
|
218
218
|
return __awaiter(this, void 0, void 0, function () {
|
|
219
219
|
var _this = this;
|
|
220
220
|
return __generator(this, function (_a) {
|
|
221
|
-
|
|
222
|
-
// when it's been cleared by the user.
|
|
223
|
-
this.placeHistory.add(next);
|
|
221
|
+
this.placeHistory.updateVisit(next);
|
|
224
222
|
// FIXME: no route id -> route id duplicates route parameters
|
|
225
223
|
if (next.hasRoutingChangedFrom(previous)) {
|
|
226
224
|
return [2 /*return*/, this.doNavigation(next, function (router) {
|
|
@@ -242,6 +240,9 @@ var PlaceRouter = /** @class */ (function (_super) {
|
|
|
242
240
|
// @Trace()
|
|
243
241
|
PlaceRouter.prototype.transitionTo = function (next) {
|
|
244
242
|
var previous = this.navigationSessionModel.value;
|
|
243
|
+
if (!previous) {
|
|
244
|
+
this.placeHistory.notifyNavigationStarted();
|
|
245
|
+
}
|
|
245
246
|
assert.isTruthy(next !== previous);
|
|
246
247
|
Logger.get(this).info("### Router State Transition: " + (previous ? previous.toString() : 'null') + " -> " + next.toString());
|
|
247
248
|
this.navigationSessionModel.value = next;
|
|
@@ -252,10 +253,9 @@ var PlaceRouter = /** @class */ (function (_super) {
|
|
|
252
253
|
};
|
|
253
254
|
// @Trace()
|
|
254
255
|
PlaceRouter.prototype.routingSessionFinished = function (visits) {
|
|
255
|
-
var _this = this;
|
|
256
256
|
if (visits && visits.length > 0) {
|
|
257
257
|
assert.isTruthy(this.navigationInProgress.value);
|
|
258
|
-
|
|
258
|
+
this.placeHistory.notifyNavigationFinished(visits);
|
|
259
259
|
// We update the active visits before we finish the session so the
|
|
260
260
|
// place outlets can ignore the incoming changes until things are
|
|
261
261
|
// settled. TODO: can we removed the event'ness here and just do a push?
|
|
@@ -314,6 +314,12 @@ var PlaceRouter = /** @class */ (function (_super) {
|
|
|
314
314
|
{ type: PlaceHistory }
|
|
315
315
|
]; };
|
|
316
316
|
PlaceRouter.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.InteractionService), i0.ɵɵinject(i4.UrlService), i0.ɵɵinject(i5.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
|
|
317
|
+
__decorate([
|
|
318
|
+
Trace(),
|
|
319
|
+
__metadata("design:type", Function),
|
|
320
|
+
__metadata("design:paramtypes", [Visit, Visit]),
|
|
321
|
+
__metadata("design:returntype", Promise)
|
|
322
|
+
], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
|
|
317
323
|
PlaceRouter = __decorate([
|
|
318
324
|
Injectable({
|
|
319
325
|
providedIn: 'root'
|