UNPKG

@rxap/table-system

Version:

This package provides a set of Angular directives, components, and services to enhance data tables with features like row expansion, full-text search, and row selection with checkboxes. It includes modules for easy integration of these features into exist

1 lines 30.6 kB
{"version":3,"file":"rxap-table-system.mjs","sources":["../../../../../packages/angular/table-system/src/lib/select-row/select-row.service.ts","../../../../../packages/angular/table-system/src/lib/select-row/checkbox-header-cell/checkbox-header-cell.component.ts","../../../../../packages/angular/table-system/src/lib/select-row/checkbox-header-cell/checkbox-header-cell.component.html","../../../../../packages/angular/table-system/src/lib/select-row/checkbox-cell/checkbox-cell.component.ts","../../../../../packages/angular/table-system/src/lib/select-row/checkbox-cell/checkbox-cell.component.html","../../../../../packages/angular/table-system/src/lib/select-row/all-rows-selected.directive.ts","../../../../../packages/angular/table-system/src/lib/select-row/select-row.module.ts","../../../../../packages/angular/table-system/src/lib/full-text-search/table-full-text-search.service.ts","../../../../../packages/angular/table-system/src/lib/full-text-search/table-filter-input.directive.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row-container/expand-row-content.directive.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row.service.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row-container/expand-row-container.component.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row-container/expand-row-container.component.html","../../../../../packages/angular/table-system/src/lib/expand-row/expand-controls-cell/expand-controls-cell.component.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-controls-cell/expand-controls-cell.component.html","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row.directive.ts","../../../../../packages/angular/table-system/src/lib/expand-row/expand-row.module.ts","../../../../../packages/angular/table-system/src/index.ts","../../../../../packages/angular/table-system/src/rxap-table-system.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class SelectRowService<Data extends Record<string, any>> {\n\n public selectedRows$: Observable<Data[]>;\n\n public readonly selectionModel = new SelectionModel<Data>(true);\n\n constructor() {\n this.selectedRows$ = this.selectionModel.changed.pipe(map(() => this.selectionModel.selected));\n }\n\n public get selectedRows(): Data[] {\n return this.selectionModel.selected;\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnInit,\n} from '@angular/core';\nimport { SelectRowService } from '../select-row.service';\nimport {\n EMPTY,\n Observable,\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n MatCheckboxChange,\n MatCheckboxModule,\n} from '@angular/material/checkbox';\nimport { CdkTable } from '@angular/cdk/table';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'th[rxap-checkbox-header-cell]',\n templateUrl: './checkbox-header-cell.component.html',\n styleUrls: ['./checkbox-header-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCheckboxModule, AsyncPipe]\n})\nexport class CheckboxHeaderCellComponent<Data extends Record<string, any>> implements OnInit {\n\n public indeterminate$: Observable<boolean> = EMPTY;\n public checked$: Observable<boolean> = EMPTY;\n\n constructor(\n @Inject(CdkTable)\n private readonly cdkTable: CdkTable<Data>,\n private readonly selectRow: SelectRowService<Data>,\n ) {\n }\n\n public ngOnInit() {\n this.indeterminate$ = this.selectRow.selectedRows$.pipe(\n map(selectedRows => !!selectedRows.length && this.cdkTable['_data'].length !== selectedRows.length),\n );\n this.checked$ = this.selectRow.selectedRows$.pipe(\n map(selectedRows => !!selectedRows.length && this.cdkTable['_data'].length === selectedRows.length),\n );\n }\n\n public onChange($event: MatCheckboxChange) {\n if ($event.checked) {\n this.selectRow.selectionModel.select(...this.cdkTable['_data']);\n } else {\n this.selectRow.selectionModel.clear();\n }\n }\n\n}\n","<mat-checkbox\n (change)=\"onChange($event)\"\n [checked]=\"(checked$ | async) ?? false\"\n [indeterminate]=\"indeterminate$ | async\">\n</mat-checkbox>\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { SelectRowService } from '../select-row.service';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'td[rxap-checkbox-cell]',\n templateUrl: './checkbox-cell.component.html',\n styleUrls: ['./checkbox-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [MatCheckboxModule]\n})\nexport class CheckboxCellComponent<Data extends Record<string, any>> {\n\n @Input({ required: true })\n public element!: Data;\n\n constructor(\n @Inject(SelectRowService)\n public readonly selectRow: SelectRowService<Data>,\n ) {\n }\n\n}\n","<mat-checkbox\n (change)=\"selectRow.selectionModel.toggle(element)\"\n [checked]=\"selectRow.selectionModel.isSelected(element)\">\n</mat-checkbox>\n","import {\n ChangeDetectorRef,\n Directive,\n Inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SelectRowService } from './select-row.service';\nimport {\n distinctUntilChanged,\n map,\n tap,\n} from 'rxjs/operators';\nimport { CdkTable } from '@angular/cdk/table';\n\nexport interface AllRowsSelectedDirectiveContext<Data extends Record<string, any>> {\n $implicit: Data[];\n}\n\n@Directive({\n selector: '[rxapAllRowsSelected]',\n standalone: true,\n})\nexport class AllRowsSelectedDirective<Data extends Record<string, any>> implements OnInit, OnDestroy {\n\n private _subscription?: Subscription;\n\n constructor(\n @Inject(TemplateRef)\n private readonly template: TemplateRef<AllRowsSelectedDirectiveContext<Data>>,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ChangeDetectorRef)\n private readonly cdr: ChangeDetectorRef,\n @Inject(SelectRowService)\n private readonly selectRowService: SelectRowService<Data>,\n @Inject(CdkTable)\n private readonly cdkTable: CdkTable<Data>,\n ) {\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n public ngOnInit() {\n this._subscription = this.selectRowService.selectedRows$.pipe(\n map(selectedRows => !!selectedRows.length && selectedRows.length === this.cdkTable['_data'].length),\n distinctUntilChanged(),\n tap(selectedAllRows => {\n this.viewContainerRef.clear();\n if (selectedAllRows) {\n this.viewContainerRef.createEmbeddedView(this.template, { $implicit: this.selectRowService.selectedRows });\n }\n this.cdr.detectChanges();\n }),\n ).subscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { SelectRowService } from './select-row.service';\n\n\nimport { AllRowsSelectedDirective } from './all-rows-selected.directive';\n\n\n@NgModule({\n imports: [ AllRowsSelectedDirective ],\n exports: [\n AllRowsSelectedDirective,\n ],\n providers: [ SelectRowService ],\n})\nexport class SelectRowModule {\n}\n","import { Injectable } from '@angular/core';\nimport { FilterLike } from '@rxap/data-source/table';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class TableFullTextSearchService implements FilterLike {\n change = new BehaviorSubject<string>('');\n\n get current(): string {\n return this.change.value;\n }\n}\n","import {\n Directive,\n Inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { RXAP_TABLE_FILTER } from '@rxap/material-table-system';\nimport { Subscription } from 'rxjs';\nimport {\n debounceTime,\n tap,\n} from 'rxjs/operators';\nimport { TableFullTextSearchService } from './table-full-text-search.service';\n\n@Directive({\n selector: 'input[ngModel][rxapTableFilterInput]',\n standalone: true,\n})\nexport class TableFilterInputDirective implements OnInit, OnDestroy {\n private _subscription?: Subscription;\n\n constructor(\n @Inject(NgModel)\n private readonly ngModel: NgModel,\n @Inject(RXAP_TABLE_FILTER)\n private readonly stringFilterService: TableFullTextSearchService,\n ) {\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n public ngOnInit() {\n this._subscription = this.ngModel.valueChanges\n ?.pipe(\n debounceTime(128),\n tap((value) =>\n this.stringFilterService.change.next(\n value && value.length >= 3 ? value : null,\n ),\n ),\n )\n .subscribe();\n }\n}\n","import {\n Directive,\n Inject,\n TemplateRef,\n} from '@angular/core';\n\nexport interface ExpandCellContentDirectiveContext<Data extends Record<string, any>> {\n $implicit: Data;\n}\n\n@Directive({\n selector: '[rxapExpandRowContent]',\n standalone: true,\n})\nexport class ExpandRowContentDirective<Data extends Record<string, any>> {\n\n\n static ngTemplateContextGuard<Data extends Record<string, any>>(dir: ExpandRowContentDirective<Data>, ctx: any):\n ctx is ExpandCellContentDirectiveContext<Data> {\n return true;\n }\n\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<ExpandCellContentDirectiveContext<Data>>,\n ) {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @deprecated use from @rxap/material-table-system\n */\n@Injectable()\nexport class ExpandRowService<Data extends Record<string, any>> {\n public expandedRow = new BehaviorSubject<Data | null>(null);\n\n public toggleRow(row: Data): void {\n if (this.expandedRow.value === row) {\n this.expandedRow.next(null);\n } else {\n this.expandedRow.next(row);\n }\n }\n\n public isExpanded(row: Data) {\n return this.expandedRow.value === row;\n }\n\n public isExpanded$(row: Data): Observable<boolean> {\n return this.expandedRow.pipe(map((expandedRow) => expandedRow === row));\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Inject,\n Input,\n OnDestroy,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ExpandCellContentDirectiveContext,\n ExpandRowContentDirective,\n} from './expand-row-content.directive';\nimport {\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { Required } from '@rxap/utilities';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { ExpandRowService } from '../expand-row.service';\nimport { Subscription } from 'rxjs';\nimport {\n filter,\n tap,\n} from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'td[rxap-expand-row]',\n templateUrl: './expand-row-container.component.html',\n styleUrls: ['./expand-row-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({\n height: '0px',\n minHeight: '0',\n })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n imports: [PortalModule, AsyncPipe]\n})\nexport class ExpandRowContainerComponent<Data extends Record<string, any>> implements AfterContentInit, OnDestroy {\n\n @Input({\n required: true,\n alias: 'rxap-expand-row',\n })\n public element!: Data;\n\n @ContentChild(ExpandRowContentDirective)\n public expandCellContent?: ExpandRowContentDirective<Data>;\n\n public portal: TemplatePortal<ExpandCellContentDirectiveContext<Data>> | null = null;\n\n private _subscription?: Subscription;\n\n constructor(\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ExpandRowService)\n public readonly expandCell: ExpandRowService<Data>,\n ) {\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n public ngAfterContentInit() {\n if (this.expandCellContent) {\n this._subscription = this.expandCell.isExpanded$(this.element).pipe(\n filter(Boolean),\n tap(() => {\n if (!this.portal) {\n this.portal =\n new TemplatePortal(this.expandCellContent!.template, this.viewContainerRef, { $implicit: this.element });\n }\n }),\n ).subscribe();\n }\n }\n\n}\n","<div [@detailExpand]=\"(expandCell.isExpanded$(element) | async) ? 'expanded' : 'collapsed'\" class=\"element-detail\">\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n} from '@angular/core';\nimport { ExpandRowService } from '../expand-row.service';\nimport { Required } from '@rxap/utilities';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n AsyncPipe,\n NgIf,\n} from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'td[rxap-expand-controls-cell]',\n templateUrl: './expand-controls-cell.component.html',\n styleUrls: ['./expand-controls-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, NgIf, MatIconModule, AsyncPipe]\n})\nexport class ExpandControlsCellComponent<Data extends Record<string, any>> {\n\n @Input({\n required: true,\n alias: 'rxap-expand-controls-cell',\n })\n public element!: Data;\n\n constructor(\n @Inject(ExpandRowService)\n public readonly expandCell: ExpandRowService<Data>,\n ) {\n }\n\n}\n","<button type=\"button\" mat-icon-button>\n <mat-icon *ngIf=\"expandCell.isExpanded$(element) | async; else notExpanded\">expand_more</mat-icon>\n <ng-template #notExpanded>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n</button>\n","import {\n Directive,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport { ExpandRowService } from './expand-row.service';\nimport { Required } from '@rxap/utilities';\n\n@Directive({\n selector: 'tr[rxapExpandRow]',\n standalone: true,\n})\nexport class ExpandRowDirective<Data extends Record<string, any>> {\n\n @HostListener('expanded-row')\n public get isExpanded() {\n return this.expandCell.isExpanded(this.element);\n }\n\n @Input({\n required: true,\n alias: 'rxapExpandRow',\n })\n public element!: Data;\n\n constructor(\n @Inject(ExpandRowService)\n private readonly expandCell: ExpandRowService<Data>,\n ) {\n }\n\n @HostListener('click')\n public onClick() {\n this.expandCell.toggleRow(this.element);\n }\n\n}\n","import { NgModule } from '@angular/core';\n\n\nimport { ExpandRowService } from './expand-row.service';\nimport { ExpandRowDirective } from './expand-row.directive';\n\n/**\n * @deprecated use from @rxap/material-table-system\n */\n@NgModule({\n imports: [ ExpandRowDirective ],\n exports: [\n ExpandRowDirective,\n ],\n providers: [ ExpandRowService ],\n})\nexport class ExpandRowModule {\n}\n","// region select-row checkbox-header-cell\nexport * from './lib/select-row/checkbox-header-cell/checkbox-header-cell.component';\n// endregion\n\n// region select-row checkbox-cell\nexport * from './lib/select-row/checkbox-cell/checkbox-cell.component';\n// endregion\n\n// region select-row\nexport * from './lib/select-row/all-rows-selected.directive';\nexport * from './lib/select-row/select-row.module';\nexport * from './lib/select-row/select-row.service';\n// endregion\n\n// region full-text-search\nexport * from './lib/full-text-search/table-filter-input.directive';\nexport * from './lib/full-text-search/table-full-text-search.service';\n// endregion\n\n// region expand-row expand-row-container\nexport * from './lib/expand-row/expand-row-container/expand-row-container.component';\nexport * from './lib/expand-row/expand-row-container/expand-row-content.directive';\n// endregion\n\n// region expand-row expand-controls-cell\nexport * from './lib/expand-row/expand-controls-cell/expand-controls-cell.component';\n// endregion\n\n// region expand-row\nexport * from './lib/expand-row/expand-row.directive';\nexport * from './lib/expand-row/expand-row.module';\nexport * from './lib/expand-row/expand-row.service';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SelectRowService","i1","i2"],"mappings":"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"}