@elderbyte/ngx-starter 15.3.3 → 15.3.5
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/_index.scss +6 -3
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
- package/fesm2015/elderbyte-ngx-starter.mjs +3 -2
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +3 -2
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/package.json +1 -1
- package/theming/_elder-common.scss +14 -8
- package/theming/_elder-config.scss +37 -0
- package/theming/_elder-flex-layout.scss +231 -8
package/_index.scss
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
@forward "./theming/elder-scrollbar-theme";
|
|
3
3
|
@forward "./theming/elder-palettes";
|
|
4
4
|
@forward "./theming/elder-theme";
|
|
5
|
+
@forward "./theming/elder-config";
|
|
5
6
|
|
|
6
7
|
@use "./theming/elder-toast-theme" as elder-toast;
|
|
7
8
|
@use "./theming/elder-chip-theme" as elder-chip;
|
|
8
9
|
@use "./theming/elder-style-fixes" as elder-fixes;
|
|
10
|
+
@use "./theming/elder-config" as elder-config;
|
|
9
11
|
@use "theming/elder-mdc-support" as elder-mdc-support;
|
|
10
12
|
@use "./theming/elder-common" as elder-common;
|
|
11
13
|
@use "./theming/elder-flex-layout" as elder-flex-layout;
|
|
@@ -26,12 +28,13 @@
|
|
|
26
28
|
@use "./src/lib/components/iframes/iframe-host/iframe-host.component" as iframe-host;
|
|
27
29
|
|
|
28
30
|
// Create a theme.
|
|
29
|
-
@mixin starter-theme($theme) {
|
|
31
|
+
@mixin starter-theme($theme, $elder-config: elder-config.buildConfig()) {
|
|
32
|
+
$common-sizes: map-get($elder-config, common-sizes);
|
|
30
33
|
|
|
31
34
|
@include elder-fixes.elder-style-fixes;
|
|
32
35
|
@include elder-mdc-support.mdc-theme-support($theme);
|
|
33
|
-
@include elder-common.elder-common-styles;
|
|
34
|
-
@include elder-flex-layout.elder-flex-layout;
|
|
36
|
+
@include elder-common.elder-common-styles($common-sizes);
|
|
37
|
+
@include elder-flex-layout.elder-flex-layout($common-sizes);
|
|
35
38
|
|
|
36
39
|
@include elder-toast.theme($theme);
|
|
37
40
|
@include elder-chip.theme($theme);
|
|
@@ -158,10 +158,10 @@ export class ElderCardStackComponent {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
ElderCardStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderCardStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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-
|
|
161
|
+
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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 });
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderCardStackComponent, decorators: [{
|
|
163
163
|
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-
|
|
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"] }]
|
|
165
165
|
}], ctorParameters: function () { return []; }, propDecorators: { stackId: [{
|
|
166
166
|
type: Input
|
|
167
167
|
}], headerEnabled: [{
|
|
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
202
202
|
}], stack: [{
|
|
203
203
|
type: Input
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtb3JnYW5pemVyL2NhcmQtc3RhY2svZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLGFBQWEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7QUFRckYsTUFBTSxPQUFPLHVCQUF1QjtJQXFFbEM7Ozs7Z0ZBSTRFO0lBRTVFO1FBekVBOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBV3RFLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBWVosbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUd6RCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFNbkUsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFFbEM7Ozs7O1dBS0c7UUFFSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBU3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO0lBRWYsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUNXLFlBQVksQ0FBQyxRQUEwQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDVyxLQUFLLENBQUMsS0FBMEI7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFdBQVcsQ0FBQyxLQUF3QjtRQUN6QywyQ0FBMkM7SUFDN0MsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUF1QjtRQUN2Qyx5Q0FBeUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUF1QztRQUVyRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDNUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUNmLElBQUksQ0FBQyxVQUFVLEVBQ2YsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksRUFDbEIsS0FBSyxDQUFDLHNCQUFzQixDQUM3QixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpRUFBaUU7U0FDakc7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFrQixFQUFFLElBQXNCLEVBQUcsRUFBRTtZQUNyRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFHckUsZ0JBQWdCLENBQUMsS0FBaUI7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLElBQVM7UUFFckQsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7UUFHRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUU7WUFFekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDeEMsU0FBUyxDQUNSLFNBQVMsQ0FBQyxFQUFFO2dCQUNWLElBQUksU0FBUyxFQUFFO29CQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQUU7WUFDM0MsQ0FBQyxDQUFDLENBQUM7U0FFUjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjtJQUVILENBQUM7SUFFTSxjQUFjLENBQUMsS0FBaUIsRUFBRSxJQUFTO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsVUFBVSxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGNBQWMsQ0FBQyxRQUFpQztRQUN0RCxJQUFJLFFBQVEsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLE9BQU87ZUFDdEMsUUFBUSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBRXJDLDRDQUE0QztZQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JCLHVEQUF1RDtnQkFDdkQsMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RDtTQUNGO2FBQU07WUFFTCxrQ0FBa0M7WUFFbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5QztZQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs7b0hBek9VLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdsQkEyRHBCLHVCQUF1QiwyQkFBVSxXQUFXLDJDQ3pFNUQsODlEQXNFQTsyRkR4RGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzBFQWtCeEMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlVLGNBQWM7c0JBRDdCLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUlSLGlCQUFpQjtzQkFEaEMsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBSVgsU0FBUztzQkFEeEIsTUFBTTt1QkFBQyxXQUFXO2dCQUlILFdBQVc7c0JBRDFCLE1BQU07dUJBQUMsYUFBYTtnQkFJZCxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFVQyxhQUFhO3NCQURuQixLQUFLO2dCQU1DLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLbkUsV0FBVztzQkFEakIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQThCSyxZQUFZO3NCQUR0QixLQUFLO2dCQWNLLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYXJkRHJvcEV2ZW50LCBDYXJkU3RhY2t9IGZyb20gJy4uL2NhcmQtc3RhY2snO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJvcExpc3R9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU3RhY2tDYXJkRGlyZWN0aXZlfSBmcm9tICcuLi9jYXJkLW9yZ2FuaXplci9lbGRlci1zdGFjay1jYXJkLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWNhcmQtc3RhY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItY2FyZC1zdGFjay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWNhcmQtc3RhY2suY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJDYXJkU3RhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0VsZGVyQ2FyZFN0YWNrQ29tcG9uZW50Jyk7XG5cblxuICBwcml2YXRlIF9zdGFjazogQ2FyZFN0YWNrPGFueSwgYW55PjtcblxuICBwdWJsaWMgY2FyZHMkOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhY2tJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXJFbmFibGVkID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FuUmVtb3ZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW1vdmVDb25maXJtYXRpb246IChjYXJkOiBhbnkpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQE91dHB1dCgncmVxdWVzdE5ld0NhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdE5ld0NhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmRTdGFjazxhbnksIGFueT4+KCk7XG5cbiAgQE91dHB1dCgncmVxdWVzdFJlbW92ZUNhcmQnKVxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFJlbW92ZUNhcmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCdjYXJkQ2xpY2snKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgnY2FyZERyb3BwZWQnKVxuICBwdWJsaWMgcmVhZG9ubHkgY2FyZERyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmREcm9wRXZlbnQ8YW55LCBhbnk+PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5FbnRlclByZWRpY2F0ZTogKGNhcmQ6IGFueSwgc3RhY2s6IENhcmRTdGFjazxhbnksIGFueT4pID0+IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbm5lY3RlZFRvOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCB0aGUgY2FyZCBzdGFjayB3aWxsXG4gICAqIGF1dG9tYXRpY2FsbHkgaGFuZGxlIGNhcmQgZHJhZyAmIGRyb3BzXG4gICAqIGFuZCBtb3ZlIGNhcmQgZnJvbSBvbmUgc3RhY2sgdG8gYW5vdGhlciBhbmQgbW92ZVxuICAgKiB0aGVtIGluc2lkZSBhIHN0YWNrLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9Nb3ZlQ2FyZHMgPSBmYWxzZTtcblxuICAvLyBUZW1wbGF0ZXNcblxuICBAQ29udGVudENoaWxkKEVsZGVyU3RhY2tDYXJkRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGNhcmRUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jYXJkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbkNvbGxhcHNlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvcHlPbkRyYWcgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN0YWNrSWQgPSAnaWQtJyArIE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiA2KSArIDEpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgIHtcblxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjYXJkVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jYXJkVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FyZFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYXJkVGVtcGxhdGUgfHwgdGhpcy5jYXJkVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2soKTogQ2FyZFN0YWNrPGFueSwgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWNrO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdGFjayh2YWx1ZTogQ2FyZFN0YWNrPGFueSwgYW55Pikge1xuICAgIHRoaXMuX3N0YWNrID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5fc3RhY2spIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gdGhpcy5fc3RhY2suY2FyZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZHMkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBEcmFnICYgRHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY2FyZEVudGVyZWQoZXZlbnQ6IENka0RyYWdFbnRlcjxhbnk+KTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0RyYWcgZW50ZXI6JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmRFeGl0ZWQoZXZlbnQ6IENka0RyYWdFeGl0PGFueT4pOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRHJhZyBleGl0JywgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGNhcmREcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxDYXJkU3RhY2s8YW55LCBhbnk+Pik6IHZvaWQge1xuXG4gICAgY29uc3QgY2FyZERyb3AgPSBuZXcgQ2FyZERyb3BFdmVudChcbiAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgIGV2ZW50Lml0ZW0uZGF0YSxcbiAgICAgIHRoaXMuY29weU9uRHJhZyxcbiAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBldmVudC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmF1dG9Nb3ZlQ2FyZHMpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2FyZERyb3AoY2FyZERyb3ApOyAvLyBUT0RPIE1ha2UgY29uZmlndXJhYmxlIG9yIGRpc2FibGUgd2hlbiBjdXN0b20gc29ydCBpcyBlbmFibGVkP1xuICAgIH1cblxuICAgIHRoaXMuY2FyZERyb3BwZWQubmV4dChjYXJkRHJvcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGVyUHJlZGljYXRlKCk6IChkcmFnOiBDZGtEcmFnPGFueT4sIGRyb3A6IENka0Ryb3BMaXN0PGFueT4pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZHJhZzogQ2RrRHJhZzxhbnk+LCBkcm9wOiBDZGtEcm9wTGlzdDxhbnk+KSAgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FuRW50ZXJQcmVkaWNhdGUpIHtcbiAgICAgICByZXR1cm4gdGhpcy5jYW5FbnRlclByZWRpY2F0ZShkcmFnLmRhdGEsIGRyb3AuZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwdWJsaWMgb25SZXF1ZXN0TmV3Q2FyZChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVxdWVzdE5ld0NhcmQubmV4dCh0aGlzLl9zdGFjayk7XG4gIH1cblxuICBwdWJsaWMgb25SZXF1ZXN0UmVtb3ZlQ2FyZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuXG4gICAgaWYgKHRoaXMucmVtb3ZlQ29uZmlybWF0aW9uICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgdGhpcy5yZW1vdmVDb25maXJtYXRpb24oY2FyZCkucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7IHRoaXMucmVtb3ZlQ2FyZChjYXJkKTsgfVxuICAgICAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2FyZChjYXJkKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBvbkNhcmRTZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgY2FyZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2submV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2FyZChjYXJkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGFjay5yZW1vdmVDYXJkKGNhcmQpO1xuICAgIHRoaXMucmVxdWVzdFJlbW92ZUNhcmQubmV4dChjYXJkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFjdCB0byBkcmFnIGFuZCBkcm9wIGV2ZW50cyAtXG4gICAqIHdpbGwgbW92ZSBjYXJkcyBiZXR3ZWVuIHN0YWNrcyBhbmQgc29ydCB0aGVtIGlmIHBvc3NpYmxlLlxuICAgKiBAcGFyYW0gY2FyZERyb3BcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQ2FyZERyb3AoY2FyZERyb3A6IENhcmREcm9wRXZlbnQ8YW55LCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKGNhcmREcm9wLmZyb21TdGFjayA9PT0gY2FyZERyb3AudG9TdGFja1xuICAgICAgJiYgY2FyZERyb3AudG9TdGFjayA9PT0gdGhpcy5fc3RhY2spIHtcblxuICAgICAgLy8gRHJhZyAmIERyb3AgaW5zaWRlIHRoZSBzYW1lIHN0YWNrIC0+IHNvcnRcblxuICAgICAgaWYgKCF0aGlzLl9zdGFjay5zb3J0KSB7XG4gICAgICAgIC8vIE9ubHkgYWxsb3cgbWFudWFsIHNvcnQgd2hlbiB0aGUgdXNlciBkaWQgbm90IHByb3ZpZGVcbiAgICAgICAgLy8gYSBnZW5lcmFsIHNvcnQgZnVuY3Rpb25cbiAgICAgICAgdGhpcy5fc3RhY2subW92ZUNhcmQoY2FyZERyb3AuZnJvbUluZGV4LCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBEcm9wcGVkIENhcmQgZnJvbSBhbm90aGVyIHN0YWNrXG5cbiAgICAgIGlmICghY2FyZERyb3AuY29weSkge1xuICAgICAgICBjYXJkRHJvcC5mcm9tU3RhY2sucmVtb3ZlQ2FyZChjYXJkRHJvcC5jYXJkKTtcbiAgICAgIH1cbiAgICAgIGNhcmREcm9wLnRvU3RhY2suYWRkQ2FyZChjYXJkRHJvcC5jYXJkLCBjYXJkRHJvcC50b0luZGV4KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbCBjYXJkLXN0YWNrIGhvdmVybWVcIj5cblxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGhlYWRlciAqbmdJZj1cImhlYWRlckVuYWJsZWRcIlxuICAgICAgICAgIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lIGdhcC1tZCBzdGFjay1oZWFkZXIgcC1tZFwiPlxuXG4gICAgPGgzIGNsYXNzPVwibWF0LXN1YnRpdGxlLTIgbm9zZWxlY3RcIj57e2hlYWRlclRpdGxlIHwgdHJhbnNsYXRlfX08L2gzPlxuICAgIDxzbWFsbCBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCI+KHt7KGNhcmRzJCB8IGFzeW5jKT8ubGVuZ3RofX0pPC9zbWFsbD5cblxuICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiPjwvc3Bhbj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25SZXF1ZXN0TmV3Q2FyZCgkZXZlbnQpXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICA8L2hlYWRlcj5cbiAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaGVhZGVyRW5hYmxlZFwiPjwvbWF0LWRpdmlkZXI+XG5cblxuICA8IS0tIGNhcmQgbGlzdCAtLT5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleCBjYXJkLWNvbnRhaW5lclwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZ2FwLW1kIHNjcm9sbGFibGUgcC1tZCBjYXJkLWxpc3RcIlxuICAgICAgICAgW2lkXT1cInN0YWNrSWRcIlxuICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwic3RhY2tcIlxuICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiY29ubmVjdGVkVG9cIlxuXG4gICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJlbnRlclByZWRpY2F0ZVwiXG4gICAgICAgICAoY2RrRHJvcExpc3RFbnRlcmVkKT1cImNhcmRFbnRlcmVkKCRldmVudClcIlxuICAgICAgICAgKGNka0Ryb3BMaXN0RXhpdGVkKT1cImNhcmRFeGl0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImNhcmREcm9wKCRldmVudClcIlxuICAgID5cblxuICAgICAgPCEtLSBjYXJkIC0tPlxuICAgICAgPGVsZGVyLWNhcmRcbiAgICAgICAgKm5nRm9yPVwibGV0IGNhcmQgb2YgY2FyZHMkIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBjbGFzcz1cImNhcmQgZmxleC1ub25lXCIgcGFkZGluZz1cIjEycHhcIlxuICAgICAgICBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJjYXJkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2FyZFNlbGVjdGVkKCRldmVudCwgY2FyZClcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1iZXR3ZWVuLWNlbnRlciBmbGV4XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkVGVtcGxhdGUgfHwgc2ltcGxlQ2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjYXJkLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCJjYW5SZW1vdmVcIiAgY2xhc3M9XCJoaWRlXCIgKGNsaWNrKT1cIm9uUmVxdWVzdFJlbW92ZUNhcmQoJGV2ZW50LCBjYXJkKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9lbGRlci1jYXJkPlxuXG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cblxuICA8bmctdGVtcGxhdGUgI3NpbXBsZUNhcmRUZW1wbGF0ZSBsZXQtY2FyZD5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4XCI+XG4gICAgICA8cCBjbGFzcz1cIm5vc2VsZWN0XCI+e3tjYXJkfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuXG5cblxuXG4iXX0=
|
|
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
|
|
@@ -10799,10 +10799,10 @@ class ElderCardStackComponent {
|
|
|
10799
10799
|
}
|
|
10800
10800
|
}
|
|
10801
10801
|
ElderCardStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderCardStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10802
|
-
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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-
|
|
10802
|
+
ElderCardStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5$4.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$4.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: ElderCardComponent, selector: "elder-card", inputs: ["appearance", "float", "flat"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10803
10803
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderCardStackComponent, decorators: [{
|
|
10804
10804
|
type: Component,
|
|
10805
|
-
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-
|
|
10805
|
+
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"] }]
|
|
10806
10806
|
}], ctorParameters: function () { return []; }, propDecorators: { stackId: [{
|
|
10807
10807
|
type: Input
|
|
10808
10808
|
}], headerEnabled: [{
|
|
@@ -28673,3 +28673,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
28673
28673
|
|
|
28674
28674
|
export { AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceAutoReloader, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleType, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
28675
28675
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|
|
28676
|
+
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|