{ "version": 3, "sources": ["src/app/cards/bulk-operations/bulk-operations.component.ts", "src/app/cards/bulk-operations/bulk-operations.component.html"], "sourcesContent": ["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef, HostListener,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { Action, ActionFactoryService, ActionItem } from 'src/app/_services/action-factory.service';\nimport { BulkSelectionService } from '../bulk-selection.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {AsyncPipe, DecimalPipe, NgStyle} from \"@angular/common\";\nimport {TranslocoModule} from \"@jsverse/transloco\";\nimport {NgbTooltip} from \"@ng-bootstrap/ng-bootstrap\";\nimport {CardActionablesComponent} from \"../../_single-module/card-actionables/card-actionables.component\";\nimport {KEY_CODES} from \"../../shared/_services/utility.service\";\n\n@Component({\n selector: 'app-bulk-operations',\n standalone: true,\n imports: [\n AsyncPipe,\n CardActionablesComponent,\n TranslocoModule,\n NgbTooltip,\n NgStyle,\n DecimalPipe\n ],\n templateUrl: './bulk-operations.component.html',\n styleUrls: ['./bulk-operations.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BulkOperationsComponent implements OnInit {\n\n @Input({required: true}) actionCallback!: (action: ActionItem, data: any) => void;\n /**\n * Modal mode means don't fix to the top\n */\n @Input() modalMode = false;\n /**\n * On Series Detail this should be 12\n */\n @Input() marginLeft: number = 0;\n /**\n * On Series Detail this should be 12\n */\n @Input() marginRight: number = 8;\n hasMarkAsRead: boolean = false;\n hasMarkAsUnread: boolean = false;\n actions: Array> = [];\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly actionFactoryService = inject(ActionFactoryService);\n public readonly bulkSelectionService = inject(BulkSelectionService);\n protected readonly Action = Action;\n\n @HostListener('document:keydown.shift', ['$event'])\n handleKeypress(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = true;\n }\n // TODO: See if we can figure out a select all (Ctrl+A) by having each method handle the event or pass all the data into this component.\n }\n\n @HostListener('document:keyup.shift', ['$event'])\n handleKeyUp(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = false;\n }\n }\n\n ngOnInit(): void {\n this.bulkSelectionService.actions$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(actions => {\n // We need to do a recursive callback apply\n this.actions = this.actionFactoryService.applyCallbackToList(actions, this.actionCallback.bind(this));\n this.hasMarkAsRead = this.actionFactoryService.hasAction(this.actions, Action.MarkAsRead);\n this.hasMarkAsUnread = this.actionFactoryService.hasAction(this.actions, Action.MarkAsUnread);\n this.cdRef.markForCheck();\n });\n }\n\n performAction(action: ActionItem) {\n this.actionCallback(action, null);\n }\n\n executeAction(action: Action) {\n const foundActions = this.actions.filter(act => act.action === action);\n if (foundActions.length > 0) {\n this.performAction(foundActions[0]);\n }\n }\n}\n", "\n @if (bulkSelectionService.selections$ | async; as selectionCount) {\n @if (selectionCount > 0) {\n
\n
\n
\n\n \n \n {{t('items-selected',{num: selectionCount | number})}}\n \n\n \n @if (hasMarkAsUnread) {\n \n }\n @if (hasMarkAsRead) {\n \n }\n \n \n\n Bulk Actions\n\n \n
\n
\n
\n }\n\n }\n
\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "executeAction", "Action", "MarkAsUnread", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "t_r4", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "_r5", "MarkAsRead", "\u0275\u0275template", "BulkOperationsComponent_ng_container_0_Conditional_1_Conditional_0_Conditional_8_Template", "BulkOperationsComponent_ng_container_0_Conditional_1_Conditional_0_Conditional_9_Template", "$event", "_r1", "performAction", "bulkSelectionService", "deselectAll", "\u0275\u0275pureFunction2", "_c0", "marginLeft", "marginRight", "\u0275\u0275textInterpolate1", "\u0275\u0275pureFunction1", "_c1", "\u0275\u0275pipeBind1", "selectionCount_r6", "\u0275\u0275conditional", "hasMarkAsUnread", "hasMarkAsRead", "actions", "BulkOperationsComponent_ng_container_0_Conditional_1_Conditional_0_Template", "ctx", "\u0275\u0275elementContainerStart", "BulkOperationsComponent_ng_container_0_Conditional_1_Template", "tmp_2_0", "selections$", "BulkOperationsComponent", "constructor", "modalMode", "destroyRef", "inject", "DestroyRef", "cdRef", "ChangeDetectorRef", "actionFactoryService", "ActionFactoryService", "BulkSelectionService", "handleKeypress", "event", "key", "KEY_CODES", "SHIFT", "isShiftDown", "handleKeyUp", "ngOnInit", "actions$", "pipe", "takeUntilDestroyed", "subscribe", "applyCallbackToList", "actionCallback", "bind", "hasAction", "markForCheck", "action", "foundActions", "filter", "act", "length", "selectors", "hostBindings", "rf", "\u0275\u0275resolveDocument", "BulkOperationsComponent_ng_container_0_Template", "AsyncPipe", "CardActionablesComponent", "TranslocoModule", "TranslocoDirective", "NgbTooltip", "NgStyle", "DecimalPipe", "styles", "changeDetection"] }