@coolon/angular-ui-powerups 0.0.66 → 0.0.67

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.
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"exports":[{"from":"./lib/nav-item"},{"from":"./lib/place-component"},{"from":"./lib/place-definition"},{"from":"./lib/place-history"},{"from":"./lib/place-router"},{"from":"./lib/place.decorator"},{"from":"./lib/place.module"},{"from":"./lib/visit"},{"from":"./lib/components/abstract-place-navigation.component"},{"from":"./lib/components/busy-overlay/busy-overlay.component"},{"from":"./lib/components/empty-state/empty-state.component"},{"from":"./lib/components/list-place-nav/list-place-nav.component"},{"from":"./lib/components/place-outlet/place-outlet.component"},{"from":"./lib/components/place-outlet/route-animations"},{"from":"./lib/components/tabbed-place-navigation/tabbed-place-navigation.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-snapshot"},{"from":"./lib/route/parameter-type"},{"from":"./lib/route/route-parameter-value"}],"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/animations","name":"BrowserAnimationsModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":31,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵt"}],"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":"ɵt"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":7,"character":47},"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}}]}],"commandParameter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"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":66,"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":24,"character":3},"arguments":["focusout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":32,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":33,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":55},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":32,"character":55},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"hasBinding":[{"__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":{"userValueModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["valueModel"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":11,"character":24}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"hint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"focusCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["command.focus"]}]}],"blurCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["command.blur"]}]}],"enterCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3},"arguments":["command.enter"]}]}],"escapeCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3},"arguments":["command.escape"]}]}],"clickCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["command.click"]}]}],"focus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":29,"character":3}}]}],"blur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"enterKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":3}}]}],"escapeKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["click"]}]}],"notifyFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":44,"character":3},"arguments":["focusin"]}]}],"notifyFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":50,"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":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":24,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵs"}],"entryComponents":[{"__symbolic":"reference","name":"ɵk"}],"exports":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵs"}],"providers":[]}]}],"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":"angular-ui-powerups-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":"UseDelegate","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","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"angular-ui-powerups-place-outlet","animations":[{"__symbolic":"reference","name":"ɵn"}],"template":"<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated(routerOutlet, $event)\">\n </router-outlet>\n</div>\n\n","styles":[":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0}router-outlet{display:none}"]}]}],"members":{"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["routeOutlet",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"}]}],"ngOnInit":[{"__symbolic":"method"}],"onOutletActivated":[{"__symbolic":"method"}],"onOutletDeactivated":[{"__symbolic":"method"}],"getPlaceOrder":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}],"pushChangesToRoute":[{"__symbolic":"method"}],"sanitise":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"function","parameters":["duration"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":39,"character":9},"arguments":["routeAnimations",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":40,"character":4},"arguments":[":increment",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":24,"character":2},"arguments":[":enter, :leave",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":3,"character":28},"arguments":[{"position":"absolute","top":"0","left":"0","bottom":"0","right":"0"}]},{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"group","line":25,"character":2},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":26,"character":4},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":27,"character":6},"arguments":[{"transform":"translateX(100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":28,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":39},"arguments":[{"transform":"translateX(0%)"}]}]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":32,"character":4},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":32,"character":21},"arguments":[{"transform":"translateX(0%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":32,"character":61},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":32,"character":94},"arguments":[{"transform":"translateX(-100%)"}]}]}],{"optional":true}]}]]}],{"params":{"duration":{"__symbolic":"reference","name":"duration"}}}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":41,"character":4},"arguments":[":decrement",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":6,"character":2},"arguments":[":enter, :leave",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":3,"character":28},"arguments":[{"position":"absolute","top":"0","left":"0","bottom":"0","right":"0"}]},{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"group","line":7,"character":2},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":8,"character":4},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":9,"character":6},"arguments":[{"transform":"translateX(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":10,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":10,"character":39},"arguments":[{"transform":"translateX(0%)"}]}]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":14,"character":4},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":15,"character":6},"arguments":[{"transform":"translateX(0%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":16,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":16,"character":39},"arguments":[{"transform":"translateX(100%)"}]}]}],{"optional":true}]}]]}],{"params":{"duration":{"__symbolic":"reference","name":"duration"}}}]}]]}},"ɵn":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵm"},"arguments":["0.3s"]},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":33,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":40,"character":39},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":40,"character":64}]}],"pushParameterChangesToRoute":[{"__symbolic":"method"}],"getRedirectUrlTree":[{"__symbolic":"method"}],"getChildPath":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":39}]}],"add":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"setHistory":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵq":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵr"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"ɵr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"members":{"places":[{"__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":"StoreInListModel","line":10,"character":12},"arguments":["placesModel"]}]}],"placesModel":[{"__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":"UseDelegate","line":13,"character":12}}]}],"__ctor__":[{"__symbolic":"constructor"}],"getNav":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":24,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵr"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-list-place-nav","template":"<mat-nav-list class=\"app-menu\">\n <a mat-list-item *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span class=\"expanded-only\">{{getNav(place).title()}}</span>\n </a>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--expanded-width:235px;--nav-item-width:var(--nav-bar-height);width:var(--nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--expanded-width);max-width:var(--expanded-width)}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}.header{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;height:var(--nav-bar-height);border-bottom:var(--pinstripe-border);cursor:pointer}.header .menu{flex:1}.header button{color:inherit;width:var(--nav-item-width);height:var(--nav-bar-height)}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--nav-item-width);height:var(--nav-bar-height);color:inherit}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item mat-icon{margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}a[ng-reflect-router-link=manage-instruments] mat-icon{transform:rotate(90deg)}.app-menu{padding-top:0}"]}]}],"members":{"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":3},"arguments":["class.expanded"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"expandMenu":[{"__symbolic":"method"}],"collapseMenu":[{"__symbolic":"method"}],"toggleMenu":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":17,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"},{"__symbolic":"reference","name":"ɵw"}],"exports":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"}],"entryComponents":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}],"providers":[{"__symbolic":"reference","name":"ɵbg"}]}]}],"members":{}},"ɵu":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵv"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":61,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab *ngFor=\"let tab of activityTabs.value\">\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\"\n [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":70,"character":3}}]}],"initialActivityOutletContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":92,"character":3},"arguments":["tabs",{"static":true}]}]}],"outlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":95,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵw"}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"isActive":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}],"onActivityFinished":[{"__symbolic":"method"}],"cleanupStaleActivities":[{"__symbolic":"method"}],"synchroniseSelectedTabIndex":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}],"updateActivityList":[{"__symbolic":"method"}],"getSelectedOutlet":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":6,"character":49},"members":{"__ctor__":[{"__symbolic":"constructor"}],"isActive":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"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":28,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":46,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":47,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":48,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵy"},"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'\"\n (click)=\"done()\">{{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":"ɵz"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbb"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵba"},"members":{}},"ɵz":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":33},"arguments":["InteractionActivityData"]},"ɵba":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":6,"character":54},"members":{"initialise":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"onActivityReady":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"interface"},"ɵbc":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵy"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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'\"\n (click)=\"onConfirm()\">{{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":14,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵz"}]}],null],"parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵbc"},"member":"Data","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":14,"character":86,"context":{"typeName":"D"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"},{"__symbolic":"error","message":"Could not resolve type","line":14,"character":88,"context":{"typeName":"R"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"},{"__symbolic":"error","message":"Could not resolve type","line":14,"character":90,"context":{"typeName":"E"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"}]},{"__symbolic":"reference","name":"ɵv"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}],"onConfirm":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵy"},"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":"ɵz"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbe"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"interface"},"ɵbf":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":55},"arguments":["DIALOG_INTERACTION_SERVICE_DEFAULTS"]},"ɵbg":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵv"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":27},"arguments":[{"__symbolic":"reference","name":"ɵbf"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DEFAULT_OPTIONS","line":53,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":51,"character":46},{"__symbolic":"reference","name":"MatDialogConfig","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"MatDialogConfig","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"isActive":[{"__symbolic":"method"}],"cancelActivity":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"safelyUpdateActivityListDelegate":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"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/components/place-outlet/route-animations","ɵn":"./lib/place/components/place-outlet/route-animations","ɵo":"./lib/place/place-router","ɵp":"./lib/place/place-history","ɵq":"./lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component","ɵr":"./lib/place/components/abstract-place-navigation.component","ɵs":"./lib/place/components/list-place-nav/list-place-nav.component","ɵt":"./lib/interaction/interaction.module","ɵu":"./lib/interaction/components/activity-container/activity-container.component","ɵv":"./lib/interaction/interaction-context","ɵw":"./lib/interaction/components/activity-outlet/activity-outlet.component","ɵx":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵy":"./lib/interaction/abstract-activity","ɵz":"./lib/interaction/activity","ɵba":"./lib/interaction/activity","ɵbb":"./lib/interaction/confirm","ɵbc":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component","ɵbd":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵbe":"./lib/interaction/alert","ɵbf":"./lib/interaction/services/dialog-interaction.service","ɵbg":"./lib/interaction/services/dialog-interaction.service"},"importAs":"@coolon/angular-ui-powerups"}
1
+ {"__symbolic":"module","version":4,"exports":[{"from":"./lib/nav-item"},{"from":"./lib/place-component"},{"from":"./lib/place-definition"},{"from":"./lib/place-history"},{"from":"./lib/place-router"},{"from":"./lib/place.decorator"},{"from":"./lib/place.module"},{"from":"./lib/visit"},{"from":"./lib/components/abstract-place-navigation.component"},{"from":"./lib/components/busy-overlay/busy-overlay.component"},{"from":"./lib/components/empty-state/empty-state.component"},{"from":"./lib/components/list-place-nav/list-place-nav.component"},{"from":"./lib/components/place-outlet/place-outlet.component"},{"from":"./lib/components/place-outlet/route-animations"},{"from":"./lib/components/tabbed-place-navigation/tabbed-place-navigation.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-snapshot"},{"from":"./lib/route/parameter-type"},{"from":"./lib/route/route-parameter-value"}],"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/animations","name":"BrowserAnimationsModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":31,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵt"}],"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":"ɵt"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":7,"character":47},"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}}]}],"commandParameter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"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":66,"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":24,"character":3},"arguments":["focusout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":32,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":33,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":55},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":32,"character":55},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"hasBinding":[{"__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":{"userValueModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["valueModel"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"UseDelegate","line":11,"character":24}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"floatLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"hint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"focusCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["command.focus"]}]}],"blurCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["command.blur"]}]}],"enterCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3},"arguments":["command.enter"]}]}],"escapeCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3},"arguments":["command.escape"]}]}],"clickCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["command.click"]}]}],"focus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":29,"character":3}}]}],"blur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"enterKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":3}}]}],"escapeKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"notifyClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["click"]}]}],"notifyFocusIn":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":44,"character":3},"arguments":["focusin"]}]}],"notifyFocusOut":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":50,"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":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":24,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵs"}],"entryComponents":[{"__symbolic":"reference","name":"ɵk"}],"exports":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵs"}],"providers":[]}]}],"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":"angular-ui-powerups-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":"UseDelegate","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","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"angular-ui-powerups-place-outlet","animations":[{"__symbolic":"reference","name":"ɵn"}],"template":"<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated(routerOutlet, $event)\">\n </router-outlet>\n</div>\n\n","styles":[":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0}router-outlet{display:none}"]}]}],"members":{"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["routeOutlet",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"}]}],"ngOnInit":[{"__symbolic":"method"}],"onOutletActivated":[{"__symbolic":"method"}],"onOutletDeactivated":[{"__symbolic":"method"}],"getPlaceOrder":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}],"pushChangesToRoute":[{"__symbolic":"method"}],"sanitise":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"function","parameters":["duration"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":39,"character":9},"arguments":["routeAnimations",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":40,"character":4},"arguments":[":increment",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":24,"character":2},"arguments":[":enter, :leave",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":3,"character":28},"arguments":[{"position":"absolute","top":"0","left":"0","bottom":"0","right":"0"}]},{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"group","line":25,"character":2},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":26,"character":4},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":27,"character":6},"arguments":[{"transform":"translateX(100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":28,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":39},"arguments":[{"transform":"translateX(0%)"}]}]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":32,"character":4},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":32,"character":21},"arguments":[{"transform":"translateX(0%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":32,"character":61},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":32,"character":94},"arguments":[{"transform":"translateX(-100%)"}]}]}],{"optional":true}]}]]}],{"params":{"duration":{"__symbolic":"reference","name":"duration"}}}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":41,"character":4},"arguments":[":decrement",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":6,"character":2},"arguments":[":enter, :leave",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":3,"character":28},"arguments":[{"position":"absolute","top":"0","left":"0","bottom":"0","right":"0"}]},{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"group","line":7,"character":2},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":8,"character":4},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":9,"character":6},"arguments":[{"transform":"translateX(-100%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":10,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":10,"character":39},"arguments":[{"transform":"translateX(0%)"}]}]}],{"optional":true}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"query","line":14,"character":4},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":15,"character":6},"arguments":[{"transform":"translateX(0%)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":16,"character":6},"arguments":["{{duration}} ease-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":16,"character":39},"arguments":[{"transform":"translateX(100%)"}]}]}],{"optional":true}]}]]}],{"params":{"duration":{"__symbolic":"reference","name":"duration"}}}]}]]}},"ɵn":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵm"},"arguments":["0.3s"]},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":33,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":40,"character":39},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":40,"character":73}]}],"pushParameterChangesToRoute":[{"__symbolic":"method"}],"getRedirectUrlTree":[{"__symbolic":"method"}],"getChildPath":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":39}]}],"add":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"setHistory":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵq":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵr"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"ɵr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"members":{"places":[{"__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":"StoreInListModel","line":10,"character":12},"arguments":["placesModel"]}]}],"placesModel":[{"__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":"UseDelegate","line":13,"character":12}}]}],"__ctor__":[{"__symbolic":"constructor"}],"getNav":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":24,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵr"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"angular-ui-powerups-list-place-nav","template":"<mat-nav-list class=\"app-menu\">\n <a mat-list-item *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span class=\"expanded-only\">{{getNav(place).title()}}</span>\n </a>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--expanded-width:235px;--nav-item-width:var(--nav-bar-height);width:var(--nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--expanded-width);max-width:var(--expanded-width)}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}.header{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;height:var(--nav-bar-height);border-bottom:var(--pinstripe-border);cursor:pointer}.header .menu{flex:1}.header button{color:inherit;width:var(--nav-item-width);height:var(--nav-bar-height)}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--nav-item-width);height:var(--nav-bar-height);color:inherit}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item mat-icon{margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}a[ng-reflect-router-link=manage-instruments] mat-icon{transform:rotate(90deg)}.app-menu{padding-top:0}"]}]}],"members":{"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":3},"arguments":["class.expanded"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"expandMenu":[{"__symbolic":"method"}],"collapseMenu":[{"__symbolic":"method"}],"toggleMenu":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":17,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"},{"__symbolic":"reference","name":"ɵw"}],"exports":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"}],"entryComponents":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}],"providers":[{"__symbolic":"reference","name":"ɵbg"}]}]}],"members":{}},"ɵu":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵv"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":61,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab *ngFor=\"let tab of activityTabs.value\">\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\"\n [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":70,"character":3}}]}],"initialActivityOutletContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":92,"character":3},"arguments":["tabs",{"static":true}]}]}],"outlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":95,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵw"}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"isActive":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}],"onActivityFinished":[{"__symbolic":"method"}],"cleanupStaleActivities":[{"__symbolic":"method"}],"synchroniseSelectedTabIndex":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}],"updateActivityList":[{"__symbolic":"method"}],"getSelectedOutlet":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":6,"character":49},"members":{"__ctor__":[{"__symbolic":"constructor"}],"isActive":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"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":28,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":46,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":47,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":48,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵy"},"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'\"\n (click)=\"done()\">{{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":"ɵz"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbb"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵba"},"members":{}},"ɵz":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":33},"arguments":["InteractionActivityData"]},"ɵba":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":6,"character":54},"members":{"initialise":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"onActivityReady":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"interface"},"ɵbc":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵy"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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'\"\n (click)=\"onConfirm()\">{{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":14,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵz"}]}],null],"parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵbc"},"member":"Data","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":14,"character":86,"context":{"typeName":"D"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"},{"__symbolic":"error","message":"Could not resolve type","line":14,"character":88,"context":{"typeName":"R"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"},{"__symbolic":"error","message":"Could not resolve type","line":14,"character":90,"context":{"typeName":"E"},"module":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component"}]},{"__symbolic":"reference","name":"ɵv"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}],"onConfirm":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵy"},"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":"ɵz"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbe"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"interface"},"ɵbf":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":55},"arguments":["DIALOG_INTERACTION_SERVICE_DEFAULTS"]},"ɵbg":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵv"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":27},"arguments":[{"__symbolic":"reference","name":"ɵbf"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DEFAULT_OPTIONS","line":53,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":51,"character":46},{"__symbolic":"reference","name":"MatDialogConfig","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"MatDialogConfig","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"isActive":[{"__symbolic":"method"}],"cancelActivity":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"safelyUpdateActivityListDelegate":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"confirmThen":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"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/components/place-outlet/route-animations","ɵn":"./lib/place/components/place-outlet/route-animations","ɵo":"./lib/place/place-router","ɵp":"./lib/place/place-history","ɵq":"./lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component","ɵr":"./lib/place/components/abstract-place-navigation.component","ɵs":"./lib/place/components/list-place-nav/list-place-nav.component","ɵt":"./lib/interaction/interaction.module","ɵu":"./lib/interaction/components/activity-container/activity-container.component","ɵv":"./lib/interaction/interaction-context","ɵw":"./lib/interaction/components/activity-outlet/activity-outlet.component","ɵx":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵy":"./lib/interaction/abstract-activity","ɵz":"./lib/interaction/activity","ɵba":"./lib/interaction/activity","ɵbb":"./lib/interaction/confirm","ɵbc":"./lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component","ɵbd":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵbe":"./lib/interaction/alert","ɵbf":"./lib/interaction/services/dialog-interaction.service","ɵbg":"./lib/interaction/services/dialog-interaction.service"},"importAs":"@coolon/angular-ui-powerups"}
@@ -5,8 +5,10 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Location } from '@angular/common';
7
7
  import { Injectable, Injector } from '@angular/core';
8
- import { Router } from '@angular/router';
8
+ import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';
9
+ import { Trace } from '@coolon/pectin';
9
10
  import { InteractionContext } from '../../interaction/interaction-context';
11
+ import { PlaceComponent } from '../place-component';
10
12
  import { PlaceRouter } from '../place-router';
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "@angular/router";
@@ -28,6 +30,16 @@ export class LeavePlaceGuard {
28
30
  this.interactionContext = interactionContext;
29
31
  this.angularLocation = angularLocation;
30
32
  }
33
+ /**
34
+ * @private
35
+ * @param {?} nextState
36
+ * @param {?} placeDefinitionPath
37
+ * @return {?}
38
+ */
39
+ isLeavingTheCurrentPlace(nextState, placeDefinitionPath) {
40
+ // TODO: this will break with child routes... need to examine the router states properly.
41
+ return !nextState.url.startsWith(placeDefinitionPath);
42
+ }
31
43
  /**
32
44
  * @param {?} component
33
45
  * @param {?} currentRoute
@@ -83,40 +95,57 @@ export class LeavePlaceGuard {
83
95
  // nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c"
84
96
  // }
85
97
  if (this.placeRouter.navigationSession.alreadyAccepted(component)) {
98
+ // We'll get called multiple times if there's any parameter sanitisation so
99
+ // we always return true if we accepted on a previous cycle of the current
100
+ // navigation session.
86
101
  return true;
87
102
  }
88
103
  else {
89
- // TODO: this will break with child routes... need to examine the router states properly.
90
- if (!nextState.url.startsWith(placeDefinitionPath)) {
91
- /** @type {?} */
92
- const self = this;
93
- /** @type {?} */
94
- let canLeave = yield component.canDeactivate();
95
- // component is happy to leave but we need to check if it's left an interaction
96
- // open. If so we close and stay where we are.
97
- if (canLeave && this.interactionContext.isActive()) {
104
+ /** @type {?} */
105
+ const self = this;
106
+ /** @type {?} */
107
+ let canLeave = true;
108
+ if (this.isLeavingTheCurrentPlace(nextState, placeDefinitionPath)) {
109
+ // we check the interaction first, so that components that don't need to check if they're in an
110
+ // interaction during the canDeactivate cycle.
111
+ if (this.interactionContext.isActive()) {
98
112
  canLeave = false;
99
113
  console.log("cancelling", { activity: this.interactionContext.currentActivity });
100
114
  this.interactionContext.currentActivity.cancel(null);
101
115
  }
102
- // If we're still leaving then remember it since angular will call this method multiple
103
- // times if any route parameters are changed along the way.
116
+ // No interaction in progress, so ask the component .
117
+ // This may start an interaction, hence checking the interaction context above. I.e. if the place pops up the dialog, and
118
+ // the user clicks back again, we'll re-enter here and go bang when the component tries to open another
119
+ // dialog.
104
120
  if (canLeave) {
105
- self.placeRouter.navigationSession.rememberAcceptanceOf(component);
121
+ canLeave = yield component.canDeactivate();
122
+ }
123
+ }
124
+ else {
125
+ // this is a parameter change.
126
+ if (this.interactionContext.isActive()) {
127
+ console.log("cancelling", { activity: this.interactionContext.currentActivity });
128
+ this.interactionContext.currentActivity.cancel(null);
129
+ canLeave = false;
106
130
  }
107
131
  else {
108
- // Angular doesn't preserve the url when a guard cancels the back button.
109
- // See https://github.com/angular/angular/issues/13586#issuecomment-432795720
110
- if (this.placeRouter.navigationSession.isPopState) {
111
- console.log('cancelled during popstate');
112
- this.angularLocation.go(this.placeRouter.navigationSession.initialUrl);
113
- }
132
+ canLeave = true;
114
133
  }
115
- return canLeave;
134
+ }
135
+ if (canLeave) {
136
+ // We'll get called multiple times if there's any parameter sanitisation so
137
+ // we remember the acceptance for the duration of the current routing session.
138
+ self.placeRouter.navigationSession.rememberAcceptanceOf(component);
116
139
  }
117
140
  else {
118
- return true;
141
+ // Angular doesn't preserve the url when a guard cancels the back button.
142
+ // See https://github.com/angular/angular/issues/13586#issuecomment-432795720
143
+ if (this.placeRouter.navigationSession.isPopState) {
144
+ console.log('cancelled during popstate');
145
+ this.angularLocation.go(this.placeRouter.navigationSession.initialUrl);
146
+ }
119
147
  }
148
+ return canLeave;
120
149
  }
121
150
  });
122
151
  }
@@ -135,6 +164,12 @@ LeavePlaceGuard.ctorParameters = () => [
135
164
  { type: Location }
136
165
  ];
137
166
  /** @nocollapse */ LeavePlaceGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LeavePlaceGuard_Factory() { return new LeavePlaceGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i2.PlaceRouter), i0.ɵɵinject(i3.InteractionContext), i0.ɵɵinject(i4.Location)); }, token: LeavePlaceGuard, providedIn: "root" });
167
+ tslib_1.__decorate([
168
+ Trace(),
169
+ tslib_1.__metadata("design:type", Function),
170
+ tslib_1.__metadata("design:paramtypes", [PlaceComponent, ActivatedRouteSnapshot, RouterStateSnapshot, RouterStateSnapshot]),
171
+ tslib_1.__metadata("design:returntype", Promise)
172
+ ], LeavePlaceGuard.prototype, "canDeactivate", null);
138
173
  if (false) {
139
174
  /**
140
175
  * @type {?}
@@ -156,4 +191,4 @@ if (false) {
156
191
  /** @type {?} */
157
192
  LeavePlaceGuard.prototype.angularLocation;
158
193
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBeUMsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBSzlDLE1BQU0sT0FBTyxlQUFlOzs7Ozs7OztJQUUxQixZQUFvQixNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsV0FBd0IsRUFDdkIsa0JBQXNDLEVBQVcsZUFBeUI7UUFIM0UsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFXLG9CQUFlLEdBQWYsZUFBZSxDQUFVO0lBQy9GLENBQUM7Ozs7Ozs7O0lBRUssYUFBYSxDQUFDLFNBQXlCLEVBQUUsWUFBb0MsRUFBRSxZQUFpQyxFQUFFLFNBQStCOzs7a0JBQy9JLG1CQUFtQixHQUFHLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDaEUsaUNBQWlDO1lBQ2pDLHFDQUFxQztZQUNyQyx1Q0FBdUM7WUFDdkMsZ0NBQWdDO1lBQ2hDLDhDQUE4QztZQUM5QyxNQUFNO1lBQ04sbUVBQW1FO1lBQ25FLDhDQUE4QztZQUM5Qyx5RkFBeUY7WUFDekYsbUZBQW1GO1lBQ25GLElBQUk7WUFFSiw4R0FBOEc7WUFDOUcsa0JBQWtCO1lBQ2xCLGdDQUFnQztZQUNoQyx1RkFBdUY7WUFDdkYsd0NBQXdDO1lBQ3hDLElBQUk7WUFDSixrQkFBa0I7WUFDbEIsc0NBQXNDO1lBQ3RDLHVGQUF1RjtZQUN2Rix3Q0FBd0M7WUFDeEMsSUFBSTtZQUNKLDhIQUE4SDtZQUM5SCxxRUFBcUU7WUFDckUsdUVBQXVFO1lBQ3ZFLGtCQUFrQjtZQUNsQixnQ0FBZ0M7WUFDaEMsdUZBQXVGO1lBQ3ZGLDBDQUEwQztZQUMxQyxJQUFJO1lBQ0osa0JBQWtCO1lBQ2xCLHNDQUFzQztZQUN0Qyx1RkFBdUY7WUFDdkYsMENBQTBDO1lBQzFDLElBQUk7WUFDSix3SEFBd0g7WUFDeEgsc0VBQXNFO1lBQ3RFLHVFQUF1RTtZQUN2RSxrQkFBa0I7WUFDbEIsZ0NBQWdDO1lBQ2hDLHVGQUF1RjtZQUN2Rix3RUFBd0U7WUFDeEUsSUFBSTtZQUdKLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2pFLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wseUZBQXlGO2dCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRTs7MEJBQzVDLElBQUksR0FBRyxJQUFJOzt3QkFDYixRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsYUFBYSxFQUFFO29CQUM5QywrRUFBK0U7b0JBQy9FLCtDQUErQztvQkFDL0MsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUNsRCxRQUFRLEdBQUcsS0FBSyxDQUFDO3dCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDL0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3REO29CQUNELHVGQUF1RjtvQkFDdkYsMkRBQTJEO29CQUMzRCxJQUFJLFFBQVEsRUFBRTt3QkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNwRTt5QkFBTTt3QkFDTCx5RUFBeUU7d0JBQ3pFLDZFQUE2RTt3QkFDN0UsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRTs0QkFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO3lCQUN4RTtxQkFDRjtvQkFDRCxPQUFPLFFBQVEsQ0FBQztpQkFDakI7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtRQUNILENBQUM7S0FBQTs7O1lBMUZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVArQyxNQUFNO1lBRGpDLFFBQVE7WUFJcEIsV0FBVztZQUZYLGtCQUFrQjtZQUhsQixRQUFROzs7Ozs7OztJQVlILGlDQUFzQjs7Ozs7SUFDdEIsbUNBQTBCOzs7OztJQUMxQixzQ0FBZ0M7O0lBQ2hDLDZDQUErQzs7SUFBRSwwQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuRGVhY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VSb3V0ZXIgfSBmcm9tICcuLi9wbGFjZS1yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMZWF2ZVBsYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgICAgICAgICByZWFkb25seSBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgcmVhZG9ubHkgYW5ndWxhckxvY2F0aW9uOiBMb2NhdGlvbikge1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnJlbnRTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvblBhdGggPSBgLyR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofWA7XG4gICAgLy8gY29uc29sZS5sb2coJ2NhbkRlYWN0aXZhdGUnLCB7XG4gICAgLy8gICBzdGF0aWNQYXRoOiBwbGFjZURlZmluaXRpb25QYXRoLFxuICAgIC8vICAgY3VycmVudFN0YXRlVXJsOiBjdXJyZW50U3RhdGUudXJsLFxuICAgIC8vICAgbmV4dFN0YXRlVXJsOiBuZXh0U3RhdGUudXJsXG4gICAgLy8gICAvLyBhbHJlYWR5RGVjbGluZWQ6IHRoaXMuX2FscmVhZHlBY2NlcHRlZFxuICAgIC8vIH0pO1xuICAgIC8vIEV4YW1wbGUgb2YgdGhlIGFib3ZlIHdoZW4gbmF2aWdhdGluZyB0byBhIGRpZmZlcmVudCBjaGlsZCByb3V0ZS5cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtzdGF0aWNQYXRoOiBcIi9oZXJvLWRldGFpbHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1kZXRhaWxzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIlxuICAgIC8vIH1cblxuICAgIC8vIEV4YW1wbGUgY2xpY2tpbmcgb24gcm91dGVyIHRhYiBvZiB0aGUgcGFyZW50IGNvbXBvbmVudCAoZGUtYWN0aXZhdGVzIHRoZSBwYXJlbnQgZHVlIHRvIHJvdXRlIHBhcmFtIGNoYW5nZXMpXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzL1wiXG4gICAgLy8gfVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL3JvdXRlLXBhcmFtZXRlcnNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy9cIlxuICAgIC8vIH1cbiAgICAvLyBsb2dnZXIuY2xhc3MuanM6NTQgUGFyYW1ldGVyU25hcHNob3Quc2FuaXRpc2UgLT4ge2lkTW9kZWw6IC0xLCBwdjogdW5kZWZpbmVkLCBwbDogQXJyYXkoMCksIGR2OiB1bmRlZmluZWQsIGRsOiBBcnJheSgwKSzCoOKApn1cbiAgICAvLyBwYXJhbWV0ZXItc25hcHNob3QudHM6MjAge25hbWU6IFwiaWRNb2RlbFwiLCBtaW5lOiAtMSwgdGhlaXJzOiBudWxsfVxuICAgIC8vIHBsYWNlLXJvdXRlci50czoyOCByZWRpcmVjdCBwYXRoICgzKcKgW1wicm91dGUtcGFyYW1ldGVyc1wiLCBcIi0xXCIsIHvigKZ9XVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMVwiXG4gICAgLy8gfVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL3JvdXRlLXBhcmFtZXRlcnNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMVwiXG4gICAgLy8gfVxuICAgIC8vIGxvZ2dlci5jbGFzcy5qczo1NCBQYXJhbWV0ZXJTbmFwc2hvdC5zYW5pdGlzZSAtPiB7aWRNb2RlbDogLTEsIHB2OiB1bmRlZmluZWQsIHBsOiBBcnJheSgwKSwgZHY6IFwiQVwiLCBkbDogQXJyYXkoMykswqDigKZ9XG4gICAgLy8gcGFyYW1ldGVyLXNuYXBzaG90LnRzOjIwIHtuYW1lOiBcImR2XCIsIG1pbmU6IFwiQVwiLCB0aGVpcnM6IHVuZGVmaW5lZH1cbiAgICAvLyBwbGFjZS1yb3V0ZXIudHM6MjggcmVkaXJlY3QgcGF0aCAoMynCoFtcInJvdXRlLXBhcmFtZXRlcnNcIiwgXCItMVwiLCB74oCmfV1cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGNcIlxuICAgIC8vIH1cblxuXG4gICAgaWYgKHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uYWxyZWFkeUFjY2VwdGVkKGNvbXBvbmVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPOiB0aGlzIHdpbGwgYnJlYWsgd2l0aCBjaGlsZCByb3V0ZXMuLi4gbmVlZCB0byBleGFtaW5lIHRoZSByb3V0ZXIgc3RhdGVzIHByb3Blcmx5LlxuICAgICAgaWYgKCFuZXh0U3RhdGUudXJsLnN0YXJ0c1dpdGgocGxhY2VEZWZpbml0aW9uUGF0aCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIGxldCBjYW5MZWF2ZSA9IGF3YWl0IGNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKCk7XG4gICAgICAgIC8vIGNvbXBvbmVudCBpcyBoYXBweSB0byBsZWF2ZSBidXQgd2UgbmVlZCB0byBjaGVjayBpZiBpdCdzIGxlZnQgYW4gaW50ZXJhY3Rpb25cbiAgICAgICAgLy8gb3Blbi4gIElmIHNvIHdlIGNsb3NlIGFuZCBzdGF5IHdoZXJlIHdlIGFyZS5cbiAgICAgICAgaWYgKGNhbkxlYXZlICYmIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBjYW5MZWF2ZSA9IGZhbHNlO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2FuY2VsbGluZ1wiLCB7YWN0aXZpdHk6IHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eX0pO1xuICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eS5jYW5jZWwobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgd2UncmUgc3RpbGwgbGVhdmluZyB0aGVuIHJlbWVtYmVyIGl0IHNpbmNlIGFuZ3VsYXIgd2lsbCBjYWxsIHRoaXMgbWV0aG9kIG11bHRpcGxlXG4gICAgICAgIC8vIHRpbWVzIGlmIGFueSByb3V0ZSBwYXJhbWV0ZXJzIGFyZSBjaGFuZ2VkIGFsb25nIHRoZSB3YXkuXG4gICAgICAgIGlmIChjYW5MZWF2ZSkge1xuICAgICAgICAgIHNlbGYucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24ucmVtZW1iZXJBY2NlcHRhbmNlT2YoY29tcG9uZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBbmd1bGFyIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHVybCB3aGVuIGEgZ3VhcmQgY2FuY2VscyB0aGUgYmFjayBidXR0b24uXG4gICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgICAgICBpZiAodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsbGVkIGR1cmluZyBwb3BzdGF0ZScpO1xuICAgICAgICAgICAgdGhpcy5hbmd1bGFyTG9jYXRpb24uZ28odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pbml0aWFsVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbkxlYXZlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUs5QyxNQUFNLE9BQU8sZUFBZTs7Ozs7Ozs7SUFFMUIsWUFBb0IsTUFBYyxFQUNkLFFBQWtCLEVBQ2xCLFdBQXdCLEVBQ3ZCLGtCQUFzQyxFQUFXLGVBQXlCO1FBSDNFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVyxvQkFBZSxHQUFmLGVBQWUsQ0FBVTtJQUMvRixDQUFDOzs7Ozs7O0lBRU8sd0JBQXdCLENBQUMsU0FBOEIsRUFBRSxtQkFBMkI7UUFDMUYseUZBQXlGO1FBQ3pGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Ozs7Ozs7O0lBR0ssYUFBYSxDQUFD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Q2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDeEU7aUJBQ0Y7Z0JBRUQsT0FBTyxRQUFRLENBQUM7YUFDakI7UUFDSCxDQUFDO0tBQUE7OztZQW5IRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFSK0MsTUFBTTtZQURqQyxRQUFRO1lBS3BCLFdBQVc7WUFGWCxrQkFBa0I7WUFKbEIsUUFBUTs7O0FBeUJmO0lBREMsS0FBSyxFQUFFOzs2Q0FDdUIsY0FBYyxFQUFnQixzQkFBc0IsRUFBZ0IsbUJBQW1CLEVBQWMsbUJBQW1COztvREFrR3RKOzs7Ozs7SUE5R1csaUNBQXNCOzs7OztJQUN0QixtQ0FBMEI7Ozs7O0lBQzFCLHNDQUFnQzs7SUFDaEMsNkNBQStDOztJQUFFLDBDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5EZWFjdGl2YXRlLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vcGxhY2Utcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGVhdmVQbGFjZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxQbGFjZUNvbXBvbmVudD4ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHJlYWRvbmx5IGFuZ3VsYXJMb2NhdGlvbjogTG9jYXRpb24pIHtcbiAgfVxuXG4gIHByaXZhdGUgaXNMZWF2aW5nVGhlQ3VycmVudFBsYWNlKG5leHRTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgcGxhY2VEZWZpbml0aW9uUGF0aDogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogdGhpcyB3aWxsIGJyZWFrIHdpdGggY2hpbGQgcm91dGVzLi4uIG5lZWQgdG8gZXhhbWluZSB0aGUgcm91dGVyIHN0YXRlcyBwcm9wZXJseS5cbiAgICByZXR1cm4gIW5leHRTdGF0ZS51cmwuc3RhcnRzV2l0aChwbGFjZURlZmluaXRpb25QYXRoKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwbGFjZURlZmluaXRpb25QYXRoID0gYC8ke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH1gO1xuICAgIC8vIGNvbnNvbGUubG9nKCdjYW5EZWFjdGl2YXRlJywge1xuICAgIC8vICAgc3RhdGljUGF0aDogcGxhY2VEZWZpbml0aW9uUGF0aCxcbiAgICAvLyAgIGN1cnJlbnRTdGF0ZVVybDogY3VycmVudFN0YXRlLnVybCxcbiAgICAvLyAgIG5leHRTdGF0ZVVybDogbmV4dFN0YXRlLnVybFxuICAgIC8vICAgLy8gYWxyZWFkeURlY2xpbmVkOiB0aGlzLl9hbHJlYWR5QWNjZXB0ZWRcbiAgICAvLyB9KTtcbiAgICAvLyBFeGFtcGxlIG9mIHRoZSBhYm92ZSB3aGVuIG5hdmlnYXRpbmcgdG8gYSBkaWZmZXJlbnQgY2hpbGQgcm91dGUuXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7c3RhdGljUGF0aDogXCIvaGVyby1kZXRhaWxzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tZGV0YWlsc1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCJcbiAgICAvLyB9XG5cbiAgICAvLyBFeGFtcGxlIGNsaWNraW5nIG9uIHJvdXRlciB0YWIgb2YgdGhlIHBhcmVudCBjb21wb25lbnQgKGRlLWFjdGl2YXRlcyB0aGUgcGFyZW50IGR1ZSB0byByb3V0ZSBwYXJhbSBjaGFuZ2VzKVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy9cIlxuICAgIC8vIH1cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvXCJcbiAgICAvLyB9XG4gICAgLy8gbG9nZ2VyLmNsYXNzLmpzOjU0IFBhcmFtZXRlclNuYXBzaG90LnNhbml0aXNlIC0+IHtpZE1vZGVsOiAtMSwgcHY6IHVuZGVmaW5lZCwgcGw6IEFycmF5KDApLCBkdjogdW5kZWZpbmVkLCBkbDogQXJyYXkoMCkswqDigKZ9XG4gICAgLy8gcGFyYW1ldGVyLXNuYXBzaG90LnRzOjIwIHtuYW1lOiBcImlkTW9kZWxcIiwgbWluZTogLTEsIHRoZWlyczogbnVsbH1cbiAgICAvLyBwbGFjZS1yb3V0ZXIudHM6MjggcmVkaXJlY3QgcGF0aCAoMynCoFtcInJvdXRlLXBhcmFtZXRlcnNcIiwgXCItMVwiLCB74oCmfV1cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTFcIlxuICAgIC8vIH1cbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTFcIlxuICAgIC8vIH1cbiAgICAvLyBsb2dnZXIuY2xhc3MuanM6NTQgUGFyYW1ldGVyU25hcHNob3Quc2FuaXRpc2UgLT4ge2lkTW9kZWw6IC0xLCBwdjogdW5kZWZpbmVkLCBwbDogQXJyYXkoMCksIGR2OiBcIkFcIiwgZGw6IEFycmF5KDMpLMKg4oCmfVxuICAgIC8vIHBhcmFtZXRlci1zbmFwc2hvdC50czoyMCB7bmFtZTogXCJkdlwiLCBtaW5lOiBcIkFcIiwgdGhlaXJzOiB1bmRlZmluZWR9XG4gICAgLy8gcGxhY2Utcm91dGVyLnRzOjI4IHJlZGlyZWN0IHBhdGggKDMpwqBbXCJyb3V0ZS1wYXJhbWV0ZXJzXCIsIFwiLTFcIiwge+KApn1dXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjXCJcbiAgICAvLyB9XG5cblxuICAgIGlmICh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmFscmVhZHlBY2NlcHRlZChjb21wb25lbnQpKSB7XG4gICAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBvbiBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBsZXQgY2FuTGVhdmUgPSB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5pc0xlYXZpbmdUaGVDdXJyZW50UGxhY2UobmV4dFN0YXRlLCBwbGFjZURlZmluaXRpb25QYXRoKSkge1xuICAgICAgICAvLyB3ZSBjaGVjayB0aGUgaW50ZXJhY3Rpb24gZmlyc3QsIHNvIHRoYXQgY29tcG9uZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhleSdyZSBpbiBhblxuICAgICAgICAvLyBpbnRlcmFjdGlvbiBkdXJpbmcgdGhlIGNhbkRlYWN0aXZhdGUgY3ljbGUuXG4gICAgICAgIGlmICh0aGlzLmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgY2FuTGVhdmUgPSBmYWxzZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImNhbmNlbGxpbmdcIiwge2FjdGl2aXR5OiB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHl9KTtcbiAgICAgICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBhYm92ZS4gSS5lLiBpZiB0aGUgcGxhY2UgcG9wcyB1cCB0aGUgZGlhbG9nLCBhbmRcbiAgICAgICAgLy8gdGhlIHVzZXIgY2xpY2tzIGJhY2sgYWdhaW4sIHdlJ2xsIHJlLWVudGVyIGhlcmUgYW5kIGdvIGJhbmcgd2hlbiB0aGUgY29tcG9uZW50IHRyaWVzIHRvIG9wZW4gYW5vdGhlclxuICAgICAgICAvLyBkaWFsb2cuXG4gICAgICAgIGlmIChjYW5MZWF2ZSkge1xuICAgICAgICAgIGNhbkxlYXZlID0gYXdhaXQgY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBpcyBhIHBhcmFtZXRlciBjaGFuZ2UuXG4gICAgICAgIGlmICh0aGlzLmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJjYW5jZWxsaW5nXCIsIHthY3Rpdml0eTogdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5fSk7XG4gICAgICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5LmNhbmNlbChudWxsKTtcbiAgICAgICAgICBjYW5MZWF2ZSA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2FuTGVhdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjYW5MZWF2ZSkge1xuICAgICAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAgICAgLy8gd2UgcmVtZW1iZXIgdGhlIGFjY2VwdGFuY2UgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3VycmVudCByb3V0aW5nIHNlc3Npb24uXG4gICAgICAgIHNlbGYucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24ucmVtZW1iZXJBY2NlcHRhbmNlT2YoY29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgICAgaWYgKHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uaXNQb3BTdGF0ZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsZWQgZHVyaW5nIHBvcHN0YXRlJyk7XG4gICAgICAgICAgdGhpcy5hbmd1bGFyTG9jYXRpb24uZ28odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pbml0aWFsVXJsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2FuTGVhdmU7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -54,6 +54,7 @@ export class PlaceRouter {
54
54
  */
55
55
  constructor(router, angularLocation) {
56
56
  this.router = router;
57
+ this.angularLocation = angularLocation;
57
58
  this._navigationSession = new MutableValueModel();
58
59
  angularLocation.onUrlChange((/**
59
60
  * @param {?} url
@@ -167,5 +168,7 @@ if (false) {
167
168
  * @private
168
169
  */
169
170
  PlaceRouter.prototype.router;
171
+ /** @type {?} */
172
+ PlaceRouter.prototype.angularLocation;
170
173
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxFQUNmLE1BQU0sRUFFUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUl2QixNQUFNLGlCQUFpQjs7Ozs7SUFHckIsWUFBcUIsVUFBbUIsRUFBVyxVQUFrQjtRQUFoRCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQVcsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY3RCxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVELGVBQWUsQ0FBQyxjQUE4QjtRQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7SUFFRCxvQkFBb0IsQ0FBQyxTQUF5QjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjs7Ozs7O0lBYkMsNkNBQWdEOztJQUVwQyx1Q0FBNEI7O0lBQUUsdUNBQTJCOztBQWlCdkUsTUFBTSxPQUFPLFdBQVc7Ozs7O0lBSXRCLFlBQTZCLE1BQWMsRUFBRSxlQUF5QjtRQUF6QyxX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QUE2Qjs7Y0FDckQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRTtRQUNoRCxPQUFPLE9BQU8sQ0FBQyxDQUFDO1lBQ2QsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7WUE1REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBM0JDLE1BQU07WUFSQyxRQUFROzs7Ozs7OztJQXNDZix5Q0FBaUY7Ozs7O0lBRXJFLDZCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNdXRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBhcmFtZXRlclNuYXBzaG90IH0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItc25hcHNob3QnO1xuXG5jbGFzcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gIHByaXZhdGUgX2FscmVhZHlBY2NlcHRlZDogUGxhY2VDb21wb25lbnRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW4sIHJlYWRvbmx5IGluaXRpYWxVcmw6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKCdOYXZpZ2F0aW9uU2Vzc2lvbicsIHsgaXNQb3BTdGF0ZSwgaW5pdGlhbFVybCB9KTtcbiAgfVxuXG4gIGFscmVhZHlBY2NlcHRlZChwbGFjZUNvbXBvbmVudDogUGxhY2VDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWxyZWFkeUFjY2VwdGVkLmluY2x1ZGVzKHBsYWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIHJlbWVtYmVyQWNjZXB0YW5jZU9mKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLl9hbHJlYWR5QWNjZXB0ZWQucHVzaChjb21wb25lbnQpO1xuICB9XG59XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VSb3V0ZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25TZXNzaW9uID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPE5hdmlnYXRpb25TZXNzaW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIGFuZ3VsYXJMb2NhdGlvbjogTG9jYXRpb24pIHtcbiAgICBhbmd1bGFyTG9jYXRpb24ub25VcmxDaGFuZ2UodXJsID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGAjIyMgJHt1cmx9YCk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgJHtldmVudC5jb25zdHJ1Y3Rvci5uYW1lfWAsIGxvY2F0aW9uLnBhdGhuYW1lLCBhbmd1bGFyTG9jYXRpb24uZ2V0U3RhdGUoKSk7XG4gICAgICAvLyBOYXZpZ2F0aW9uU3RhcnQgLT4gLi4uLiAtPiBOYXZpZ2F0aW9uQ2FuY2VsID09PSByZWRpcmVjdCAoc28gZG9uJ3QgYXNrIGFnYWluKVxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkVuZCA9PT0gbmF2aWdhdGVkIChzbyBhc2sgbmV4dCB0aW1lKVxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkVycm9yID09PSBjYW5jZWxlZCAoZ3VhcmQgY2FuY2VsbGVkIHNvIGFzayBuZXh0IHRpbWUpXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgJiYgIXRoaXMubmF2aWdhdGlvblNlc3Npb24pIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvblNlc3Npb24udmFsdWUgPSBuZXcgTmF2aWdhdGlvblNlc3Npb24oZXZlbnQubmF2aWdhdGlvblRyaWdnZXIgPT09ICdwb3BzdGF0ZScsIHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCduYXZpZ2F0aW9uIGVuZGVkJyk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uLnZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICBjb25zb2xlLmxvZygnbmF2aWdhdGlvbiBlcnJvcmVkJyk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uLnZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBuYXZpZ2F0aW9uU2Vzc2lvbigpOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uLnZhbHVlO1xuICB9XG5cbiAgcHVzaFBhcmFtZXRlckNoYW5nZXNUb1JvdXRlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJldmlvdXM6IFBhcmFtZXRlclNuYXBzaG90LCBuZXh0OiBQYXJhbWV0ZXJTbmFwc2hvdCkge1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMuaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcmVsYXRpdmVQYXRoXS5jb25jYXQodGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnMobmV4dCksIHRoaXMuZ2V0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90KSksIHtcbiAgICAgIHJlbGF0aXZlVG86IGFjdGl2YXRlZFJvdXRlXG4gICAgfSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRSZWRpcmVjdFVybFRyZWUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHNhbml0aXNlZDogUGFyYW1ldGVyU25hcHNob3QpOiBVcmxUcmVlIHtcbiAgICBjb25zdCB1cmxTZWdtZW50cyA9IGFjdGl2YXRlZFJvdXRlLnVybDtcbiAgICBjb25zdCB3ZUhhdmVBUm91dGVJZCA9IHNhbml0aXNlZC5oYXNSb3V0ZUlkKCkgJiYgc2FuaXRpc2VkLmdldEZvcm1hdHRlZFJvdXRlSWQoKTtcbiAgICBjb25zdCBjb21tYW5kcyA9ICh3ZUhhdmVBUm91dGVJZCkgP1xuICAgICAgW3VybFNlZ21lbnRzWzBdLnBhdGgsIHNhbml0aXNlZC5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCksIHNhbml0aXNlZC5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCldIDpcbiAgICAgIFt1cmxTZWdtZW50c1swXS5wYXRoLCBzYW5pdGlzZWQuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYW55W10ge1xuICAgIHJldHVybiBfLmZsYXR0ZW4oYWN0aXZhdGVkUm91dGUuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLnVybCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJvdXRlUGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJTbmFwc2hvdCk6IGFueVtdIHtcbiAgICBjb25zdCByb3V0ZUlkID0gcGFyYW1ldGVycy5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCk7XG4gICAgcmV0dXJuIHJvdXRlSWQgP1xuICAgICAgW3JvdXRlSWQsIHBhcmFtZXRlcnMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6XG4gICAgICBbcGFyYW1ldGVycy5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCldO1xuICB9XG5cbn1cbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUdMLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxFQUNmLE1BQU0sRUFFUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUl2QixNQUFNLGlCQUFpQjs7Ozs7SUFHckIsWUFBcUIsVUFBbUIsRUFBVyxVQUFrQjtRQUFoRCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQVcsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY3RCxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVELGVBQWUsQ0FBQyxjQUE4QjtRQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7SUFFRCxvQkFBb0IsQ0FBQyxTQUF5QjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjs7Ozs7O0lBYkMsNkNBQWdEOztJQUVwQyx1Q0FBNEI7O0lBQUUsdUNBQTJCOztBQWlCdkUsTUFBTSxPQUFPLFdBQVc7Ozs7O0lBSXRCLFlBQTZCLE1BQWMsRUFBVyxlQUF5QjtRQUFsRCxX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QUM7Ozs7OztJQUVTLHFCQUFxQixDQUFDLFVBQTZCOztjQUNyRCxPQUFPLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1FBQ2hELE9BQU8sT0FBTyxDQUFDLENBQUM7WUFDZCxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OztZQTVERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUEzQkMsTUFBTTtZQVJDLFFBQVE7Ozs7Ozs7O0lBc0NmLHlDQUFpRjs7Ozs7SUFFckUsNkJBQStCOztJQUFFLHNDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNdXRhYmxlVmFsdWVNb2RlbCwgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTbmFwc2hvdCB9IGZyb20gJy4vcm91dGUvcGFyYW1ldGVyLXNuYXBzaG90JztcblxuY2xhc3MgTmF2aWdhdGlvblNlc3Npb24ge1xuICBwcml2YXRlIF9hbHJlYWR5QWNjZXB0ZWQ6IFBsYWNlQ29tcG9uZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBpc1BvcFN0YXRlOiBib29sZWFuLCByZWFkb25seSBpbml0aWFsVXJsOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZygnTmF2aWdhdGlvblNlc3Npb24nLCB7IGlzUG9wU3RhdGUsIGluaXRpYWxVcmwgfSk7XG4gIH1cblxuICBhbHJlYWR5QWNjZXB0ZWQocGxhY2VDb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FscmVhZHlBY2NlcHRlZC5pbmNsdWRlcyhwbGFjZUNvbXBvbmVudCk7XG4gIH1cblxuICByZW1lbWJlckFjY2VwdGFuY2VPZihjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYWxyZWFkeUFjY2VwdGVkLnB1c2goY29tcG9uZW50KTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlUm91dGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uU2Vzc2lvbiA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxOYXZpZ2F0aW9uU2Vzc2lvbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLCByZWFkb25seSBhbmd1bGFyTG9jYXRpb246IExvY2F0aW9uKSB7XG4gICAgYW5ndWxhckxvY2F0aW9uLm9uVXJsQ2hhbmdlKHVybCA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgIyMjICR7dXJsfWApO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYCR7ZXZlbnQuY29uc3RydWN0b3IubmFtZX1gLCBsb2NhdGlvbi5wYXRobmFtZSwgYW5ndWxhckxvY2F0aW9uLmdldFN0YXRlKCkpO1xuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkNhbmNlbCA9PT0gcmVkaXJlY3QgKHNvIGRvbid0IGFzayBhZ2FpbilcbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25FbmQgPT09IG5hdmlnYXRlZCAoc28gYXNrIG5leHQgdGltZSlcbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25FcnJvciA9PT0gY2FuY2VsZWQgKGd1YXJkIGNhbmNlbGxlZCBzbyBhc2sgbmV4dCB0aW1lKVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0ICYmICF0aGlzLm5hdmlnYXRpb25TZXNzaW9uKSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uLnZhbHVlID0gbmV3IE5hdmlnYXRpb25TZXNzaW9uKGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnbmF2aWdhdGlvbiBlbmRlZCcpO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbi52YWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ25hdmlnYXRpb24gZXJyb3JlZCcpO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbi52YWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgbmF2aWdhdGlvblNlc3Npb24oKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbi52YWx1ZTtcbiAgfVxuXG4gIHB1c2hQYXJhbWV0ZXJDaGFuZ2VzVG9Sb3V0ZShhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByZXZpb3VzOiBQYXJhbWV0ZXJTbmFwc2hvdCwgbmV4dDogUGFyYW1ldGVyU25hcHNob3QpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXByZXZpb3VzLmhhc1JvdXRlSWQoKSA/ICcuLicgOiAnLic7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JlbGF0aXZlUGF0aF0uY29uY2F0KHRoaXMuY3JlYXRlUm91dGVQYXJhbWV0ZXJzKG5leHQpLCB0aGlzLmdldENoaWxkUGF0aChhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCkpLCB7XG4gICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0UmVkaXJlY3RVcmxUcmVlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzYW5pdGlzZWQ6IFBhcmFtZXRlclNuYXBzaG90KTogVXJsVHJlZSB7XG4gICAgY29uc3QgdXJsU2VnbWVudHMgPSBhY3RpdmF0ZWRSb3V0ZS51cmw7XG4gICAgY29uc3Qgd2VIYXZlQVJvdXRlSWQgPSBzYW5pdGlzZWQuaGFzUm91dGVJZCgpICYmIHNhbml0aXNlZC5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCk7XG4gICAgY29uc3QgY29tbWFuZHMgPSAod2VIYXZlQVJvdXRlSWQpID9cbiAgICAgIFt1cmxTZWdtZW50c1swXS5wYXRoLCBzYW5pdGlzZWQuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpLCBzYW5pdGlzZWQuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6XG4gICAgICBbdXJsU2VnbWVudHNbMF0ucGF0aCwgc2FuaXRpc2VkLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV07XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoY29tbWFuZHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENoaWxkUGF0aChhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGFueVtdIHtcbiAgICByZXR1cm4gXy5mbGF0dGVuKGFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiBjaGlsZC51cmwpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVSb3V0ZVBhcmFtZXRlcnMocGFyYW1ldGVyczogUGFyYW1ldGVyU25hcHNob3QpOiBhbnlbXSB7XG4gICAgY29uc3Qgcm91dGVJZCA9IHBhcmFtZXRlcnMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIHJldHVybiByb3V0ZUlkID9cbiAgICAgIFtyb3V0ZUlkLCBwYXJhbWV0ZXJzLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV0gOlxuICAgICAgW3BhcmFtZXRlcnMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgfVxufVxuIl19