@coolon/angular-ui-powerups 0.0.46 → 0.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/coolon-angular-ui-powerups.umd.js +126 -131
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/interaction/abstract-activity.js +3 -9
- package/esm2015/lib/place/place-router.js +3 -11
- package/esm2015/lib/place/route/parameter-snapshot.js +2 -9
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +3 -8
- package/esm5/lib/interaction/abstract-activity.js +14 -10
- package/esm5/lib/place/place-router.js +7 -12
- package/esm5/lib/place/route/parameter-snapshot.js +6 -10
- package/esm5/lib/place/route/route-parameter-sanitiser.js +7 -9
- package/fesm2015/coolon-angular-ui-powerups.js +90 -110
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +128 -133
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/package.json +1 -1
|
@@ -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-sanitiser"}],"metadata":{"AngularUiPowerupsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/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":20,"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":28,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"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":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":10,"character":39}]}],"pushParameterChangesToRoute":[{"__symbolic":"method"}],"getRedirectUrlTree":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":20,"character":3}}]}],"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":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":16,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵv"}],"exports":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"}],"entryComponents":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵba"}],"providers":[{"__symbolic":"reference","name":"ɵbc"}]}]}],"members":{}},"ɵu":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\"\n [activityContext]=\"initialActivityOutlet\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of activityOutletTabs.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":22,"character":3}}]}],"initialActivityOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":3},"arguments":["tabs",{"static":true}]}]}],"outlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":31,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵv"}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"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":30,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":41,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":42,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":43,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"notifyReady":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"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(true)\">{{confirm.ok()}}</button>\n</p>\n\n","styles":[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵy"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵz"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"onDone":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"onActivityReady":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":32,"character":3}}]}],"finalizeAndDispose":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":33},"arguments":["InteractionActivityData"]},"ɵz":{"__symbolic":"interface"},"ɵba":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"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":"ɵy"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbb"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"interface"},"ɵbc":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵbd"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":17,"character":46}]}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵbd":{"__symbolic":"class","members":{"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}}},"origins":{"AngularUiPowerupsModule":"./lib/angular-ui-powerups.module","ɵa":"./lib/directives/command.directive","ɵb":"./lib/directives/focus-binding.directive","ɵc":"./lib/components/disposable-component","ɵd":"./lib/components/forms/number-input/number-input.component","ɵe":"./lib/components/forms/abstract-input.component","ɵf":"./lib/components/forms/string-input/string-input.component","ɵg":"./lib/components/forms/password-input/password-input.component","ɵh":"./lib/components/forms/select-input/select-input.component","ɵi":"./lib/place/place.module","ɵj":"./lib/place/components/empty-state/empty-state.component","ɵk":"./lib/place/components/busy-overlay/busy-overlay.component","ɵl":"./lib/place/components/place-outlet/place-outlet.component","ɵm":"./lib/place/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/components/activity-outlet/activity-outlet.component","ɵw":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵx":"./lib/interaction/abstract-activity","ɵy":"./lib/interaction/activity","ɵz":"./lib/interaction/confirm","ɵba":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵbb":"./lib/interaction/alert","ɵbc":"./lib/interaction/services/dialog-interaction.service","ɵbd":"./lib/interaction/interaction-context"},"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-sanitiser"}],"metadata":{"AngularUiPowerupsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/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":20,"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":28,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"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":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":10,"character":39}]}],"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":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":16,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵv"}],"exports":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"}],"entryComponents":[{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵba"}],"providers":[{"__symbolic":"reference","name":"ɵbc"}]}]}],"members":{}},"ɵu":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"angular-ui-powerups-activity-container","template":"<mat-tab-group #tabs no-tab-header [dynamicHeight]=\"true\">\n <mat-tab>\n <angular-ui-powerups-activity-outlet [interactionContext]=\"this\"\n [activityContext]=\"initialActivityOutlet\"></angular-ui-powerups-activity-outlet>\n </mat-tab>\n <mat-tab *ngFor=\"let tab of activityOutletTabs.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":22,"character":3}}]}],"initialActivityOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":3},"arguments":["tabs",{"static":true}]}]}],"outlets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":31,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵv"}]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialise":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"onAnimationFinished":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","arity":3,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"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":30,"character":3}}]}],"activityContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":41,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":42,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":43,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"loadActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"startActivity":[{"__symbolic":"method"}],"notifyReady":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"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(true)\">{{confirm.ok()}}</button>\n</p>\n\n","styles":[":host{display:block;padding:var(--angular-ui-powerups-default-padding)}.mat-dialog-actions{justify-content:flex-end}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵy"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵz"}]}],"ngOnInit":[{"__symbolic":"method"}],"isDestructive":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","arity":3,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{"onDone":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"done":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"onActivityReady":[{"__symbolic":"method"}],"finalizeAndDispose":[{"__symbolic":"method"}],"busyWhile":[{"__symbolic":"method"}],"isBusy":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":33},"arguments":["InteractionActivityData"]},"ɵz":{"__symbolic":"interface"},"ɵba":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵx"},"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":"ɵy"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵbb"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"interface"},"ɵbc":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵbd"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":17,"character":46}]}],"startActivity":[{"__symbolic":"method"}],"_startActivity":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵbd":{"__symbolic":"class","members":{"startActivity":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"alert":[{"__symbolic":"method"}]}}},"origins":{"AngularUiPowerupsModule":"./lib/angular-ui-powerups.module","ɵa":"./lib/directives/command.directive","ɵb":"./lib/directives/focus-binding.directive","ɵc":"./lib/components/disposable-component","ɵd":"./lib/components/forms/number-input/number-input.component","ɵe":"./lib/components/forms/abstract-input.component","ɵf":"./lib/components/forms/string-input/string-input.component","ɵg":"./lib/components/forms/password-input/password-input.component","ɵh":"./lib/components/forms/select-input/select-input.component","ɵi":"./lib/place/place.module","ɵj":"./lib/place/components/empty-state/empty-state.component","ɵk":"./lib/place/components/busy-overlay/busy-overlay.component","ɵl":"./lib/place/components/place-outlet/place-outlet.component","ɵm":"./lib/place/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/components/activity-outlet/activity-outlet.component","ɵw":"./lib/interaction/components/confirmation-dialog/confirmation-dialog.component","ɵx":"./lib/interaction/abstract-activity","ɵy":"./lib/interaction/activity","ɵz":"./lib/interaction/confirm","ɵba":"./lib/interaction/components/alert-dialog/alert-dialog.component","ɵbb":"./lib/interaction/alert","ɵbc":"./lib/interaction/services/dialog-interaction.service","ɵbd":"./lib/interaction/interaction-context"},"importAs":"@coolon/angular-ui-powerups"}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
6
|
-
import { DelegatingValueModel, EventListenerList, Trace } from '@coolon/pectin';
|
|
5
|
+
import { DelegatingValueModel, EventListenerList } from '@coolon/pectin';
|
|
7
6
|
import { DisposableComponent } from '../components/disposable-component';
|
|
8
7
|
/**
|
|
9
8
|
* @template D, R, E
|
|
@@ -62,6 +61,7 @@ export class AbstractActivity extends DisposableComponent {
|
|
|
62
61
|
*/
|
|
63
62
|
() => this.finalizeAndDispose()));
|
|
64
63
|
}
|
|
64
|
+
// @Trace()
|
|
65
65
|
/**
|
|
66
66
|
* @return {?}
|
|
67
67
|
*/
|
|
@@ -110,12 +110,6 @@ export class AbstractActivity extends DisposableComponent {
|
|
|
110
110
|
return this._busyModel.value;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
tslib_1.__decorate([
|
|
114
|
-
Trace(),
|
|
115
|
-
tslib_1.__metadata("design:type", Function),
|
|
116
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
117
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
118
|
-
], AbstractActivity.prototype, "onActivityReady", null);
|
|
119
113
|
if (false) {
|
|
120
114
|
/**
|
|
121
115
|
* @type {?}
|
|
@@ -138,4 +132,4 @@ if (false) {
|
|
|
138
132
|
*/
|
|
139
133
|
AbstractActivity.prototype._busyModel;
|
|
140
134
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aXZpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQUd6RSxNQUFNLE9BQU8sZ0JBQWdDLFNBQVEsbUJBQW1CO0lBQXhFOztRQUVtQixtQkFBYyxHQUFHLElBQUksaUJBQWlCLEVBQXdCLENBQUM7UUFDL0QscUJBQWdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBd0IsQ0FBQztRQUNqRSxxQkFBZ0IsR0FBRyxJQUFJLGlCQUFpQixFQUFjLENBQUM7UUFFdkQsZUFBVSxHQUFHLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFrRHZGLENBQUM7Ozs7O0lBaERDLE1BQU0sQ0FBQyxRQUE4QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxRQUE4QjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7O0lBRUQsSUFBSSxDQUFDLE1BQVU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjO2FBQ3ZCLFdBQVc7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQzthQUMzQixPQUFPOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxDQUFDO0lBQzlDLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLEtBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDekIsV0FBVzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDO2FBQzFCLE9BQU87OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLENBQUM7SUFDOUMsQ0FBQzs7Ozs7SUFHRCxlQUFlO0lBQ2YsQ0FBQzs7Ozs7SUFFTyxrQkFBa0I7UUFDeEIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ3JDLG1DQUFtQztRQUNuQyw2QkFBNkI7UUFDN0I7WUFDRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxjQUFjO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0I7U0FDdEIsQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQztJQUM5QixDQUFDOzs7O0lBR0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDOzs7OztJQUVELFNBQVMsQ0FBQyxTQUE4QjtRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7O0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNGOzs7Ozs7SUF0REMsMENBQWdGOzs7OztJQUNoRiw0Q0FBa0Y7Ozs7O0lBQ2xGLDRDQUF3RTs7Ozs7SUFFeEUsc0NBQXFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsIEV2ZW50TGlzdGVuZXJMaXN0LCBUcmFjZSwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi9hY3Rpdml0eSc7XG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdEFjdGl2aXR5PEQsIFIsIEUgPSBhbnk+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFjdGl2aXR5PEQsIFIsIEU+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb25lTGlzdGVuZXJzID0gbmV3IEV2ZW50TGlzdGVuZXJMaXN0PEFjdGl2aXR5LkNhbGxCYWNrPFI+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jYW5jZWxMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8QWN0aXZpdHkuQ2FsbEJhY2s8RT4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbmlzaExpc3RlbmVycyA9IG5ldyBFdmVudExpc3RlbmVyTGlzdDwoKSA9PiB2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1c3lNb2RlbCA9IG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKTtcblxuICBvbkRvbmUoY2FsbGJhY2s6IEFjdGl2aXR5LkNhbGxCYWNrPFI+KSB7XG4gICAgdGhpcy5fZG9uZUxpc3RlbmVycy5hZGQoY2FsbGJhY2spO1xuICB9XG5cbiAgb25DYW5jZWwoY2FsbGJhY2s6IEFjdGl2aXR5LkNhbGxCYWNrPEU+KSB7XG4gICAgdGhpcy5fY2FuY2VsTGlzdGVuZXJzLmFkZChjYWxsYmFjayk7XG4gIH1cblxuICBkb25lKHJlc3VsdD86IFIpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kb25lTGlzdGVuZXJzXG4gICAgICAuZmlyZUFuZFdhaXQobCA9PiBsKHJlc3VsdCkpXG4gICAgICAuZmluYWxseSgoKSA9PiB0aGlzLmZpbmFsaXplQW5kRGlzcG9zZSgpKTtcbiAgfVxuXG4gIGNhbmNlbChlcnJvcj86IEUpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYW5jZWxMaXN0ZW5lcnNcbiAgICAgIC5maXJlQW5kV2FpdChsID0+IGwoZXJyb3IpKVxuICAgICAgLmZpbmFsbHkoKCkgPT4gdGhpcy5maW5hbGl6ZUFuZERpc3Bvc2UoKSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbkFjdGl2aXR5UmVhZHkoKSB7XG4gIH1cblxuICBwcml2YXRlIGZpbmFsaXplQW5kRGlzcG9zZSgpIHtcbiAgICAvLyB0aGlzLl9hY3RpdmVNb2RlbC52YWx1ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2ZpbmlzaExpc3RlbmVycy5maXJlKGwgPT4gbCgpKTtcbiAgICAvLyB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSBudWxsO1xuICAgIC8vIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgW1xuICAgICAgdGhpcy5fZmluaXNoTGlzdGVuZXJzLFxuICAgICAgdGhpcy5fZG9uZUxpc3RlbmVycyxcbiAgICAgIHRoaXMuX2NhbmNlbExpc3RlbmVyc1xuICAgIF0uZm9yRWFjaChsID0+IGwuZGlzcG9zZSgpKTtcbiAgfVxuXG5cbiAgZ2V0IGJ1c3koKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2J1c3lNb2RlbC5yZWFkb25seTtcbiAgfVxuXG4gIGJ1c3lXaGlsZShidXN5TW9kZWw6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9idXN5TW9kZWwuc2V0RGVsZWdhdGUoYnVzeU1vZGVsKTtcbiAgfVxuXG4gIGlzQnVzeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYnVzeU1vZGVsLnZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import * as tslib_1 from "tslib";
|
|
6
5
|
import { Injectable } from '@angular/core';
|
|
7
|
-
import {
|
|
8
|
-
import { Trace } from '@coolon/pectin';
|
|
6
|
+
import { Router } from '@angular/router';
|
|
9
7
|
import _ from 'lodash';
|
|
10
|
-
import { ParameterSnapshot } from './route/parameter-snapshot';
|
|
11
8
|
import * as i0 from "@angular/core";
|
|
12
9
|
import * as i1 from "@angular/router";
|
|
13
10
|
export class PlaceRouter {
|
|
@@ -30,6 +27,7 @@ export class PlaceRouter {
|
|
|
30
27
|
relativeTo: activatedRoute
|
|
31
28
|
});
|
|
32
29
|
}
|
|
30
|
+
// @Trace()
|
|
33
31
|
/**
|
|
34
32
|
* @param {?} activatedRoute
|
|
35
33
|
* @param {?} sanitised
|
|
@@ -82,12 +80,6 @@ PlaceRouter.ctorParameters = () => [
|
|
|
82
80
|
{ type: Router }
|
|
83
81
|
];
|
|
84
82
|
/** @nocollapse */ PlaceRouter.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router)); }, token: PlaceRouter, providedIn: "root" });
|
|
85
|
-
tslib_1.__decorate([
|
|
86
|
-
Trace(),
|
|
87
|
-
tslib_1.__metadata("design:type", Function),
|
|
88
|
-
tslib_1.__metadata("design:paramtypes", [ActivatedRouteSnapshot, ParameterSnapshot]),
|
|
89
|
-
tslib_1.__metadata("design:returntype", UrlTree)
|
|
90
|
-
], PlaceRouter.prototype, "getRedirectUrlTree", null);
|
|
91
83
|
if (false) {
|
|
92
84
|
/**
|
|
93
85
|
* @type {?}
|
|
@@ -95,4 +87,4 @@ if (false) {
|
|
|
95
87
|
*/
|
|
96
88
|
PlaceRouter.prototype.router;
|
|
97
89
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQTBDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRTFGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7O0FBTXZCLE1BQU0sT0FBTyxXQUFXOzs7O0lBQ3RCLFlBQTZCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQzNDLENBQUM7Ozs7Ozs7SUFFRCwyQkFBMkIsQ0FBQyxjQUE4QixFQUFFLFFBQTJCLEVBQUUsSUFBdUI7O2NBQ3hHLFlBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7WUFDeEgsVUFBVSxFQUFFLGNBQWM7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7OztJQUdELGtCQUFrQixDQUFDLGNBQXNDLEVBQUUsU0FBNEI7O2NBQy9FLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRzs7Y0FDaEMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxTQUFTLENBQUMsbUJBQW1CLEVBQUU7O2NBQzFFLFFBQVEsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1RixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7Ozs7SUFFUyxZQUFZLENBQUMsY0FBc0M7UUFDM0QsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7Ozs7O0lBRVMscUJBQXFCLENBQUMsVUFBNkI7O2NBQ3JELE9BQU8sR0FBRyxVQUFVLENBQUMsbUJBQW1CLEVBQUU7UUFDaEQsT0FBTyxPQUFPLENBQUMsQ0FBQztZQUNkLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7O1lBbENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVBnRCxNQUFNOzs7Ozs7OztJQVN6Qyw2QkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhcmFtZXRlclNuYXBzaG90IH0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItc25hcHNob3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGFjZVJvdXRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHtcbiAgfVxuXG4gIHB1c2hQYXJhbWV0ZXJDaGFuZ2VzVG9Sb3V0ZShhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByZXZpb3VzOiBQYXJhbWV0ZXJTbmFwc2hvdCwgbmV4dDogUGFyYW1ldGVyU25hcHNob3QpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXByZXZpb3VzLmhhc1JvdXRlSWQoKSA/ICcuLicgOiAnLic7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JlbGF0aXZlUGF0aF0uY29uY2F0KHRoaXMuY3JlYXRlUm91dGVQYXJhbWV0ZXJzKG5leHQpLCB0aGlzLmdldENoaWxkUGF0aChhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCkpLCB7XG4gICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0UmVkaXJlY3RVcmxUcmVlKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzYW5pdGlzZWQ6IFBhcmFtZXRlclNuYXBzaG90KTogVXJsVHJlZSB7XG4gICAgY29uc3QgdXJsU2VnbWVudHMgPSBhY3RpdmF0ZWRSb3V0ZS51cmw7XG4gICAgY29uc3Qgd2VIYXZlQVJvdXRlSWQgPSBzYW5pdGlzZWQuaGFzUm91dGVJZCgpICYmIHNhbml0aXNlZC5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCk7XG4gICAgY29uc3QgY29tbWFuZHMgPSAod2VIYXZlQVJvdXRlSWQpID9cbiAgICAgIFt1cmxTZWdtZW50c1swXS5wYXRoLCBzYW5pdGlzZWQuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpLCBzYW5pdGlzZWQuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6XG4gICAgICBbdXJsU2VnbWVudHNbMF0ucGF0aCwgc2FuaXRpc2VkLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV07XG4gICAgY29uc29sZS5sb2coXCJyZWRpcmVjdCBwYXRoXCIsIGNvbW1hbmRzKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYW55W10ge1xuICAgIHJldHVybiBfLmZsYXR0ZW4oYWN0aXZhdGVkUm91dGUuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLnVybCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJvdXRlUGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJTbmFwc2hvdCk6IGFueVtdIHtcbiAgICBjb25zdCByb3V0ZUlkID0gcGFyYW1ldGVycy5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCk7XG4gICAgcmV0dXJuIHJvdXRlSWQgP1xuICAgICAgW3JvdXRlSWQsIHBhcmFtZXRlcnMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6XG4gICAgICBbcGFyYW1ldGVycy5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCldO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -4,8 +4,6 @@ var _a;
|
|
|
4
4
|
* @fileoverview added by tsickle
|
|
5
5
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
6
6
|
*/
|
|
7
|
-
import { Injector } from '@angular/core';
|
|
8
|
-
import { Trace } from '@coolon/pectin';
|
|
9
7
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
10
8
|
import _ from 'lodash';
|
|
11
9
|
import { ParameterDefinition } from './parameter-definition.class';
|
|
@@ -171,6 +169,7 @@ export class ParameterSnapshot {
|
|
|
171
169
|
return p.parameterDef === parameter ? p.replace(value) : p;
|
|
172
170
|
})));
|
|
173
171
|
}
|
|
172
|
+
// @Trace()
|
|
174
173
|
/**
|
|
175
174
|
* @param {?} injector
|
|
176
175
|
* @return {?}
|
|
@@ -233,12 +232,6 @@ tslib_1.__decorate([
|
|
|
233
232
|
tslib_1.__metadata("design:paramtypes", []),
|
|
234
233
|
tslib_1.__metadata("design:returntype", Array)
|
|
235
234
|
], ParameterSnapshot.prototype, "getRouteParameters", null);
|
|
236
|
-
tslib_1.__decorate([
|
|
237
|
-
Trace(),
|
|
238
|
-
tslib_1.__metadata("design:type", Function),
|
|
239
|
-
tslib_1.__metadata("design:paramtypes", [Injector]),
|
|
240
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
241
|
-
], ParameterSnapshot.prototype, "sanitise", null);
|
|
242
235
|
if (false) {
|
|
243
236
|
/** @type {?} */
|
|
244
237
|
ParameterSnapshot.prototype.placeDefinition;
|
|
@@ -535,4 +528,4 @@ if (false) {
|
|
|
535
528
|
}
|
|
536
529
|
ParameterSnapshot.ResolvedArrayParameter = ResolvedArrayParameter;
|
|
537
530
|
})(ParameterSnapshot || (ParameterSnapshot = {}));
|
|
538
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3BhcmFtZXRlci1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE1BQU0sT0FBTyxpQkFBaUI7Ozs7O0lBRTVCLFlBQXFCLGVBQWdDLEVBQW1CLFFBQXlEO1FBQTVHLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUFpRDtJQUNqSSxDQUFDOzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBd0IsRUFBRSxLQUFLLEdBQUcsS0FBSzs7Y0FDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDLEVBQUM7UUFDRixJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJO2dCQUMvQixJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ25CLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENB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aUIsUUFzSWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFBhcmFtTWFwLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvci9kaXN0L3NyYyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL3Zpc2l0JztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclNuYXBzaG90IGltcGxlbWVudHMgVmlzaXQge1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLCBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkOiBQYXJhbWV0ZXJTbmFwc2hvdC5SZXNvbHZlZFBhcmFtZXRlcjxhbnksIGFueT5bXSkge1xuICB9XG5cbiAgaGFzQ2hhbmdlZChvdGhlcjogUGFyYW1ldGVyU25hcHNob3QsIGRlYnVnID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5yZXNvbHZlZC5maW5kKChyKSA9PiB7XG4gICAgICByZXR1cm4gIXIuaXNTYW1lKG90aGVyLmdldFZhbHVlT2Yoci5wYXJhbWV0ZXJEZWYpKTtcbiAgICB9KTtcbiAgICBpZiAoY2hhbmdlZCAmJiBkZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coe1xuICAgICAgICBuYW1lOiBjaGFuZ2VkLnBhcmFtZXRlckRlZi5uYW1lLFxuICAgICAgICBtaW5lOiBjaGFuZ2VkLnZhbHVlLFxuICAgICAgICB0aGVpcnM6IG90aGVyLmdldFZhbHVlT2YoY2hhbmdlZC5wYXJhbWV0ZXJEZWYpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICEhY2hhbmdlZDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0UGFyYW1ldGVyPFQsIFM+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPik6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkUGFyYW1ldGVyPFQsIFM+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZC5maW5kKHIgPT4gci5wYXJhbWV0ZXJEZWYgPT09IHBhcmFtZXRlckRlZik7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZhbHVlT2Y8VCwgUz4ocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUyB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXIgPSB0aGlzLmdldFBhcmFtZXRlcihwYXJhbWV0ZXJEZWYpO1xuICAgIHJldHVybiByZXNvbHZlZFBhcmFtZXRlciA/IHJlc29sdmVkUGFyYW1ldGVyLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIGdldFJvdXRlSWRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXIoKSA/IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0UGFyYW1ldGVyVmFsdWUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtZXRlciA9IHRoaXMucmVzb2x2ZWQuZmluZChyID0+IHIucGFyYW1ldGVyRGVmLm5hbWUgPT09IG5hbWUpO1xuICAgIHJldHVybiByZXNvbHZlZFBhcmFtZXRlciA/IHJlc29sdmVkUGFyYW1ldGVyLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRSb3V0ZUlkUGFyYW1ldGVyKCk6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PiB7XG4gICAgLy8gUm91dGVJZCdzIGFyZSBuZXZlciBhcnJheXM6IHNlZSBwYXJhbWV0ZXItZGVjb3JhdG9ycy50cyBjcmVhdGVEZWZpbml0aW9uIG1ldGhvZHMuIEl0IHdvdWxkIGJlIG5pY2UgdG9cbiAgICAvLyBjYXB0dXJlIHRoaXMgaW4gdGhlIHR5cGUgc3lzdGVtIHRob3VnaFxuICAgIHJldHVybiB0aGlzLnJlc29sdmVkLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpIGFzIFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PjtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRSb3V0ZVBhcmFtZXRlcnMoKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8YW55LCBhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkLmZpbHRlcihyID0+ICFyLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpO1xuICB9XG5cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0uZm9ybWF0dGVkVmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBnZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMucmVzb2x2ZWQuZmlsdGVyKHAgPT4gIXAucGFyYW1ldGVyRGVmLmlzUm91dGVJZCkuZm9yRWFjaChwID0+IHtcbiAgICAgIHBhcmFtc1twLnBhcmFtZXRlckRlZi5uYW1lXSA9IHAuZm9ybWF0dGVkVmFsdWUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgZ2V0QWxsRm9ybWF0dGVkUGFyYW1ldGVycygpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLnJlc29sdmVkLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLmZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHJlcGxhY2U8VCwgUz4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+LCB2YWx1ZTogUyk6IFBhcmFtZXRlclNuYXBzaG90IHtcbiAgICByZXR1cm4gbmV3IFBhcmFtZXRlclNuYXBzaG90KHRoaXMucGxhY2VEZWZpbml0aW9uLCB0aGlzLnJlc29sdmVkLm1hcChwID0+IHtcbiAgICAgIHJldHVybiBwLnBhcmFtZXRlckRlZiA9PT0gcGFyYW1ldGVyID8gcC5yZXBsYWNlKHZhbHVlKSA6IHA7XG4gICAgfSkpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgYXN5bmMgc2FuaXRpc2UoaW5qZWN0b3I6IEluamVjdG9yKTogUHJvbWlzZTxQYXJhbWV0ZXJTbmFwc2hvdD4ge1xuICAgIGlmICh0aGlzLmhhc1JvdXRlSWQoKSkge1xuICAgICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICAgICAgY29uc3Qgc2FuaXRpc2VkVmFsdWUgPSBhd2FpdCByb3V0ZUlkLnNhbml0aXNlKHRoaXMsIGluamVjdG9yKTtcbiAgICAgIGlmICghcm91dGVJZC5pc1NhbWUoc2FuaXRpc2VkVmFsdWUpKSB7XG4gICAgICAgIC8vIGlmIHRoZSByb3V0ZSBpZCBoYXMgY2hhbmdlZCB3ZSByZWRpcmVjdCBpbW1lZGlhdGVseSBhcyBvdGhlclxuICAgICAgICAvLyBwYXJhbWV0ZXIgc2FuaXRpc2VycyBtaWdodCB1c2UgaXQuXG4gICAgICAgIHJldHVybiB0aGlzLnJlcGxhY2Uocm91dGVJZC5wYXJhbWV0ZXJEZWYsIHNhbml0aXNlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHJlc3VsdDogUGFyYW1ldGVyU25hcHNob3QgPSB0aGlzO1xuICAgIGNvbnN0IHJvdXRlUGFyYW1ldGVycyA9IHRoaXMuZ2V0Um91dGVQYXJhbWV0ZXJzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZVBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHNhbml0aXNlZFZhbHVlID0gYXdhaXQgcm91dGVQYXJhbWV0ZXJzW2ldLnNhbml0aXNlKHRoaXMsIGluamVjdG9yKTtcbiAgICAgIGlmICghcm91dGVQYXJhbWV0ZXJzW2ldLmlzU2FtZShzYW5pdGlzZWRWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5yZXBsYWNlKHJvdXRlUGFyYW1ldGVyc1tpXS5wYXJhbWV0ZXJEZWYsIHNhbml0aXNlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGFyYW1ldGVyU25hcHNob3Qge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGUocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbiwgcGFyYW1zOiBQYXJhbU1hcCwgdXJsU2VnbWVudHM6VXJsU2VnbWVudFtdKTogUGFyYW1ldGVyU25hcHNob3Qge1xuICAgIGNvbnN0IHBhcmFtTWFwID0gbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcChwYXJhbXMsIHVybFNlZ21lbnRzKTtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVyPGFueSwgYW55PltdID0gcGxhY2VEZWYuZ2V0Um91dGVQYXJhbWV0ZXJzKClcbiAgICAgIC5tYXAoZGVmID0+IHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbU1hcC5oYXMoZGVmLm5hbWUpID8gcGFyYW1NYXAuZ2V0QWxsKGRlZi5uYW1lKS5maWx0ZXIocyA9PiAhXy5pc0VtcHR5KHMpKS5tYXAocmF3ID0+IGRlZi50eXBlLnBhcnNlKHJhdykpIDogbnVsbDtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc29sdmVkQXJyYXlQYXJhbWV0ZXIoZGVmLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbU1hcC5oYXMoZGVmLm5hbWUpID8gZGVmLnR5cGUucGFyc2UocGFyYW1NYXAuZ2V0KGRlZi5uYW1lKSkgOiBudWxsO1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRWYWx1ZVBhcmFtZXRlcihkZWYsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJTbmFwc2hvdChwbGFjZURlZiwgcmVzb2x2ZWRQYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGEgd29yayBhcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgYW4gYWN0aXZhdGVkIHJvdXRlIHdpdGggbXVsdGlwbGUgc2VnbWVudHMgZG9lc24ndFxuICAgKiBpbmNsdWRlIHRoZSBzZWdtZW50IHBhcmFtcyBpbiB0aGUgcGFyYW1NYXAgYXMgd2VsbCBhcyBlYWNoIHNlZ21lbnQgcmV0dXJucyBhbiBlbXB0eVxuICAgKiBwYXJhbSBtYXAgZXZlbiB3aGVuIGBwYXJhbWV0ZXJgcyBoYXMgY29udGVudC5cbiAgICovXG4gIGNsYXNzIENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcCB7XG5cbiAgICBwcml2YXRlIHBhcmFtTWFwczogUGFyYW1NYXBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHBhcmFtTWFwOlBhcmFtTWFwLCB1cmxTZWdtZW50czpVcmxTZWdtZW50W10pIHtcbiAgICAgIHRoaXMucGFyYW1NYXBzID0gW3BhcmFtTWFwXS5jb25jYXQoXG4gICAgICAgICh1cmxTZWdtZW50cyB8fCBbXSkubWFwKHMgPT4gbmV3IFBhcmFtTWFwQWRhcHRlcihzLnBhcmFtZXRlcnMpKVxuICAgICAgKS5maWx0ZXIobSA9PiAhIW0pOyAvLyB0aGUgYWN0aXZhdGVkIHJvdXRlIHBhcmFtIG1hcCBjYW4gYmUgbnVsbFxuICAgIH1cblxuICAgIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpLmdldChuYW1lKTtcbiAgICB9XG5cbiAgICBnZXRBbGwobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1NYXBzLmZpbmQobSA9PiBtLmhhcyhuYW1lKSkuZ2V0QWxsKG5hbWUpO1xuICAgIH1cblxuICAgIGhhcyhuYW1lOnN0cmluZyk6Ym9vbGVhbiB7XG4gICAgICByZXR1cm4gISF0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIFBhcmFtTWFwQWRhcHRlciBpbXBsZW1lbnRzIFBhcmFtTWFwIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICB9XG5cbiAgICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJhbXNbbmFtZV07XG4gICAgfVxuXG4gICAgZ2V0QWxsKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQobmFtZSk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMua2V5cy5pbmNsdWRlcyhuYW1lKTtcbiAgICB9XG5cbiAgICBnZXQga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpO1xuICAgIH1cblxuICB9XG5cblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgUyA9IFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4sIHJlYWRvbmx5IHZhbHVlOiBTKSB7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBpc1NhbWUob3RoZXJWYWx1ZTogUyk6IGJvb2xlYW47XG5cbiAgICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgYWJzdHJhY3QgcmVwbGFjZSh2YWx1ZTogUyk6IFJlc29sdmVkUGFyYW1ldGVyPFQsIFM+O1xuXG4gICAgYXN5bmMgc2FuaXRpc2UodmlzaXQ6IFZpc2l0LCBpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPFM+IHtcbiAgICAgIGNvbnN0IHNhbml0aXNlciA9IHRoaXMucGFyYW1ldGVyRGVmLmdldFNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgICBpZiAoc2FuaXRpc2VyKSB7XG4gICAgICAgIHJldHVybiBzYW5pdGlzZXIuc2FuaXRpc2UodGhpcy5wYXJhbWV0ZXJEZWYsIHRoaXMudmFsdWUsIHZpc2l0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBSZXNvbHZlZFZhbHVlUGFyYW1ldGVyPFQ+IGV4dGVuZHMgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVD4ge1xuXG4gICAgaXNTYW1lKG90aGVyVmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBvdGhlclZhbHVlO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pOiB2b2lkIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXBsYWNlKHZhbHVlOiBUKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVD4ge1xuICAgICAgcmV0dXJuIG5ldyBSZXNvbHZlZFZhbHVlUGFyYW1ldGVyPFQ+KHRoaXMucGFyYW1ldGVyRGVmLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnZhbHVlKSA/IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHRoaXMudmFsdWUpIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUmVzb2x2ZWRBcnJheVBhcmFtZXRlcjxUPiBleHRlbmRzIFJlc29sdmVkUGFyYW1ldGVyPFQsIFRbXT4ge1xuXG4gICAgaXNTYW1lKG90aGVyVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIF8uaXNFcXVhbCh0aGlzLnZhbHVlLCBvdGhlclZhbHVlKTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KTogdm9pZCB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy52YWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSk7XG4gICAgfVxuXG4gICAgcmVwbGFjZSh2YWx1ZTogVFtdKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVFtdPiB7XG4gICAgICByZXR1cm4gbmV3IFJlc29sdmVkQXJyYXlQYXJhbWV0ZXI8VD4odGhpcy5wYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmdbXSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUubWFwKHYgPT4gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodikpIDogW107XG4gICAgfVxuXG4gIH1cblxufVxuIl19
|
|
531
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3BhcmFtZXRlci1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE1BQU0sT0FBTyxpQkFBaUI7Ozs7O0lBRTVCLFlBQXFCLGVBQWdDLEVBQW1CLFFBQXlEO1FBQTVHLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUFpRDtJQUNqSSxDQUFDOzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBd0IsRUFBRSxLQUFLLEdBQUcsS0FBSzs7Y0FDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDLEVBQUM7UUFDRixJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJO2dCQUMvQixJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ25CLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7YUFDL0MsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7Ozs7O0lBR0QsWUFBWSxDQUFP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QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pGLENBQUM7S0FDRjtJQWpCWSx3Q0FBc0IseUJBaUJsQyxDQUFBOzs7O0lBRUQsTUFBYSxzQkFBMEIsU0FBUSxpQkFBeUI7Ozs7O1FBRXRFLE1BQU0sQ0FBQyxVQUFlO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7Ozs7O1FBRUQsZ0JBQWdCLENBQUMsSUFBUTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3ZGLENBQUM7Ozs7O1FBRUQsT0FBTyxDQUFDLEtBQVU7WUFDaEIsT0FBTyxJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsQ0FBQzs7OztRQUVELGNBQWM7WUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRzs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixDQUFDO0tBRUY7SUFsQlksd0NBQXNCLHlCQWtCbEMsQ0FBQTtBQUVILENBQUMsRUF0SWdCLGlCQUFpQixLQUFqQixpQkFBaUIsUUFzSWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFBhcmFtTWFwLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvci9kaXN0L3NyYyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL3Zpc2l0JztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclNuYXBzaG90IGltcGxlbWVudHMgVmlzaXQge1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLCBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkOiBQYXJhbWV0ZXJTbmFwc2hvdC5SZXNvbHZlZFBhcmFtZXRlcjxhbnksIGFueT5bXSkge1xuICB9XG5cbiAgaGFzQ2hhbmdlZChvdGhlcjogUGFyYW1ldGVyU25hcHNob3QsIGRlYnVnID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5yZXNvbHZlZC5maW5kKChyKSA9PiB7XG4gICAgICByZXR1cm4gIXIuaXNTYW1lKG90aGVyLmdldFZhbHVlT2Yoci5wYXJhbWV0ZXJEZWYpKTtcbiAgICB9KTtcbiAgICBpZiAoY2hhbmdlZCAmJiBkZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coe1xuICAgICAgICBuYW1lOiBjaGFuZ2VkLnBhcmFtZXRlckRlZi5uYW1lLFxuICAgICAgICBtaW5lOiBjaGFuZ2VkLnZhbHVlLFxuICAgICAgICB0aGVpcnM6IG90aGVyLmdldFZhbHVlT2YoY2hhbmdlZC5wYXJhbWV0ZXJEZWYpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICEhY2hhbmdlZDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0UGFyYW1ldGVyPFQsIFM+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPik6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkUGFyYW1ldGVyPFQsIFM+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZC5maW5kKHIgPT4gci5wYXJhbWV0ZXJEZWYgPT09IHBhcmFtZXRlckRlZik7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZhbHVlT2Y8VCwgUz4ocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUyB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXIgPSB0aGlzLmdldFBhcmFtZXRlcihwYXJhbWV0ZXJEZWYpO1xuICAgIHJldHVybiByZXNvbHZlZFBhcmFtZXRlciA/IHJlc29sdmVkUGFyYW1ldGVyLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIGdldFJvdXRlSWRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXIoKSA/IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0UGFyYW1ldGVyVmFsdWUobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtZXRlciA9IHRoaXMucmVzb2x2ZWQuZmluZChyID0+IHIucGFyYW1ldGVyRGVmLm5hbWUgPT09IG5hbWUpO1xuICAgIHJldHVybiByZXNvbHZlZFBhcmFtZXRlciA/IHJlc29sdmVkUGFyYW1ldGVyLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRSb3V0ZUlkUGFyYW1ldGVyKCk6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PiB7XG4gICAgLy8gUm91dGVJZCdzIGFyZSBuZXZlciBhcnJheXM6IHNlZSBwYXJhbWV0ZXItZGVjb3JhdG9ycy50cyBjcmVhdGVEZWZpbml0aW9uIG1ldGhvZHMuIEl0IHdvdWxkIGJlIG5pY2UgdG9cbiAgICAvLyBjYXB0dXJlIHRoaXMgaW4gdGhlIHR5cGUgc3lzdGVtIHRob3VnaFxuICAgIHJldHVybiB0aGlzLnJlc29sdmVkLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpIGFzIFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PjtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRSb3V0ZVBhcmFtZXRlcnMoKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8YW55LCBhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkLmZpbHRlcihyID0+ICFyLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpO1xuICB9XG5cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0uZm9ybWF0dGVkVmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBnZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMucmVzb2x2ZWQuZmlsdGVyKHAgPT4gIXAucGFyYW1ldGVyRGVmLmlzUm91dGVJZCkuZm9yRWFjaChwID0+IHtcbiAgICAgIHBhcmFtc1twLnBhcmFtZXRlckRlZi5uYW1lXSA9IHAuZm9ybWF0dGVkVmFsdWUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgZ2V0QWxsRm9ybWF0dGVkUGFyYW1ldGVycygpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLnJlc29sdmVkLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLmZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHJlcGxhY2U8VCwgUz4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+LCB2YWx1ZTogUyk6IFBhcmFtZXRlclNuYXBzaG90IHtcbiAgICByZXR1cm4gbmV3IFBhcmFtZXRlclNuYXBzaG90KHRoaXMucGxhY2VEZWZpbml0aW9uLCB0aGlzLnJlc29sdmVkLm1hcChwID0+IHtcbiAgICAgIHJldHVybiBwLnBhcmFtZXRlckRlZiA9PT0gcGFyYW1ldGVyID8gcC5yZXBsYWNlKHZhbHVlKSA6IHA7XG4gICAgfSkpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgc2FuaXRpc2UoaW5qZWN0b3I6IEluamVjdG9yKTogUHJvbWlzZTxQYXJhbWV0ZXJTbmFwc2hvdD4ge1xuICAgIGlmICh0aGlzLmhhc1JvdXRlSWQoKSkge1xuICAgICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlcigpO1xuICAgICAgY29uc3Qgc2FuaXRpc2VkVmFsdWUgPSBhd2FpdCByb3V0ZUlkLnNhbml0aXNlKHRoaXMsIGluamVjdG9yKTtcbiAgICAgIGlmICghcm91dGVJZC5pc1NhbWUoc2FuaXRpc2VkVmFsdWUpKSB7XG4gICAgICAgIC8vIGlmIHRoZSByb3V0ZSBpZCBoYXMgY2hhbmdlZCB3ZSByZWRpcmVjdCBpbW1lZGlhdGVseSBhcyBvdGhlclxuICAgICAgICAvLyBwYXJhbWV0ZXIgc2FuaXRpc2VycyBtaWdodCB1c2UgaXQuXG4gICAgICAgIHJldHVybiB0aGlzLnJlcGxhY2Uocm91dGVJZC5wYXJhbWV0ZXJEZWYsIHNhbml0aXNlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHJlc3VsdDogUGFyYW1ldGVyU25hcHNob3QgPSB0aGlzO1xuICAgIGNvbnN0IHJvdXRlUGFyYW1ldGVycyA9IHRoaXMuZ2V0Um91dGVQYXJhbWV0ZXJzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZVBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHNhbml0aXNlZFZhbHVlID0gYXdhaXQgcm91dGVQYXJhbWV0ZXJzW2ldLnNhbml0aXNlKHRoaXMsIGluamVjdG9yKTtcbiAgICAgIGlmICghcm91dGVQYXJhbWV0ZXJzW2ldLmlzU2FtZShzYW5pdGlzZWRWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5yZXBsYWNlKHJvdXRlUGFyYW1ldGVyc1tpXS5wYXJhbWV0ZXJEZWYsIHNhbml0aXNlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGFyYW1ldGVyU25hcHNob3Qge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGUocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbiwgcGFyYW1zOiBQYXJhbU1hcCwgdXJsU2VnbWVudHM6VXJsU2VnbWVudFtdKTogUGFyYW1ldGVyU25hcHNob3Qge1xuICAgIGNvbnN0IHBhcmFtTWFwID0gbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcChwYXJhbXMsIHVybFNlZ21lbnRzKTtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVyPGFueSwgYW55PltdID0gcGxhY2VEZWYuZ2V0Um91dGVQYXJhbWV0ZXJzKClcbiAgICAgIC5tYXAoZGVmID0+IHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbU1hcC5oYXMoZGVmLm5hbWUpID8gcGFyYW1NYXAuZ2V0QWxsKGRlZi5uYW1lKS5maWx0ZXIocyA9PiAhXy5pc0VtcHR5KHMpKS5tYXAocmF3ID0+IGRlZi50eXBlLnBhcnNlKHJhdykpIDogbnVsbDtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc29sdmVkQXJyYXlQYXJhbWV0ZXIoZGVmLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbU1hcC5oYXMoZGVmLm5hbWUpID8gZGVmLnR5cGUucGFyc2UocGFyYW1NYXAuZ2V0KGRlZi5uYW1lKSkgOiBudWxsO1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRWYWx1ZVBhcmFtZXRlcihkZWYsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJTbmFwc2hvdChwbGFjZURlZiwgcmVzb2x2ZWRQYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGEgd29yayBhcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgYW4gYWN0aXZhdGVkIHJvdXRlIHdpdGggbXVsdGlwbGUgc2VnbWVudHMgZG9lc24ndFxuICAgKiBpbmNsdWRlIHRoZSBzZWdtZW50IHBhcmFtcyBpbiB0aGUgcGFyYW1NYXAgYXMgd2VsbCBhcyBlYWNoIHNlZ21lbnQgcmV0dXJucyBhbiBlbXB0eVxuICAgKiBwYXJhbSBtYXAgZXZlbiB3aGVuIGBwYXJhbWV0ZXJgcyBoYXMgY29udGVudC5cbiAgICovXG4gIGNsYXNzIENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcCB7XG5cbiAgICBwcml2YXRlIHBhcmFtTWFwczogUGFyYW1NYXBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHBhcmFtTWFwOlBhcmFtTWFwLCB1cmxTZWdtZW50czpVcmxTZWdtZW50W10pIHtcbiAgICAgIHRoaXMucGFyYW1NYXBzID0gW3BhcmFtTWFwXS5jb25jYXQoXG4gICAgICAgICh1cmxTZWdtZW50cyB8fCBbXSkubWFwKHMgPT4gbmV3IFBhcmFtTWFwQWRhcHRlcihzLnBhcmFtZXRlcnMpKVxuICAgICAgKS5maWx0ZXIobSA9PiAhIW0pOyAvLyB0aGUgYWN0aXZhdGVkIHJvdXRlIHBhcmFtIG1hcCBjYW4gYmUgbnVsbFxuICAgIH1cblxuICAgIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpLmdldChuYW1lKTtcbiAgICB9XG5cbiAgICBnZXRBbGwobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1NYXBzLmZpbmQobSA9PiBtLmhhcyhuYW1lKSkuZ2V0QWxsKG5hbWUpO1xuICAgIH1cblxuICAgIGhhcyhuYW1lOnN0cmluZyk6Ym9vbGVhbiB7XG4gICAgICByZXR1cm4gISF0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIFBhcmFtTWFwQWRhcHRlciBpbXBsZW1lbnRzIFBhcmFtTWFwIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICB9XG5cbiAgICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJhbXNbbmFtZV07XG4gICAgfVxuXG4gICAgZ2V0QWxsKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQobmFtZSk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMua2V5cy5pbmNsdWRlcyhuYW1lKTtcbiAgICB9XG5cbiAgICBnZXQga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpO1xuICAgIH1cblxuICB9XG5cblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgUyA9IFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4sIHJlYWRvbmx5IHZhbHVlOiBTKSB7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBpc1NhbWUob3RoZXJWYWx1ZTogUyk6IGJvb2xlYW47XG5cbiAgICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgYWJzdHJhY3QgcmVwbGFjZSh2YWx1ZTogUyk6IFJlc29sdmVkUGFyYW1ldGVyPFQsIFM+O1xuXG4gICAgYXN5bmMgc2FuaXRpc2UodmlzaXQ6IFZpc2l0LCBpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPFM+IHtcbiAgICAgIGNvbnN0IHNhbml0aXNlciA9IHRoaXMucGFyYW1ldGVyRGVmLmdldFNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgICBpZiAoc2FuaXRpc2VyKSB7XG4gICAgICAgIHJldHVybiBzYW5pdGlzZXIuc2FuaXRpc2UodGhpcy5wYXJhbWV0ZXJEZWYsIHRoaXMudmFsdWUsIHZpc2l0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBSZXNvbHZlZFZhbHVlUGFyYW1ldGVyPFQ+IGV4dGVuZHMgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVD4ge1xuXG4gICAgaXNTYW1lKG90aGVyVmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBvdGhlclZhbHVlO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pOiB2b2lkIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXBsYWNlKHZhbHVlOiBUKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVD4ge1xuICAgICAgcmV0dXJuIG5ldyBSZXNvbHZlZFZhbHVlUGFyYW1ldGVyPFQ+KHRoaXMucGFyYW1ldGVyRGVmLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnZhbHVlKSA/IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHRoaXMudmFsdWUpIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUmVzb2x2ZWRBcnJheVBhcmFtZXRlcjxUPiBleHRlbmRzIFJlc29sdmVkUGFyYW1ldGVyPFQsIFRbXT4ge1xuXG4gICAgaXNTYW1lKG90aGVyVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIF8uaXNFcXVhbCh0aGlzLnZhbHVlLCBvdGhlclZhbHVlKTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KTogdm9pZCB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy52YWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSk7XG4gICAgfVxuXG4gICAgcmVwbGFjZSh2YWx1ZTogVFtdKTogUGFyYW1ldGVyU25hcHNob3QuUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVFtdPiB7XG4gICAgICByZXR1cm4gbmV3IFJlc29sdmVkQXJyYXlQYXJhbWV0ZXI8VD4odGhpcy5wYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmdbXSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUubWFwKHYgPT4gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodikpIDogW107XG4gICAgfVxuXG4gIH1cblxufVxuIl19
|