@coolon/angular-ui-powerups 0.0.7 → 0.0.8
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 +3 -3
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm2015/lib/place/components/empty-state/empty-state.component.js +1 -1
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm5/lib/place/components/empty-state/empty-state.component.js +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +3 -3
- package/fesm5/coolon-angular-ui-powerups.js +3 -3
- package/package.json +1 -1
- package/styles/styles.scss +15 -0
|
@@ -1148,7 +1148,7 @@
|
|
|
1148
1148
|
{ type: core.Component, args: [{
|
|
1149
1149
|
selector: 'angular-ui-powerups-alert-dialog',
|
|
1150
1150
|
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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n",
|
|
1151
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1151
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1152
1152
|
}] }
|
|
1153
1153
|
];
|
|
1154
1154
|
/** @nocollapse */
|
|
@@ -1196,7 +1196,7 @@
|
|
|
1196
1196
|
{ type: core.Component, args: [{
|
|
1197
1197
|
selector: 'angular-ui-powerups-confirmation-dialog',
|
|
1198
1198
|
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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n",
|
|
1199
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1199
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1200
1200
|
}] }
|
|
1201
1201
|
];
|
|
1202
1202
|
/** @nocollapse */
|
|
@@ -1809,7 +1809,7 @@
|
|
|
1809
1809
|
{ type: core.Component, args: [{
|
|
1810
1810
|
selector: 'angular-ui-powerups-empty-state',
|
|
1811
1811
|
template: "\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ",
|
|
1812
|
-
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1812
|
+
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1813
1813
|
}] }
|
|
1814
1814
|
];
|
|
1815
1815
|
/** @nocollapse */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core"),require("@angular/forms"),require("@angular/material"),require("@angular/platform-browser"),require("@angular/platform-browser/animations"),require("@coolon/pectin"),require("@angular/cdk/portal"),require("@coolon/pectin/lib/promise/deferred.class"),require("@angular/material/dialog"),require("@angular/router"),require("@angular/animations"),require("resize-observer-polyfill"),require("@typescript-plus/fast-memoize-decorator"),require("lodash"),require("reflect-metadata"),require("@coolon/typescript-utilities"),require("@typescript-plus/fast-memoize-decorator/dist/src")):"function"==typeof define&&define.amd?define("@coolon/angular-ui-powerups",["exports","@angular/common","@angular/core","@angular/forms","@angular/material","@angular/platform-browser","@angular/platform-browser/animations","@coolon/pectin","@angular/cdk/portal","@coolon/pectin/lib/promise/deferred.class","@angular/material/dialog","@angular/router","@angular/animations","resize-observer-polyfill","@typescript-plus/fast-memoize-decorator","lodash","reflect-metadata","@coolon/typescript-utilities","@typescript-plus/fast-memoize-decorator/dist/src"],e):e(((t=t||self).coolon=t.coolon||{},t.coolon["angular-ui-powerups"]={}),t.ng.common,t.ng.core,t.ng.forms,t.ng.material,t.ng.platformBrowser,t.ng.platformBrowser.animations,t.pectin,t.ng.cdk.portal,t.deferred_class,t.ng.material.dialog,t.ng.router,t.ng.animations,t.ResizeObserver,t.fastMemoizeDecorator,t.lodash,null,t.typescriptUtilities,t.src)}(this,function(t,e,n,r,o,i,a,s,u,c,l,p,f,d,m,y,g,h,v){"use strict";d=d&&d.hasOwnProperty("default")?d.default:d;var b=function(t,e){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function I(t,e){function n(){this.constructor=t}b(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var w=function(){return(w=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function C(t,e,n,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function M(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function P(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function s(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){t.done?o(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function R(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function E(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}var O=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return I(e,t),e.prototype.ngOnDestroy=function(){this.dispose()},e}(s.GarbageCollector),D=(new s.MutableListModel).readonly,A=function(t){function e(){var e=t.call(this)||this;e.focus=new n.EventEmitter,e.blur=new n.EventEmitter,e.enterKey=new n.EventEmitter,e.escapeKey=new n.EventEmitter;var r=e;return e.errorStateMatcher={isErrorState:function(t,e){return r.hasErrors()}},e}return I(e,t),e.prototype.notifyClick=function(){this.safelyInvoke(this.clickCommand)},e.prototype.notifyFocusIn=function(){this.safelyInvoke(this.focusCommand),this.focus.emit()},e.prototype.notifyFocusOut=function(){this.safelyInvoke(this.blurCommand),this.blur.emit()},e.prototype.notifyEnterKey=function(){this.safelyInvoke(this.enterCommand),this.enterKey.emit()},e.prototype.notifyEscapeKey=function(){this.safelyInvoke(this.escapeCommand),this.escapeKey.emit()},e.prototype.safelyInvoke=function(t){t&&t.isEnabled()&&t.execute()},e.prototype.ngOnInit=function(){},e.prototype.isEnabled=function(){return this.enabled.value},Object.defineProperty(e.prototype,"enabled",{get:function(){return this.valueModel.enabled||s.Constant.TRUE},enumerable:!0,configurable:!0}),e.prototype.hasErrors=function(){return!this.errorList.query().isEmpty()},Object.defineProperty(e.prototype,"errorList",{get:function(){return this.valueModel.errorList||D},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstError",{get:function(){return this.hasErrors()?this.errorList.value[0]:null},enumerable:!0,configurable:!0}),e.propDecorators={valueModel:[{type:n.Input}],label:[{type:n.Input}],floatLabel:[{type:n.Input}],hint:[{type:n.Input}],placeholder:[{type:n.Input}],focusCommand:[{type:n.Input,args:["command.focus"]}],blurCommand:[{type:n.Input,args:["command.blur"]}],enterCommand:[{type:n.Input,args:["command.enter"]}],escapeCommand:[{type:n.Input,args:["command.escape"]}],clickCommand:[{type:n.Input,args:["command.click"]}],focus:[{type:n.Output}],blur:[{type:n.Output}],enterKey:[{type:n.Output}],escapeKey:[{type:n.Output}],notifyClick:[{type:n.HostListener,args:["click"]}],notifyFocusIn:[{type:n.HostListener,args:["focusin"]}],notifyFocusOut:[{type:n.HostListener,args:["focusout"]}]},C([s.UseDelegate(),M("design:type",s.MutableValueModel)],e.prototype,"valueModel",void 0),e}(O);var j=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-number-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input type="number"\n matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),F=function(t){function e(e){var n=t.call(this)||this;return n.elementRef=e,n}return I(e,t),e.prototype.ngOnInit=function(){s.assert.notNil(this.pectinCommand)},e.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).chain.value(this.pectinCommand.enabled).subscribe(function(e){e?(t.elementRef.nativeElement.removeAttribute("disabled"),"A"===t.elementRef.nativeElement.tagName&&t.elementRef.nativeElement.setAttribute("href","javascript:void")):(t.elementRef.nativeElement.setAttribute("disabled","disabled"),"A"===t.elementRef.nativeElement.tagName&&t.elementRef.nativeElement.removeAttribute("href"))})},e.prototype.ngOnDestroy=function(){this.dispose()},e.prototype.notifyClick=function(t){t.preventDefault(),t.stopPropagation(),this.pectinCommand.isEnabled()?this.pectinCommand.execute({event:t}):console.warn("disabled command clicked, ignoring.")},e.decorators=[{type:n.Directive,args:[{selector:"[pectinCommand]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef,decorators:[{type:n.Inject,args:[n.ElementRef]}]}]},e.propDecorators={pectinCommand:[{type:n.Input}],notifyClick:[{type:n.HostListener,args:["click",["$event"]]}]},e}(s.GarbageCollector);var T=function(t){function r(e,n,r){var o=t.call(this)||this;return o.el=e,o.ngZone=n,o.document=r,o}return I(r,t),r.prototype.onFocusIn=function(){this.pectinFocusBinding.focusCallbacks.notifyFocusIn()},r.prototype.onFocusOut=function(){this.pectinFocusBinding.focusCallbacks.notifyFocusOut()},r.prototype.ngOnInit=function(){},r.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).chain.value(this.pectinFocusBinding.focused).subscribe(function(e){e&&!t.alreadyHasFocus()&&t.tryAndFocus()})},r.prototype.alreadyHasFocus=function(){return this.isFocused(this.focusTarget)},r.prototype.isFocused=function(t){return this.document.activeElement===t},r.prototype.tryAndFocus=function(t){var e=this;void 0===t&&(t=5),this.modelShouldStillHaveFocus()&&this.canFocus()&&(this.alreadyHasFocus()||this.focusTarget.focus(),this.alreadyHasFocus()||(s.Logger.get(this).log("focus failed, trying "+t+" more times"),t>0?requestAnimationFrame(function(){e.tryAndFocus(t-1)}):s.Logger.get(this).warn("Tried to focus but gave up as the component wasn't enabled or visible.")))},Object.defineProperty(r.prototype,"focusTarget",{get:function(){return this.focusBindingTarget||this.el.nativeElement},enumerable:!0,configurable:!0}),r.prototype.modelShouldStillHaveFocus=function(){return this.pectinFocusBinding.focused.value},r.prototype.canFocus=function(){var t=this.focusTarget.getBoundingClientRect();return t.height>=0&&t.height>=0&&!this.focusTarget.disabled},r.decorators=[{type:n.Directive,args:[{selector:"[pectinFocusBinding]"}]}],r.ctorParameters=function(){return[{type:n.ElementRef,decorators:[{type:n.Inject,args:[n.ElementRef]}]},{type:n.NgZone,decorators:[{type:n.Inject,args:[n.NgZone]}]},{type:void 0,decorators:[{type:n.Inject,args:[e.DOCUMENT]}]}]},r.propDecorators={pectinFocusBinding:[{type:n.Input}],focusBindingTarget:[{type:n.Input}],onFocusIn:[{type:n.HostListener,args:["focusin"]}],onFocusOut:[{type:n.HostListener,args:["focusout"]}]},r}(O);var L=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-string-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),_=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-password-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input type="password"\n matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),x=function(t){function e(){var e=t.call(this)||this;return e.optionLabelFormat=function(t){return t&&e.optionLabel?t[e.optionLabel]:t},e}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-select-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <mat-select placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-option *ngFor="let option of optionsModel.value" [value]="option">{{optionLabelFormat(option)}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n',styles:[":host{display:inline-block}mat-form-field{width:100%}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={optionsModel:[{type:n.Input}],options:[{type:n.Input}],optionLabel:[{type:n.Input}],optionLabelFormat:[{type:n.Input}]},C([s.UseDelegate(),M("design:type",s.ListModel)],e.prototype,"optionsModel",void 0),C([s.StoreInListModel("optionsModel"),M("design:type",Array)],e.prototype,"options",void 0),e}(A);var k=new n.InjectionToken("InteractionContext"),S=function(){};var B=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._doneListeners=new s.EventListenerList,e._cancelListeners=new s.EventListenerList,e._finishListeners=new s.EventListenerList,e._busyModel=(new s.DelegatingValueModel).withDefault(!1),e}return I(e,t),e.prototype.onDone=function(t){this._doneListeners.add(t)},e.prototype.onCancel=function(t){this._cancelListeners.add(t)},e.prototype.done=function(t){var e=this;return this._doneListeners.fireAndWait(function(e){return e(t)}).finally(function(){return e.finalizeAndDispose()})},e.prototype.cancel=function(t){var e=this;return this._cancelListeners.fireAndWait(function(e){return e(t)}).finally(function(){return e.finalizeAndDispose()})},e.prototype.finalizeAndDispose=function(){this._finishListeners.fire(function(t){return t()}),[this._finishListeners,this._doneListeners,this._cancelListeners].forEach(function(t){return t.dispose()})},Object.defineProperty(e.prototype,"busy",{get:function(){return this._busyModel.readonly},enumerable:!0,configurable:!0}),e.prototype.busyWhile=function(t){this._busyModel.setDelegate(t)},e.prototype.isBusy=function(){return this._busyModel.value},e}(O);var K=new n.InjectionToken("InteractionActivityData");var N=function(t){function e(e){var n=t.call(this)||this;return n.alert=e,n}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-alert-dialog",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<p matDialogActions>\n <button mat-raised-button color="primary" (click)="done()">{{alert.ok()}}</button>\n</p>\n',styles:[":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[K]}]}]},e}(B);var q,V,U=function(t){function e(e){var n=t.call(this)||this;return n.confirm=e,s.assert.notNil(e),console.log(e),n}return I(e,t),e.prototype.ngOnInit=function(){},e.prototype.isDestructive=function(){return this.confirm.destructive&&this.confirm.destructive()},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-confirmation-dialog",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<p matDialogActions>\n <button mat-button (click)="cancel()">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]="isDestructive() ? \'warn\' : \'primary\'" (click)="done(true)">{{confirm.ok()}}</button>\n</p>\n\n',styles:[":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[K]}]}]},e}(B);t.ɵo=function(t){function e(){var e=t.call(this)||this;return e.activityTabs=new s.MutableListModel,e.obsoleteTabs=[],e}return I(e,t),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).observe.valuesFrom(this.tabs.animationDone).subscribe(function(){return t.cleanUpTabs()})},e.prototype.initialise=function(t){this.initialActivity=w({},t,{interactionContext:this})},e.prototype.startActivity=function(t,e){var n=this,r=c.Deferred.defer(),o={interactionContext:this,activityClass:t,activityData:e,onDone:r.resolve,onCancel:r.reject};return this.activityTabs.push(o),this.tabs.selectedIndex=this.activityTabs.length,r.promise.finally(function(){n.obsoleteTabs.push(o),n.tabs.selectedIndex=n.activityTabs.length-1})},e.prototype.alert=function(t){return this.startActivity(N,t)},e.prototype.confirm=function(t){return this.startActivity(U,t)},e.prototype.cleanUpTabs=function(){var t=this;this.activityTabs.value=this.activityTabs.value.filter(function(e){return!t.obsoleteTabs.includes(e)})},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-activity-container",template:'<mat-tab-group #tabs no-tab-header [dynamicHeight]="true">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]="this" [activityContext]="initialActivity"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor="let tab of activityTabs.value">\n <angular-ui-powerups-activity-outlet [interactionContext]="this" [activityContext]="tab"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n',styles:[":host{display:block}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={parentInteractionContext:[{type:n.Input}],initialActivity:[{type:n.Input}],tabs:[{type:n.ViewChild,args:["tabs",{static:!0}]}]},e}(O),function(e){function n(){}(t.ɵo||(t.ɵo={})).ActivityContext=n}(),t.ɵv=function(){function t(t,e,n){this.componentFactoryResolver=t,this.viewContainerRef=e,this.injector=n}return Object.defineProperty(t.prototype,"activityContext",{set:function(t){this.loadActivity(t)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.loadActivity=function(t){var e=n.Injector.create({providers:[{provide:S,useValue:this},{provide:K,useValue:t.activityData}],parent:this.injector}),r=this.componentFactoryResolver.resolveComponentFactory(t.activityClass);this.viewContainerRef.clear(),this.activityComponent=this.viewContainerRef.createComponent(r,0,e),this.activityComponent.instance.onDone(t.onDone),this.activityComponent.instance.onCancel(t.onCancel)},t.prototype.alert=function(t){return this.interactionContext.alert(t)},t.prototype.confirm=function(t){return this.interactionContext.confirm(t)},t.prototype.startActivity=function(t,e){return this.interactionContext.startActivity(t,e)},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-activity-outlet",template:"",styles:[":host{display:block}"]}]}],t.ctorParameters=function(){return[{type:n.ComponentFactoryResolver},{type:n.ViewContainerRef},{type:n.Injector}]},t.propDecorators={interactionContext:[{type:n.Input}],activityContext:[{type:n.Input}]},t}(),q=t.ɵv||(t.ɵv={}),V=function(){function t(t){this.context=t}return t.prototype.alert=function(t){return s.lang.notImplemented()},t.prototype.confirm=function(t){return s.lang.notImplemented()},t.prototype.startActivity=function(t,e){return s.lang.notImplemented()},t}(),q.OutletInteractionContext=V;var z=function(e){function r(t){var n=e.call(this)||this;return n.dialogService=t,n}return I(r,e),r.prototype.startActivity=function(t,e){return this._startActivity(t,e)},r.prototype._startActivity=function(e,n,r){var o=this;void 0===r&&(r=!0);var i={data:n,disableClose:r,panelClass:"dialog-interaction-service",autoFocus:!1},a=this.dialogService.open(t.ɵo,i);return new Promise(function(t,r){var i=a.componentInstance;i.parentInteractionContext=o,i.initialise({activityClass:e,activityData:n,onDone:function(e){t(e),a.close(e)},onCancel:function(t){r(t),a.close(t)}}),a.updateSize()})},r.prototype.alert=function(t){return this._startActivity(N,t,!1)},r.prototype.confirm=function(t){return this._startActivity(U,t,!0)},r.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],r.ctorParameters=function(){return[{type:o.MatDialog}]},r.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new r(n.ɵɵinject(l.MatDialog))},token:r,providedIn:"root"}),r}(S);var H=function(){function r(){}return r.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,o.MatButtonModule,o.MatDialogModule,o.MatTabsModule,u.PortalModule],declarations:[t.ɵo,U,N,t.ɵv],entryComponents:[t.ɵo,U,N],providers:[z]}]}],r}(),G=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"aup-busy-overlay",template:'<ng-content></ng-content>\n<div class="busy-overlay-backdrop" *ngIf="busyModel.value">\n <mat-progress-spinner mode="indeterminate" [diameter]="52"></mat-progress-spinner>\n</div>\n',styles:[":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:rgba(0,0,0,.2);top:0;left:0;bottom:0;right:0;display:-ms-grid;display:grid;-ms-grid-columns:auto;grid-template-columns:auto;-ms-grid-rows:auto;grid-template-rows:auto;place-content:center}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={busyModel:[{type:n.Input}],busy:[{type:n.Input}]},C([s.UseDelegatingValueModel(),M("design:type",s.ValueModel)],t.prototype,"busyModel",void 0),C([s.StoreInValueModel("busyModel"),M("design:type",Boolean)],t.prototype,"busy",void 0),t}();var W=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-empty-state",template:'\n <div class="container">\n <ng-content></ng-content>\n </div>\n ',styles:[":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]}]}],t.ctorParameters=function(){return[]},t}(),Y=function(){function t(){this._activePlaces=new s.MutableListModel}return Object.defineProperty(t.prototype,"activePlaces",{get:function(){return this._activePlaces.readonly},enumerable:!0,configurable:!0}),t.prototype.onActivate=function(t){this._activePlaces.push(t)},t.prototype.onDeactivate=function(t){this._activePlaces.remove(t)},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",void 0)],t.prototype,"onActivate",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",void 0)],t.prototype,"onDeactivate",null),t}();var Z=function(){function t(t){this.placeService=t}return t.prototype.ngOnInit=function(){},t.prototype.onActivate=function(t){this.placeService.onActivate(t)},t.prototype.onDeactivate=function(t){this.placeService.onDeactivate(t)},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-place-outlet",template:'<router-outlet (activate)="onActivate($event)" (deactivate)="onDeactivate($event)"></router-outlet>\n',styles:[":host{grid-area:main;display:-ms-grid;display:grid;-ms-grid-rows:0 1fr;grid-template-rows:0 1fr;min-height:0}"]}]}],t.ctorParameters=function(){return[{type:Y}]},t}();var $=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,o.MatProgressSpinnerModule,p.RouterModule],declarations:[W,G,Z],entryComponents:[G],exports:[G,Z,W],providers:[Y]}]}],t}(),J=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{declarations:[F,T,j,L,_,x],imports:[e.CommonModule,i.BrowserModule,a.BrowserAnimationsModule,r.FormsModule,o.MatInputModule,o.MatFormFieldModule,o.MatSelectModule,$,H],exports:[F,T,j,L,_,x,H,$]}]}],t}(),X=f.style({opacity:0,height:"0",paddingTop:"0",paddingBottom:"0"});var Q=function(t,e){this.width=t,this.height=e};var tt,et=function(){function t(t,e){this.x=t,this.y=e}return t.from=function(e){return new t(e.x,e.y)},t.prototype.translate=function(e,n){return new t(this.x+e,this.y+n)},t}();t.Bounds=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.top=e,i.left=n,i.width=r,i.height=o,i}return I(e,t),e.prototype.relativePositionOf=function(t){return t instanceof MouseEvent?new et(t.clientX-this.left,t.clientY-this.top):new et(t.x-this.left,t.y-this.top)},e}(Q),(tt=t.Bounds||(t.Bounds={})).ofElement=function(t){var e=t.getBoundingClientRect();return new tt(e.top,e.left,e.width,e.height)};var nt=function(e){function n(n,r){var o=e.call(this)||this;return o.elementRef=n,o.ngZone=r,o._boundsModel=new s.ValueHolder(new t.Bounds(0,0,0,0)),o}return I(n,e),n.prototype.ngAfterViewInit=function(){var t=this;this.updateBounds();var e=this.elementRef.nativeElement,n=new d(function(e,n){t.ngZone.run(function(){return t.updateBounds()})});n.observe(e),this.onDispose(function(){return n.disconnect()})},Object.defineProperty(n.prototype,"boundsModel",{get:function(){return this._boundsModel.readonly},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"nativeElement",{get:function(){return this.elementRef.nativeElement},enumerable:!0,configurable:!0}),n.prototype.relativePositionOf=function(t){return this.bounds.relativePositionOf(t)},Object.defineProperty(n.prototype,"bounds",{get:function(){return this._boundsModel.value},enumerable:!0,configurable:!0}),n.prototype.updateBounds=function(){this._boundsModel.value=t.Bounds.ofElement(this.nativeElement)},n}(O);function rt(){}function ot(t){return function(e){Reflect.defineMetadata("place.options",t,e)}}(function(t){function e(){}t.Callback=e})(rt||(rt={})),function(t){function e(){}t.Options=e;var n=function(t,e){s.assert.notNil(e),this.path=e.path,this.title=e.title,this.authenticate=y.isNil(e.authenticate)||e.authenticate};t.Descriptor=n,t.getDescriptor=function(t){var e=Reflect.getMetadata("place.options",t);return new n(t,e)}}(ot||(ot={}));var it=function(){function t(t){this.parameters=t}return t.prototype.get=function(t){var e=this.parameters.find(function(e){return e.parameter===t});return e?e.resolvedValue:null},t.prototype.replace=function(e,n){return new t(this.parameters.filter(function(t){return t.parameter!==e}).concat({parameter:e,resolvedValue:n}))},t.prototype.getFormattedRouteId=function(){var t=this.getRouteIdParam();return t?t.parameter.type.format(t.resolvedValue):null},t.prototype.getRouteIdParam=function(){return this.parameters.find(function(t){return t.parameter.isRouteId})},t.prototype.getFormattedParameters=function(){var t={};this.parameters.filter(function(t){return!t.parameter.isRouteId}).forEach(function(e){t[e.parameter.name]=e.parameter.type.format(e.resolvedValue)});return t},t.prototype.hasRouteId=function(){return!!this.getRouteIdParam()},t.prototype.redirect=function(t,e,n){var r=this.getFormattedRouteId(),o=t.hasRouteId()?"..":".",i=r?[o,r,this.getFormattedParameters()]:[o,this.getFormattedParameters()];e.navigate(i,{relativeTo:n})},C([s.Trace(),M("design:type",Function),M("design:paramtypes",[]),M("design:returntype",void 0)],t.prototype,"getFormattedRouteId",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[]),M("design:returntype",void 0)],t.prototype,"getFormattedParameters",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[t,p.Router,p.ActivatedRoute]),M("design:returntype",void 0)],t.prototype,"redirect",null),t}();t.RouteParameterBindings=function(t){function e(n,r,o){var i=t.call(this)||this;i.component=n,i.router=r,i.activatedRoute=o,i._incomingRouteChange=new s.MutableValueModel(!1),i.resolvedParameters=new s.MutableValueModel;var a=s.Dsl.disposeWith(i),u=(a.chain,a.valueOf,a.before,a.when),c=(a.after,a.observe);i.txo=new s.TransactionObserver;var l=h.Klass.get(n).getMetadataList(e.ROUTE_PARAMETER_LIST_KEY);l.forEach(function(t){return i.installBinding(t)});var p=c.valuesFrom(o.paramMap).last().map(function(t){var e=[];return l.forEach(function(n){e.push({parameter:n,resolvedValue:n.type.parse(t.get(n.name))})}),new it(e)});return p.subscribe(function(t){i._incomingRouteChange.value=!0,i.resolvedParameters.value=t,i._incomingRouteChange.value=!1}),u.valueOf(i.resolvedParameters).changes(function(t,e){t.redirect(e,r,o)},{unless:i.incomingRouteChange}),i.txo.observe("incomingResolvedRouteParameters",p),i.txo.observe("this.routeIsChanging",i.incomingRouteChange),i}return I(e,t),Object.defineProperty(e.prototype,"incomingRouteChange",{get:function(){return this._incomingRouteChange.readonly},enumerable:!0,configurable:!0}),e.prototype.installBinding=function(t){var e=this.getModelFor(t);this.txo.observe(t.propertyName,e),this.registerDisposable(new s.Binding(this.resolvedParameters,e,{toRight:function(e){return e.get(t)},toLeft:function(e,n){return n.replace(t,e)}}))},e.prototype.getModelFor=function(t){return this.component[t.propertyName]},e}(s.GarbageCollector),(t.RouteParameterBindings||(t.RouteParameterBindings={})).ROUTE_PARAMETER_LIST_KEY=Symbol("place:route:parameters");var at=function(e){function n(n,r){var o=e.call(this)||this;return o.activatedRoute=n,o.routeBindingMediator=o.registerDisposable(new t.RouteParameterBindings(o,r,n)),o.titleModel.setDefault(o.placeConfig.title),o}return I(n,e),Object.defineProperty(n.prototype,"placeConfig",{get:function(){return ot.getDescriptor(this.constructor)},enumerable:!0,configurable:!0}),n.prototype.canDeactivate=function(){return!0},C([s.UseDelegate(),M("design:type",s.MutableValueModel)],n.prototype,"titleModel",void 0),C([m.Memoize(),M("design:type",ot.Descriptor),M("design:paramtypes",[])],n.prototype,"placeConfig",null),n}(O);var st=function(){function t(t,e){this.router=t,this.injector=e}return t.prototype.canDeactivate=function(t,e,n,r){return t.canDeactivate()},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:p.Router},{type:n.Injector}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(p.Router),n.ɵɵinject(n.INJECTOR))},token:t,providedIn:"root"}),t}();var ut=function(){function t(t,e){this.parameterDefs=t,this.injector=e,this.sanitisedParameters=[],this.routeParameter=t.find(function(t){return t.isRouteId}),this.queryParameters=t.filter(function(t){return!t.isRouteId})}return t.prototype.sanitise=function(t){return P(this,void 0,void 0,function(){var e,n,r,o,i,a;return R(this,function(s){switch(s.label){case 0:return this.routeParameter?[4,this.sanitiseParameter(this.routeParameter,t.paramMap.get(this.routeParameter.name))]:[3,2];case 1:if(!s.sent())return[2,!1];s.label=2;case 2:s.trys.push([2,7,8,9]),r=E(this.queryParameters),o=r.next(),s.label=3;case 3:return o.done?[3,6]:(i=o.value,[4,this.sanitiseParameter(i,t.queryParamMap.get(i.name))]);case 4:s.sent(),s.label=5;case 5:return o=r.next(),[3,3];case 6:return[3,9];case 7:return a=s.sent(),e={error:a},[3,9];case 8:try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}return[7];case 9:return[2,0===this.sanitisedParameters.length]}})})},t.prototype.sanitiseParameter=function(t,e){return P(this,void 0,void 0,function(){var n,r,o;return R(this,function(i){switch(i.label){case 0:return t&&(n=this.getSanitiser(t))?(r=t.type.parse(e),[4,n.sanitise(r)]):[3,2];case 1:if(o=i.sent(),r!==o)return this.sanitisedParameters.push({def:t,value:t.type.format(o)}),[2,!1];i.label=2;case 2:return[2,!0]}})})},t.prototype.redirect=function(t){var e=this;s.assert.isTruthy(0!==this.sanitisedParameters.length);var n=this.sanitisedParameters.find(function(t){return t.def===e.routeParameter});if(n)return t.navigate(["..",n.value]);var r=this.sanitisedParameters.filter(function(t){return t.def!==e.routeParameter}).reduce(function(t,e){var n;return w({},t,((n={})[e.def.name]=e.value,n))},{});return t.navigate([".",r])},t.prototype.getSanitiser=function(t){return t.sanitiser?this.injector.get(t.sanitiser,new t.sanitiser):null},C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object,String]),M("design:returntype",Promise)],t.prototype,"sanitiseParameter",null),C([v.Memoize(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",Object)],t.prototype,"getSanitiser",null),t}();var ct,lt,pt,ft=function(){function e(t,e){this.router=t,this.injector=e}return e.prototype.canActivate=function(e,n){var r=this,o=h.Klass.get(e.component).getMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY),i=new ut(o,this.injector);return i.sanitise(e).then(function(t){return t||i.redirect(r.router),t})},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:p.Router},{type:n.Injector}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(p.Router),n.ɵɵinject(n.INJECTOR))},token:e,providedIn:"root"}),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[p.ActivatedRouteSnapshot,p.RouterStateSnapshot]),M("design:returntype",Object)],e.prototype,"canActivate",null),e}();function dt(t,e,n,r){var o=h.Opts.get(n),i=s.assert.notNil(t).toString();return{name:o.getOptional("as",i),propertyName:i,type:s.assert.notNil(e),sanitiser:o.getOptional("sanitiser",null),isRouteId:r}}ct=t.ParameterType||(t.ParameterType={}),lt=function(){function t(){}return t.prototype.format=function(t){return t},t.prototype.parse=function(t){return t},t}(),pt=function(){function t(){}return t.prototype.format=function(t){return""+t},t.prototype.parse=function(t){return+t},t}(),ct.STRING=new lt,ct.NUMBER=new pt,t.ACTIVITY_DATA=K,t.AbstractActivity=B,t.AbstractInputComponent=A,t.AbstractPlaceComponent=at,t.ActivityContainerComponent=t.ɵo,t.ActivityOutletComponent=t.ɵv,t.AlertDialogComponent=N,t.AngularUiPowerupsModule=J,t.BusyOverlayComponent=G,t.CommandDirective=F,t.ConfirmationDialogComponent=U,t.DialogInteractionService=z,t.Dimension=Q,t.DisposableComponent=O,t.EmptyStateComponent=W,t.FocusBindingDirective=T,t.INTERACTION_CONTEXT=k,t.InteractionContext=S,t.InteractionModule=H,t.LeavePlaceGuard=st,t.NumberInputComponent=j,t.PasswordInputComponent=_,t.Place=ot,t.PlaceModule=$,t.PlaceOutletComponent=Z,t.PlaceRouteGuard=ft,t.PlaceService=Y,t.Point=et,t.QueryParameter=function(e,n){return function(r,o){var i=dt(o,e,n,!1);h.Klass.get(r).addToOwnMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY,i),s.UseDelegate()(r,o)}},t.ResizeAwareComponent=nt,t.RouteId=function(e,n){return function(r,o){var i=dt(o,e,n,!0);h.Klass.get(r).addToOwnMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY,i),s.UseDelegate()(r,o)}},t.RouteParameterSanitiser=ut,t.SelectInputComponent=x,t.StringInputComponent=L,t.slideDownAndUpAnimation=function(t,e){s.OptionsHelper.get(e).getOptional("duration","100ms");var n=s.OptionsHelper.get(e).getOptional("hiddenStyleDef",X);return f.trigger(t,[f.transition(":enter",[n,f.animate("100ms")]),f.transition(":leave",[f.animate("100ms",n)])])},t.ɵa=F,t.ɵb=T,t.ɵc=O,t.ɵd=j,t.ɵe=A,t.ɵf=L,t.ɵg=_,t.ɵh=x,t.ɵi=$,t.ɵj=W,t.ɵk=G,t.ɵl=Z,t.ɵm=Y,t.ɵn=H,t.ɵp=U,t.ɵq=B,t.ɵr=K,t.ɵt=N,t.ɵw=z,t.ɵx=S,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core"),require("@angular/forms"),require("@angular/material"),require("@angular/platform-browser"),require("@angular/platform-browser/animations"),require("@coolon/pectin"),require("@angular/cdk/portal"),require("@coolon/pectin/lib/promise/deferred.class"),require("@angular/material/dialog"),require("@angular/router"),require("@angular/animations"),require("resize-observer-polyfill"),require("@typescript-plus/fast-memoize-decorator"),require("lodash"),require("reflect-metadata"),require("@coolon/typescript-utilities"),require("@typescript-plus/fast-memoize-decorator/dist/src")):"function"==typeof define&&define.amd?define("@coolon/angular-ui-powerups",["exports","@angular/common","@angular/core","@angular/forms","@angular/material","@angular/platform-browser","@angular/platform-browser/animations","@coolon/pectin","@angular/cdk/portal","@coolon/pectin/lib/promise/deferred.class","@angular/material/dialog","@angular/router","@angular/animations","resize-observer-polyfill","@typescript-plus/fast-memoize-decorator","lodash","reflect-metadata","@coolon/typescript-utilities","@typescript-plus/fast-memoize-decorator/dist/src"],e):e(((t=t||self).coolon=t.coolon||{},t.coolon["angular-ui-powerups"]={}),t.ng.common,t.ng.core,t.ng.forms,t.ng.material,t.ng.platformBrowser,t.ng.platformBrowser.animations,t.pectin,t.ng.cdk.portal,t.deferred_class,t.ng.material.dialog,t.ng.router,t.ng.animations,t.ResizeObserver,t.fastMemoizeDecorator,t.lodash,null,t.typescriptUtilities,t.src)}(this,function(t,e,n,r,o,i,a,s,u,c,l,p,f,d,m,y,g,h,v){"use strict";d=d&&d.hasOwnProperty("default")?d.default:d;var b=function(t,e){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function I(t,e){function n(){this.constructor=t}b(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var w=function(){return(w=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function C(t,e,n,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function M(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function P(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function s(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){t.done?o(t.value):new n(function(e){e(t.value)}).then(a,s)}u((r=r.apply(t,e||[])).next())})}function R(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function E(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}var O=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return I(e,t),e.prototype.ngOnDestroy=function(){this.dispose()},e}(s.GarbageCollector),D=(new s.MutableListModel).readonly,A=function(t){function e(){var e=t.call(this)||this;e.focus=new n.EventEmitter,e.blur=new n.EventEmitter,e.enterKey=new n.EventEmitter,e.escapeKey=new n.EventEmitter;var r=e;return e.errorStateMatcher={isErrorState:function(t,e){return r.hasErrors()}},e}return I(e,t),e.prototype.notifyClick=function(){this.safelyInvoke(this.clickCommand)},e.prototype.notifyFocusIn=function(){this.safelyInvoke(this.focusCommand),this.focus.emit()},e.prototype.notifyFocusOut=function(){this.safelyInvoke(this.blurCommand),this.blur.emit()},e.prototype.notifyEnterKey=function(){this.safelyInvoke(this.enterCommand),this.enterKey.emit()},e.prototype.notifyEscapeKey=function(){this.safelyInvoke(this.escapeCommand),this.escapeKey.emit()},e.prototype.safelyInvoke=function(t){t&&t.isEnabled()&&t.execute()},e.prototype.ngOnInit=function(){},e.prototype.isEnabled=function(){return this.enabled.value},Object.defineProperty(e.prototype,"enabled",{get:function(){return this.valueModel.enabled||s.Constant.TRUE},enumerable:!0,configurable:!0}),e.prototype.hasErrors=function(){return!this.errorList.query().isEmpty()},Object.defineProperty(e.prototype,"errorList",{get:function(){return this.valueModel.errorList||D},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstError",{get:function(){return this.hasErrors()?this.errorList.value[0]:null},enumerable:!0,configurable:!0}),e.propDecorators={valueModel:[{type:n.Input}],label:[{type:n.Input}],floatLabel:[{type:n.Input}],hint:[{type:n.Input}],placeholder:[{type:n.Input}],focusCommand:[{type:n.Input,args:["command.focus"]}],blurCommand:[{type:n.Input,args:["command.blur"]}],enterCommand:[{type:n.Input,args:["command.enter"]}],escapeCommand:[{type:n.Input,args:["command.escape"]}],clickCommand:[{type:n.Input,args:["command.click"]}],focus:[{type:n.Output}],blur:[{type:n.Output}],enterKey:[{type:n.Output}],escapeKey:[{type:n.Output}],notifyClick:[{type:n.HostListener,args:["click"]}],notifyFocusIn:[{type:n.HostListener,args:["focusin"]}],notifyFocusOut:[{type:n.HostListener,args:["focusout"]}]},C([s.UseDelegate(),M("design:type",s.MutableValueModel)],e.prototype,"valueModel",void 0),e}(O);var j=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-number-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input type="number"\n matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),F=function(t){function e(e){var n=t.call(this)||this;return n.elementRef=e,n}return I(e,t),e.prototype.ngOnInit=function(){s.assert.notNil(this.pectinCommand)},e.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).chain.value(this.pectinCommand.enabled).subscribe(function(e){e?(t.elementRef.nativeElement.removeAttribute("disabled"),"A"===t.elementRef.nativeElement.tagName&&t.elementRef.nativeElement.setAttribute("href","javascript:void")):(t.elementRef.nativeElement.setAttribute("disabled","disabled"),"A"===t.elementRef.nativeElement.tagName&&t.elementRef.nativeElement.removeAttribute("href"))})},e.prototype.ngOnDestroy=function(){this.dispose()},e.prototype.notifyClick=function(t){t.preventDefault(),t.stopPropagation(),this.pectinCommand.isEnabled()?this.pectinCommand.execute({event:t}):console.warn("disabled command clicked, ignoring.")},e.decorators=[{type:n.Directive,args:[{selector:"[pectinCommand]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef,decorators:[{type:n.Inject,args:[n.ElementRef]}]}]},e.propDecorators={pectinCommand:[{type:n.Input}],notifyClick:[{type:n.HostListener,args:["click",["$event"]]}]},e}(s.GarbageCollector);var T=function(t){function r(e,n,r){var o=t.call(this)||this;return o.el=e,o.ngZone=n,o.document=r,o}return I(r,t),r.prototype.onFocusIn=function(){this.pectinFocusBinding.focusCallbacks.notifyFocusIn()},r.prototype.onFocusOut=function(){this.pectinFocusBinding.focusCallbacks.notifyFocusOut()},r.prototype.ngOnInit=function(){},r.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).chain.value(this.pectinFocusBinding.focused).subscribe(function(e){e&&!t.alreadyHasFocus()&&t.tryAndFocus()})},r.prototype.alreadyHasFocus=function(){return this.isFocused(this.focusTarget)},r.prototype.isFocused=function(t){return this.document.activeElement===t},r.prototype.tryAndFocus=function(t){var e=this;void 0===t&&(t=5),this.modelShouldStillHaveFocus()&&this.canFocus()&&(this.alreadyHasFocus()||this.focusTarget.focus(),this.alreadyHasFocus()||(s.Logger.get(this).log("focus failed, trying "+t+" more times"),t>0?requestAnimationFrame(function(){e.tryAndFocus(t-1)}):s.Logger.get(this).warn("Tried to focus but gave up as the component wasn't enabled or visible.")))},Object.defineProperty(r.prototype,"focusTarget",{get:function(){return this.focusBindingTarget||this.el.nativeElement},enumerable:!0,configurable:!0}),r.prototype.modelShouldStillHaveFocus=function(){return this.pectinFocusBinding.focused.value},r.prototype.canFocus=function(){var t=this.focusTarget.getBoundingClientRect();return t.height>=0&&t.height>=0&&!this.focusTarget.disabled},r.decorators=[{type:n.Directive,args:[{selector:"[pectinFocusBinding]"}]}],r.ctorParameters=function(){return[{type:n.ElementRef,decorators:[{type:n.Inject,args:[n.ElementRef]}]},{type:n.NgZone,decorators:[{type:n.Inject,args:[n.NgZone]}]},{type:void 0,decorators:[{type:n.Inject,args:[e.DOCUMENT]}]}]},r.propDecorators={pectinFocusBinding:[{type:n.Input}],focusBindingTarget:[{type:n.Input}],onFocusIn:[{type:n.HostListener,args:["focusin"]}],onFocusOut:[{type:n.HostListener,args:["focusout"]}]},r}(O);var L=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-string-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),_=function(t){function e(){return t.call(this)||this}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-password-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <input type="password"\n matInput\n placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n\n',styles:[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],e.ctorParameters=function(){return[]},e}(A),x=function(t){function e(){var e=t.call(this)||this;return e.optionLabelFormat=function(t){return t&&e.optionLabel?t[e.optionLabel]:t},e}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-select-input",template:'<mat-form-field appearance="standard" [floatLabel]="floatLabel">\n <mat-label *ngIf="label">{{label}}</mat-label>\n <mat-select placeholder="{{placeholder}}"\n [(ngModel)]="valueModel.value"\n [disabled]="!enabled.value"\n (keydown.enter)="notifyEnterKey()"\n (keydown.escape)="notifyEscapeKey()"\n [pectinFocusBinding]="valueModel"\n [errorStateMatcher]="errorStateMatcher"\n >\n <mat-option *ngFor="let option of optionsModel.value" [value]="option">{{optionLabelFormat(option)}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf="hint">{{hint}}</mat-hint>\n <mat-error *ngIf="hasErrors">{{firstError}}</mat-error>\n</mat-form-field>\n',styles:[":host{display:inline-block}mat-form-field{width:100%}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={optionsModel:[{type:n.Input}],options:[{type:n.Input}],optionLabel:[{type:n.Input}],optionLabelFormat:[{type:n.Input}]},C([s.UseDelegate(),M("design:type",s.ListModel)],e.prototype,"optionsModel",void 0),C([s.StoreInListModel("optionsModel"),M("design:type",Array)],e.prototype,"options",void 0),e}(A);var k=new n.InjectionToken("InteractionContext"),S=function(){};var B=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._doneListeners=new s.EventListenerList,e._cancelListeners=new s.EventListenerList,e._finishListeners=new s.EventListenerList,e._busyModel=(new s.DelegatingValueModel).withDefault(!1),e}return I(e,t),e.prototype.onDone=function(t){this._doneListeners.add(t)},e.prototype.onCancel=function(t){this._cancelListeners.add(t)},e.prototype.done=function(t){var e=this;return this._doneListeners.fireAndWait(function(e){return e(t)}).finally(function(){return e.finalizeAndDispose()})},e.prototype.cancel=function(t){var e=this;return this._cancelListeners.fireAndWait(function(e){return e(t)}).finally(function(){return e.finalizeAndDispose()})},e.prototype.finalizeAndDispose=function(){this._finishListeners.fire(function(t){return t()}),[this._finishListeners,this._doneListeners,this._cancelListeners].forEach(function(t){return t.dispose()})},Object.defineProperty(e.prototype,"busy",{get:function(){return this._busyModel.readonly},enumerable:!0,configurable:!0}),e.prototype.busyWhile=function(t){this._busyModel.setDelegate(t)},e.prototype.isBusy=function(){return this._busyModel.value},e}(O);var K=new n.InjectionToken("InteractionActivityData");var N=function(t){function e(e){var n=t.call(this)||this;return n.alert=e,n}return I(e,t),e.prototype.ngOnInit=function(){},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-alert-dialog",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<p matDialogActions>\n <button mat-raised-button color="primary" (click)="done()">{{alert.ok()}}</button>\n</p>\n',styles:[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[K]}]}]},e}(B);var q,V,U=function(t){function e(e){var n=t.call(this)||this;return n.confirm=e,s.assert.notNil(e),console.log(e),n}return I(e,t),e.prototype.ngOnInit=function(){},e.prototype.isDestructive=function(){return this.confirm.destructive&&this.confirm.destructive()},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-confirmation-dialog",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<p matDialogActions>\n <button mat-button (click)="cancel()">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]="isDestructive() ? \'warn\' : \'primary\'" (click)="done(true)">{{confirm.ok()}}</button>\n</p>\n\n',styles:[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[K]}]}]},e}(B);t.ɵo=function(t){function e(){var e=t.call(this)||this;return e.activityTabs=new s.MutableListModel,e.obsoleteTabs=[],e}return I(e,t),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var t=this;s.Dsl.disposeWith(this).observe.valuesFrom(this.tabs.animationDone).subscribe(function(){return t.cleanUpTabs()})},e.prototype.initialise=function(t){this.initialActivity=w({},t,{interactionContext:this})},e.prototype.startActivity=function(t,e){var n=this,r=c.Deferred.defer(),o={interactionContext:this,activityClass:t,activityData:e,onDone:r.resolve,onCancel:r.reject};return this.activityTabs.push(o),this.tabs.selectedIndex=this.activityTabs.length,r.promise.finally(function(){n.obsoleteTabs.push(o),n.tabs.selectedIndex=n.activityTabs.length-1})},e.prototype.alert=function(t){return this.startActivity(N,t)},e.prototype.confirm=function(t){return this.startActivity(U,t)},e.prototype.cleanUpTabs=function(){var t=this;this.activityTabs.value=this.activityTabs.value.filter(function(e){return!t.obsoleteTabs.includes(e)})},e.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-activity-container",template:'<mat-tab-group #tabs no-tab-header [dynamicHeight]="true">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]="this" [activityContext]="initialActivity"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor="let tab of activityTabs.value">\n <angular-ui-powerups-activity-outlet [interactionContext]="this" [activityContext]="tab"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n',styles:[":host{display:block}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={parentInteractionContext:[{type:n.Input}],initialActivity:[{type:n.Input}],tabs:[{type:n.ViewChild,args:["tabs",{static:!0}]}]},e}(O),function(e){function n(){}(t.ɵo||(t.ɵo={})).ActivityContext=n}(),t.ɵv=function(){function t(t,e,n){this.componentFactoryResolver=t,this.viewContainerRef=e,this.injector=n}return Object.defineProperty(t.prototype,"activityContext",{set:function(t){this.loadActivity(t)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){},t.prototype.loadActivity=function(t){var e=n.Injector.create({providers:[{provide:S,useValue:this},{provide:K,useValue:t.activityData}],parent:this.injector}),r=this.componentFactoryResolver.resolveComponentFactory(t.activityClass);this.viewContainerRef.clear(),this.activityComponent=this.viewContainerRef.createComponent(r,0,e),this.activityComponent.instance.onDone(t.onDone),this.activityComponent.instance.onCancel(t.onCancel)},t.prototype.alert=function(t){return this.interactionContext.alert(t)},t.prototype.confirm=function(t){return this.interactionContext.confirm(t)},t.prototype.startActivity=function(t,e){return this.interactionContext.startActivity(t,e)},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-activity-outlet",template:"",styles:[":host{display:block}"]}]}],t.ctorParameters=function(){return[{type:n.ComponentFactoryResolver},{type:n.ViewContainerRef},{type:n.Injector}]},t.propDecorators={interactionContext:[{type:n.Input}],activityContext:[{type:n.Input}]},t}(),q=t.ɵv||(t.ɵv={}),V=function(){function t(t){this.context=t}return t.prototype.alert=function(t){return s.lang.notImplemented()},t.prototype.confirm=function(t){return s.lang.notImplemented()},t.prototype.startActivity=function(t,e){return s.lang.notImplemented()},t}(),q.OutletInteractionContext=V;var z=function(e){function r(t){var n=e.call(this)||this;return n.dialogService=t,n}return I(r,e),r.prototype.startActivity=function(t,e){return this._startActivity(t,e)},r.prototype._startActivity=function(e,n,r){var o=this;void 0===r&&(r=!0);var i={data:n,disableClose:r,panelClass:"dialog-interaction-service",autoFocus:!1},a=this.dialogService.open(t.ɵo,i);return new Promise(function(t,r){var i=a.componentInstance;i.parentInteractionContext=o,i.initialise({activityClass:e,activityData:n,onDone:function(e){t(e),a.close(e)},onCancel:function(t){r(t),a.close(t)}}),a.updateSize()})},r.prototype.alert=function(t){return this._startActivity(N,t,!1)},r.prototype.confirm=function(t){return this._startActivity(U,t,!0)},r.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],r.ctorParameters=function(){return[{type:o.MatDialog}]},r.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new r(n.ɵɵinject(l.MatDialog))},token:r,providedIn:"root"}),r}(S);var H=function(){function r(){}return r.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,o.MatButtonModule,o.MatDialogModule,o.MatTabsModule,u.PortalModule],declarations:[t.ɵo,U,N,t.ɵv],entryComponents:[t.ɵo,U,N],providers:[z]}]}],r}(),G=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"aup-busy-overlay",template:'<ng-content></ng-content>\n<div class="busy-overlay-backdrop" *ngIf="busyModel.value">\n <mat-progress-spinner mode="indeterminate" [diameter]="52"></mat-progress-spinner>\n</div>\n',styles:[":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:rgba(0,0,0,.2);top:0;left:0;bottom:0;right:0;display:-ms-grid;display:grid;-ms-grid-columns:auto;grid-template-columns:auto;-ms-grid-rows:auto;grid-template-rows:auto;place-content:center}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={busyModel:[{type:n.Input}],busy:[{type:n.Input}]},C([s.UseDelegatingValueModel(),M("design:type",s.ValueModel)],t.prototype,"busyModel",void 0),C([s.StoreInValueModel("busyModel"),M("design:type",Boolean)],t.prototype,"busy",void 0),t}();var W=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-empty-state",template:'\n <div class="container">\n <ng-content></ng-content>\n </div>\n ',styles:[":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]}]}],t.ctorParameters=function(){return[]},t}(),Y=function(){function t(){this._activePlaces=new s.MutableListModel}return Object.defineProperty(t.prototype,"activePlaces",{get:function(){return this._activePlaces.readonly},enumerable:!0,configurable:!0}),t.prototype.onActivate=function(t){this._activePlaces.push(t)},t.prototype.onDeactivate=function(t){this._activePlaces.remove(t)},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",void 0)],t.prototype,"onActivate",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",void 0)],t.prototype,"onDeactivate",null),t}();var Z=function(){function t(t){this.placeService=t}return t.prototype.ngOnInit=function(){},t.prototype.onActivate=function(t){this.placeService.onActivate(t)},t.prototype.onDeactivate=function(t){this.placeService.onDeactivate(t)},t.decorators=[{type:n.Component,args:[{selector:"angular-ui-powerups-place-outlet",template:'<router-outlet (activate)="onActivate($event)" (deactivate)="onDeactivate($event)"></router-outlet>\n',styles:[":host{grid-area:main;display:-ms-grid;display:grid;-ms-grid-rows:0 1fr;grid-template-rows:0 1fr;min-height:0}"]}]}],t.ctorParameters=function(){return[{type:Y}]},t}();var $=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,o.MatProgressSpinnerModule,p.RouterModule],declarations:[W,G,Z],entryComponents:[G],exports:[G,Z,W],providers:[Y]}]}],t}(),J=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{declarations:[F,T,j,L,_,x],imports:[e.CommonModule,i.BrowserModule,a.BrowserAnimationsModule,r.FormsModule,o.MatInputModule,o.MatFormFieldModule,o.MatSelectModule,$,H],exports:[F,T,j,L,_,x,H,$]}]}],t}(),X=f.style({opacity:0,height:"0",paddingTop:"0",paddingBottom:"0"});var Q=function(t,e){this.width=t,this.height=e};var tt,et=function(){function t(t,e){this.x=t,this.y=e}return t.from=function(e){return new t(e.x,e.y)},t.prototype.translate=function(e,n){return new t(this.x+e,this.y+n)},t}();t.Bounds=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.top=e,i.left=n,i.width=r,i.height=o,i}return I(e,t),e.prototype.relativePositionOf=function(t){return t instanceof MouseEvent?new et(t.clientX-this.left,t.clientY-this.top):new et(t.x-this.left,t.y-this.top)},e}(Q),(tt=t.Bounds||(t.Bounds={})).ofElement=function(t){var e=t.getBoundingClientRect();return new tt(e.top,e.left,e.width,e.height)};var nt=function(e){function n(n,r){var o=e.call(this)||this;return o.elementRef=n,o.ngZone=r,o._boundsModel=new s.ValueHolder(new t.Bounds(0,0,0,0)),o}return I(n,e),n.prototype.ngAfterViewInit=function(){var t=this;this.updateBounds();var e=this.elementRef.nativeElement,n=new d(function(e,n){t.ngZone.run(function(){return t.updateBounds()})});n.observe(e),this.onDispose(function(){return n.disconnect()})},Object.defineProperty(n.prototype,"boundsModel",{get:function(){return this._boundsModel.readonly},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"nativeElement",{get:function(){return this.elementRef.nativeElement},enumerable:!0,configurable:!0}),n.prototype.relativePositionOf=function(t){return this.bounds.relativePositionOf(t)},Object.defineProperty(n.prototype,"bounds",{get:function(){return this._boundsModel.value},enumerable:!0,configurable:!0}),n.prototype.updateBounds=function(){this._boundsModel.value=t.Bounds.ofElement(this.nativeElement)},n}(O);function rt(){}function ot(t){return function(e){Reflect.defineMetadata("place.options",t,e)}}(function(t){function e(){}t.Callback=e})(rt||(rt={})),function(t){function e(){}t.Options=e;var n=function(t,e){s.assert.notNil(e),this.path=e.path,this.title=e.title,this.authenticate=y.isNil(e.authenticate)||e.authenticate};t.Descriptor=n,t.getDescriptor=function(t){var e=Reflect.getMetadata("place.options",t);return new n(t,e)}}(ot||(ot={}));var it=function(){function t(t){this.parameters=t}return t.prototype.get=function(t){var e=this.parameters.find(function(e){return e.parameter===t});return e?e.resolvedValue:null},t.prototype.replace=function(e,n){return new t(this.parameters.filter(function(t){return t.parameter!==e}).concat({parameter:e,resolvedValue:n}))},t.prototype.getFormattedRouteId=function(){var t=this.getRouteIdParam();return t?t.parameter.type.format(t.resolvedValue):null},t.prototype.getRouteIdParam=function(){return this.parameters.find(function(t){return t.parameter.isRouteId})},t.prototype.getFormattedParameters=function(){var t={};this.parameters.filter(function(t){return!t.parameter.isRouteId}).forEach(function(e){t[e.parameter.name]=e.parameter.type.format(e.resolvedValue)});return t},t.prototype.hasRouteId=function(){return!!this.getRouteIdParam()},t.prototype.redirect=function(t,e,n){var r=this.getFormattedRouteId(),o=t.hasRouteId()?"..":".",i=r?[o,r,this.getFormattedParameters()]:[o,this.getFormattedParameters()];e.navigate(i,{relativeTo:n})},C([s.Trace(),M("design:type",Function),M("design:paramtypes",[]),M("design:returntype",void 0)],t.prototype,"getFormattedRouteId",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[]),M("design:returntype",void 0)],t.prototype,"getFormattedParameters",null),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[t,p.Router,p.ActivatedRoute]),M("design:returntype",void 0)],t.prototype,"redirect",null),t}();t.RouteParameterBindings=function(t){function e(n,r,o){var i=t.call(this)||this;i.component=n,i.router=r,i.activatedRoute=o,i._incomingRouteChange=new s.MutableValueModel(!1),i.resolvedParameters=new s.MutableValueModel;var a=s.Dsl.disposeWith(i),u=(a.chain,a.valueOf,a.before,a.when),c=(a.after,a.observe);i.txo=new s.TransactionObserver;var l=h.Klass.get(n).getMetadataList(e.ROUTE_PARAMETER_LIST_KEY);l.forEach(function(t){return i.installBinding(t)});var p=c.valuesFrom(o.paramMap).last().map(function(t){var e=[];return l.forEach(function(n){e.push({parameter:n,resolvedValue:n.type.parse(t.get(n.name))})}),new it(e)});return p.subscribe(function(t){i._incomingRouteChange.value=!0,i.resolvedParameters.value=t,i._incomingRouteChange.value=!1}),u.valueOf(i.resolvedParameters).changes(function(t,e){t.redirect(e,r,o)},{unless:i.incomingRouteChange}),i.txo.observe("incomingResolvedRouteParameters",p),i.txo.observe("this.routeIsChanging",i.incomingRouteChange),i}return I(e,t),Object.defineProperty(e.prototype,"incomingRouteChange",{get:function(){return this._incomingRouteChange.readonly},enumerable:!0,configurable:!0}),e.prototype.installBinding=function(t){var e=this.getModelFor(t);this.txo.observe(t.propertyName,e),this.registerDisposable(new s.Binding(this.resolvedParameters,e,{toRight:function(e){return e.get(t)},toLeft:function(e,n){return n.replace(t,e)}}))},e.prototype.getModelFor=function(t){return this.component[t.propertyName]},e}(s.GarbageCollector),(t.RouteParameterBindings||(t.RouteParameterBindings={})).ROUTE_PARAMETER_LIST_KEY=Symbol("place:route:parameters");var at=function(e){function n(n,r){var o=e.call(this)||this;return o.activatedRoute=n,o.routeBindingMediator=o.registerDisposable(new t.RouteParameterBindings(o,r,n)),o.titleModel.setDefault(o.placeConfig.title),o}return I(n,e),Object.defineProperty(n.prototype,"placeConfig",{get:function(){return ot.getDescriptor(this.constructor)},enumerable:!0,configurable:!0}),n.prototype.canDeactivate=function(){return!0},C([s.UseDelegate(),M("design:type",s.MutableValueModel)],n.prototype,"titleModel",void 0),C([m.Memoize(),M("design:type",ot.Descriptor),M("design:paramtypes",[])],n.prototype,"placeConfig",null),n}(O);var st=function(){function t(t,e){this.router=t,this.injector=e}return t.prototype.canDeactivate=function(t,e,n,r){return t.canDeactivate()},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:p.Router},{type:n.Injector}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(p.Router),n.ɵɵinject(n.INJECTOR))},token:t,providedIn:"root"}),t}();var ut=function(){function t(t,e){this.parameterDefs=t,this.injector=e,this.sanitisedParameters=[],this.routeParameter=t.find(function(t){return t.isRouteId}),this.queryParameters=t.filter(function(t){return!t.isRouteId})}return t.prototype.sanitise=function(t){return P(this,void 0,void 0,function(){var e,n,r,o,i,a;return R(this,function(s){switch(s.label){case 0:return this.routeParameter?[4,this.sanitiseParameter(this.routeParameter,t.paramMap.get(this.routeParameter.name))]:[3,2];case 1:if(!s.sent())return[2,!1];s.label=2;case 2:s.trys.push([2,7,8,9]),r=E(this.queryParameters),o=r.next(),s.label=3;case 3:return o.done?[3,6]:(i=o.value,[4,this.sanitiseParameter(i,t.queryParamMap.get(i.name))]);case 4:s.sent(),s.label=5;case 5:return o=r.next(),[3,3];case 6:return[3,9];case 7:return a=s.sent(),e={error:a},[3,9];case 8:try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}return[7];case 9:return[2,0===this.sanitisedParameters.length]}})})},t.prototype.sanitiseParameter=function(t,e){return P(this,void 0,void 0,function(){var n,r,o;return R(this,function(i){switch(i.label){case 0:return t&&(n=this.getSanitiser(t))?(r=t.type.parse(e),[4,n.sanitise(r)]):[3,2];case 1:if(o=i.sent(),r!==o)return this.sanitisedParameters.push({def:t,value:t.type.format(o)}),[2,!1];i.label=2;case 2:return[2,!0]}})})},t.prototype.redirect=function(t){var e=this;s.assert.isTruthy(0!==this.sanitisedParameters.length);var n=this.sanitisedParameters.find(function(t){return t.def===e.routeParameter});if(n)return t.navigate(["..",n.value]);var r=this.sanitisedParameters.filter(function(t){return t.def!==e.routeParameter}).reduce(function(t,e){var n;return w({},t,((n={})[e.def.name]=e.value,n))},{});return t.navigate([".",r])},t.prototype.getSanitiser=function(t){return t.sanitiser?this.injector.get(t.sanitiser,new t.sanitiser):null},C([s.Trace(),M("design:type",Function),M("design:paramtypes",[Object,String]),M("design:returntype",Promise)],t.prototype,"sanitiseParameter",null),C([v.Memoize(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",Object)],t.prototype,"getSanitiser",null),t}();var ct,lt,pt,ft=function(){function e(t,e){this.router=t,this.injector=e}return e.prototype.canActivate=function(e,n){var r=this,o=h.Klass.get(e.component).getMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY),i=new ut(o,this.injector);return i.sanitise(e).then(function(t){return t||i.redirect(r.router),t})},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:p.Router},{type:n.Injector}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(p.Router),n.ɵɵinject(n.INJECTOR))},token:e,providedIn:"root"}),C([s.Trace(),M("design:type",Function),M("design:paramtypes",[p.ActivatedRouteSnapshot,p.RouterStateSnapshot]),M("design:returntype",Object)],e.prototype,"canActivate",null),e}();function dt(t,e,n,r){var o=h.Opts.get(n),i=s.assert.notNil(t).toString();return{name:o.getOptional("as",i),propertyName:i,type:s.assert.notNil(e),sanitiser:o.getOptional("sanitiser",null),isRouteId:r}}ct=t.ParameterType||(t.ParameterType={}),lt=function(){function t(){}return t.prototype.format=function(t){return t},t.prototype.parse=function(t){return t},t}(),pt=function(){function t(){}return t.prototype.format=function(t){return""+t},t.prototype.parse=function(t){return+t},t}(),ct.STRING=new lt,ct.NUMBER=new pt,t.ACTIVITY_DATA=K,t.AbstractActivity=B,t.AbstractInputComponent=A,t.AbstractPlaceComponent=at,t.ActivityContainerComponent=t.ɵo,t.ActivityOutletComponent=t.ɵv,t.AlertDialogComponent=N,t.AngularUiPowerupsModule=J,t.BusyOverlayComponent=G,t.CommandDirective=F,t.ConfirmationDialogComponent=U,t.DialogInteractionService=z,t.Dimension=Q,t.DisposableComponent=O,t.EmptyStateComponent=W,t.FocusBindingDirective=T,t.INTERACTION_CONTEXT=k,t.InteractionContext=S,t.InteractionModule=H,t.LeavePlaceGuard=st,t.NumberInputComponent=j,t.PasswordInputComponent=_,t.Place=ot,t.PlaceModule=$,t.PlaceOutletComponent=Z,t.PlaceRouteGuard=ft,t.PlaceService=Y,t.Point=et,t.QueryParameter=function(e,n){return function(r,o){var i=dt(o,e,n,!1);h.Klass.get(r).addToOwnMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY,i),s.UseDelegate()(r,o)}},t.ResizeAwareComponent=nt,t.RouteId=function(e,n){return function(r,o){var i=dt(o,e,n,!0);h.Klass.get(r).addToOwnMetadataList(t.RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY,i),s.UseDelegate()(r,o)}},t.RouteParameterSanitiser=ut,t.SelectInputComponent=x,t.StringInputComponent=L,t.slideDownAndUpAnimation=function(t,e){s.OptionsHelper.get(e).getOptional("duration","100ms");var n=s.OptionsHelper.get(e).getOptional("hiddenStyleDef",X);return f.trigger(t,[f.transition(":enter",[n,f.animate("100ms")]),f.transition(":leave",[f.animate("100ms",n)])])},t.ɵa=F,t.ɵb=T,t.ɵc=O,t.ɵd=j,t.ɵe=A,t.ɵf=L,t.ɵg=_,t.ɵh=x,t.ɵi=$,t.ɵj=W,t.ɵk=G,t.ɵl=Z,t.ɵm=Y,t.ɵn=H,t.ɵp=U,t.ɵq=B,t.ɵr=K,t.ɵt=N,t.ɵw=z,t.ɵx=S,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=coolon-angular-ui-powerups.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-bindings.ts","ng://@coolon/angular-ui-powerups/lib/place/abstract-place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","DisposableComponent","tslib_1.__extends","ngOnDestroy","dispose","GarbageCollector","EMPTY_ERRORS","MutableListModel","readonly","AbstractInputComponent","_super","_this","focus","EventEmitter","blur","enterKey","escapeKey","self","errorStateMatcher","isErrorState","control","form","hasErrors","notifyClick","safelyInvoke","clickCommand","notifyFocusIn","focusCommand","emit","notifyFocusOut","blurCommand","notifyEnterKey","enterCommand","notifyEscapeKey","escapeCommand","command","isEnabled","execute","ngOnInit","enabled","Constant","TRUE","errorList","query","isEmpty","Input","args","Output","HostListener","tslib_1.__decorate","UseDelegate","MutableValueModel","NumberInputComponent","Component","selector","template","CommandDirective","elementRef","assert","notNil","pectinCommand","ngAfterViewInit","pectin","Dsl","disposeWith","chain","subscribe","nativeElement","removeAttribute","tagName","setAttribute","$event","preventDefault","stopPropagation","event","console","warn","Directive","ElementRef","type","Inject","FocusBindingDirective","el","ngZone","document","onFocusIn","pectinFocusBinding","focusCallbacks","onFocusOut","focused","alreadyHasFocus","tryAndFocus","isFocused","focusTarget","element","activeElement","retries","modelShouldStillHaveFocus","canFocus","Logger","get","log","requestAnimationFrame","focusBindingTarget","dimension","getBoundingClientRect","height","NgZone","DOCUMENT","StringInputComponent","PasswordInputComponent","SelectInputComponent","optionLabelFormat","option","optionLabel","ListModel","StoreInListModel","INTERACTION_CONTEXT","InjectionToken","AbstractActivity","_doneListeners","EventListenerList","_cancelListeners","_finishListeners","_busyModel","DelegatingValueModel","withDefault","onDone","callback","add","onCancel","fireAndWait","l","finally","finalizeAndDispose","cancel","error","fire","forEach","busyWhile","busyModel","setDelegate","isBusy","ACTIVITY_DATA","AlertDialogComponent","alert","ActivityOutletComponent","ConfirmationDialogComponent","confirm","isDestructive","destructive","ActivityContainerComponent","activityTabs","obsoleteTabs","observe","valuesFrom","tabs","animationDone","cleanUpTabs","initialise","options","initialActivity","interactionContext","startActivity","activityType","data","deferred","Deferred","defer","context","activityClass","activityData","selectedIndex","promise","filter","tab","includes","ViewChild","static","ActivityContext","exports","ɵv","componentFactoryResolver","viewContainerRef","injector","activityContext","loadActivity","Injector","providers","provide","InteractionContext","useValue","parent","componentFactory","resolveComponentFactory","clear","activityComponent","createComponent","instance","ComponentFactoryResolver","ViewContainerRef","OutletInteractionContext","lang","notImplemented","DialogInteractionService","dialogService","_startActivity","disableClose","config","panelClass","autoFocus","matDialogRef","open","activityContainer","componentInstance","parentInteractionContext","close","updateSize","Injectable","providedIn","MatDialog","InteractionModule","NgModule","imports","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","declarations","entryComponents","BusyOverlayComponent","UseDelegatingValueModel","ValueModel","StoreInValueModel","EmptyStateComponent","PlaceService","_activePlaces","onActivate","place","onDeactivate","remove","Trace","PlaceOutletComponent","placeService","PlaceModule","MatProgressSpinnerModule","RouterModule","AngularUiPowerupsModule","BrowserModule","BrowserAnimationsModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","defaultHiddenStyleDef","style","opacity","paddingTop","paddingBottom","Dimension","width","Bounds","Point","x","from","translate","top","left","relativePositionOf","point","MouseEvent","clientX","clientY","ofElement","rect","ResizeAwareComponent","_boundsModel","ValueHolder","updateBounds","ro","ResizeObserver","entries","observer","run","onDispose","disconnect","bounds","Result","Place","defineMetadata","Callback","Options","Descriptor","placeClass","path","title","authenticate","_.isNil","getDescriptor","klass","placeOptions","getMetadata","ResolvedParameters","parameters","parameter","resolved","find","resolvedValue","replace","concat","getFormattedRouteId","routeIdParam","getRouteIdParam","format","isRouteId","getFormattedParameters","params","name","hasRouteId","redirect","previous","router","activatedRoute","routeId","relativePath","navigate","relativeTo","Router","ActivatedRoute","RouteParameterBindings","component","_incomingRouteChange","resolvedParameters","_a","when","valueOf","before","after","txo","TransactionObserver","routeParameterDefs","Klass","getMetadataList","ROUTE_PARAMETER_LIST_KEY","installBinding","incomingResolvedRouteParameters","paramMap","last","map","parse","changes","unless","incomingRouteChange","model","getModelFor","propertyName","registerDisposable","Binding","toRight","toLeft","currentParameters","AbstractPlaceComponent","routeBindingMediator","setDefault","placeConfig","canDeactivate","Memoize","LeavePlaceGuard","currentRoute","currentState","nextState","RouteParameterSanitiser","parameterDefs","sanitisedParameters","routeParameter","queryParameters","sanitise","snapshot","sanitiseParameter","_d","_b","tslib_1.__values","_c","param","queryParamMap","def","formattedInitialValue","sanitiser","getSanitiser","initialValue","sanitisedValue","isTruthy","sanitisedRouteId","queryParams","reduce","item","ParameterType","StringType","NumberType","PlaceRouteGuard","canActivate","route","state","routeParameters","proceed","ActivatedRouteSnapshot","RouterStateSnapshot","createDefinition","opts","Opts","propertyNameAsString","toString","getOptional","STRING","NUMBER","propertyKey","addToOwnMetadataList","triggerName","OptionsHelper","hiddenStyleDef","trigger","transition","animate"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport {\n Constant,\n ListModel,\n MutableListModel,\n MutableValueModel,\n UiCommand,\n UseDelegate,\n ValueModel\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\n\nconst EMPTY_ERRORS = new MutableListModel<string>().readonly;\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n @Input() @UseDelegate()\n valueModel: MutableValueModel<T>;\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: UiCommand.Nullary;\n @Input('command.blur') blurCommand: UiCommand.Nullary;\n @Input('command.enter') enterCommand: UiCommand.Nullary;\n @Input('command.escape') escapeCommand: UiCommand.Nullary;\n @Input('command.click') clickCommand: UiCommand.Nullary;\n\n @Output() focus = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() enterKey = new EventEmitter();\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: UiCommand.Nullary) {\n if (command && command.isEnabled()) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n // this._focused = this.valueModel['focused'] || new ValueHolder();\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n // @ts-ignore\n return (this.valueModel as any).enabled || Constant.TRUE;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return (this.valueModel as any).errorList || EMPTY_ERRORS;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {assert, Dsl, GarbageCollector, UiCommand} from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: UiCommand.Nullary<any>;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\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 {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinCommand.enabled).subscribe(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 });\n\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.isEnabled()) {\n this.pectinCommand.execute({event: $event});\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","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 this.pectinFocusBinding.focusCallbacks.notifyFocusIn();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusOut();\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 const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinFocusBinding.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\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.pectinFocusBinding.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","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponent: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponent = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponent.instance.onDone(activityContext.onDone);\n this.activityComponent.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n console.log(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.cleanUpTabs());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private cleanUpTabs() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegatingValueModel, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'aup-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegatingValueModel()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor() {\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss']\n})\nexport class PlaceOutletComponent implements OnInit {\n\n constructor(private readonly placeService: PlaceService) { }\n\n ngOnInit() {\n }\n\n onActivate($event: PlaceComponent) {\n this.placeService.onActivate($event);\n }\n onDeactivate($event: PlaceComponent) {\n this.placeService.onDeactivate($event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PlaceService } from './place.service';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n RouterModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent} from './components/forms/number-input/number-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule,\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { assert, Constructable } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n Reflect.defineMetadata('place.options', options, target);\n };\n}\n\nexport namespace Place {\n export interface Options {\n path: string,\n title: string,\n authenticate?: boolean // defaults to true\n // childOf?: Constructable<PlaceComponent>\n }\n\n export class Descriptor {\n readonly path: string;\n readonly authenticate: boolean;\n readonly title: string;\n\n constructor(placeClass: Constructable<PlaceComponent>, options: Options) {\n assert.notNil(options);\n this.path = options.path;\n this.title = options.title;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n }\n }\n\n export function getDescriptor(klass: Constructable<PlaceComponent>): Descriptor {\n const placeOptions = Reflect.getMetadata('place.options', klass);\n return new Descriptor(klass, placeOptions);\n }\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport {\n Binding,\n Dsl,\n GarbageCollector,\n MutableHasValue,\n MutableValueModel,\n Trace,\n TransactionObserver\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { AbstractPlaceComponent } from '../abstract-place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\n\ninterface ResolvedParameter<T> {\n parameter: ParameterDefinition<T>;\n resolvedValue: T;\n}\n\nclass ResolvedParameters {\n constructor(readonly parameters: ResolvedParameter<any>[]) {\n }\n\n get<T>(parameter: ParameterDefinition<T>): T {\n const resolved = this.parameters.find(p => p.parameter === parameter);\n return resolved ? resolved.resolvedValue : null;\n }\n\n replace<T>(parameter: ParameterDefinition<T>, value: T): ResolvedParameters {\n return new ResolvedParameters(this.parameters.filter(p => p.parameter !== parameter).concat({\n parameter,\n resolvedValue: value\n }));\n }\n\n @Trace()\n protected getFormattedRouteId() {\n const routeIdParam = this.getRouteIdParam();\n return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;\n }\n\n private getRouteIdParam() {\n return this.parameters.find(p => p.parameter.isRouteId);\n }\n\n @Trace()\n protected getFormattedParameters() {\n const params = {};\n const routeIdParam = this.parameters.filter(p => !p.parameter.isRouteId).forEach(p => {\n params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);\n });\n return params;\n }\n\n hasRouteId() {\n return !!this.getRouteIdParam();\n }\n\n @Trace()\n redirect(previous: ResolvedParameters, router: Router, activatedRoute: ActivatedRoute) {\n const routeId = this.getFormattedRouteId();\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];\n router.navigate(path, {\n relativeTo: activatedRoute,\n });\n }\n}\n\nexport class RouteParameterBindings extends GarbageCollector {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n\n private txo: TransactionObserver;\n\n private readonly resolvedParameters = new MutableValueModel<ResolvedParameters>();\n\n constructor(private readonly component: any, private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);\n this.txo = new TransactionObserver();//.onEvent(e => console.log(e.toString()));\n\n const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n routeParameterDefs.forEach(parameter => this.installBinding(parameter));\n\n const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => {\n const result: ResolvedParameter<any>[] = [];\n routeParameterDefs.forEach(parameter => {\n result.push({ parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });\n });\n return new ResolvedParameters(result);\n });\n\n incomingResolvedRouteParameters.subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n params.redirect(previous, router, activatedRoute);\n }, { unless: this.incomingRouteChange });\n\n this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);\n this.txo.observe('this.routeIsChanging', this.incomingRouteChange);\n }\n\n get incomingRouteChange() {\n return this._incomingRouteChange.readonly;\n }\n\n protected installBinding<T>(parameter: ParameterDefinition<T>) {\n const model = this.getModelFor(parameter);\n this.txo.observe(parameter.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ResolvedParameters): T {\n return parameters.get(parameter);\n },\n toLeft(value: T, currentParameters?: ResolvedParameters): ResolvedParameters {\n return currentParameters.replace(parameter, value);\n }\n }));\n }\n\n\n private getModelFor<T>(parameter: ParameterDefinition<T>): MutableHasValue<T> {\n return this.component[parameter.propertyName];\n }\n}\n\nexport namespace RouteParameterBindings {\n export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n}\n","import { ActivatedRoute, Router } from '@angular/router';\n\nimport { Constructable, DelegatingValueModel, MutableValueModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponent } from './place-component';\nimport { Place } from './place.decorator';\nimport { RouteParameterBindings } from './route/route-parameter-bindings';\n\nexport class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {\n\n @UseDelegate()\n readonly titleModel: MutableValueModel<string>;\n\n private routeBindingMediator: RouteParameterBindings;\n\n constructor(protected activatedRoute: ActivatedRoute, router: Router) {\n super();\n this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, router, activatedRoute));\n // See https://coolon.atlassian.net/browse/PEC-59\n (this.titleModel as unknown as DelegatingValueModel<string>).setDefault(this.placeConfig.title);\n }\n\n @Memoize()\n get placeConfig(): Place.Descriptor {\n return Place.getDescriptor(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return component.canDeactivate();\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class RouteParameterSanitiser {\n\n private readonly routeParameter: ParameterDefinition<any>;\n private readonly queryParameters: ParameterDefinition<any>[];\n\n private readonly sanitisedParameters: { def: ParameterDefinition<any>, value: string }[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[], readonly injector: Injector) {\n this.routeParameter = parameterDefs.find(p => p.isRouteId);\n this.queryParameters = parameterDefs.filter(p => !p.isRouteId);\n }\n\n async sanitise(snapshot: ActivatedRouteSnapshot): Promise<boolean> {\n if (this.routeParameter) {\n const routeOk = await this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name));\n if (!routeOk) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const param of this.queryParameters) {\n await this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name));\n }\n return this.sanitisedParameters.length === 0;\n }\n\n @Trace()\n async sanitiseParameter<T>(def: ParameterDefinition<T>, formattedInitialValue: string): Promise<boolean> {\n if (def) {\n const sanitiser = this.getSanitiser(def);\n if (sanitiser) {\n const initialValue = def.type.parse(formattedInitialValue);\n const sanitisedValue = await sanitiser.sanitise(initialValue);\n if (initialValue !== sanitisedValue) {\n this.sanitisedParameters.push({ def, value: def.type.format(sanitisedValue) });\n return false;\n }\n }\n }\n return true;\n }\n\n redirect(router: Router) {\n assert.isTruthy(this.sanitisedParameters.length !== 0);\n const sanitisedRouteId = this.sanitisedParameters.find(s => s.def === this.routeParameter);\n if (sanitisedRouteId) {\n return router.navigate(['..', sanitisedRouteId.value]);\n } else {\n const queryParams = this.sanitisedParameters.filter(s => s.def !== this.routeParameter)\n .reduce((params, item) => ({ ...params, [item.def.name]: item.value }), {});\n return router.navigate(['.', queryParams]);\n }\n }\n\n @Memoize()\n private getSanitiser<T>(def: ParameterDefinition<T>): ParameterSanitiser<T> {\n return def.sanitiser ? this.injector.get<ParameterSanitiser<T>>(def.sanitiser, new def.sanitiser()) : null;\n }\n}\n","export interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return +value;\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { RouteParameterBindings } from '../route/route-parameter-bindings';\nimport { RouteParameterSanitiser } from '../route/route-parameter-sanitiser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n @Trace()\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n const sanitiser = new RouteParameterSanitiser(routeParameters, this.injector);\n return sanitiser.sanitise(route).then(proceed => {\n if (!proceed) {\n sanitiser.redirect(this.router);\n }\n return proceed;\n });\n }\n\n}\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\nimport { RouteParameterBindings } from './route-parameter-bindings';\n\nexport interface ParameterOptions<T> {\n as?: string;\n sanitiser?: Constructable<ParameterSanitiser<T>>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n\nexport function QueryParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId\n };\n return def;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-bindings.ts","ng://@coolon/angular-ui-powerups/lib/place/abstract-place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","DisposableComponent","tslib_1.__extends","ngOnDestroy","dispose","GarbageCollector","EMPTY_ERRORS","MutableListModel","readonly","AbstractInputComponent","_super","_this","focus","EventEmitter","blur","enterKey","escapeKey","self","errorStateMatcher","isErrorState","control","form","hasErrors","notifyClick","safelyInvoke","clickCommand","notifyFocusIn","focusCommand","emit","notifyFocusOut","blurCommand","notifyEnterKey","enterCommand","notifyEscapeKey","escapeCommand","command","isEnabled","execute","ngOnInit","enabled","Constant","TRUE","errorList","query","isEmpty","Input","args","Output","HostListener","tslib_1.__decorate","UseDelegate","MutableValueModel","NumberInputComponent","Component","selector","template","CommandDirective","elementRef","assert","notNil","pectinCommand","ngAfterViewInit","pectin","Dsl","disposeWith","chain","subscribe","nativeElement","removeAttribute","tagName","setAttribute","$event","preventDefault","stopPropagation","event","console","warn","Directive","ElementRef","type","Inject","FocusBindingDirective","el","ngZone","document","onFocusIn","pectinFocusBinding","focusCallbacks","onFocusOut","focused","alreadyHasFocus","tryAndFocus","isFocused","focusTarget","element","activeElement","retries","modelShouldStillHaveFocus","canFocus","Logger","get","log","requestAnimationFrame","focusBindingTarget","dimension","getBoundingClientRect","height","NgZone","DOCUMENT","StringInputComponent","PasswordInputComponent","SelectInputComponent","optionLabelFormat","option","optionLabel","ListModel","StoreInListModel","INTERACTION_CONTEXT","InjectionToken","AbstractActivity","_doneListeners","EventListenerList","_cancelListeners","_finishListeners","_busyModel","DelegatingValueModel","withDefault","onDone","callback","add","onCancel","fireAndWait","l","finally","finalizeAndDispose","cancel","error","fire","forEach","busyWhile","busyModel","setDelegate","isBusy","ACTIVITY_DATA","AlertDialogComponent","alert","ActivityOutletComponent","ConfirmationDialogComponent","confirm","isDestructive","destructive","ActivityContainerComponent","activityTabs","obsoleteTabs","observe","valuesFrom","tabs","animationDone","cleanUpTabs","initialise","options","initialActivity","interactionContext","startActivity","activityType","data","deferred","Deferred","defer","context","activityClass","activityData","selectedIndex","promise","filter","tab","includes","ViewChild","static","ActivityContext","exports","ɵv","componentFactoryResolver","viewContainerRef","injector","activityContext","loadActivity","Injector","providers","provide","InteractionContext","useValue","parent","componentFactory","resolveComponentFactory","clear","activityComponent","createComponent","instance","ComponentFactoryResolver","ViewContainerRef","OutletInteractionContext","lang","notImplemented","DialogInteractionService","dialogService","_startActivity","disableClose","config","panelClass","autoFocus","matDialogRef","open","activityContainer","componentInstance","parentInteractionContext","close","updateSize","Injectable","providedIn","MatDialog","InteractionModule","NgModule","imports","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","declarations","entryComponents","BusyOverlayComponent","UseDelegatingValueModel","ValueModel","StoreInValueModel","EmptyStateComponent","PlaceService","_activePlaces","onActivate","place","onDeactivate","remove","Trace","PlaceOutletComponent","placeService","PlaceModule","MatProgressSpinnerModule","RouterModule","AngularUiPowerupsModule","BrowserModule","BrowserAnimationsModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","defaultHiddenStyleDef","style","opacity","paddingTop","paddingBottom","Dimension","width","Bounds","Point","x","from","translate","top","left","relativePositionOf","point","MouseEvent","clientX","clientY","ofElement","rect","ResizeAwareComponent","_boundsModel","ValueHolder","updateBounds","ro","ResizeObserver","entries","observer","run","onDispose","disconnect","bounds","Result","Place","defineMetadata","Callback","Options","Descriptor","placeClass","path","title","authenticate","_.isNil","getDescriptor","klass","placeOptions","getMetadata","ResolvedParameters","parameters","parameter","resolved","find","resolvedValue","replace","concat","getFormattedRouteId","routeIdParam","getRouteIdParam","format","isRouteId","getFormattedParameters","params","name","hasRouteId","redirect","previous","router","activatedRoute","routeId","relativePath","navigate","relativeTo","Router","ActivatedRoute","RouteParameterBindings","component","_incomingRouteChange","resolvedParameters","_a","when","valueOf","before","after","txo","TransactionObserver","routeParameterDefs","Klass","getMetadataList","ROUTE_PARAMETER_LIST_KEY","installBinding","incomingResolvedRouteParameters","paramMap","last","map","parse","changes","unless","incomingRouteChange","model","getModelFor","propertyName","registerDisposable","Binding","toRight","toLeft","currentParameters","AbstractPlaceComponent","routeBindingMediator","setDefault","placeConfig","canDeactivate","Memoize","LeavePlaceGuard","currentRoute","currentState","nextState","RouteParameterSanitiser","parameterDefs","sanitisedParameters","routeParameter","queryParameters","sanitise","snapshot","sanitiseParameter","_d","_b","tslib_1.__values","_c","param","queryParamMap","def","formattedInitialValue","sanitiser","getSanitiser","initialValue","sanitisedValue","isTruthy","sanitisedRouteId","queryParams","reduce","item","ParameterType","StringType","NumberType","PlaceRouteGuard","canActivate","route","state","routeParameters","proceed","ActivatedRouteSnapshot","RouterStateSnapshot","createDefinition","opts","Opts","propertyNameAsString","toString","getOptional","STRING","NUMBER","propertyKey","addToOwnMetadataList","triggerName","OptionsHelper","hiddenStyleDef","trigger","transition","animate"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport {\n Constant,\n ListModel,\n MutableListModel,\n MutableValueModel,\n UiCommand,\n UseDelegate,\n ValueModel\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\n\nconst EMPTY_ERRORS = new MutableListModel<string>().readonly;\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n @Input() @UseDelegate()\n valueModel: MutableValueModel<T>;\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: UiCommand.Nullary;\n @Input('command.blur') blurCommand: UiCommand.Nullary;\n @Input('command.enter') enterCommand: UiCommand.Nullary;\n @Input('command.escape') escapeCommand: UiCommand.Nullary;\n @Input('command.click') clickCommand: UiCommand.Nullary;\n\n @Output() focus = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() enterKey = new EventEmitter();\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: UiCommand.Nullary) {\n if (command && command.isEnabled()) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n // this._focused = this.valueModel['focused'] || new ValueHolder();\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n // @ts-ignore\n return (this.valueModel as any).enabled || Constant.TRUE;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return (this.valueModel as any).errorList || EMPTY_ERRORS;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {assert, Dsl, GarbageCollector, UiCommand} from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: UiCommand.Nullary<any>;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\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 {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinCommand.enabled).subscribe(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 });\n\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.isEnabled()) {\n this.pectinCommand.execute({event: $event});\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","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 this.pectinFocusBinding.focusCallbacks.notifyFocusIn();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusOut();\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 const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinFocusBinding.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\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.pectinFocusBinding.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","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponent: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponent = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponent.instance.onDone(activityContext.onDone);\n this.activityComponent.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n console.log(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.cleanUpTabs());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private cleanUpTabs() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegatingValueModel, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'aup-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegatingValueModel()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor() {\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss']\n})\nexport class PlaceOutletComponent implements OnInit {\n\n constructor(private readonly placeService: PlaceService) { }\n\n ngOnInit() {\n }\n\n onActivate($event: PlaceComponent) {\n this.placeService.onActivate($event);\n }\n onDeactivate($event: PlaceComponent) {\n this.placeService.onDeactivate($event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PlaceService } from './place.service';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n RouterModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent} from './components/forms/number-input/number-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule,\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { assert, Constructable } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n Reflect.defineMetadata('place.options', options, target);\n };\n}\n\nexport namespace Place {\n export interface Options {\n path: string,\n title: string,\n authenticate?: boolean // defaults to true\n // childOf?: Constructable<PlaceComponent>\n }\n\n export class Descriptor {\n readonly path: string;\n readonly authenticate: boolean;\n readonly title: string;\n\n constructor(placeClass: Constructable<PlaceComponent>, options: Options) {\n assert.notNil(options);\n this.path = options.path;\n this.title = options.title;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n }\n }\n\n export function getDescriptor(klass: Constructable<PlaceComponent>): Descriptor {\n const placeOptions = Reflect.getMetadata('place.options', klass);\n return new Descriptor(klass, placeOptions);\n }\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport {\n Binding,\n Dsl,\n GarbageCollector,\n MutableHasValue,\n MutableValueModel,\n Trace,\n TransactionObserver\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { AbstractPlaceComponent } from '../abstract-place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\n\ninterface ResolvedParameter<T> {\n parameter: ParameterDefinition<T>;\n resolvedValue: T;\n}\n\nclass ResolvedParameters {\n constructor(readonly parameters: ResolvedParameter<any>[]) {\n }\n\n get<T>(parameter: ParameterDefinition<T>): T {\n const resolved = this.parameters.find(p => p.parameter === parameter);\n return resolved ? resolved.resolvedValue : null;\n }\n\n replace<T>(parameter: ParameterDefinition<T>, value: T): ResolvedParameters {\n return new ResolvedParameters(this.parameters.filter(p => p.parameter !== parameter).concat({\n parameter,\n resolvedValue: value\n }));\n }\n\n @Trace()\n protected getFormattedRouteId() {\n const routeIdParam = this.getRouteIdParam();\n return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;\n }\n\n private getRouteIdParam() {\n return this.parameters.find(p => p.parameter.isRouteId);\n }\n\n @Trace()\n protected getFormattedParameters() {\n const params = {};\n const routeIdParam = this.parameters.filter(p => !p.parameter.isRouteId).forEach(p => {\n params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);\n });\n return params;\n }\n\n hasRouteId() {\n return !!this.getRouteIdParam();\n }\n\n @Trace()\n redirect(previous: ResolvedParameters, router: Router, activatedRoute: ActivatedRoute) {\n const routeId = this.getFormattedRouteId();\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];\n router.navigate(path, {\n relativeTo: activatedRoute,\n });\n }\n}\n\nexport class RouteParameterBindings extends GarbageCollector {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n\n private txo: TransactionObserver;\n\n private readonly resolvedParameters = new MutableValueModel<ResolvedParameters>();\n\n constructor(private readonly component: any, private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);\n this.txo = new TransactionObserver();//.onEvent(e => console.log(e.toString()));\n\n const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n routeParameterDefs.forEach(parameter => this.installBinding(parameter));\n\n const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => {\n const result: ResolvedParameter<any>[] = [];\n routeParameterDefs.forEach(parameter => {\n result.push({ parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });\n });\n return new ResolvedParameters(result);\n });\n\n incomingResolvedRouteParameters.subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n params.redirect(previous, router, activatedRoute);\n }, { unless: this.incomingRouteChange });\n\n this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);\n this.txo.observe('this.routeIsChanging', this.incomingRouteChange);\n }\n\n get incomingRouteChange() {\n return this._incomingRouteChange.readonly;\n }\n\n protected installBinding<T>(parameter: ParameterDefinition<T>) {\n const model = this.getModelFor(parameter);\n this.txo.observe(parameter.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ResolvedParameters): T {\n return parameters.get(parameter);\n },\n toLeft(value: T, currentParameters?: ResolvedParameters): ResolvedParameters {\n return currentParameters.replace(parameter, value);\n }\n }));\n }\n\n\n private getModelFor<T>(parameter: ParameterDefinition<T>): MutableHasValue<T> {\n return this.component[parameter.propertyName];\n }\n}\n\nexport namespace RouteParameterBindings {\n export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n}\n","import { ActivatedRoute, Router } from '@angular/router';\n\nimport { Constructable, DelegatingValueModel, MutableValueModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponent } from './place-component';\nimport { Place } from './place.decorator';\nimport { RouteParameterBindings } from './route/route-parameter-bindings';\n\nexport class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {\n\n @UseDelegate()\n readonly titleModel: MutableValueModel<string>;\n\n private routeBindingMediator: RouteParameterBindings;\n\n constructor(protected activatedRoute: ActivatedRoute, router: Router) {\n super();\n this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, router, activatedRoute));\n // See https://coolon.atlassian.net/browse/PEC-59\n (this.titleModel as unknown as DelegatingValueModel<string>).setDefault(this.placeConfig.title);\n }\n\n @Memoize()\n get placeConfig(): Place.Descriptor {\n return Place.getDescriptor(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return component.canDeactivate();\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class RouteParameterSanitiser {\n\n private readonly routeParameter: ParameterDefinition<any>;\n private readonly queryParameters: ParameterDefinition<any>[];\n\n private readonly sanitisedParameters: { def: ParameterDefinition<any>, value: string }[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[], readonly injector: Injector) {\n this.routeParameter = parameterDefs.find(p => p.isRouteId);\n this.queryParameters = parameterDefs.filter(p => !p.isRouteId);\n }\n\n async sanitise(snapshot: ActivatedRouteSnapshot): Promise<boolean> {\n if (this.routeParameter) {\n const routeOk = await this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name));\n if (!routeOk) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const param of this.queryParameters) {\n await this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name));\n }\n return this.sanitisedParameters.length === 0;\n }\n\n @Trace()\n async sanitiseParameter<T>(def: ParameterDefinition<T>, formattedInitialValue: string): Promise<boolean> {\n if (def) {\n const sanitiser = this.getSanitiser(def);\n if (sanitiser) {\n const initialValue = def.type.parse(formattedInitialValue);\n const sanitisedValue = await sanitiser.sanitise(initialValue);\n if (initialValue !== sanitisedValue) {\n this.sanitisedParameters.push({ def, value: def.type.format(sanitisedValue) });\n return false;\n }\n }\n }\n return true;\n }\n\n redirect(router: Router) {\n assert.isTruthy(this.sanitisedParameters.length !== 0);\n const sanitisedRouteId = this.sanitisedParameters.find(s => s.def === this.routeParameter);\n if (sanitisedRouteId) {\n return router.navigate(['..', sanitisedRouteId.value]);\n } else {\n const queryParams = this.sanitisedParameters.filter(s => s.def !== this.routeParameter)\n .reduce((params, item) => ({ ...params, [item.def.name]: item.value }), {});\n return router.navigate(['.', queryParams]);\n }\n }\n\n @Memoize()\n private getSanitiser<T>(def: ParameterDefinition<T>): ParameterSanitiser<T> {\n return def.sanitiser ? this.injector.get<ParameterSanitiser<T>>(def.sanitiser, new def.sanitiser()) : null;\n }\n}\n","export interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return +value;\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { RouteParameterBindings } from '../route/route-parameter-bindings';\nimport { RouteParameterSanitiser } from '../route/route-parameter-sanitiser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n @Trace()\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n const sanitiser = new RouteParameterSanitiser(routeParameters, this.injector);\n return sanitiser.sanitise(route).then(proceed => {\n if (!proceed) {\n sanitiser.redirect(this.router);\n }\n return proceed;\n });\n }\n\n}\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\nimport { RouteParameterBindings } from './route-parameter-bindings';\n\nexport interface ParameterOptions<T> {\n as?: string;\n sanitiser?: Constructable<ParameterSanitiser<T>>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n\nexport function QueryParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId\n };\n return def;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/abstract-place-component"},{"from":"./lib/place-component"},{"from":"./lib/place.decorator"},{"from":"./lib/place.module"},{"from":"./lib/place.service"},{"from":"./lib/components/busy-overlay/busy-overlay.component"},{"from":"./lib/components/empty-state/empty-state.component"},{"from":"./lib/components/place-outlet/place-outlet.component"},{"from":"./lib/guards/leave-place.guard"},{"from":"./lib/guards/place-route.guard"},{"from":"./lib/route/json-types"},{"from":"./lib/route/parameter-decorators"},{"from":"./lib/route/parameter-definition.class"},{"from":"./lib/route/parameter-sanitiser"},{"from":"./lib/route/parameter-type"},{"from":"./lib/route/route-parameter-bindings"},{"from":"./lib/route/route-parameter-sanitiser"}],"metadata":{"AngularUiPowerupsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":31,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵn"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":7,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[pectinCommand]"}]}],"members":{"pectinCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":45,"character":3},"arguments":["click",["$event"]]}]}]}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"[pectinFocusBinding]"}]}],"members":{"pectinFocusBinding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"focusBindingTarget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"onFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["focusin"]}]}],"onFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":22,"character":3},"arguments":["focusout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":27,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":28,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":29,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":27,"character":55},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":28,"character":55},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"alreadyHasFocus":[{"__symbolic":"method"}],"isFocused":[{"__symbolic":"method"}],"tryAndFocus":[{"__symbolic":"method"}],"modelShouldStillHaveFocus":[{"__symbolic":"method"}],"canFocus":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":3,"character":41},"members":{"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-number-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"valueModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":20,"character":12}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"hint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"focusCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3},"arguments":["command.focus"]}]}],"blurCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3},"arguments":["command.blur"]}]}],"enterCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["command.enter"]}]}],"escapeCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3},"arguments":["command.escape"]}]}],"clickCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["command.click"]}]}],"focus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"blur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"enterKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"escapeKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":41,"character":3},"arguments":["click"]}]}],"notifyFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":46,"character":3},"arguments":["focusin"]}]}],"notifyFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":52,"character":3},"arguments":["focusout"]}]}],"notifyEnterKey":[{"__symbolic":"method"}],"notifyEscapeKey":[{"__symbolic":"method"}],"safelyInvoke":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"isEnabled":[{"__symbolic":"method"}],"hasErrors":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-string-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-password-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-select-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of optionsModel.value\" [value]=\"option\">{{optionLabelFormat(option)}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n","styles":[":host{display:inline-block}mat-form-field{width:100%}"]}]}],"members":{"optionsModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":11,"character":12}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":14,"character":12},"arguments":["optionsModel"]}]}],"optionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"optionLabelFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":13,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"entryComponents":[{"__symbolic":"reference","name":"ɵk"}],"exports":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵj"}],"providers":[{"__symbolic":"reference","name":"ɵm"}]}]}],"members":{}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"angular-ui-powerups-empty-state","template":"\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ","styles":[":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"aup-busy-overlay","template":"<ng-content></ng-content>\n<div class=\"busy-overlay-backdrop\" *ngIf=\"busyModel.value\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"52\"></mat-progress-spinner>\n</div>\n","styles":[":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:rgba(0,0,0,.2);top:0;left:0;bottom:0;right:0;display:-ms-grid;display:grid;-ms-grid-columns:auto;grid-template-columns:auto;-ms-grid-rows:auto;grid-template-rows:auto;place-content:center}"]}]}],"members":{"busyModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegatingValueModel","line":10,"character":12}}]}],"busy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":13,"character":12},"arguments":["busyModel"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-place-outlet","template":"<router-outlet (activate)=\"onActivate($event)\" (deactivate)=\"onDeactivate($event)\"></router-outlet>\n","styles":[":host{grid-area:main;display:-ms-grid;display:grid;-ms-grid-rows:0 1fr;grid-template-rows:0 1fr;min-height:0}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵm"}]}],"ngOnInit":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onDeactivate":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"onActivate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":18,"character":3}}]}],"onDeactivate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":23,"character":3}}]}]},"statics":{"ngInjectableDef":{}}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":16,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵv"}],"entryComponents":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵt"}],"providers":[{"__symbolic":"reference","name":"ɵw"}]}]}],"members":{}},"ɵo":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"initialActivity\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of activityTabs.value\">\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"tab\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n","styles":[":host{display:block}"]}]}],"members":{"parentInteractionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"initialActivity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["tabs",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"cleanUpTabs":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵq"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"angular-ui-powerups-confirmation-dialog","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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n","styles":[":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵr"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵs"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"onDone":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"finalizeAndDispose":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":33},"arguments":["InteractionActivityData"]},"ɵs":{"__symbolic":"interface"},"ɵt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵq"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"angular-ui-powerups-alert-dialog","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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n","styles":[":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵr"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵu"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"interface"},"ɵv":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-outlet","template":"","styles":[":host{display:block}"]}]}],"members":{"interactionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":35,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":16,"character":46}]}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵx":{"__symbolic":"class","members":{"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}}},"origins":{"AngularUiPowerupsModule":"./lib/angular-ui-powerups.module","ɵa":"./lib/directives/command.directive","ɵb":"./lib/directives/focus-binding.directive","ɵc":"./lib/components/disposable-component","ɵd":"./lib/components/forms/number-input/number-input.component","ɵe":"./lib/components/forms/abstract-input.component","ɵf":"./lib/components/forms/string-input/string-input.component","ɵg":"./lib/components/forms/password-input/password-input.component","ɵh":"./lib/components/forms/select-input/select-input.component","ɵi":"./lib/place/place.module","ɵj":"./lib/place/components/empty-state/empty-state.component","ɵk":"./lib/place/components/busy-overlay/busy-overlay.component","ɵl":"./lib/place/components/place-outlet/place-outlet.component","ɵm":"./lib/place/place.service","ɵn":"./lib/interaction/interaction.module","ɵo":"./lib/interaction/components/activity-container/activity-container.component","ɵp":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵq":"./lib/interaction/abstract-activity","ɵr":"./lib/interaction/activity","ɵs":"./lib/interaction/confirm","ɵt":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵu":"./lib/interaction/alert","ɵv":"./lib/interaction/components/activity-outlet/activity-outlet.component","ɵw":"./lib/interaction/services/dialog-interaction.service","ɵx":"./lib/interaction/interaction-context"},"importAs":"@coolon/angular-ui-powerups"}
|
|
1
|
+
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/abstract-place-component"},{"from":"./lib/place-component"},{"from":"./lib/place.decorator"},{"from":"./lib/place.module"},{"from":"./lib/place.service"},{"from":"./lib/components/busy-overlay/busy-overlay.component"},{"from":"./lib/components/empty-state/empty-state.component"},{"from":"./lib/components/place-outlet/place-outlet.component"},{"from":"./lib/guards/leave-place.guard"},{"from":"./lib/guards/place-route.guard"},{"from":"./lib/route/json-types"},{"from":"./lib/route/parameter-decorators"},{"from":"./lib/route/parameter-definition.class"},{"from":"./lib/route/parameter-sanitiser"},{"from":"./lib/route/parameter-type"},{"from":"./lib/route/route-parameter-bindings"},{"from":"./lib/route/route-parameter-sanitiser"}],"metadata":{"AngularUiPowerupsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":31,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵn"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":7,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[pectinCommand]"}]}],"members":{"pectinCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":45,"character":3},"arguments":["click",["$event"]]}]}]}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"[pectinFocusBinding]"}]}],"members":{"pectinFocusBinding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"focusBindingTarget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"onFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["focusin"]}]}],"onFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":22,"character":3},"arguments":["focusout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":27,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":28,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":29,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":27,"character":55},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":28,"character":55},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"alreadyHasFocus":[{"__symbolic":"method"}],"isFocused":[{"__symbolic":"method"}],"tryAndFocus":[{"__symbolic":"method"}],"modelShouldStillHaveFocus":[{"__symbolic":"method"}],"canFocus":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":3,"character":41},"members":{"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-number-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"valueModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":20,"character":12}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"hint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"focusCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3},"arguments":["command.focus"]}]}],"blurCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3},"arguments":["command.blur"]}]}],"enterCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["command.enter"]}]}],"escapeCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3},"arguments":["command.escape"]}]}],"clickCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["command.click"]}]}],"focus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"blur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"enterKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"escapeKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":41,"character":3},"arguments":["click"]}]}],"notifyFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":46,"character":3},"arguments":["focusin"]}]}],"notifyFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":52,"character":3},"arguments":["focusout"]}]}],"notifyEnterKey":[{"__symbolic":"method"}],"notifyEscapeKey":[{"__symbolic":"method"}],"safelyInvoke":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"isEnabled":[{"__symbolic":"method"}],"hasErrors":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-string-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-password-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n","styles":[":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-select-input","template":"<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"valueModel\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of optionsModel.value\" [value]=\"option\">{{optionLabelFormat(option)}}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n","styles":[":host{display:inline-block}mat-form-field{width:100%}"]}]}],"members":{"optionsModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":11,"character":12}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":14,"character":12},"arguments":["optionsModel"]}]}],"optionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"optionLabelFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":13,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"entryComponents":[{"__symbolic":"reference","name":"ɵk"}],"exports":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵj"}],"providers":[{"__symbolic":"reference","name":"ɵm"}]}]}],"members":{}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"angular-ui-powerups-empty-state","template":"\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ","styles":[":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"aup-busy-overlay","template":"<ng-content></ng-content>\n<div class=\"busy-overlay-backdrop\" *ngIf=\"busyModel.value\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"52\"></mat-progress-spinner>\n</div>\n","styles":[":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:rgba(0,0,0,.2);top:0;left:0;bottom:0;right:0;display:-ms-grid;display:grid;-ms-grid-columns:auto;grid-template-columns:auto;-ms-grid-rows:auto;grid-template-rows:auto;place-content:center}"]}]}],"members":{"busyModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegatingValueModel","line":10,"character":12}}]}],"busy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":13,"character":12},"arguments":["busyModel"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"angular-ui-powerups-place-outlet","template":"<router-outlet (activate)=\"onActivate($event)\" (deactivate)=\"onDeactivate($event)\"></router-outlet>\n","styles":[":host{grid-area:main;display:-ms-grid;display:grid;-ms-grid-rows:0 1fr;grid-template-rows:0 1fr;min-height:0}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵm"}]}],"ngOnInit":[{"__symbolic":"method"}],"onActivate":[{"__symbolic":"method"}],"onDeactivate":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"onActivate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":18,"character":3}}]}],"onDeactivate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":23,"character":3}}]}]},"statics":{"ngInjectableDef":{}}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":16,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵv"}],"entryComponents":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵt"}],"providers":[{"__symbolic":"reference","name":"ɵw"}]}]}],"members":{}},"ɵo":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"initialActivity\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of activityTabs.value\">\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\" [activityContext]=\"tab\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n","styles":[":host{display:block}"]}]}],"members":{"parentInteractionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"initialActivity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["tabs",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"cleanUpTabs":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵq"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"angular-ui-powerups-confirmation-dialog","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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n","styles":[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵr"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵs"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"onDone":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"finalizeAndDispose":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":33},"arguments":["InteractionActivityData"]},"ɵs":{"__symbolic":"interface"},"ɵt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵq"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"angular-ui-powerups-alert-dialog","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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n","styles":[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵr"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵu"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"interface"},"ɵv":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-outlet","template":"","styles":[":host{display:block}"]}]}],"members":{"interactionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":35,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":16,"character":46}]}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵx":{"__symbolic":"class","members":{"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}}},"origins":{"AngularUiPowerupsModule":"./lib/angular-ui-powerups.module","ɵa":"./lib/directives/command.directive","ɵb":"./lib/directives/focus-binding.directive","ɵc":"./lib/components/disposable-component","ɵd":"./lib/components/forms/number-input/number-input.component","ɵe":"./lib/components/forms/abstract-input.component","ɵf":"./lib/components/forms/string-input/string-input.component","ɵg":"./lib/components/forms/password-input/password-input.component","ɵh":"./lib/components/forms/select-input/select-input.component","ɵi":"./lib/place/place.module","ɵj":"./lib/place/components/empty-state/empty-state.component","ɵk":"./lib/place/components/busy-overlay/busy-overlay.component","ɵl":"./lib/place/components/place-outlet/place-outlet.component","ɵm":"./lib/place/place.service","ɵn":"./lib/interaction/interaction.module","ɵo":"./lib/interaction/components/activity-container/activity-container.component","ɵp":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵq":"./lib/interaction/abstract-activity","ɵr":"./lib/interaction/activity","ɵs":"./lib/interaction/confirm","ɵt":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵu":"./lib/interaction/alert","ɵv":"./lib/interaction/components/activity-outlet/activity-outlet.component","ɵw":"./lib/interaction/services/dialog-interaction.service","ɵx":"./lib/interaction/interaction-context"},"importAs":"@coolon/angular-ui-powerups"}
|
|
@@ -23,7 +23,7 @@ AlertDialogComponent.decorators = [
|
|
|
23
23
|
{ type: Component, args: [{
|
|
24
24
|
selector: 'angular-ui-powerups-alert-dialog',
|
|
25
25
|
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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n",
|
|
26
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
26
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
27
27
|
}] }
|
|
28
28
|
];
|
|
29
29
|
/** @nocollapse */
|
package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js
CHANGED
|
@@ -32,7 +32,7 @@ ConfirmationDialogComponent.decorators = [
|
|
|
32
32
|
{ type: Component, args: [{
|
|
33
33
|
selector: 'angular-ui-powerups-confirmation-dialog',
|
|
34
34
|
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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n",
|
|
35
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
35
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
36
36
|
}] }
|
|
37
37
|
];
|
|
38
38
|
/** @nocollapse */
|
|
@@ -20,7 +20,7 @@ EmptyStateComponent.decorators = [
|
|
|
20
20
|
<ng-content></ng-content>
|
|
21
21
|
</div>
|
|
22
22
|
`,
|
|
23
|
-
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
23
|
+
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
24
24
|
}] }
|
|
25
25
|
];
|
|
26
26
|
/** @nocollapse */
|
|
@@ -25,7 +25,7 @@ var AlertDialogComponent = /** @class */ (function (_super) {
|
|
|
25
25
|
{ type: Component, args: [{
|
|
26
26
|
selector: 'angular-ui-powerups-alert-dialog',
|
|
27
27
|
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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n",
|
|
28
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
28
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
29
29
|
}] }
|
|
30
30
|
];
|
|
31
31
|
/** @nocollapse */
|
package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js
CHANGED
|
@@ -37,7 +37,7 @@ var ConfirmationDialogComponent = /** @class */ (function (_super) {
|
|
|
37
37
|
{ type: Component, args: [{
|
|
38
38
|
selector: 'angular-ui-powerups-confirmation-dialog',
|
|
39
39
|
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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n",
|
|
40
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
40
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
41
41
|
}] }
|
|
42
42
|
];
|
|
43
43
|
/** @nocollapse */
|
|
@@ -18,7 +18,7 @@ var EmptyStateComponent = /** @class */ (function () {
|
|
|
18
18
|
{ type: Component, args: [{
|
|
19
19
|
selector: 'angular-ui-powerups-empty-state',
|
|
20
20
|
template: "\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ",
|
|
21
|
-
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
21
|
+
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
22
22
|
}] }
|
|
23
23
|
];
|
|
24
24
|
/** @nocollapse */
|
|
@@ -784,7 +784,7 @@ AlertDialogComponent.decorators = [
|
|
|
784
784
|
{ type: Component, args: [{
|
|
785
785
|
selector: 'angular-ui-powerups-alert-dialog',
|
|
786
786
|
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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n",
|
|
787
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
787
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
788
788
|
}] }
|
|
789
789
|
];
|
|
790
790
|
/** @nocollapse */
|
|
@@ -826,7 +826,7 @@ ConfirmationDialogComponent.decorators = [
|
|
|
826
826
|
{ type: Component, args: [{
|
|
827
827
|
selector: 'angular-ui-powerups-confirmation-dialog',
|
|
828
828
|
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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n",
|
|
829
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
829
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
830
830
|
}] }
|
|
831
831
|
];
|
|
832
832
|
/** @nocollapse */
|
|
@@ -1337,7 +1337,7 @@ EmptyStateComponent.decorators = [
|
|
|
1337
1337
|
<ng-content></ng-content>
|
|
1338
1338
|
</div>
|
|
1339
1339
|
`,
|
|
1340
|
-
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1340
|
+
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1341
1341
|
}] }
|
|
1342
1342
|
];
|
|
1343
1343
|
/** @nocollapse */
|
|
@@ -963,7 +963,7 @@ var AlertDialogComponent = /** @class */ (function (_super) {
|
|
|
963
963
|
{ type: Component, args: [{
|
|
964
964
|
selector: 'angular-ui-powerups-alert-dialog',
|
|
965
965
|
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<p matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\">{{alert.ok()}}</button>\n</p>\n",
|
|
966
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
966
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
967
967
|
}] }
|
|
968
968
|
];
|
|
969
969
|
/** @nocollapse */
|
|
@@ -1011,7 +1011,7 @@ var ConfirmationDialogComponent = /** @class */ (function (_super) {
|
|
|
1011
1011
|
{ type: Component, args: [{
|
|
1012
1012
|
selector: 'angular-ui-powerups-confirmation-dialog',
|
|
1013
1013
|
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<p matDialogActions>\n <button mat-button (click)=\"cancel()\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\" (click)=\"done(true)\">{{confirm.ok()}}</button>\n</p>\n\n",
|
|
1014
|
-
styles: [":host{display:block;padding:var(--default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1014
|
+
styles: [":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]
|
|
1015
1015
|
}] }
|
|
1016
1016
|
];
|
|
1017
1017
|
/** @nocollapse */
|
|
@@ -1624,7 +1624,7 @@ var EmptyStateComponent = /** @class */ (function () {
|
|
|
1624
1624
|
{ type: Component, args: [{
|
|
1625
1625
|
selector: 'angular-ui-powerups-empty-state',
|
|
1626
1626
|
template: "\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ",
|
|
1627
|
-
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1627
|
+
styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--angular-ui-powerups-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
|
|
1628
1628
|
}] }
|
|
1629
1629
|
];
|
|
1630
1630
|
/** @nocollapse */
|
package/package.json
CHANGED
package/styles/styles.scss
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--angular-ui-powerups-default-padding: var(--default-padding, 18px);
|
|
3
|
+
}
|
|
1
4
|
|
|
2
5
|
.dialog-interaction-service {
|
|
3
6
|
max-width: 95vw !important;
|
|
@@ -9,3 +12,15 @@
|
|
|
9
12
|
padding: 0;
|
|
10
13
|
}
|
|
11
14
|
}
|
|
15
|
+
|
|
16
|
+
[no-tab-header] {
|
|
17
|
+
> mat-tab-header {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
[full-height-tabs] {
|
|
23
|
+
.mat-tab-body-wrapper {
|
|
24
|
+
flex: 1;
|
|
25
|
+
}
|
|
26
|
+
}
|