@elderbyte/ngx-starter 15.11.0 → 15.13.0
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/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +1 -1
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +9 -3
- package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +9 -21
- package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +113 -0
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +53 -39
- package/esm2020/lib/components/data-view/table/elder-table.module.mjs +11 -5
- package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +1 -1
- package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +62 -28
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +6 -18
- package/fesm2015/elderbyte-ngx-starter.mjs +253 -110
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +251 -110
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +3 -1
- package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +1 -1
- package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +53 -0
- package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +8 -5
- package/lib/components/data-view/table/elder-table.module.d.ts +24 -22
- package/lib/components/dialogs/elder-dialog.module.d.ts +1 -1
- package/lib/components/dialogs/elder-dialog.service.d.ts +34 -12
- package/package.json +1 -1
package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs
CHANGED
|
@@ -80,7 +80,7 @@ export class ElderCardOrganizerComponent {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
ElderCardOrganizerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardOrganizerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
ElderCardOrganizerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderCardOrganizerComponent, selector: "elder-card-organizer", inputs: { canRemove: "canRemove", removeConfirmation: "removeConfirmation", copyOnDrag: "copyOnDrag", autoMoveCards: "autoMoveCards", headerEnabled: "headerEnabled", canEnterPredicate: "canEnterPredicate", organizerModel: "organizerModel" }, outputs: { requestNewCard: "requestNewCard", requestRemoveCard: "requestRemoveCard", cardClick: "cardClick", cardDropped: "cardDropped" }, host: { listeners: { "document:keydown.shift": "onKeydownHandler($event)", "document:keyup.shift": "onKeyupHandler($event)" } }, queries: [{ propertyName: "stackCardTemplate", first: true, predicate: ElderStackCardDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row place-start-stretch gap-lg full p-md card-organizer\">\n <elder-card-stack class=\"flex\"\n *ngFor=\"let stack of stacks$ | async\"\n\n [stack]=\"stack\"\n\n [stackId]=\"stack.id\"\n [headerEnabled]=\"headerEnabled\"\n [headerTitle]=\"stack.title\"\n [canRemove]=\"canRemove\"\n\n [cardTemplate]=\"stackCardTemplate\"\n [removeConfirmation]=\"removeConfirmation\"\n [autoMoveCards]=\"autoMoveCards\"\n (requestNewCard)=\"onRequestNewCard($event)\"\n (requestRemoveCard)=\"onRequestRemoveCard($event)\"\n (cardClick)=\"onCardClicked($event)\"\n\n [connectedTo]=\"organizerModel.stackIds | async\"\n (cardDropped)=\"onCardDropped($event)\"\n [canEnterPredicate]=\"canEnterPredicate\"\n [copyOnDrag]=\"copyOnDrag\"\n >\n </elder-card-stack>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ElderCardStackComponent, selector: "elder-card-stack", inputs: ["stackId", "headerEnabled", "headerTitle", "canRemove", "removeConfirmation", "canEnterPredicate", "connectedTo", "autoMoveCards", "canCollapse", "copyOnDrag", "cardTemplate", "stack"], outputs: ["requestNewCard", "requestRemoveCard", "cardClick", "cardDropped"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
+
ElderCardOrganizerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderCardOrganizerComponent, selector: "elder-card-organizer", inputs: { canRemove: "canRemove", removeConfirmation: "removeConfirmation", copyOnDrag: "copyOnDrag", autoMoveCards: "autoMoveCards", headerEnabled: "headerEnabled", canEnterPredicate: "canEnterPredicate", organizerModel: "organizerModel" }, outputs: { requestNewCard: "requestNewCard", requestRemoveCard: "requestRemoveCard", cardClick: "cardClick", cardDropped: "cardDropped" }, host: { listeners: { "document:keydown.shift": "onKeydownHandler($event)", "document:keyup.shift": "onKeyupHandler($event)" } }, queries: [{ propertyName: "stackCardTemplate", first: true, predicate: ElderStackCardDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row place-start-stretch gap-lg full p-md card-organizer\">\n <elder-card-stack class=\"flex\"\n *ngFor=\"let stack of stacks$ | async\"\n\n [stack]=\"stack\"\n\n [stackId]=\"stack.id\"\n [headerEnabled]=\"headerEnabled\"\n [headerTitle]=\"stack.title\"\n [canRemove]=\"canRemove\"\n\n [cardTemplate]=\"stackCardTemplate\"\n [removeConfirmation]=\"removeConfirmation\"\n [autoMoveCards]=\"autoMoveCards\"\n (requestNewCard)=\"onRequestNewCard($event)\"\n (requestRemoveCard)=\"onRequestRemoveCard($event)\"\n (cardClick)=\"onCardClicked($event)\"\n\n [connectedTo]=\"organizerModel.stackIds | async\"\n (cardDropped)=\"onCardDropped($event)\"\n [canEnterPredicate]=\"canEnterPredicate\"\n [copyOnDrag]=\"copyOnDrag\"\n >\n </elder-card-stack>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ElderCardStackComponent, selector: "elder-card-stack", inputs: ["stackId", "headerEnabled", "headerTitle", "canRemove", "canAdd", "canDrag", "removeConfirmation", "canEnterPredicate", "connectedTo", "autoMoveCards", "canCollapse", "copyOnDrag", "cardTemplate", "stack"], outputs: ["requestNewCard", "requestRemoveCard", "cardClick", "cardDropped"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardOrganizerComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
86
|
args: [{ selector: 'elder-card-organizer', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<div class=\"layout-row place-start-stretch gap-lg full p-md card-organizer\">\n <elder-card-stack class=\"flex\"\n *ngFor=\"let stack of stacks$ | async\"\n\n [stack]=\"stack\"\n\n [stackId]=\"stack.id\"\n [headerEnabled]=\"headerEnabled\"\n [headerTitle]=\"stack.title\"\n [canRemove]=\"canRemove\"\n\n [cardTemplate]=\"stackCardTemplate\"\n [removeConfirmation]=\"removeConfirmation\"\n [autoMoveCards]=\"autoMoveCards\"\n (requestNewCard)=\"onRequestNewCard($event)\"\n (requestRemoveCard)=\"onRequestRemoveCard($event)\"\n (cardClick)=\"onCardClicked($event)\"\n\n [connectedTo]=\"organizerModel.stackIds | async\"\n (cardDropped)=\"onCardDropped($event)\"\n [canEnterPredicate]=\"canEnterPredicate\"\n [copyOnDrag]=\"copyOnDrag\"\n >\n </elder-card-stack>\n</div>\n" }]
|
|
@@ -25,6 +25,8 @@ export class ElderCardStackComponent {
|
|
|
25
25
|
**************************************************************************/
|
|
26
26
|
this.logger = LoggerFactory.getLogger('ElderCardStackComponent');
|
|
27
27
|
this.headerEnabled = true;
|
|
28
|
+
this.canAdd = true;
|
|
29
|
+
this.canDrag = true;
|
|
28
30
|
this.requestNewCard = new EventEmitter();
|
|
29
31
|
this.requestRemoveCard = new EventEmitter();
|
|
30
32
|
this.cardClick = new EventEmitter();
|
|
@@ -158,10 +160,10 @@ export class ElderCardStackComponent {
|
|
|
158
160
|
}
|
|
159
161
|
}
|
|
160
162
|
ElderCardStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderCardStackComponent, selector: "elder-card-stack", inputs: { stackId: "stackId", headerEnabled: "headerEnabled", headerTitle: "headerTitle", canRemove: "canRemove", removeConfirmation: "removeConfirmation", canEnterPredicate: "canEnterPredicate", connectedTo: "connectedTo", autoMoveCards: "autoMoveCards", canCollapse: "canCollapse", copyOnDrag: "copyOnDrag", cardTemplate: "cardTemplate", stack: "stack" }, outputs: { requestNewCard: "requestNewCard", requestRemoveCard: "requestRemoveCard", cardClick: "cardClick", cardDropped: "cardDropped" }, queries: [{ propertyName: "cardTemplateQuery", first: true, predicate: ElderStackCardDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"layout-col full card-stack hoverme\">\n\n <!-- Header -->\n <header *ngIf=\"headerEnabled\"\n class=\"layout-row place-start-center flex-none gap-md stack-header p-md\">\n\n <h3 class=\"mat-subtitle-2 noselect\">{{headerTitle | translate}}</h3>\n <small class=\"mat-caption noselect\">({{(cards$ | async)?.length}})</small>\n\n <span class=\"flex\"></span>\n\n <button mat-icon-button type=\"button\" (click)=\"onRequestNewCard($event)\">\n <mat-icon>add</mat-icon>\n </button>\n\n </header>\n <mat-divider *ngIf=\"headerEnabled\"></mat-divider>\n\n\n <!-- card list -->\n <div class=\"layout-col flex card-container\">\n\n <div class=\"layout-col gap-sm scrollable p-sm card-list\"\n [id]=\"stackId\"\n cdkDropList\n [cdkDropListData]=\"stack\"\n [cdkDropListConnectedTo]=\"connectedTo\"\n\n [cdkDropListEnterPredicate]=\"enterPredicate\"\n (cdkDropListEntered)=\"cardEntered($event)\"\n (cdkDropListExited)=\"cardExited($event)\"\n (cdkDropListDropped)=\"cardDrop($event)\"\n >\n\n <!-- card -->\n <elder-card\n *ngFor=\"let card of cards$ | async; let i = index\"\n class=\"card flex-none\"\n cdkDrag [cdkDragData]=\"card\"\n (click)=\"onCardSelected($event, card)\">\n\n <div class=\"layout-row place-between-center flex\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate || simpleCardTemplate; context: {$implicit: card, index: i}\"></ng-container>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"canRemove\" class=\"hide\" (click)=\"onRequestRemoveCard($event, card)\">\n <mat-icon>close</mat-icon>\n </button>\n\n </div>\n\n </elder-card>\n\n </div>\n\n </div>\n\n\n <ng-template #simpleCardTemplate let-card>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">{{card}}</p>\n </div>\n </ng-template>\n\n</div>\n\n\n\n\n", styles: [".stack-header{height:62px}.card-container{min-width:120px;min-height:0}.card-list{min-height:100%}.card{cursor:move}.hoverme .hide{visibility:hidden}.hoverme:hover .hide{visibility:visible}.rotate{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.card-list.cdk-drop-list-dragging .card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.ElderCardComponent, selector: "elder-card", inputs: ["appearance", "float", "flat"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
163
|
+
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderCardStackComponent, selector: "elder-card-stack", inputs: { stackId: "stackId", headerEnabled: "headerEnabled", headerTitle: "headerTitle", canRemove: "canRemove", canAdd: "canAdd", canDrag: "canDrag", removeConfirmation: "removeConfirmation", canEnterPredicate: "canEnterPredicate", connectedTo: "connectedTo", autoMoveCards: "autoMoveCards", canCollapse: "canCollapse", copyOnDrag: "copyOnDrag", cardTemplate: "cardTemplate", stack: "stack" }, outputs: { requestNewCard: "requestNewCard", requestRemoveCard: "requestRemoveCard", cardClick: "cardClick", cardDropped: "cardDropped" }, queries: [{ propertyName: "cardTemplateQuery", first: true, predicate: ElderStackCardDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"layout-col full card-stack hoverme\">\n\n <!-- Header -->\n <header *ngIf=\"headerEnabled\"\n class=\"layout-row place-start-center flex-none gap-md stack-header p-md\">\n\n <h3 class=\"mat-subtitle-2 noselect\">{{headerTitle | translate}}</h3>\n <small class=\"mat-caption noselect\">({{(cards$ | async)?.length}})</small>\n\n <span class=\"flex\"></span>\n\n <button *ngIf=\"canAdd\" mat-icon-button type=\"button\" (click)=\"onRequestNewCard($event)\">\n <mat-icon>add</mat-icon>\n </button>\n\n </header>\n <mat-divider *ngIf=\"headerEnabled\"></mat-divider>\n\n\n <!-- card list -->\n <div class=\"layout-col flex card-container\">\n\n <div class=\"layout-col gap-sm scrollable p-sm card-list\"\n [id]=\"stackId\"\n cdkDropList\n [cdkDropListDisabled]=\"!canDrag\"\n [cdkDropListData]=\"stack\"\n [cdkDropListConnectedTo]=\"connectedTo\"\n\n [cdkDropListEnterPredicate]=\"enterPredicate\"\n (cdkDropListEntered)=\"cardEntered($event)\"\n (cdkDropListExited)=\"cardExited($event)\"\n (cdkDropListDropped)=\"cardDrop($event)\"\n >\n\n <!-- card -->\n <elder-card\n *ngFor=\"let card of cards$ | async; let i = index\"\n class=\"card flex-none\"\n cdkDrag [cdkDragData]=\"card\"\n (click)=\"onCardSelected($event, card)\">\n\n <div class=\"layout-row place-between-center flex\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate || simpleCardTemplate; context: {$implicit: card, index: i}\"></ng-container>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"canRemove\" class=\"hide\" (click)=\"onRequestRemoveCard($event, card)\">\n <mat-icon>close</mat-icon>\n </button>\n\n </div>\n\n </elder-card>\n\n </div>\n\n </div>\n\n\n <ng-template #simpleCardTemplate let-card>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">{{card}}</p>\n </div>\n </ng-template>\n\n</div>\n\n\n\n\n", styles: [".stack-header{height:62px}.card-container{min-width:120px;min-height:0}.card-list{min-height:100%}.card{cursor:move}.hoverme .hide{visibility:hidden}.hoverme:hover .hide{visibility:visible}.rotate{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.card-list.cdk-drop-list-dragging .card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.ElderCardComponent, selector: "elder-card", inputs: ["appearance", "float", "flat"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
162
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardStackComponent, decorators: [{
|
|
163
165
|
type: Component,
|
|
164
|
-
args: [{ selector: 'elder-card-stack', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-col full card-stack hoverme\">\n\n <!-- Header -->\n <header *ngIf=\"headerEnabled\"\n class=\"layout-row place-start-center flex-none gap-md stack-header p-md\">\n\n <h3 class=\"mat-subtitle-2 noselect\">{{headerTitle | translate}}</h3>\n <small class=\"mat-caption noselect\">({{(cards$ | async)?.length}})</small>\n\n <span class=\"flex\"></span>\n\n <button mat-icon-button type=\"button\" (click)=\"onRequestNewCard($event)\">\n <mat-icon>add</mat-icon>\n </button>\n\n </header>\n <mat-divider *ngIf=\"headerEnabled\"></mat-divider>\n\n\n <!-- card list -->\n <div class=\"layout-col flex card-container\">\n\n <div class=\"layout-col gap-sm scrollable p-sm card-list\"\n [id]=\"stackId\"\n cdkDropList\n [cdkDropListData]=\"stack\"\n [cdkDropListConnectedTo]=\"connectedTo\"\n\n [cdkDropListEnterPredicate]=\"enterPredicate\"\n (cdkDropListEntered)=\"cardEntered($event)\"\n (cdkDropListExited)=\"cardExited($event)\"\n (cdkDropListDropped)=\"cardDrop($event)\"\n >\n\n <!-- card -->\n <elder-card\n *ngFor=\"let card of cards$ | async; let i = index\"\n class=\"card flex-none\"\n cdkDrag [cdkDragData]=\"card\"\n (click)=\"onCardSelected($event, card)\">\n\n <div class=\"layout-row place-between-center flex\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate || simpleCardTemplate; context: {$implicit: card, index: i}\"></ng-container>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"canRemove\" class=\"hide\" (click)=\"onRequestRemoveCard($event, card)\">\n <mat-icon>close</mat-icon>\n </button>\n\n </div>\n\n </elder-card>\n\n </div>\n\n </div>\n\n\n <ng-template #simpleCardTemplate let-card>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">{{card}}</p>\n </div>\n </ng-template>\n\n</div>\n\n\n\n\n", styles: [".stack-header{height:62px}.card-container{min-width:120px;min-height:0}.card-list{min-height:100%}.card{cursor:move}.hoverme .hide{visibility:hidden}.hoverme:hover .hide{visibility:visible}.rotate{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.card-list.cdk-drop-list-dragging .card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
166
|
+
args: [{ selector: 'elder-card-stack', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-col full card-stack hoverme\">\n\n <!-- Header -->\n <header *ngIf=\"headerEnabled\"\n class=\"layout-row place-start-center flex-none gap-md stack-header p-md\">\n\n <h3 class=\"mat-subtitle-2 noselect\">{{headerTitle | translate}}</h3>\n <small class=\"mat-caption noselect\">({{(cards$ | async)?.length}})</small>\n\n <span class=\"flex\"></span>\n\n <button *ngIf=\"canAdd\" mat-icon-button type=\"button\" (click)=\"onRequestNewCard($event)\">\n <mat-icon>add</mat-icon>\n </button>\n\n </header>\n <mat-divider *ngIf=\"headerEnabled\"></mat-divider>\n\n\n <!-- card list -->\n <div class=\"layout-col flex card-container\">\n\n <div class=\"layout-col gap-sm scrollable p-sm card-list\"\n [id]=\"stackId\"\n cdkDropList\n [cdkDropListDisabled]=\"!canDrag\"\n [cdkDropListData]=\"stack\"\n [cdkDropListConnectedTo]=\"connectedTo\"\n\n [cdkDropListEnterPredicate]=\"enterPredicate\"\n (cdkDropListEntered)=\"cardEntered($event)\"\n (cdkDropListExited)=\"cardExited($event)\"\n (cdkDropListDropped)=\"cardDrop($event)\"\n >\n\n <!-- card -->\n <elder-card\n *ngFor=\"let card of cards$ | async; let i = index\"\n class=\"card flex-none\"\n cdkDrag [cdkDragData]=\"card\"\n (click)=\"onCardSelected($event, card)\">\n\n <div class=\"layout-row place-between-center flex\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate || simpleCardTemplate; context: {$implicit: card, index: i}\"></ng-container>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"canRemove\" class=\"hide\" (click)=\"onRequestRemoveCard($event, card)\">\n <mat-icon>close</mat-icon>\n </button>\n\n </div>\n\n </elder-card>\n\n </div>\n\n </div>\n\n\n <ng-template #simpleCardTemplate let-card>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">{{card}}</p>\n </div>\n </ng-template>\n\n</div>\n\n\n\n\n", styles: [".stack-header{height:62px}.card-container{min-width:120px;min-height:0}.card-list{min-height:100%}.card{cursor:move}.hoverme .hide{visibility:hidden}.hoverme:hover .hide{visibility:visible}.rotate{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.card-list.cdk-drop-list-dragging .card:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
165
167
|
}], ctorParameters: function () { return []; }, propDecorators: { stackId: [{
|
|
166
168
|
type: Input
|
|
167
169
|
}], headerEnabled: [{
|
|
@@ -170,6 +172,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
170
172
|
type: Input
|
|
171
173
|
}], canRemove: [{
|
|
172
174
|
type: Input
|
|
175
|
+
}], canAdd: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], canDrag: [{
|
|
178
|
+
type: Input
|
|
173
179
|
}], removeConfirmation: [{
|
|
174
180
|
type: Input
|
|
175
181
|
}], requestNewCard: [{
|
|
@@ -202,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
202
208
|
}], stack: [{
|
|
203
209
|
type: Input
|
|
204
210
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLGFBQWEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7QUFRckYsTUFBTSxPQUFPLHVCQUF1QjtJQXFFbEM7Ozs7Z0ZBSTRFO0lBRTVFO1FBekVBOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBV3RFLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBWVosbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUd6RCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxD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QUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7b0hBek9VLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdsQkEyRHBCLHVCQUF1QiwyQkFBVSxXQUFXLDJDQ3pFNUQsNjhEQXNFQTsyRkR4RGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzBFQWtCeEMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlVLGNBQWM7c0JBRDdCLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUlSLGlCQUFpQjtzQkFEaEMsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBSVgsU0FBUztzQkFEeEIsTUFBTTt1QkFBQyxXQUFXO2dCQUlILFdBQVc7c0JBRDFCLE1BQU07dUJBQUMsYUFBYTtnQkFJZCxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFVQyxhQUFhO3NCQURuQixLQUFLO2dCQU1DLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLbkUsV0FBVztzQkFEakIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQThCSyxZQUFZO3NCQUR0QixLQUFLO2dCQWNLLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYXJkRHJvcEV2ZW50LCBDYXJkU3RhY2t9IGZyb20gJy4uL2NhcmQtc3RhY2snO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJvcExpc3R9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU3RhY2tDYXJkRGlyZWN0aXZlfSBmcm9tICcuLi9jYXJkLW9yZ2FuaXplci9lbGRlci1zdGFjay1jYXJkLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWNhcmQtc3RhY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWNhcmQtc3RhY2suY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJDYXJkU3RhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0VsZGVyQ2FyZFN0YWNrQ29tcG9uZW50Jyk7XG5cblxuICBwcml2YXRlIF9zdGFjazogQ2FyZFN0YWNrPGFueSwgYW55PjtcblxuICBwdWJsaWMgY2FyZHMkOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhY2tJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXJFbmFibGVkID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FuUmVtb3ZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW1vdmVDb25maXJtYXRpb246IChjYXJkOiBhbnkpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQE91dHB1dCgncmVxdWVzdE5ld0NhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdE5ld0NhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmRTdGFjazxhbnksIGFueT4+KCk7XG5cbiAgQE91dHB1dCgncmVxdWVzdFJlbW92ZUNhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFJlbW92ZUNhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCdjYXJkQ2xpY2snKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgnY2FyZERyb3BwZWQnKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZERyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmREcm9wRXZlbnQ8YW55LCBhbnk+PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5FbnRlclByZWRpY2F0ZTogKGNhcmQ6IGFueSwgc3RhY2s6IENhcmRTdGFjazxhbnksIGFueT4pID0+IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbm5lY3RlZFRvOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCB0aGUgY2FyZCBzdGFjayB3aWxsXG4gICAqIGF1dG9tYXRpY2FsbHkgaGFuZGxlIGNhcmQgZHJhZyAmIGRyb3BzXG4gICAqIGFuZCBtb3ZlIGNhcmQgZnJvbSBvbmUgc3RhY2sgdG8gYW5vdGhlciBhbmQgbW92ZVxuICAgKiB0aGVtIGluc2lkZSBhIHN0YWNrLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9Nb3ZlQ2FyZHMgPSBmYWxzZTtcblxuICAvLyBUZW1wbGF0ZXNcblxuICBAQ29udGVudENoaWxkKEVsZGVyU3RhY2tDYXJkRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGNhcmRUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jYXJkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbkNvbGxhcHNlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvcHlPbkRyYWcgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN0YWNrSWQgPSAnaWQtJyArIE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiA2KSArIDEpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgIHtcblxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjYXJkVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jYXJkVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FyZFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYXJkVGVtcGxhdGUgfHwgdGhpcy5jYXJkVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2soKTogQ2FyZFN0YWNrPGFueSwgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdGFjayh2YWx1ZTogQ2FyZFN0YWNrPGFueSwgYW55Pikge1xuICAgIHRoaXMuX3N0YWNrID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5fc3RhY2spIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gdGhpcy5fc3RhY2suY2FyZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBEcmFnICYgRHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY2FyZEVudGVyZWQoZXZlbnQ6IENka0RyYWdFbnRlcjxhbnk+KTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0RyYWcgZW50ZXI6JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmRFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0PGFueT4pOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRHJhZyBleGl0JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmREcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxDYXJkU3RhY2s8YW55LCBhbnk+Pik6IHZvaWQge1xuXG4gICAgY29uc3QgY2FyZERyb3AgPSBuZXcgQ2FyZERyb3BFdmVudChcbiAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgIGV2ZW50Lml0ZW0uZGF0YSxcbiAgICAgIHRoaXMuY29weU9uRHJhZyxcbiAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBldmVudC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmF1dG9Nb3ZlQ2FyZHMpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2FyZERyb3AoY2FyZERyb3ApOyAvLyBUT0RPIE1ha2UgY29uZmlndXJhYmxlIG9yIGRpc2FibGUgd2hlbiBjdXN0b20gc29ydCBpcyBlbmFibGVkP1xuICAgIH1cblxuICAgIHRoaXMuY2FyZERyb3BwZWQubmV4dChjYXJkRHJvcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGVyUHJlZGljYXRlKCk6IChkcmFnOiBDZGtEcmFnPGFueT4sIGRyb3A6IENka0Ryb3BMaXN0PGFueT4pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZHJhZzogQ2RrRHJhZzxhbnk+LCBkcm9wOiBDZGtEcm9wTGlzdDxhbnk+KSAgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FuRW50ZXJQcmVkaWNhdGUpIHtcbiAgICAgICByZXR1cm4gdGhpcy5jYW5FbnRlclByZWRpY2F0ZShkcmFnLmRhdGEsIGRyb3AuZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwdWJsaWMgb25SZXF1ZXN0TmV3Q2FyZChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVxdWVzdE5ld0NhcmQubmV4dCh0aGlzLl9zdGFjayk7XG4gIH1cblxuICBwdWJsaWMgb25SZXF1ZXN0UmVtb3ZlQ2FyZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuXG4gICAgaWYgKHRoaXMucmVtb3ZlQ29uZmlybWF0aW9uICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgdGhpcy5yZW1vdmVDb25maXJtYXRpb24oY2FyZCkucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7IHRoaXMucmVtb3ZlQ2FyZChjYXJkKTsgfVxuICAgICAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2FyZChjYXJkKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBvbkNhcmRTZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2submV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2FyZChjYXJkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGFjay5yZW1vdmVDYXJkKGNhcmQpO1xuICAgIHRoaXMucmVxdWVzdFJlbW92ZUNhcmQubmV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFjdCB0byBkcmFnIGFuZCBkcm9wIGV2ZW50cyAtXG4gICAqIHdpbGwgbW92ZSBjYXJkcyBiZXR3ZWVuIHN0YWNrcyBhbmQgc29ydCB0aGVtIGlmIHBvc3NpYmxlLlxuICAgKiBAcGFyYW0gY2FyZERyb3BcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQ2FyZERyb3AoY2FyZERyb3A6IENhcmREcm9wRXZlbnQ8YW55LCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKGNhcmREcm9wLmZyb21TdGFjayA9PT0gY2FyZERyb3AudG9TdGFja1xuICAgICAgJiYgY2FyZERyb3AudG9TdGFjayA9PT0gdGhpcy5fc3RhY2spIHtcblxuICAgICAgLy8gRHJhZyAmIERyb3AgaW5zaWRlIHRoZSBzYW1lIHN0YWNrIC0+IHNvcnRcblxuICAgICAgaWYgKCF0aGlzLl9zdGFjay5zb3J0KSB7XG4gICAgICAgIC8vIE9ubHkgYWxsb3cgbWFudWFsIHNvcnQgd2hlbiB0aGUgdXNlciBkaWQgbm90IHByb3ZpZGVcbiAgICAgICAgLy8gYSBnZW5lcmFsIHNvcnQgZnVuY3Rpb25cbiAgICAgICAgdGhpcy5fc3RhY2subW92ZUNhcmQoY2FyZERyb3AuZnJvbUluZGV4LCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBEcm9wcGVkIENhcmQgZnJvbSBhbm90aGVyIHN0YWNrXG5cbiAgICAgIGlmICghY2FyZERyb3AuY29weSkge1xuICAgICAgICBjYXJkRHJvcC5mcm9tU3RhY2sucmVtb3ZlQ2FyZChjYXJkRHJvcC5jYXJkKTtcbiAgICAgIH1cbiAgICAgIGNhcmREcm9wLnRvU3RhY2suYWRkQ2FyZChjYXJkRHJvcC5jYXJkLCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbCBjYXJkLXN0YWNrIGhvdmVybWVcIj5cblxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGhlYWRlciAqbmdJZj1cImhlYWRlckVuYWJsZWRcIlxuICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lIGdhcC1tZCBzdGFjay1oZWFkZXIgcC1tZFwiPlxuXG4gICAgPGgzIGNsYXNzPVwibWF0LXN1YnRpdGxlLTIgbm9zZWxlY3RcIj57e2hlYWRlclRpdGxlIHwgdHJhbnNsYXRlfX08L2gzPlxuICAgIDxzbWFsbCBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCI+KHt7KGNhcmRzJCB8IGFzeW5jKT8ubGVuZ3RofX0pPC9zbWFsbD5cblxuICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiPjwvc3Bhbj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25SZXF1ZXN0TmV3Q2FyZCgkZXZlbnQpXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICA8L2hlYWRlcj5cbiAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaGVhZGVyRW5hYmxlZFwiPjwvbWF0LWRpdmlkZXI+XG5cblxuICA8IS0tIGNhcmQgbGlzdCAtLT5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleCBjYXJkLWNvbnRhaW5lclwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZ2FwLXNtIHNjcm9sbGFibGUgcC1zbSBjYXJkLWxpc3RcIlxuICAgICAgICAgW2lkXT1cInN0YWNrSWRcIlxuICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwic3RhY2tcIlxuICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiY29ubmVjdGVkVG9cIlxuXG4gICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJlbnRlclByZWRpY2F0ZVwiXG4gICAgICAgICAoY2RrRHJvcExpc3RFbnRlcmVkKT1cImNhcmRFbnRlcmVkKCRldmVudClcIlxuICAgICAgICAgKGNka0Ryb3BMaXN0RXhpdGVkKT1cImNhcmRFeGl0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImNhcmREcm9wKCRldmVudClcIlxuICAgID5cblxuICAgICAgPCEtLSBjYXJkIC0tPlxuICAgICAgPGVsZGVyLWNhcmRcbiAgICAgICAgKm5nRm9yPVwibGV0IGNhcmQgb2YgY2FyZHMkIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBjbGFzcz1cImNhcmQgZmxleC1ub25lXCJcbiAgICAgICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiY2FyZFwiXG4gICAgICAgIChjbGljayk9XCJvbkNhcmRTZWxlY3RlZCgkZXZlbnQsIGNhcmQpXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtYmV0d2Vlbi1jZW50ZXIgZmxleFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlIHx8IHNpbXBsZUNhcmRUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2FyZCwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY2FuUmVtb3ZlXCIgIGNsYXNzPVwiaGlkZVwiIChjbGljayk9XCJvblJlcXVlc3RSZW1vdmVDYXJkKCRldmVudCwgY2FyZClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZWxkZXItY2FyZD5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG5cbiAgPG5nLXRlbXBsYXRlICNzaW1wbGVDYXJkVGVtcGxhdGUgbGV0LWNhcmQ+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleFwiPlxuICAgICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPnt7Y2FyZH19PC9wPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG48L2Rpdj5cblxuXG5cblxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLGFBQWEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7QUFRckYsTUFBTSxPQUFPLHVCQUF1QjtJQTJFbEM7Ozs7Z0ZBSTRFO0lBRTVFO1FBL0VBOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBV3RFLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBU3JCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBTU4sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUd6RCxzQkFBaUIsR0FBRyxJ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QUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7b0hBL09VLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDhuQkFpRXBCLHVCQUF1QiwyQkFBVSxXQUFXLDJDQy9FNUQsMmdFQXVFQTsyRkR6RGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzBFQWtCeEMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSVUsY0FBYztzQkFEN0IsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBSVIsaUJBQWlCO3NCQURoQyxNQUFNO3VCQUFDLG1CQUFtQjtnQkFJWCxTQUFTO3NCQUR4QixNQUFNO3VCQUFDLFdBQVc7Z0JBSUgsV0FBVztzQkFEMUIsTUFBTTt1QkFBQyxhQUFhO2dCQUlkLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQVVDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBTUMsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtuRSxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBOEJLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBY0ssS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhcmREcm9wRXZlbnQsIENhcmRTdGFja30gZnJvbSAnLi4vY2FyZC1zdGFjayc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvaW50ZXJuYWwvT2JzZXJ2YWJsZSc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Nka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcm9wTGlzdH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RWxkZXJTdGFja0NhcmREaXJlY3RpdmV9IGZyb20gJy4uL2NhcmQtb3JnYW5pemVyL2VsZGVyLXN0YWNrLWNhcmQuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItY2FyZC1zdGFjaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1jYXJkLXN0YWNrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckNhcmRTdGFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignRWxkZXJDYXJkU3RhY2tDb21wb25lbnQnKTtcblxuXG4gIHByaXZhdGUgX3N0YWNrOiBDYXJkU3RhY2s8YW55LCBhbnk+O1xuXG4gIHB1YmxpYyBjYXJkcyQ6IE9ic2VydmFibGU8YW55W10+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja0lkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlckVuYWJsZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXJUaXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5SZW1vdmU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbkFkZCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbkRyYWcgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW1vdmVDb25maXJtYXRpb246IChjYXJkOiBhbnkpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQE91dHB1dCgncmVxdWVzdE5ld0NhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdE5ld0NhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmRTdGFjazxhbnksIGFueT4+KCk7XG5cbiAgQE91dHB1dCgncmVxdWVzdFJlbW92ZUNhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFJlbW92ZUNhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCdjYXJkQ2xpY2snKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgnY2FyZERyb3BwZWQnKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZERyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmREcm9wRXZlbnQ8YW55LCBhbnk+PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5FbnRlclByZWRpY2F0ZTogKGNhcmQ6IGFueSwgc3RhY2s6IENhcmRTdGFjazxhbnksIGFueT4pID0+IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbm5lY3RlZFRvOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCB0aGUgY2FyZCBzdGFjayB3aWxsXG4gICAqIGF1dG9tYXRpY2FsbHkgaGFuZGxlIGNhcmQgZHJhZyAmIGRyb3BzXG4gICAqIGFuZCBtb3ZlIGNhcmQgZnJvbSBvbmUgc3RhY2sgdG8gYW5vdGhlciBhbmQgbW92ZVxuICAgKiB0aGVtIGluc2lkZSBhIHN0YWNrLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9Nb3ZlQ2FyZHMgPSBmYWxzZTtcblxuICAvLyBUZW1wbGF0ZXNcblxuICBAQ29udGVudENoaWxkKEVsZGVyU3RhY2tDYXJkRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGNhcmRUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jYXJkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbkNvbGxhcHNlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvcHlPbkRyYWcgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN0YWNrSWQgPSAnaWQtJyArIE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiA2KSArIDEpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgIHtcblxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjYXJkVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jYXJkVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FyZFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYXJkVGVtcGxhdGUgfHwgdGhpcy5jYXJkVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2soKTogQ2FyZFN0YWNrPGFueSwgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdGFjayh2YWx1ZTogQ2FyZFN0YWNrPGFueSwgYW55Pikge1xuICAgIHRoaXMuX3N0YWNrID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5fc3RhY2spIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gdGhpcy5fc3RhY2suY2FyZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBEcmFnICYgRHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY2FyZEVudGVyZWQoZXZlbnQ6IENka0RyYWdFbnRlcjxhbnk+KTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0RyYWcgZW50ZXI6JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmRFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0PGFueT4pOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRHJhZyBleGl0JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmREcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxDYXJkU3RhY2s8YW55LCBhbnk+Pik6IHZvaWQge1xuXG4gICAgY29uc3QgY2FyZERyb3AgPSBuZXcgQ2FyZERyb3BFdmVudChcbiAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgIGV2ZW50Lml0ZW0uZGF0YSxcbiAgICAgIHRoaXMuY29weU9uRHJhZyxcbiAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBldmVudC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmF1dG9Nb3ZlQ2FyZHMpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2FyZERyb3AoY2FyZERyb3ApOyAvLyBUT0RPIE1ha2UgY29uZmlndXJhYmxlIG9yIGRpc2FibGUgd2hlbiBjdXN0b20gc29ydCBpcyBlbmFibGVkP1xuICAgIH1cblxuICAgIHRoaXMuY2FyZERyb3BwZWQubmV4dChjYXJkRHJvcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGVyUHJlZGljYXRlKCk6IChkcmFnOiBDZGtEcmFnPGFueT4sIGRyb3A6IENka0Ryb3BMaXN0PGFueT4pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZHJhZzogQ2RrRHJhZzxhbnk+LCBkcm9wOiBDZGtEcm9wTGlzdDxhbnk+KSAgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FuRW50ZXJQcmVkaWNhdGUpIHtcbiAgICAgICByZXR1cm4gdGhpcy5jYW5FbnRlclByZWRpY2F0ZShkcmFnLmRhdGEsIGRyb3AuZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwdWJsaWMgb25SZXF1ZXN0TmV3Q2FyZChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVxdWVzdE5ld0NhcmQubmV4dCh0aGlzLl9zdGFjayk7XG4gIH1cblxuICBwdWJsaWMgb25SZXF1ZXN0UmVtb3ZlQ2FyZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuXG4gICAgaWYgKHRoaXMucmVtb3ZlQ29uZmlybWF0aW9uICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgdGhpcy5yZW1vdmVDb25maXJtYXRpb24oY2FyZCkucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7IHRoaXMucmVtb3ZlQ2FyZChjYXJkKTsgfVxuICAgICAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2FyZChjYXJkKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBvbkNhcmRTZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2submV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2FyZChjYXJkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGFjay5yZW1vdmVDYXJkKGNhcmQpO1xuICAgIHRoaXMucmVxdWVzdFJlbW92ZUNhcmQubmV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFjdCB0byBkcmFnIGFuZCBkcm9wIGV2ZW50cyAtXG4gICAqIHdpbGwgbW92ZSBjYXJkcyBiZXR3ZWVuIHN0YWNrcyBhbmQgc29ydCB0aGVtIGlmIHBvc3NpYmxlLlxuICAgKiBAcGFyYW0gY2FyZERyb3BcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQ2FyZERyb3AoY2FyZERyb3A6IENhcmREcm9wRXZlbnQ8YW55LCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKGNhcmREcm9wLmZyb21TdGFjayA9PT0gY2FyZERyb3AudG9TdGFja1xuICAgICAgJiYgY2FyZERyb3AudG9TdGFjayA9PT0gdGhpcy5fc3RhY2spIHtcblxuICAgICAgLy8gRHJhZyAmIERyb3AgaW5zaWRlIHRoZSBzYW1lIHN0YWNrIC0+IHNvcnRcblxuICAgICAgaWYgKCF0aGlzLl9zdGFjay5zb3J0KSB7XG4gICAgICAgIC8vIE9ubHkgYWxsb3cgbWFudWFsIHNvcnQgd2hlbiB0aGUgdXNlciBkaWQgbm90IHByb3ZpZGVcbiAgICAgICAgLy8gYSBnZW5lcmFsIHNvcnQgZnVuY3Rpb25cbiAgICAgICAgdGhpcy5fc3RhY2subW92ZUNhcmQoY2FyZERyb3AuZnJvbUluZGV4LCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBEcm9wcGVkIENhcmQgZnJvbSBhbm90aGVyIHN0YWNrXG5cbiAgICAgIGlmICghY2FyZERyb3AuY29weSkge1xuICAgICAgICBjYXJkRHJvcC5mcm9tU3RhY2sucmVtb3ZlQ2FyZChjYXJkRHJvcC5jYXJkKTtcbiAgICAgIH1cbiAgICAgIGNhcmREcm9wLnRvU3RhY2suYWRkQ2FyZChjYXJkRHJvcC5jYXJkLCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbCBjYXJkLXN0YWNrIGhvdmVybWVcIj5cblxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGhlYWRlciAqbmdJZj1cImhlYWRlckVuYWJsZWRcIlxuICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lIGdhcC1tZCBzdGFjay1oZWFkZXIgcC1tZFwiPlxuXG4gICAgPGgzIGNsYXNzPVwibWF0LXN1YnRpdGxlLTIgbm9zZWxlY3RcIj57e2hlYWRlclRpdGxlIHwgdHJhbnNsYXRlfX08L2gzPlxuICAgIDxzbWFsbCBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCI+KHt7KGNhcmRzJCB8IGFzeW5jKT8ubGVuZ3RofX0pPC9zbWFsbD5cblxuICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiPjwvc3Bhbj5cblxuICAgIDxidXR0b24gKm5nSWY9XCJjYW5BZGRcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblJlcXVlc3ROZXdDYXJkKCRldmVudClcIj5cbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gIDwvaGVhZGVyPlxuICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJoZWFkZXJFbmFibGVkXCI+PC9tYXQtZGl2aWRlcj5cblxuXG4gIDwhLS0gY2FyZCBsaXN0IC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4IGNhcmQtY29udGFpbmVyXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBnYXAtc20gc2Nyb2xsYWJsZSBwLXNtIGNhcmQtbGlzdFwiXG4gICAgICAgICBbaWRdPVwic3RhY2tJZFwiXG4gICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWNhbkRyYWdcIlxuICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJzdGFja1wiXG4gICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJjb25uZWN0ZWRUb1wiXG5cbiAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImVudGVyUHJlZGljYXRlXCJcbiAgICAgICAgIChjZGtEcm9wTGlzdEVudGVyZWQpPVwiY2FyZEVudGVyZWQoJGV2ZW50KVwiXG4gICAgICAgICAoY2RrRHJvcExpc3RFeGl0ZWQpPVwiY2FyZEV4aXRlZCgkZXZlbnQpXCJcbiAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiY2FyZERyb3AoJGV2ZW50KVwiXG4gICAgPlxuXG4gICAgICA8IS0tIGNhcmQgLS0+XG4gICAgICA8ZWxkZXItY2FyZFxuICAgICAgICAqbmdGb3I9XCJsZXQgY2FyZCBvZiBjYXJkcyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwiY2FyZCBmbGV4LW5vbmVcIlxuICAgICAgICBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJjYXJkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZFNlbGVjdGVkKCRldmVudCwgY2FyZClcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1iZXR3ZWVuLWNlbnRlciBmbGV4XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkVGVtcGxhdGUgfHwgc2ltcGxlQ2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjYXJkLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCJjYW5SZW1vdmVcIiAgY2xhc3M9XCJoaWRlXCIgKGNsaWNrKT1cIm9uUmVxdWVzdFJlbW92ZUNhcmQoJGV2ZW50LCBjYXJkKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9lbGRlci1jYXJkPlxuXG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cblxuICA8bmctdGVtcGxhdGUgI3NpbXBsZUNhcmRUZW1wbGF0ZSBsZXQtY2FyZD5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4XCI+XG4gICAgICA8cCBjbGFzcz1cIm5vc2VsZWN0XCI+e3tjYXJkfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuXG5cblxuXG4iXX0=
|
package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs
CHANGED
|
@@ -85,24 +85,12 @@ export class ElderDataToolbarComponent {
|
|
|
85
85
|
const template = this.templates.find((item) => item.placeholderId === placeholderId);
|
|
86
86
|
return template ? template.templateRef : null;
|
|
87
87
|
}
|
|
88
|
-
requestRemoveItems(items) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
yesNo: true,
|
|
95
|
-
interpolateParams: { numOfItems: items.length },
|
|
96
|
-
})
|
|
97
|
-
.subscribe((confirmed) => {
|
|
98
|
-
if (confirmed) {
|
|
99
|
-
this.emitRemove(items);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
this.emitRemove(items);
|
|
105
|
-
}
|
|
88
|
+
requestRemoveItems(items, event) {
|
|
89
|
+
this.dialogService.confirmDelete({
|
|
90
|
+
deletionCount: items.length,
|
|
91
|
+
confirmRemoval: this.confirmRemoval,
|
|
92
|
+
skipConfirm: event?.shiftKey
|
|
93
|
+
}, () => this.emitRemove(items));
|
|
106
94
|
}
|
|
107
95
|
emitRemove(items) {
|
|
108
96
|
this.requestRemove.next(items);
|
|
@@ -115,10 +103,10 @@ export class ElderDataToolbarComponent {
|
|
|
115
103
|
}
|
|
116
104
|
}
|
|
117
105
|
ElderDataToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDataToolbarComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: ELDER_DATA_VIEW, optional: true }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
-
ElderDataToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderDataToolbarComponent, selector: "elder-data-toolbar", inputs: { canAdd: "canAdd", canRemove: "canRemove", canMore: "canMore", confirmRemoval: "confirmRemoval", keepSelectionAfterRemoval: "keepSelectionAfterRemoval", selectionModel: "selectionModel" }, outputs: { requestNew: "requestNew", requestRemove: "requestRemove" }, queries: [{ propertyName: "templates", predicate: ElderToolbarContentDirective }], ngImport: i0, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
106
|
+
ElderDataToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderDataToolbarComponent, selector: "elder-data-toolbar", inputs: { canAdd: "canAdd", canRemove: "canRemove", canMore: "canMore", confirmRemoval: "confirmRemoval", keepSelectionAfterRemoval: "keepSelectionAfterRemoval", selectionModel: "selectionModel" }, outputs: { requestNew: "requestNew", requestRemove: "requestRemove" }, queries: [{ propertyName: "templates", predicate: ElderToolbarContentDirective }], ngImport: i0, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection, $event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
119
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDataToolbarComponent, decorators: [{
|
|
120
108
|
type: Component,
|
|
121
|
-
args: [{ selector: 'elder-data-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n" }]
|
|
109
|
+
args: [{ selector: 'elder-data-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection, $event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n" }]
|
|
122
110
|
}], ctorParameters: function () { return [{ type: i1.SelectionModel, decorators: [{
|
|
123
111
|
type: Optional
|
|
124
112
|
}] }, { type: undefined, decorators: [{
|
|
@@ -146,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
146
134
|
}], selectionModel: [{
|
|
147
135
|
type: Input
|
|
148
136
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9lbGRlci1kYXRhLXRvb2xiYXIvZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9lbGRlci1kYXRhLXRvb2xiYXIvZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBVzdFOzs7R0FHRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUcsQ0FBQzs7eUhBSjNDLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7a0dBR3JDLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCOztBQVloQyxNQUFNLE9BQU8seUJBQXlCO0lBcUNsQzs7OztnRkFJNEU7SUFFNUUsWUFDZ0IsY0FBaUMsRUFDUixRQUF3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QXlCLGlXQThCakIsNEJBQTRCLDZCQzNFakQsb2dHQWlIQTsyRkRwRWEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzswQkE4QzFDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs2RUFuQ2hDLE1BQU07c0JBRFosS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMseUJBQXlCO3NCQUQvQixLQUFLO2dCQUlVLFVBQVU7c0JBRHpCLE1BQU07Z0JBSVMsYUFBYTtzQkFENUIsTUFBTTtnQkFJQSxTQUFTO3NCQURmLGVBQWU7dUJBQUMsNEJBQTRCO2dCQTRDbEMsY0FBYztzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGRlckRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5tb2R1bGUnO1xuaW1wb3J0IHsgRUxERVJfREFUQV9WSUVXLCBJRWxkZXJEYXRhVmlldyB9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3JztcblxuZXhwb3J0IHR5cGUgRWxkZXJUb29sYmFyQ29udGVudFNsb3QgPVxuICAgIHwgJ21haW4nXG4gICAgfCAnbGVmdCdcbiAgICB8ICdsZWZ0LmFjdGlvbnMnXG4gICAgfCAnY2VudGVyJ1xuICAgIHwgJ3JpZ2h0J1xuICAgIHwgJ3JpZ2h0LmFjdGlvbnMnXG4gICAgfCAncmlnaHQubWVudSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgcHJvamVjdHMgY29udGVudCBpZGVudGlmaWVkIGJ5IGEgcGxhY2Vob2xkZXIgaWRcbiAqIGludG8gdGhlIHRvb2xiYXIgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcGxhY2UuXG4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tlbGRlclRvb2xiYXJDb250ZW50XScgfSlcbmV4cG9ydCBjbGFzcyBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlIHtcbiAgICBASW5wdXQoJ2VsZGVyVG9vbGJhckNvbnRlbnQnKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcklkOiBFbGRlclRvb2xiYXJDb250ZW50U2xvdDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1kYXRhLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZGVyLWRhdGEtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFQ+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuQWRkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhblJlbW92ZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5Nb3JlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbmZpcm1SZW1vdmFsID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGtlZXBTZWxlY3Rpb25BZnRlclJlbW92YWwgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSByZXF1ZXN0TmV3ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHJlcXVlc3RSZW1vdmUgPSBuZXcgU3ViamVjdDxUW10+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmUpXG4gICAgcHVibGljIHRlbXBsYXRlczogUXVlcnlMaXN0PEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgcHVibGljIHNlbGVjdGlvbiQ6IE9ic2VydmFibGU8VFtdPjtcblxuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25GYWxsYmFjayA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxUPixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChFTERFUl9EQVRBX1ZJRVcpIGRhdGFWaWV3OiBJRWxkZXJEYXRhVmlldyxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBFbGRlckRpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24kID0gdGhpcy5zZWxlY3Rpb25GYWxsYmFjay5hc09ic2VydmFibGUoKTtcblxuICAgICAgICBpZiAoc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwgPSBzZWxlY3Rpb25Nb2RlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhVmlldykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IGRhdGFWaWV3LnNlbGVjdGlvbk1vZGVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbk1vZGVsKG1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxUPikge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCA9IG1vZGVsO1xuICAgICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uJCA9IG1vZGVsLnNlbGVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uJCA9IHRoaXMuc2VsZWN0aW9uRmFsbGJhY2suYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGlvbk1vZGVsKCk6IFNlbGVjdGlvbk1vZGVsPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwdWJsaWMgZ2V0VGVtcGxhdGUoXG4gICAgICAgIHBsYWNlaG9sZGVySWQ6IEVsZGVyVG9vbGJhckNvbnRlbnRTbG90XG4gICAgKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0ucGxhY2Vob2xkZXJJZCA9PT0gcGxhY2Vob2xkZXJJZFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGVtcGxhdGUgPyB0ZW1wbGF0ZS50ZW1wbGF0ZVJlZiA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHJlcXVlc3RSZW1vdmVJdGVtcyhpdGVtczogVFtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpcm1SZW1vdmFsKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuc2hvd0NvbmZpcm0oe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ2RpYWxvZ3MuY29uZmlybS1kZWxldGlvbi50aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdkaWFsb2dzLmNvbmZpcm0tZGVsZXRpb24ubWVzc2FnZScsXG4gICAgICAgICAgICAgICAgICAgIHllc05vOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtczogeyBudW1PZkl0ZW1zOiBpdGVtcy5sZW5ndGggfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZW1vdmUoaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZW1vdmUoaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0UmVtb3ZlKGl0ZW1zOiBUW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0UmVtb3ZlLm5leHQoaXRlbXMpO1xuXG4gICAgICAgIGlmICghdGhpcy5rZWVwU2VsZWN0aW9uQWZ0ZXJSZW1vdmFsKSB7XG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGFmdGVyIGRlbGV0aW5nIGl0ZW1zXG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChpdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8IS0tIFRhYmxlIFRvb2xiYXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1iZXR3ZWVuLWNlbnRlciBnYXAtbWRcIlxuICBzdHlsZT1cInBhZGRpbmc6IDAgOHB4IDAgOHB4XCJcbiAgKm5nSWY9XCJzZWxlY3Rpb24kIHwgYXN5bmMgYXMgc2VsZWN0aW9uXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgnbWFpbicpIHx8IGRlZmF1bHRDb250ZW50O1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGlvbiB9XG4gICAgICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIERlZmF1bHQgVGVtcGxhdGVzIC0tPlxuXG48IS0tIERlZmF1bHQgTWFpbiBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudCBsZXQtc2VsZWN0aW9uPlxuICA8IS0tIExlZnQgY29sdW1uIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGdldFRlbXBsYXRlKCdsZWZ0JykgfHwgZGVmYXVsdExlZnRDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLWNlbnRlci1jZW50ZXIgZmxleFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoJ2NlbnRlcicpIHx8IGRlZmF1bHRDZW50ZXJDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUmlnaHQgY29sdW1uIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1lbmQtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBnZXRUZW1wbGF0ZSgncmlnaHQnKSB8fCBkZWZhdWx0UmlnaHRDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBEZWZhdWx0IExlZnQgQ29udGVudCAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExlZnRDb250ZW50IGxldC1zZWxlY3Rpb24+XG4gIDwhLS0gQWRkIEFjdGlvbiAtLT5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICpuZ0lmPVwiY2FuQWRkXCJcbiAgICAoY2xpY2spPVwicmVxdWVzdE5ldy5uZXh0KCRldmVudClcIlxuICA+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIgZm9yIGFkZGl0aW9uYWwgYWN0aW9ucyAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgnbGVmdC5hY3Rpb25zJyk7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VsZWN0aW9uIH1cbiAgICAgICAgXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBEZWZhdWx0IENlbnRlciBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VudGVyQ29udGVudCBsZXQtc2VsZWN0aW9uPjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVmYXVsdCBSaWdodCBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UmlnaHRDb250ZW50IGxldC1zZWxlY3Rpb24+XG4gIDwhLS0gUGxhY2Vob2xkZXIgZm9yIGFkZGl0aW9uYWwgYWN0aW9ucyAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgncmlnaHQuYWN0aW9ucycpO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGlvbiB9XG4gICAgICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIERlbGV0ZSBBY3Rpb24gLS0+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cImNhblJlbW92ZVwiXG4gICAgW2Rpc2FibGVkXT1cIiFzZWxlY3Rpb24/Lmxlbmd0aFwiXG4gICAgKGNsaWNrKT1cInJlcXVlc3RSZW1vdmVJdGVtcyhzZWxlY3Rpb24pXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIE1vcmUgTWVudSAtLT5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJlbGRlclRhYmxlTWVudVwiXG4gICAgW2Rpc2FibGVkXT1cIiFjYW5Nb3JlXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgIDxtYXQtbWVudSAjZWxkZXJUYWJsZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0LW1lbnUtaXRlbV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8IS0tIFBsYWNlaG9sZGVyIGZvciBtYXQgbWVudSBpdGVtcy0tPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBnZXRUZW1wbGF0ZSgncmlnaHQubWVudScpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VsZWN0aW9uIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9lbGRlci1kYXRhLXRvb2xiYXIvZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9lbGRlci1kYXRhLXRvb2xiYXIvZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBVzdFOzs7R0FHRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUcsQ0FBQzs7eUhBSjNDLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7a0dBR3JDLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCOztBQVloQyxNQUFNLE9BQU8seUJBQXlCO0lBcUNsQzs7OztnRkFJNEU7SUFFNUUsWUFDZ0IsY0FBaUMsRUFDUixRQUF3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U0FBUztzQkFEZixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLHlCQUF5QjtzQkFEL0IsS0FBSztnQkFJVSxVQUFVO3NCQUR6QixNQUFNO2dCQUlTLGFBQWE7c0JBRDVCLE1BQU07Z0JBSUEsU0FBUztzQkFEZixlQUFlO3VCQUFDLDRCQUE0QjtnQkE0Q2xDLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxkZXJEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJztcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVywgSUVsZGVyRGF0YVZpZXcgfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5cbmV4cG9ydCB0eXBlIEVsZGVyVG9vbGJhckNvbnRlbnRTbG90ID1cbiAgICB8ICdtYWluJ1xuICAgIHwgJ2xlZnQnXG4gICAgfCAnbGVmdC5hY3Rpb25zJ1xuICAgIHwgJ2NlbnRlcidcbiAgICB8ICdyaWdodCdcbiAgICB8ICdyaWdodC5hY3Rpb25zJ1xuICAgIHwgJ3JpZ2h0Lm1lbnUnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIHByb2plY3RzIGNvbnRlbnQgaWRlbnRpZmllZCBieSBhIHBsYWNlaG9sZGVyIGlkXG4gKiBpbnRvIHRoZSB0b29sYmFyIGF0IHRoZSBjb3JyZXNwb25kaW5nIHBsYWNlLlxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbZWxkZXJUb29sYmFyQ29udGVudF0nIH0pXG5leHBvcnQgY2xhc3MgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSB7XG4gICAgQElucHV0KCdlbGRlclRvb2xiYXJDb250ZW50JylcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXJJZDogRWxkZXJUb29sYmFyQ29udGVudFNsb3Q7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItZGF0YS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHByaXZhdGUgX3NlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxUPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhbkFkZCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5SZW1vdmUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuTW9yZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb25maXJtUmVtb3ZhbCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBrZWVwU2VsZWN0aW9uQWZ0ZXJSZW1vdmFsID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdE5ldyA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSByZXF1ZXN0UmVtb3ZlID0gbmV3IFN1YmplY3Q8VFtdPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyBzZWxlY3Rpb24kOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uRmFsbGJhY2sgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8VD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRUxERVJfREFUQV9WSUVXKSBkYXRhVmlldzogSUVsZGVyRGF0YVZpZXcsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uJCA9IHRoaXMuc2VsZWN0aW9uRmFsbGJhY2suYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsID0gc2VsZWN0aW9uTW9kZWw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF0YVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwgPSBkYXRhVmlldy5zZWxlY3Rpb25Nb2RlbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb25Nb2RlbChtb2RlbDogU2VsZWN0aW9uTW9kZWw8VD4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwgPSBtb2RlbDtcbiAgICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiQgPSBtb2RlbC5zZWxlY3Rpb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiQgPSB0aGlzLnNlbGVjdGlvbkZhbGxiYWNrLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3Rpb25Nb2RlbCgpOiBTZWxlY3Rpb25Nb2RlbDxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbDtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHVibGljIGdldFRlbXBsYXRlKFxuICAgICAgICBwbGFjZWhvbGRlcklkOiBFbGRlclRvb2xiYXJDb250ZW50U2xvdFxuICAgICk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMudGVtcGxhdGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZChcbiAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLnBsYWNlaG9sZGVySWQgPT09IHBsYWNlaG9sZGVySWRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlID8gdGVtcGxhdGUudGVtcGxhdGVSZWYgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXF1ZXN0UmVtb3ZlSXRlbXMoaXRlbXM6IFRbXSwgZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybURlbGV0ZSh7XG4gICAgICAgIGRlbGV0aW9uQ291bnQ6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgY29uZmlybVJlbW92YWw6IHRoaXMuY29uZmlybVJlbW92YWwsXG4gICAgICAgIHNraXBDb25maXJtOiBldmVudD8uc2hpZnRLZXlcbiAgICAgIH0sXG4gICAgICAgICgpID0+IHRoaXMuZW1pdFJlbW92ZShpdGVtcylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0UmVtb3ZlKGl0ZW1zOiBUW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0UmVtb3ZlLm5leHQoaXRlbXMpO1xuXG4gICAgICAgIGlmICghdGhpcy5rZWVwU2VsZWN0aW9uQWZ0ZXJSZW1vdmFsKSB7XG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIGFmdGVyIGRlbGV0aW5nIGl0ZW1zXG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChpdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8IS0tIFRhYmxlIFRvb2xiYXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1iZXR3ZWVuLWNlbnRlciBnYXAtbWRcIlxuICBzdHlsZT1cInBhZGRpbmc6IDAgOHB4IDAgOHB4XCJcbiAgKm5nSWY9XCJzZWxlY3Rpb24kIHwgYXN5bmMgYXMgc2VsZWN0aW9uXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgnbWFpbicpIHx8IGRlZmF1bHRDb250ZW50O1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGlvbiB9XG4gICAgICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIERlZmF1bHQgVGVtcGxhdGVzIC0tPlxuXG48IS0tIERlZmF1bHQgTWFpbiBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudCBsZXQtc2VsZWN0aW9uPlxuICA8IS0tIExlZnQgY29sdW1uIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGdldFRlbXBsYXRlKCdsZWZ0JykgfHwgZGVmYXVsdExlZnRDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLWNlbnRlci1jZW50ZXIgZmxleFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoJ2NlbnRlcicpIHx8IGRlZmF1bHRDZW50ZXJDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUmlnaHQgY29sdW1uIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1lbmQtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBnZXRUZW1wbGF0ZSgncmlnaHQnKSB8fCBkZWZhdWx0UmlnaHRDb250ZW50O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBEZWZhdWx0IExlZnQgQ29udGVudCAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExlZnRDb250ZW50IGxldC1zZWxlY3Rpb24+XG4gIDwhLS0gQWRkIEFjdGlvbiAtLT5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICpuZ0lmPVwiY2FuQWRkXCJcbiAgICAoY2xpY2spPVwicmVxdWVzdE5ldy5uZXh0KCRldmVudClcIlxuICA+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIgZm9yIGFkZGl0aW9uYWwgYWN0aW9ucyAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgnbGVmdC5hY3Rpb25zJyk7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VsZWN0aW9uIH1cbiAgICAgICAgXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBEZWZhdWx0IENlbnRlciBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VudGVyQ29udGVudCBsZXQtc2VsZWN0aW9uPjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVmYXVsdCBSaWdodCBDb250ZW50IC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UmlnaHRDb250ZW50IGxldC1zZWxlY3Rpb24+XG4gIDwhLS0gUGxhY2Vob2xkZXIgZm9yIGFkZGl0aW9uYWwgYWN0aW9ucyAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBnZXRUZW1wbGF0ZSgncmlnaHQuYWN0aW9ucycpO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGlvbiB9XG4gICAgICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIERlbGV0ZSBBY3Rpb24gLS0+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cImNhblJlbW92ZVwiXG4gICAgW2Rpc2FibGVkXT1cIiFzZWxlY3Rpb24/Lmxlbmd0aFwiXG4gICAgKGNsaWNrKT1cInJlcXVlc3RSZW1vdmVJdGVtcyhzZWxlY3Rpb24sICRldmVudClcIlxuICA+XG4gICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gTW9yZSBNZW51IC0tPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImVsZGVyVGFibGVNZW51XCJcbiAgICBbZGlzYWJsZWRdPVwiIWNhbk1vcmVcIlxuICA+XG4gICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgPG1hdC1tZW51ICNlbGRlclRhYmxlTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXQtbWVudS1pdGVtXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwhLS0gUGxhY2Vob2xkZXIgZm9yIG1hdCBtZW51IGl0ZW1zLS0+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGdldFRlbXBsYXRlKCdyaWdodC5tZW51Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3Rpb24gfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtbWVudT5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./elder-table-activation.directive";
|
|
6
|
+
import * as i2 from "../../../dialogs/elder-dialog.service";
|
|
7
|
+
class ActiveDeleted {
|
|
8
|
+
constructor(deleted, next) {
|
|
9
|
+
this.deleted = deleted;
|
|
10
|
+
this.next = next;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class ElderDeleteActiveDirective {
|
|
14
|
+
/***************************************************************************
|
|
15
|
+
* *
|
|
16
|
+
* Constructor *
|
|
17
|
+
* *
|
|
18
|
+
**************************************************************************/
|
|
19
|
+
constructor(activation, elderDialog) {
|
|
20
|
+
this.activation = activation;
|
|
21
|
+
this.elderDialog = elderDialog;
|
|
22
|
+
/***************************************************************************
|
|
23
|
+
* *
|
|
24
|
+
* Fields *
|
|
25
|
+
* *
|
|
26
|
+
**************************************************************************/
|
|
27
|
+
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
28
|
+
this.latestDeleteRequest = null;
|
|
29
|
+
this.destroy$ = new Subject();
|
|
30
|
+
/**
|
|
31
|
+
* Emits when the active item should be deleted.
|
|
32
|
+
*/
|
|
33
|
+
this.requestDelete = new EventEmitter();
|
|
34
|
+
/**
|
|
35
|
+
* Emits when the active item should be deleted.
|
|
36
|
+
*/
|
|
37
|
+
this.elderDeleteActive = this.requestDelete;
|
|
38
|
+
this.confirmDeletion = true;
|
|
39
|
+
}
|
|
40
|
+
/***************************************************************************
|
|
41
|
+
* *
|
|
42
|
+
* Life Cycle *
|
|
43
|
+
* *
|
|
44
|
+
**************************************************************************/
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.activation.rows$.subscribe({
|
|
47
|
+
next: rows => {
|
|
48
|
+
this.checkActivateNext();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
this.destroy$.next();
|
|
54
|
+
this.destroy$.complete();
|
|
55
|
+
}
|
|
56
|
+
/***************************************************************************
|
|
57
|
+
* *.
|
|
58
|
+
* Host Listeners *
|
|
59
|
+
* *
|
|
60
|
+
**************************************************************************/
|
|
61
|
+
onKeydown(event) {
|
|
62
|
+
if (event.key == 'Backspace' || event.key === 'Delete') {
|
|
63
|
+
const active = this.activation.activeItem;
|
|
64
|
+
if (this.activation.hasItemFocus(active)) {
|
|
65
|
+
event.stopPropagation();
|
|
66
|
+
this.elderDialog.confirmDelete({
|
|
67
|
+
deletionCount: 1,
|
|
68
|
+
confirmRemoval: this.confirmDeletion,
|
|
69
|
+
skipConfirm: event.shiftKey
|
|
70
|
+
}, () => {
|
|
71
|
+
this.logger.debug('Deleting current row was requested: ', active);
|
|
72
|
+
this.emitDelete(active);
|
|
73
|
+
}, () => {
|
|
74
|
+
this.activation.focusAndActivate(active);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/***************************************************************************
|
|
80
|
+
* *
|
|
81
|
+
* Private methods *
|
|
82
|
+
* *
|
|
83
|
+
**************************************************************************/
|
|
84
|
+
checkActivateNext() {
|
|
85
|
+
if (this.latestDeleteRequest?.next) {
|
|
86
|
+
this.activation.focusAndActivate(this.latestDeleteRequest.next);
|
|
87
|
+
this.latestDeleteRequest = null;
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
emitDelete(active) {
|
|
93
|
+
this.latestDeleteRequest = new ActiveDeleted(active, this.activation.nextCloseTo(active));
|
|
94
|
+
this.requestDelete.emit(active);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
ElderDeleteActiveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDeleteActiveDirective, deps: [{ token: i1.ElderTableActivationDirective }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
ElderDeleteActiveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderDeleteActiveDirective, selector: "[elderDeleteActive]", inputs: { confirmDeletion: "confirmDeletion" }, outputs: { elderDeleteActive: "elderDeleteActive" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderDeleteActive"], ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDeleteActiveDirective, decorators: [{
|
|
100
|
+
type: Directive,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: '[elderDeleteActive]',
|
|
103
|
+
exportAs: 'elderDeleteActive'
|
|
104
|
+
}]
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i1.ElderTableActivationDirective }, { type: i2.ElderDialogService }]; }, propDecorators: { elderDeleteActive: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], confirmDeletion: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], onKeydown: [{
|
|
110
|
+
type: HostListener,
|
|
111
|
+
args: ['keydown', ['$event']]
|
|
112
|
+
}] } });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGVsZXRlLWFjdGl2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLWRlbGV0ZS1hY3RpdmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLGFBQWE7SUFDakIsWUFDa0IsT0FBVSxFQUNWLElBQU87UUFEUCxZQUFPLEdBQVAsT0FBTyxDQUFHO1FBQ1YsU0FBSSxHQUFKLElBQUksQ0FBRztJQUV6QixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sMEJBQTBCO0lBNEJyQzs7OztnRkFJNEU7SUFHNUUsWUFDbUIsVUFBOEMsRUFDOUMsV0FBK0I7UUFEL0IsZUFBVSxHQUFWLFVBQVUsQ0FBb0M7UUFDOUMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBbkNsRDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRSx3QkFBbUIsR0FBcUIsSUFBSSxDQUFDO1FBRXBDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWhEOztXQUVHO1FBQ2Esa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBRXREOztXQUVHO1FBRWEsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUdoRCxvQkFBZSxHQUFHLElBQUksQ0FBQztJQVkxQixDQUFDO0lBRUw7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUdyRSxTQUFTLENBQUMsS0FBb0I7UUFDbkMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUV0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUUxQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUM1QjtvQkFDRSxhQUFhLEVBQUUsQ0FBQztvQkFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO29CQUNwQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVE7aUJBQzVCLEVBQ0QsR0FBRyxFQUFFO29CQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQixDQUFDLEVBQ0QsR0FBRyxFQUFFO29CQUNILElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FDRixDQUFBO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsaUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBUztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxhQUFhLENBQzFDLE1BQU0sRUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FDcEMsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O3VIQWhIVSwwQkFBMEI7MkdBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO3FKQXdCaUIsaUJBQWlCO3NCQURoQyxNQUFNO2dCQUlBLGVBQWU7c0JBRHJCLEtBQUs7Z0JBeUNDLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJUYWJsZUFjdGl2YXRpb25EaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5jbGFzcyBBY3RpdmVEZWxldGVkPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRlbGV0ZWQ6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IG5leHQ6IFRcbiAgKSB7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyRGVsZXRlQWN0aXZlXScsXG4gIGV4cG9ydEFzOiAnZWxkZXJEZWxldGVBY3RpdmUnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGVsZXRlQWN0aXZlRGlyZWN0aXZlPFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIGxhdGVzdERlbGV0ZVJlcXVlc3Q6IEFjdGl2ZURlbGV0ZWQ8VD4gPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY3RpdmUgaXRlbSBzaG91bGQgYmUgZGVsZXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0RGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY3RpdmUgaXRlbSBzaG91bGQgYmUgZGVsZXRlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZWxkZXJEZWxldGVBY3RpdmUgPSB0aGlzLnJlcXVlc3REZWxldGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpcm1EZWxldGlvbiA9IHRydWU7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRpb246IEVsZGVyVGFibGVBY3RpdmF0aW9uRGlyZWN0aXZlPGFueT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlckRpYWxvZzogRWxkZXJEaWFsb2dTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGlvbi5yb3dzJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcm93cyA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tBY3RpdmF0ZU5leHQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICouXG4gICAqIEhvc3QgTGlzdGVuZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcblxuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmF0aW9uLmFjdGl2ZUl0ZW07XG5cbiAgICAgIGlmICh0aGlzLmFjdGl2YXRpb24uaGFzSXRlbUZvY3VzKGFjdGl2ZSkpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZWxkZXJEaWFsb2cuY29uZmlybURlbGV0ZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWxldGlvbkNvdW50OiAxLFxuICAgICAgICAgICAgY29uZmlybVJlbW92YWw6IHRoaXMuY29uZmlybURlbGV0aW9uLFxuICAgICAgICAgICAgc2tpcENvbmZpcm06IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRpbmcgY3VycmVudCByb3cgd2FzIHJlcXVlc3RlZDogJywgYWN0aXZlKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdERlbGV0ZShhY3RpdmUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0aW9uLmZvY3VzQW5kQWN0aXZhdGUoYWN0aXZlKTtcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNoZWNrQWN0aXZhdGVOZXh0KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmxhdGVzdERlbGV0ZVJlcXVlc3Q/Lm5leHQpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGlvbi5mb2N1c0FuZEFjdGl2YXRlKHRoaXMubGF0ZXN0RGVsZXRlUmVxdWVzdC5uZXh0KTtcbiAgICAgIHRoaXMubGF0ZXN0RGVsZXRlUmVxdWVzdCA9IG51bGw7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVsZXRlKGFjdGl2ZTogVCk6IHZvaWQge1xuICAgIHRoaXMubGF0ZXN0RGVsZXRlUmVxdWVzdCA9IG5ldyBBY3RpdmVEZWxldGVkKFxuICAgICAgYWN0aXZlLFxuICAgICAgdGhpcy5hY3RpdmF0aW9uLm5leHRDbG9zZVRvKGFjdGl2ZSlcbiAgICApO1xuICAgIHRoaXMucmVxdWVzdERlbGV0ZS5lbWl0KGFjdGl2ZSk7XG4gIH1cblxuXG59XG4iXX0=
|