@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.
Files changed (21) hide show
  1. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +1 -1
  2. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +9 -3
  3. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +9 -21
  4. package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +113 -0
  5. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +53 -39
  6. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +11 -5
  7. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +1 -1
  8. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +62 -28
  9. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +6 -18
  10. package/fesm2015/elderbyte-ngx-starter.mjs +253 -110
  11. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  12. package/fesm2020/elderbyte-ngx-starter.mjs +251 -110
  13. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  14. package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +3 -1
  15. package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +1 -1
  16. package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +53 -0
  17. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +8 -5
  18. package/lib/components/data-view/table/elder-table.module.d.ts +24 -22
  19. package/lib/components/dialogs/elder-dialog.module.d.ts +1 -1
  20. package/lib/components/dialogs/elder-dialog.service.d.ts +34 -12
  21. package/package.json +1 -1
@@ -11265,6 +11265,8 @@ class ElderCardStackComponent {
11265
11265
  **************************************************************************/
11266
11266
  this.logger = LoggerFactory.getLogger('ElderCardStackComponent');
11267
11267
  this.headerEnabled = true;
11268
+ this.canAdd = true;
11269
+ this.canDrag = true;
11268
11270
  this.requestNewCard = new EventEmitter();
11269
11271
  this.requestRemoveCard = new EventEmitter();
11270
11272
  this.cardClick = new EventEmitter();
@@ -11398,10 +11400,10 @@ class ElderCardStackComponent {
11398
11400
  }
11399
11401
  }
11400
11402
  ElderCardStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11401
- 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$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 });
11403
+ 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$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 });
11402
11404
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardStackComponent, decorators: [{
11403
11405
  type: Component,
11404
- 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"] }]
11406
+ 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"] }]
11405
11407
  }], ctorParameters: function () { return []; }, propDecorators: { stackId: [{
11406
11408
  type: Input
11407
11409
  }], headerEnabled: [{
@@ -11410,6 +11412,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
11410
11412
  type: Input
11411
11413
  }], canRemove: [{
11412
11414
  type: Input
11415
+ }], canAdd: [{
11416
+ type: Input
11417
+ }], canDrag: [{
11418
+ type: Input
11413
11419
  }], removeConfirmation: [{
11414
11420
  type: Input
11415
11421
  }], requestNewCard: [{
@@ -11519,7 +11525,7 @@ class ElderCardOrganizerComponent {
11519
11525
  }
11520
11526
  }
11521
11527
  ElderCardOrganizerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardOrganizerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11522
- 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$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: 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$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11528
+ 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$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: 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$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11523
11529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderCardOrganizerComponent, decorators: [{
11524
11530
  type: Component,
11525
11531
  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" }]
@@ -12374,18 +12380,33 @@ class ElderDialogService {
12374
12380
  * Public API *
12375
12381
  * *
12376
12382
  **************************************************************************/
12377
- /**
12378
- * @deprecated Use showConfirm({...}) instead
12379
- *
12380
- * @param title
12381
- * @param message
12382
- * @param config
12383
- */
12384
- confirm(title, message, config) {
12383
+ confirmDelete(options, confirmedFn, canceledFn) {
12384
+ const confirmRemoval = options.confirmRemoval ?? true;
12385
+ if (!options.skipConfirm && confirmRemoval) {
12386
+ this.showConfirmDelete(options.deletionCount)
12387
+ .subscribe({
12388
+ next: (confirmed) => {
12389
+ if (confirmed) {
12390
+ confirmedFn();
12391
+ }
12392
+ else {
12393
+ if (canceledFn) {
12394
+ canceledFn();
12395
+ }
12396
+ }
12397
+ }
12398
+ });
12399
+ }
12400
+ else {
12401
+ confirmedFn();
12402
+ }
12403
+ }
12404
+ showConfirmDelete(deletionCount) {
12385
12405
  return this.showConfirm({
12386
- title: title,
12387
- message: message,
12388
- config: config || this.defaultDialogConfig
12406
+ title: 'dialogs.confirm-deletion.title',
12407
+ message: 'dialogs.confirm-deletion.message',
12408
+ yesNo: true,
12409
+ interpolateParams: { numOfItems: deletionCount },
12389
12410
  });
12390
12411
  }
12391
12412
  /**
@@ -12411,22 +12432,6 @@ class ElderDialogService {
12411
12432
  return dialogRef.afterClosed();
12412
12433
  }));
12413
12434
  }
12414
- /**
12415
- * @deprecated Use showQuestion({...}) instead
12416
- *
12417
- * Creates a modal question dialog.
12418
- *
12419
- * @param title
12420
- * @param question
12421
- * @param config
12422
- */
12423
- question(title, question, config) {
12424
- return this.showQuestion({
12425
- title: title,
12426
- question: question,
12427
- config: config || this.defaultDialogConfig
12428
- });
12429
- }
12430
12435
  /**
12431
12436
  * Creates a modal question dialog.
12432
12437
  *
@@ -12452,6 +12457,41 @@ class ElderDialogService {
12452
12457
  .pipe(filter(response => !!response));
12453
12458
  }));
12454
12459
  }
12460
+ /***************************************************************************
12461
+ * *
12462
+ * DEPRECATED *
12463
+ * *
12464
+ **************************************************************************/
12465
+ /**
12466
+ * @deprecated Use showConfirm({...}) instead
12467
+ *
12468
+ * @param title
12469
+ * @param message
12470
+ * @param config
12471
+ */
12472
+ confirm(title, message, config) {
12473
+ return this.showConfirm({
12474
+ title: title,
12475
+ message: message,
12476
+ config: config || this.defaultDialogConfig
12477
+ });
12478
+ }
12479
+ /**
12480
+ * @deprecated Use showQuestion({...}) instead
12481
+ *
12482
+ * Creates a modal question dialog.
12483
+ *
12484
+ * @param title
12485
+ * @param question
12486
+ * @param config
12487
+ */
12488
+ question(title, question, config) {
12489
+ return this.showQuestion({
12490
+ title: title,
12491
+ question: question,
12492
+ config: config || this.defaultDialogConfig
12493
+ });
12494
+ }
12455
12495
  /***************************************************************************
12456
12496
  * *
12457
12497
  * Private methods *
@@ -12624,24 +12664,12 @@ class ElderDataToolbarComponent {
12624
12664
  const template = this.templates.find((item) => item.placeholderId === placeholderId);
12625
12665
  return template ? template.templateRef : null;
12626
12666
  }
12627
- requestRemoveItems(items) {
12628
- if (this.confirmRemoval) {
12629
- this.dialogService
12630
- .showConfirm({
12631
- title: 'dialogs.confirm-deletion.title',
12632
- message: 'dialogs.confirm-deletion.message',
12633
- yesNo: true,
12634
- interpolateParams: { numOfItems: items.length },
12635
- })
12636
- .subscribe((confirmed) => {
12637
- if (confirmed) {
12638
- this.emitRemove(items);
12639
- }
12640
- });
12641
- }
12642
- else {
12643
- this.emitRemove(items);
12644
- }
12667
+ requestRemoveItems(items, event) {
12668
+ this.dialogService.confirmDelete({
12669
+ deletionCount: items.length,
12670
+ confirmRemoval: this.confirmRemoval,
12671
+ skipConfirm: event?.shiftKey
12672
+ }, () => this.emitRemove(items));
12645
12673
  }
12646
12674
  emitRemove(items) {
12647
12675
  this.requestRemove.next(items);
@@ -12654,10 +12682,10 @@ class ElderDataToolbarComponent {
12654
12682
  }
12655
12683
  }
12656
12684
  ElderDataToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDataToolbarComponent, deps: [{ token: SelectionModel, optional: true }, { token: ELDER_DATA_VIEW, optional: true }, { token: ElderDialogService }], target: i0.ɵɵFactoryTarget.Component });
12657
- 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12685
+ 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12658
12686
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDataToolbarComponent, decorators: [{
12659
12687
  type: Component,
12660
- 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" }]
12688
+ 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" }]
12661
12689
  }], ctorParameters: function () { return [{ type: SelectionModel, decorators: [{
12662
12690
  type: Optional
12663
12691
  }] }, { type: undefined, decorators: [{
@@ -16190,7 +16218,7 @@ class ElderTableActivationDirective {
16190
16218
  * *
16191
16219
  **************************************************************************/
16192
16220
  this.logger = LoggerFactory.getLogger(this.constructor.name);
16193
- this.unsubscribe$ = new Subject();
16221
+ this.destroy$ = new Subject();
16194
16222
  this.activeItem$ = new BehaviorSubject(null);
16195
16223
  this.activationOptions = {};
16196
16224
  this._data = [];
@@ -16204,47 +16232,17 @@ class ElderTableActivationDirective {
16204
16232
  ngAfterViewInit() {
16205
16233
  const rows$ = this.elderTable.rows$;
16206
16234
  const data$ = this.elderTable.dataContext$.pipe(switchMap(dc => dc.data), tap(data => this._data = data));
16207
- combineLatest([rows$, data$]).pipe(takeUntil(this.unsubscribe$)).subscribe(([rows, data]) => {
16235
+ combineLatest([rows$, data$]).pipe(takeUntil(this.destroy$)).subscribe(([rows, data]) => {
16208
16236
  this.rows$.next(this.rowDataUpdated(rows, data));
16237
+ this.handleAutoActivations();
16209
16238
  });
16210
- combineLatest([this.rows$, this.activeItem$]).pipe(takeUntil(this.unsubscribe$)).subscribe(([rows, activeItem]) => this.updateRowsActivation(rows, activeItem));
16211
- }
16212
- updateRowsActivation(rows, activeItem) {
16213
- const activeId = this.getId(activeItem);
16214
- rows.forEach(row => {
16215
- this.updateRowActivation(row, activeId);
16216
- });
16217
- }
16218
- updateRowActivation(row, activeId) {
16219
- if (row.model) {
16220
- if (this.itemEqualsId(row.model, activeId)) {
16221
- if (!row.activated) {
16222
- row.activated = true;
16223
- this.logger.debug('Activated row: ', row);
16224
- if (!row.hasFocus) {
16225
- row.bringToView();
16226
- }
16227
- }
16228
- }
16229
- else {
16230
- row.activated = false;
16231
- }
16232
- }
16233
- else {
16234
- row.activated = false;
16235
- }
16236
- }
16237
- rowDataUpdated(rows, data) {
16238
- // this.logger.debug('Found rows:', rows);
16239
- rows.forEach(row => {
16240
- row.bindTableActivation(this);
16239
+ combineLatest([this.rows$, this.activeItem$]).pipe(takeUntil(this.destroy$)).subscribe(([rows, activeItem]) => {
16240
+ this.updateRowsActivation(rows, activeItem);
16241
16241
  });
16242
- this.handleAutoActivations();
16243
- return rows;
16244
16242
  }
16245
16243
  ngOnDestroy() {
16246
- this.unsubscribe$.next();
16247
- this.unsubscribe$.complete();
16244
+ this.destroy$.next();
16245
+ this.destroy$.complete();
16248
16246
  // this.elderTable.rows$.getValue().forEach(r => r.bindTableActivation(null));
16249
16247
  }
16250
16248
  /***************************************************************************
@@ -16314,11 +16312,54 @@ class ElderTableActivationDirective {
16314
16312
  return false;
16315
16313
  }
16316
16314
  }
16315
+ hasItemFocus(item) {
16316
+ const row = this.getRowForItem(item);
16317
+ return row.hasFocus;
16318
+ }
16319
+ nextCloseTo(active) {
16320
+ const next = this.nextRowItem();
16321
+ if (next !== active) {
16322
+ return next;
16323
+ }
16324
+ return this.previousRowItem();
16325
+ }
16317
16326
  /***************************************************************************
16318
16327
  * *
16319
16328
  * Private methods *
16320
16329
  * *
16321
16330
  **************************************************************************/
16331
+ updateRowsActivation(rows, activeItem) {
16332
+ const activeId = this.getId(activeItem);
16333
+ rows.forEach(row => {
16334
+ this.updateRowActivation(row, activeId);
16335
+ });
16336
+ }
16337
+ updateRowActivation(row, activeId) {
16338
+ if (row.model) {
16339
+ if (this.itemEqualsId(row.model, activeId)) {
16340
+ if (!row.activated) {
16341
+ row.activated = true;
16342
+ this.logger.debug('Activated row: ', row);
16343
+ if (!row.hasFocus) {
16344
+ row.bringToView();
16345
+ }
16346
+ }
16347
+ }
16348
+ else {
16349
+ row.activated = false;
16350
+ }
16351
+ }
16352
+ else {
16353
+ row.activated = false;
16354
+ }
16355
+ }
16356
+ rowDataUpdated(rows, data) {
16357
+ // this.logger.debug('Found rows:', rows);
16358
+ rows.forEach(row => {
16359
+ row.bindTableActivation(this);
16360
+ });
16361
+ return rows;
16362
+ }
16322
16363
  getRowForItem(item) {
16323
16364
  const rows = this.rows$.getValue();
16324
16365
  return rows.find(r => r.model === item);
@@ -16326,7 +16367,8 @@ class ElderTableActivationDirective {
16326
16367
  handleAutoActivations() {
16327
16368
  if (!this.hasActiveItem || this.activationOptions.mode === 'always') {
16328
16369
  switch (this.activationOptions.row) {
16329
- case 'none': break;
16370
+ case 'none':
16371
+ break;
16330
16372
  case 'first':
16331
16373
  this.activateFirst();
16332
16374
  break;
@@ -16457,6 +16499,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
16457
16499
  }]
16458
16500
  }], ctorParameters: function () { return []; } });
16459
16501
 
16502
+ class ActiveDeleted {
16503
+ constructor(deleted, next) {
16504
+ this.deleted = deleted;
16505
+ this.next = next;
16506
+ }
16507
+ }
16508
+ class ElderDeleteActiveDirective {
16509
+ /***************************************************************************
16510
+ * *
16511
+ * Constructor *
16512
+ * *
16513
+ **************************************************************************/
16514
+ constructor(activation, elderDialog) {
16515
+ this.activation = activation;
16516
+ this.elderDialog = elderDialog;
16517
+ /***************************************************************************
16518
+ * *
16519
+ * Fields *
16520
+ * *
16521
+ **************************************************************************/
16522
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
16523
+ this.latestDeleteRequest = null;
16524
+ this.destroy$ = new Subject();
16525
+ /**
16526
+ * Emits when the active item should be deleted.
16527
+ */
16528
+ this.requestDelete = new EventEmitter();
16529
+ /**
16530
+ * Emits when the active item should be deleted.
16531
+ */
16532
+ this.elderDeleteActive = this.requestDelete;
16533
+ this.confirmDeletion = true;
16534
+ }
16535
+ /***************************************************************************
16536
+ * *
16537
+ * Life Cycle *
16538
+ * *
16539
+ **************************************************************************/
16540
+ ngOnInit() {
16541
+ this.activation.rows$.subscribe({
16542
+ next: rows => {
16543
+ this.checkActivateNext();
16544
+ }
16545
+ });
16546
+ }
16547
+ ngOnDestroy() {
16548
+ this.destroy$.next();
16549
+ this.destroy$.complete();
16550
+ }
16551
+ /***************************************************************************
16552
+ * *.
16553
+ * Host Listeners *
16554
+ * *
16555
+ **************************************************************************/
16556
+ onKeydown(event) {
16557
+ if (event.key == 'Backspace' || event.key === 'Delete') {
16558
+ const active = this.activation.activeItem;
16559
+ if (this.activation.hasItemFocus(active)) {
16560
+ event.stopPropagation();
16561
+ this.elderDialog.confirmDelete({
16562
+ deletionCount: 1,
16563
+ confirmRemoval: this.confirmDeletion,
16564
+ skipConfirm: event.shiftKey
16565
+ }, () => {
16566
+ this.logger.debug('Deleting current row was requested: ', active);
16567
+ this.emitDelete(active);
16568
+ }, () => {
16569
+ this.activation.focusAndActivate(active);
16570
+ });
16571
+ }
16572
+ }
16573
+ }
16574
+ /***************************************************************************
16575
+ * *
16576
+ * Private methods *
16577
+ * *
16578
+ **************************************************************************/
16579
+ checkActivateNext() {
16580
+ if (this.latestDeleteRequest?.next) {
16581
+ this.activation.focusAndActivate(this.latestDeleteRequest.next);
16582
+ this.latestDeleteRequest = null;
16583
+ return true;
16584
+ }
16585
+ return false;
16586
+ }
16587
+ emitDelete(active) {
16588
+ this.latestDeleteRequest = new ActiveDeleted(active, this.activation.nextCloseTo(active));
16589
+ this.requestDelete.emit(active);
16590
+ }
16591
+ }
16592
+ ElderDeleteActiveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDeleteActiveDirective, deps: [{ token: ElderTableActivationDirective }, { token: ElderDialogService }], target: i0.ɵɵFactoryTarget.Directive });
16593
+ 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 });
16594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDeleteActiveDirective, decorators: [{
16595
+ type: Directive,
16596
+ args: [{
16597
+ selector: '[elderDeleteActive]',
16598
+ exportAs: 'elderDeleteActive'
16599
+ }]
16600
+ }], ctorParameters: function () { return [{ type: ElderTableActivationDirective }, { type: ElderDialogService }]; }, propDecorators: { elderDeleteActive: [{
16601
+ type: Output
16602
+ }], confirmDeletion: [{
16603
+ type: Input
16604
+ }], onKeydown: [{
16605
+ type: HostListener,
16606
+ args: ['keydown', ['$event']]
16607
+ }] } });
16608
+
16460
16609
  class ElderTableModule {
16461
16610
  }
16462
16611
  ElderTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -16468,7 +16617,8 @@ ElderTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
16468
16617
  ElderTableRowDirective,
16469
16618
  ElderTableExtensionDirective,
16470
16619
  ElderTableColumnDirective,
16471
- ElderTableRootDirective], imports: [CommonModule, RouterModule, FormsModule,
16620
+ ElderTableRootDirective,
16621
+ ElderDeleteActiveDirective], imports: [CommonModule, RouterModule, FormsModule,
16472
16622
  // Material
16473
16623
  MatDividerModule,
16474
16624
  MatCheckboxModule,
@@ -16487,7 +16637,8 @@ ElderTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
16487
16637
  ElderNumberCellDirective,
16488
16638
  ElderTableActivationDirective,
16489
16639
  ElderTableExtensionDirective,
16490
- ElderTableRootDirective] });
16640
+ ElderTableRootDirective,
16641
+ ElderDeleteActiveDirective] });
16491
16642
  ElderTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableModule, providers: [
16492
16643
  {
16493
16644
  provide: MatPaginatorIntl, deps: [TranslateService],
@@ -16533,7 +16684,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
16533
16684
  ElderTableRowDirective,
16534
16685
  ElderTableExtensionDirective,
16535
16686
  ElderTableColumnDirective,
16536
- ElderTableRootDirective
16687
+ ElderTableRootDirective,
16688
+ ElderDeleteActiveDirective
16537
16689
  ],
16538
16690
  exports: [
16539
16691
  ElderTableComponent,
@@ -16543,7 +16695,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
16543
16695
  ElderNumberCellDirective,
16544
16696
  ElderTableActivationDirective,
16545
16697
  ElderTableExtensionDirective,
16546
- ElderTableRootDirective
16698
+ ElderTableRootDirective,
16699
+ ElderDeleteActiveDirective
16547
16700
  ],
16548
16701
  providers: [
16549
16702
  {
@@ -24604,23 +24757,11 @@ class ElderMultiSelectBase extends ElderSelectBase {
24604
24757
  this.requestRemoveEntities([toRemove], skipConfirm);
24605
24758
  }
24606
24759
  requestRemoveEntities(toRemove, skipConfirm) {
24607
- if (!skipConfirm && this.confirmRemoval) {
24608
- this.dialogService
24609
- .showConfirm({
24610
- title: 'dialogs.confirm-deletion.title',
24611
- message: 'dialogs.confirm-deletion.message',
24612
- yesNo: true,
24613
- interpolateParams: { numOfItems: toRemove.length },
24614
- })
24615
- .subscribe((confirmed) => {
24616
- if (confirmed) {
24617
- this.removeEntities(toRemove);
24618
- }
24619
- });
24620
- }
24621
- else {
24622
- this.removeEntities(toRemove);
24623
- }
24760
+ this.dialogService.confirmDelete({
24761
+ deletionCount: toRemove.length,
24762
+ confirmRemoval: this.confirmRemoval,
24763
+ skipConfirm: skipConfirm
24764
+ }, () => this.removeEntities(toRemove));
24624
24765
  }
24625
24766
  removeEntities(toRemove) {
24626
24767
  toRemove.forEach(e => this.removeEntity(e));
@@ -29432,5 +29573,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
29432
29573
  * Generated bundle index. Do not edit.
29433
29574
  */
29434
29575
 
29435
- export { Arrays, 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, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, 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, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, 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, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, 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, 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, ElderScrollbarDirective, ElderScrollbarModule, 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, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, 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, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, 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, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
29576
+ export { Arrays, 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, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, 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, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, 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, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, 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, 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, ElderScrollbarDirective, ElderScrollbarModule, 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, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, 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, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, 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, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
29436
29577
  //# sourceMappingURL=elderbyte-ngx-starter.mjs.map