@spartan-ng/brain 0.0.1-alpha.457 → 0.0.1-alpha.458

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.
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-table.mjs","sources":["../../../../libs/brain/table/src/lib/brn-cell-def.directive.ts","../../../../libs/brain/table/src/lib/brn-footer-def.directive.ts","../../../../libs/brain/table/src/lib/brn-header-def.directive.ts","../../../../libs/brain/table/src/lib/brn-column-def.component.ts","../../../../libs/brain/table/src/lib/brn-paginator.directive.ts","../../../../libs/brain/table/src/lib/brn-table.component.ts","../../../../libs/brain/table/src/lib/brn-column-manager.ts","../../../../libs/brain/table/src/index.ts","../../../../libs/brain/table/src/spartan-ng-brain-table.ts"],"sourcesContent":["import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCellDef]',\n\texportAs: 'brnCellDef',\n})\nexport class BrnCellDefDirective extends CdkCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkFooterCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnFooterDef]',\n\texportAs: 'brnFooterDef',\n})\nexport class BrnFooterDefDirective extends CdkFooterCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnHeaderDef]',\n\texportAs: 'brnHeaderDef',\n})\nexport class BrnHeaderDefDirective extends CdkHeaderCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import {\n\ttype CdkCellDef,\n\tCdkColumnDef,\n\ttype CdkFooterCellDef,\n\ttype CdkHeaderCellDef,\n\tCdkTableModule,\n} from '@angular/cdk/table';\nimport {\n\ttype AfterContentChecked,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChild,\n\tInput,\n\tViewChild,\n\tViewEncapsulation,\n\tinput,\n} from '@angular/core';\nimport { BrnCellDefDirective } from './brn-cell-def.directive';\nimport { BrnFooterDefDirective } from './brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './brn-header-def.directive';\n\n@Component({\n\tselector: 'brn-column-def',\n\timports: [CdkTableModule],\n\ttemplate: `\n\t\t<ng-container [cdkColumnDef]=\"name\">\n\t\t\t<ng-content select=\"[brnHeaderDef]\" />\n\t\t\t<ng-content select=\"[brnCellDef]\" />\n\t\t\t<ng-content select=\"[brnFooterDef]\" />\n\t\t</ng-container>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnColumnDefComponent implements AfterContentChecked {\n\tpublic get columnDef() {\n\t\treturn this._columnDef;\n\t}\n\n\tpublic get cell() {\n\t\treturn this._columnDef.cell;\n\t}\n\n\tprivate _name = '';\n\t@Input()\n\tpublic get name(): string {\n\t\treturn this._name;\n\t}\n\n\tpublic set name(value: string) {\n\t\tthis._name = value;\n\t\tif (!this._columnDef) return;\n\t\tthis._columnDef.name = value;\n\t}\n\n\tpublic readonly class = input('');\n\n\t@ViewChild(CdkColumnDef, { static: true })\n\tprivate readonly _columnDef!: CdkColumnDef;\n\n\t@ContentChild(BrnCellDefDirective, { static: true })\n\tprivate readonly _cellDef?: CdkCellDef;\n\t@ContentChild(BrnFooterDefDirective, { static: true })\n\tprivate readonly _footerCellDef?: CdkFooterCellDef;\n\t@ContentChild(BrnHeaderDefDirective, { static: true })\n\tprivate readonly _headerCellDef?: CdkHeaderCellDef;\n\n\tpublic ngAfterContentChecked(): void {\n\t\tthis._columnDef.name = this.name;\n\t\tif (this._cellDef) {\n\t\t\tthis._columnDef.cell = this._cellDef;\n\t\t}\n\t\tif (this._headerCellDef) {\n\t\t\tthis._columnDef.headerCell = this._headerCellDef;\n\t\t}\n\t\tif (this._footerCellDef) {\n\t\t\tthis._columnDef.footerCell = this._footerCellDef;\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\ttype OnInit,\n\ttype Signal,\n\tTemplateRef,\n\tViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tnumberAttribute,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\n\nexport type PaginatorState = {\n\tcurrentPage: number;\n\tstartIndex: number;\n\tendIndex: number;\n\tpageSize: number;\n\ttotalPages: number;\n\ttotalElements: number | null | undefined;\n};\n\nexport type PaginatorContext = {\n\t$implicit: {\n\t\tstate: Signal<PaginatorState>;\n\t\tincrementable: Signal<boolean>;\n\t\tdecrementable: Signal<boolean>;\n\t\tincrement: () => void;\n\t\tdecrement: () => void;\n\t};\n};\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnPaginator]',\n\texportAs: 'brnPaginator',\n})\nexport class BrnPaginatorDirective implements OnInit {\n\tstatic ngTemplateContextGuard(_directive: BrnPaginatorDirective, _context: unknown): _context is PaginatorContext {\n\t\treturn true;\n\t}\n\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _template = inject(TemplateRef<unknown>);\n\n\tprivate readonly _state = signal<PaginatorState>({\n\t\tcurrentPage: 0,\n\t\tstartIndex: 0,\n\t\tendIndex: 0,\n\t\tpageSize: 10,\n\t\ttotalPages: 0,\n\t\ttotalElements: null,\n\t});\n\tprivate readonly _decrementable = computed(() => 0 < this._state().startIndex);\n\tprivate readonly _incrementable = computed(() => this._state().endIndex < (this._state().totalElements ?? 0) - 1);\n\n\t@Input({ alias: 'brnPaginatorTotalElements' })\n\tpublic set totalElements(value: number | null | undefined) {\n\t\tthis.calculateNewState({ newTotalElements: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorCurrentPage', transform: numberAttribute })\n\tpublic set currentPage(value: number) {\n\t\tthis.calculateNewState({ newPage: value });\n\t}\n\n\t@Input({ alias: 'brnPaginatorPageSize', transform: numberAttribute })\n\tpublic set pageSize(value: number) {\n\t\tthis.calculateNewState({ newPageSize: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorOnStateChange' })\n\tpublic onStateChange?: (state: PaginatorState) => void;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tuntracked(() => {\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (this.onStateChange) {\n\t\t\t\t\t\tthis.onStateChange(state);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._vcr.createEmbeddedView<PaginatorContext>(this._template, {\n\t\t\t$implicit: {\n\t\t\t\tstate: this._state,\n\t\t\t\tincrement: () => this.incrementPage(),\n\t\t\t\tdecrement: () => this.decrementPage(),\n\t\t\t\tincrementable: this._incrementable,\n\t\t\t\tdecrementable: this._decrementable,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic decrementPage(): void {\n\t\tconst { currentPage } = this._state();\n\t\tif (0 < currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage - 1 });\n\t\t}\n\t}\n\n\tpublic incrementPage(): void {\n\t\tconst { currentPage, totalPages } = this._state();\n\t\tif (totalPages > currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage + 1 });\n\t\t}\n\t}\n\n\tpublic reset(): void {\n\t\tthis.currentPage = 0;\n\t}\n\n\tprivate calculateNewState({\n\t\tnewPage,\n\t\tnewPageSize,\n\t\tnewTotalElements,\n\t}: Partial<{\n\t\tnewPage: number;\n\t\tnewPageSize: number;\n\t\tnewTotalElements: number | null | undefined;\n\t}>) {\n\t\tconst previousState = this._state();\n\n\t\tlet currentPage = newPage ?? previousState.currentPage;\n\t\tconst pageSize = newPageSize ?? previousState.pageSize;\n\t\tconst totalElements = newTotalElements ?? previousState.totalElements ?? 0;\n\n\t\tconst newTotalPages = totalElements ? Math.floor(totalElements / pageSize) : 0;\n\n\t\tif (newTotalPages < currentPage - 1) {\n\t\t\tcurrentPage = newTotalPages - 1;\n\t\t}\n\n\t\tconst newStartIndex = totalElements === 0 ? 0 : Math.min(totalElements - 1, currentPage * pageSize);\n\t\tconst newEndIndex = Math.min((currentPage + 1) * pageSize - 1, totalElements - 1);\n\n\t\tconst newState = {\n\t\t\tcurrentPage: currentPage,\n\t\t\tstartIndex: newStartIndex,\n\t\t\tendIndex: newEndIndex,\n\t\t\tpageSize: pageSize,\n\t\t\ttotalPages: newTotalPages,\n\t\t\ttotalElements: totalElements,\n\t\t};\n\n\t\tthis._state.set(newState);\n\t}\n}\n","import { CdkRowDef, CdkTable, type CdkTableDataSourceInput, CdkTableModule } from '@angular/cdk/table';\nimport {\n\ttype AfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChildren,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\ttype QueryList,\n\ttype TrackByFunction,\n\tViewChild,\n\tViewEncapsulation,\n\tbooleanAttribute,\n} from '@angular/core';\nimport { type TableClassesSettable, provideTableClassesSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnColumnDefComponent } from './brn-column-def.component';\n\nexport type BrnTableDataSourceInput<T> = CdkTableDataSourceInput<T>;\n\n@Component({\n\tselector: 'brn-table',\n\timports: [CdkTableModule],\n\tproviders: [provideTableClassesSettableExisting(<T>() => BrnTableComponent<T>)],\n\ttemplate: `\n\t\t<cdk-table\n\t\t\t#cdkTable\n\t\t\t[class]=\"tableClasses\"\n\t\t\t[dataSource]=\"dataSource\"\n\t\t\t[fixedLayout]=\"fixedLayout\"\n\t\t\t[multiTemplateDataRows]=\"multiTemplateDataRows\"\n\t\t\t(contentChanged)=\"contentChanged.emit()\"\n\t\t>\n\t\t\t<ng-content />\n\n\t\t\t<cdk-header-row [class]=\"headerRowClasses\" *cdkHeaderRowDef=\"displayedColumns; sticky: stickyHeader\" />\n\t\t\t@if (!customTemplateDataRows) {\n\t\t\t\t<cdk-row\n\t\t\t\t\t[tabindex]=\"!!onRowClick ? 0 : -1\"\n\t\t\t\t\t[attr.role]=\"!!onRowClick ? 'button' : 'row'\"\n\t\t\t\t\t[class.row-interactive]=\"!!onRowClick\"\n\t\t\t\t\t(keydown.enter)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t(click)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t[class]=\"bodyRowClasses\"\n\t\t\t\t\t*cdkRowDef=\"let row; columns: displayedColumns\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<ng-template cdkNoDataRow>\n\t\t\t\t<ng-content select=\"[brnNoDataRow]\" />\n\t\t\t</ng-template>\n\t\t</cdk-table>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnTableComponent<T> implements TableClassesSettable, AfterContentInit {\n\t@ViewChild('cdkTable', { read: CdkTable, static: true })\n\tprivate readonly _cdkTable?: CdkTable<T>;\n\t// Cdk Table Inputs / Outputs\n\t@Input()\n\tpublic dataSource: BrnTableDataSourceInput<T> = [];\n\t@Input({ transform: booleanAttribute })\n\tpublic fixedLayout = false;\n\t@Input({ transform: booleanAttribute })\n\tpublic multiTemplateDataRows = false;\n\t@Input()\n\tpublic displayedColumns: string[] = [];\n\n\tprivate _trackBy?: TrackByFunction<T>;\n\tpublic get trackBy(): TrackByFunction<T> | undefined {\n\t\treturn this._trackBy;\n\t}\n\n\t@Input()\n\tpublic set trackBy(value: TrackByFunction<T>) {\n\t\tthis._trackBy = value;\n\t\tif (this._cdkTable) {\n\t\t\tthis._cdkTable.trackBy = this._trackBy;\n\t\t}\n\t}\n\n\t@Output()\n\tpublic readonly contentChanged: EventEmitter<void> = new EventEmitter<void>();\n\n\t// Brn Inputs / Outputs\n\t@Input({ transform: booleanAttribute })\n\tpublic customTemplateDataRows = false;\n\t@Input()\n\tpublic onRowClick: ((element: T) => void) | undefined;\n\n\t@Input({ transform: booleanAttribute })\n\tpublic stickyHeader = false;\n\t@Input()\n\tpublic tableClasses = '';\n\t@Input()\n\tpublic headerRowClasses = '';\n\t@Input()\n\tpublic bodyRowClasses = '';\n\n\t@ContentChildren(BrnColumnDefComponent) public columnDefComponents!: QueryList<BrnColumnDefComponent>;\n\t@ContentChildren(CdkRowDef) public rowDefs!: QueryList<CdkRowDef<T>>;\n\n\t// after the <ng-content> has been initialized, the column definitions are available.\n\t// All that's left is to add them to the table ourselves:\n\tpublic ngAfterContentInit(): void {\n\t\tthis.columnDefComponents.forEach((component) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tif (component.cell) {\n\t\t\t\tthis._cdkTable.addColumnDef(component.columnDef);\n\t\t\t}\n\t\t});\n\t\tthis.rowDefs.forEach((rowDef) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tthis._cdkTable.addRowDef(rowDef);\n\t\t});\n\t}\n\n\tpublic setTableClasses({\n\t\ttable,\n\t\theaderRow,\n\t\tbodyRow,\n\t}: Partial<{ table: string; headerRow: string; bodyRow: string }>): void {\n\t\tif (table) {\n\t\t\tthis.tableClasses = table;\n\t\t}\n\t\tif (headerRow) {\n\t\t\tthis.headerRowClasses = headerRow;\n\t\t}\n\t\tif (bodyRow) {\n\t\t\tthis.bodyRowClasses = bodyRow;\n\t\t}\n\t}\n}\n","import { type Signal, computed, signal } from '@angular/core';\n\ntype BrnColumnVisibility = Record<string, boolean> | Record<string, { visible: boolean }>;\n\n// prettier-ignore\ntype AllColumnsPropertyType<T> = T extends Record<string, boolean>\n\t? (keyof T)[]\n\t: T extends Record<string, infer R>\n\t\t? (R extends { visible: boolean } ? { name: keyof T } & R : never)[]\n\t\t: never;\n\nexport class BrnColumnManager<T extends BrnColumnVisibility> {\n\tprivate readonly _initialColumnVisibility: T;\n\tprivate readonly _columnVisibility;\n\n\tpublic readonly allColumns: AllColumnsPropertyType<T>;\n\tpublic readonly columnVisibility;\n\tpublic readonly displayedColumns: Signal<(keyof T)[]> = computed(() => {\n\t\treturn Object.entries(this._columnVisibility())\n\t\t\t.filter(([, value]) => (typeof value === 'boolean' ? value : value.visible))\n\t\t\t.map(([key]) => key);\n\t});\n\n\tconstructor(initialColumnVisibility: T) {\n\t\tthis._initialColumnVisibility = initialColumnVisibility;\n\t\tthis._columnVisibility = signal(this._initialColumnVisibility);\n\t\tthis._columnVisibility.set(this._initialColumnVisibility);\n\t\tthis.columnVisibility = this._columnVisibility.asReadonly();\n\t\tthis.allColumns = this.createAllColumns(this._initialColumnVisibility);\n\t}\n\n\tpublic readonly isColumnVisible = (columnName: string) => {\n\t\tconst visibilityMap = this.columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\treturn typeof columnEntry === 'boolean' ? columnEntry : columnEntry.visible;\n\t};\n\tpublic readonly isColumnDisabled = (columnName: string) =>\n\t\tthis.isColumnVisible(columnName) && this.displayedColumns().length === 1;\n\n\tpublic toggleVisibility(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? !columnEntry : { visible: !columnEntry.visible };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setVisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? true : { visible: true };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setInvisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? false : { visible: false };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\n\tprivate createAllColumns(initialColumnVisibility: T): AllColumnsPropertyType<T> {\n\t\tconst keys = Object.keys(initialColumnVisibility) as (keyof T)[];\n\t\tif (this.isBooleanConfig(initialColumnVisibility)) {\n\t\t\treturn keys as unknown as AllColumnsPropertyType<T>;\n\t\t}\n\t\treturn keys.map((key) => {\n\t\t\tconst values = initialColumnVisibility[key] as { visible: boolean };\n\t\t\treturn {\n\t\t\t\tname: key,\n\t\t\t\t...values,\n\t\t\t};\n\t\t}) as AllColumnsPropertyType<T>;\n\t}\n\n\tprivate isBooleanConfig(config: any): config is Record<string, boolean> {\n\t\treturn typeof Object.values(config)[0] === 'boolean';\n\t}\n}\n\nexport const useBrnColumnManager = <T extends BrnColumnVisibility>(initialColumnVisibility: T) =>\n\tnew BrnColumnManager(initialColumnVisibility);\n","import { NgModule } from '@angular/core';\nimport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nimport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nimport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nimport { BrnPaginatorDirective } from './lib/brn-paginator.directive';\nimport { BrnTableComponent } from './lib/brn-table.component';\n\nexport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nexport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nexport { BrnColumnManager, useBrnColumnManager } from './lib/brn-column-manager';\nexport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nexport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nexport { BrnPaginatorDirective, PaginatorContext, PaginatorState } from './lib/brn-paginator.directive';\nexport { BrnTableComponent } from './lib/brn-table.component';\n\nexport const BrnTableImports = [\n\tBrnCellDefDirective,\n\tBrnColumnDefComponent,\n\tBrnFooterDefDirective,\n\tBrnHeaderDefDirective,\n\tBrnTableComponent,\n\tBrnPaginatorDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnTableImports],\n\texports: [...BrnTableImports],\n})\nexport class BrnTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-table.mjs","sources":["../../../../libs/brain/table/src/lib/brn-cell-def.directive.ts","../../../../libs/brain/table/src/lib/brn-footer-def.directive.ts","../../../../libs/brain/table/src/lib/brn-header-def.directive.ts","../../../../libs/brain/table/src/lib/brn-column-def.component.ts","../../../../libs/brain/table/src/lib/brn-paginator.directive.ts","../../../../libs/brain/table/src/lib/brn-table.component.ts","../../../../libs/brain/table/src/lib/brn-column-manager.ts","../../../../libs/brain/table/src/index.ts","../../../../libs/brain/table/src/spartan-ng-brain-table.ts"],"sourcesContent":["import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCellDef]',\n\texportAs: 'brnCellDef',\n})\nexport class BrnCellDefDirective extends CdkCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkFooterCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnFooterDef]',\n\texportAs: 'brnFooterDef',\n})\nexport class BrnFooterDefDirective extends CdkFooterCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnHeaderDef]',\n\texportAs: 'brnHeaderDef',\n})\nexport class BrnHeaderDefDirective extends CdkHeaderCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import {\n\ttype CdkCellDef,\n\tCdkColumnDef,\n\ttype CdkFooterCellDef,\n\ttype CdkHeaderCellDef,\n\tCdkTableModule,\n} from '@angular/cdk/table';\nimport {\n\ttype AfterContentChecked,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChild,\n\tInput,\n\tViewChild,\n\tViewEncapsulation,\n\tinput,\n} from '@angular/core';\nimport { BrnCellDefDirective } from './brn-cell-def.directive';\nimport { BrnFooterDefDirective } from './brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './brn-header-def.directive';\n\n@Component({\n\tselector: 'brn-column-def',\n\timports: [CdkTableModule],\n\ttemplate: `\n\t\t<ng-container [cdkColumnDef]=\"name\">\n\t\t\t<ng-content select=\"[brnHeaderDef]\" />\n\t\t\t<ng-content select=\"[brnCellDef]\" />\n\t\t\t<ng-content select=\"[brnFooterDef]\" />\n\t\t</ng-container>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnColumnDefComponent implements AfterContentChecked {\n\tpublic get columnDef() {\n\t\treturn this._columnDef;\n\t}\n\n\tpublic get cell() {\n\t\treturn this._columnDef.cell;\n\t}\n\n\tprivate _name = '';\n\t@Input()\n\tpublic get name(): string {\n\t\treturn this._name;\n\t}\n\n\tpublic set name(value: string) {\n\t\tthis._name = value;\n\t\tif (!this._columnDef) return;\n\t\tthis._columnDef.name = value;\n\t}\n\n\tpublic readonly class = input('');\n\n\t@ViewChild(CdkColumnDef, { static: true })\n\tprivate readonly _columnDef!: CdkColumnDef;\n\n\t@ContentChild(BrnCellDefDirective, { static: true })\n\tprivate readonly _cellDef?: CdkCellDef;\n\t@ContentChild(BrnFooterDefDirective, { static: true })\n\tprivate readonly _footerCellDef?: CdkFooterCellDef;\n\t@ContentChild(BrnHeaderDefDirective, { static: true })\n\tprivate readonly _headerCellDef?: CdkHeaderCellDef;\n\n\tpublic ngAfterContentChecked(): void {\n\t\tthis._columnDef.name = this.name;\n\t\tif (this._cellDef) {\n\t\t\tthis._columnDef.cell = this._cellDef;\n\t\t}\n\t\tif (this._headerCellDef) {\n\t\t\tthis._columnDef.headerCell = this._headerCellDef;\n\t\t}\n\t\tif (this._footerCellDef) {\n\t\t\tthis._columnDef.footerCell = this._footerCellDef;\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\ttype OnInit,\n\ttype Signal,\n\tTemplateRef,\n\tViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tnumberAttribute,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\n\nexport type PaginatorState = {\n\tcurrentPage: number;\n\tstartIndex: number;\n\tendIndex: number;\n\tpageSize: number;\n\ttotalPages: number;\n\ttotalElements: number | null | undefined;\n};\n\nexport type PaginatorContext = {\n\t$implicit: {\n\t\tstate: Signal<PaginatorState>;\n\t\tincrementable: Signal<boolean>;\n\t\tdecrementable: Signal<boolean>;\n\t\tincrement: () => void;\n\t\tdecrement: () => void;\n\t\tgoToFirstPage: () => void;\n\t\tgoToLastPage: () => void;\n\t};\n};\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnPaginator]',\n\texportAs: 'brnPaginator',\n})\nexport class BrnPaginatorDirective implements OnInit {\n\tstatic ngTemplateContextGuard(_directive: BrnPaginatorDirective, _context: unknown): _context is PaginatorContext {\n\t\treturn true;\n\t}\n\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _template = inject(TemplateRef<unknown>);\n\n\tprivate readonly _state = signal<PaginatorState>({\n\t\tcurrentPage: 0,\n\t\tstartIndex: 0,\n\t\tendIndex: 0,\n\t\tpageSize: 10,\n\t\ttotalPages: 0,\n\t\ttotalElements: null,\n\t});\n\tprivate readonly _decrementable = computed(() => 0 < this._state().startIndex);\n\tprivate readonly _incrementable = computed(() => this._state().endIndex < (this._state().totalElements ?? 0) - 1);\n\n\t@Input({ alias: 'brnPaginatorTotalElements' })\n\tpublic set totalElements(value: number | null | undefined) {\n\t\tthis.calculateNewState({ newTotalElements: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorCurrentPage', transform: numberAttribute })\n\tpublic set currentPage(value: number) {\n\t\tthis.calculateNewState({ newPage: value });\n\t}\n\n\t@Input({ alias: 'brnPaginatorPageSize', transform: numberAttribute })\n\tpublic set pageSize(value: number) {\n\t\tthis.calculateNewState({ newPageSize: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorOnStateChange' })\n\tpublic onStateChange?: (state: PaginatorState) => void;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tuntracked(() => {\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (this.onStateChange) {\n\t\t\t\t\t\tthis.onStateChange(state);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._vcr.createEmbeddedView<PaginatorContext>(this._template, {\n\t\t\t$implicit: {\n\t\t\t\tstate: this._state,\n\t\t\t\tincrement: () => this.incrementPage(),\n\t\t\t\tdecrement: () => this.decrementPage(),\n\t\t\t\tincrementable: this._incrementable,\n\t\t\t\tdecrementable: this._decrementable,\n\t\t\t\tgoToFirstPage: () => this.reset(),\n\t\t\t\tgoToLastPage: () => this.goToLastPage(),\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic decrementPage(): void {\n\t\tconst { currentPage } = this._state();\n\t\tif (0 < currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage - 1 });\n\t\t}\n\t}\n\n\tpublic goToLastPage(): void {\n\t\tthis.currentPage = this._state().totalPages;\n\t}\n\n\tpublic incrementPage(): void {\n\t\tconst { currentPage, totalPages } = this._state();\n\t\tif (totalPages > currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage + 1 });\n\t\t}\n\t}\n\n\tpublic reset(): void {\n\t\tthis.currentPage = 0;\n\t}\n\n\tprivate calculateNewState({\n\t\tnewPage,\n\t\tnewPageSize,\n\t\tnewTotalElements,\n\t}: Partial<{\n\t\tnewPage: number;\n\t\tnewPageSize: number;\n\t\tnewTotalElements: number | null | undefined;\n\t}>) {\n\t\tconst previousState = this._state();\n\n\t\tlet currentPage = newPage ?? previousState.currentPage;\n\t\tconst pageSize = newPageSize ?? previousState.pageSize;\n\t\tconst totalElements = newTotalElements ?? previousState.totalElements ?? 0;\n\n\t\tconst newTotalPages = totalElements ? Math.floor(totalElements / pageSize) : 0;\n\n\t\tif (newTotalPages < currentPage - 1) {\n\t\t\tcurrentPage = newTotalPages - 1;\n\t\t}\n\n\t\tconst newStartIndex = totalElements === 0 ? 0 : Math.min(totalElements - 1, currentPage * pageSize);\n\t\tconst newEndIndex = Math.min((currentPage + 1) * pageSize - 1, totalElements - 1);\n\n\t\tconst newState = {\n\t\t\tcurrentPage: currentPage,\n\t\t\tstartIndex: newStartIndex,\n\t\t\tendIndex: newEndIndex,\n\t\t\tpageSize: pageSize,\n\t\t\ttotalPages: newTotalPages,\n\t\t\ttotalElements: totalElements,\n\t\t};\n\n\t\tthis._state.set(newState);\n\t}\n}\n","import { CdkRowDef, CdkTable, type CdkTableDataSourceInput, CdkTableModule } from '@angular/cdk/table';\nimport {\n\ttype AfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChildren,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\ttype QueryList,\n\ttype TrackByFunction,\n\tViewChild,\n\tViewEncapsulation,\n\tbooleanAttribute,\n} from '@angular/core';\nimport { type TableClassesSettable, provideTableClassesSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnColumnDefComponent } from './brn-column-def.component';\n\nexport type BrnTableDataSourceInput<T> = CdkTableDataSourceInput<T>;\n\n@Component({\n\tselector: 'brn-table',\n\timports: [CdkTableModule],\n\tproviders: [provideTableClassesSettableExisting(<T>() => BrnTableComponent<T>)],\n\ttemplate: `\n\t\t<cdk-table\n\t\t\t#cdkTable\n\t\t\t[class]=\"tableClasses\"\n\t\t\t[dataSource]=\"dataSource\"\n\t\t\t[fixedLayout]=\"fixedLayout\"\n\t\t\t[multiTemplateDataRows]=\"multiTemplateDataRows\"\n\t\t\t(contentChanged)=\"contentChanged.emit()\"\n\t\t>\n\t\t\t<ng-content />\n\n\t\t\t<cdk-header-row [class]=\"headerRowClasses\" *cdkHeaderRowDef=\"displayedColumns; sticky: stickyHeader\" />\n\t\t\t@if (!customTemplateDataRows) {\n\t\t\t\t<cdk-row\n\t\t\t\t\t[tabindex]=\"!!onRowClick ? 0 : -1\"\n\t\t\t\t\t[attr.role]=\"!!onRowClick ? 'button' : 'row'\"\n\t\t\t\t\t[class.row-interactive]=\"!!onRowClick\"\n\t\t\t\t\t(keydown.enter)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t(click)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t[class]=\"bodyRowClasses\"\n\t\t\t\t\t*cdkRowDef=\"let row; columns: displayedColumns\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<ng-template cdkNoDataRow>\n\t\t\t\t<ng-content select=\"[brnNoDataRow]\" />\n\t\t\t</ng-template>\n\t\t</cdk-table>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnTableComponent<T> implements TableClassesSettable, AfterContentInit {\n\t@ViewChild('cdkTable', { read: CdkTable, static: true })\n\tprivate readonly _cdkTable?: CdkTable<T>;\n\t// Cdk Table Inputs / Outputs\n\t@Input()\n\tpublic dataSource: BrnTableDataSourceInput<T> = [];\n\t@Input({ transform: booleanAttribute })\n\tpublic fixedLayout = false;\n\t@Input({ transform: booleanAttribute })\n\tpublic multiTemplateDataRows = false;\n\t@Input()\n\tpublic displayedColumns: string[] = [];\n\n\tprivate _trackBy?: TrackByFunction<T>;\n\tpublic get trackBy(): TrackByFunction<T> | undefined {\n\t\treturn this._trackBy;\n\t}\n\n\t@Input()\n\tpublic set trackBy(value: TrackByFunction<T>) {\n\t\tthis._trackBy = value;\n\t\tif (this._cdkTable) {\n\t\t\tthis._cdkTable.trackBy = this._trackBy;\n\t\t}\n\t}\n\n\t@Output()\n\tpublic readonly contentChanged: EventEmitter<void> = new EventEmitter<void>();\n\n\t// Brn Inputs / Outputs\n\t@Input({ transform: booleanAttribute })\n\tpublic customTemplateDataRows = false;\n\t@Input()\n\tpublic onRowClick: ((element: T) => void) | undefined;\n\n\t@Input({ transform: booleanAttribute })\n\tpublic stickyHeader = false;\n\t@Input()\n\tpublic tableClasses = '';\n\t@Input()\n\tpublic headerRowClasses = '';\n\t@Input()\n\tpublic bodyRowClasses = '';\n\n\t@ContentChildren(BrnColumnDefComponent) public columnDefComponents!: QueryList<BrnColumnDefComponent>;\n\t@ContentChildren(CdkRowDef) public rowDefs!: QueryList<CdkRowDef<T>>;\n\n\t// after the <ng-content> has been initialized, the column definitions are available.\n\t// All that's left is to add them to the table ourselves:\n\tpublic ngAfterContentInit(): void {\n\t\tthis.columnDefComponents.forEach((component) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tif (component.cell) {\n\t\t\t\tthis._cdkTable.addColumnDef(component.columnDef);\n\t\t\t}\n\t\t});\n\t\tthis.rowDefs.forEach((rowDef) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tthis._cdkTable.addRowDef(rowDef);\n\t\t});\n\t}\n\n\tpublic setTableClasses({\n\t\ttable,\n\t\theaderRow,\n\t\tbodyRow,\n\t}: Partial<{ table: string; headerRow: string; bodyRow: string }>): void {\n\t\tif (table) {\n\t\t\tthis.tableClasses = table;\n\t\t}\n\t\tif (headerRow) {\n\t\t\tthis.headerRowClasses = headerRow;\n\t\t}\n\t\tif (bodyRow) {\n\t\t\tthis.bodyRowClasses = bodyRow;\n\t\t}\n\t}\n}\n","import { type Signal, computed, signal } from '@angular/core';\n\ntype BrnColumnVisibility = Record<string, boolean> | Record<string, { visible: boolean }>;\n\n// prettier-ignore\ntype AllColumnsPropertyType<T> = T extends Record<string, boolean>\n\t? (keyof T)[]\n\t: T extends Record<string, infer R>\n\t\t? (R extends { visible: boolean } ? { name: keyof T } & R : never)[]\n\t\t: never;\n\nexport class BrnColumnManager<T extends BrnColumnVisibility> {\n\tprivate readonly _initialColumnVisibility: T;\n\tprivate readonly _columnVisibility;\n\n\tpublic readonly allColumns: AllColumnsPropertyType<T>;\n\tpublic readonly columnVisibility;\n\tpublic readonly displayedColumns: Signal<(keyof T)[]> = computed(() => {\n\t\treturn Object.entries(this._columnVisibility())\n\t\t\t.filter(([, value]) => (typeof value === 'boolean' ? value : value.visible))\n\t\t\t.map(([key]) => key);\n\t});\n\n\tconstructor(initialColumnVisibility: T) {\n\t\tthis._initialColumnVisibility = initialColumnVisibility;\n\t\tthis._columnVisibility = signal(this._initialColumnVisibility);\n\t\tthis._columnVisibility.set(this._initialColumnVisibility);\n\t\tthis.columnVisibility = this._columnVisibility.asReadonly();\n\t\tthis.allColumns = this.createAllColumns(this._initialColumnVisibility);\n\t}\n\n\tpublic readonly isColumnVisible = (columnName: string) => {\n\t\tconst visibilityMap = this.columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\treturn typeof columnEntry === 'boolean' ? columnEntry : columnEntry.visible;\n\t};\n\tpublic readonly isColumnDisabled = (columnName: string) =>\n\t\tthis.isColumnVisible(columnName) && this.displayedColumns().length === 1;\n\n\tpublic toggleVisibility(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? !columnEntry : { visible: !columnEntry.visible };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setVisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? true : { visible: true };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setInvisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? false : { visible: false };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\n\tprivate createAllColumns(initialColumnVisibility: T): AllColumnsPropertyType<T> {\n\t\tconst keys = Object.keys(initialColumnVisibility) as (keyof T)[];\n\t\tif (this.isBooleanConfig(initialColumnVisibility)) {\n\t\t\treturn keys as unknown as AllColumnsPropertyType<T>;\n\t\t}\n\t\treturn keys.map((key) => {\n\t\t\tconst values = initialColumnVisibility[key] as { visible: boolean };\n\t\t\treturn {\n\t\t\t\tname: key,\n\t\t\t\t...values,\n\t\t\t};\n\t\t}) as AllColumnsPropertyType<T>;\n\t}\n\n\tprivate isBooleanConfig(config: any): config is Record<string, boolean> {\n\t\treturn typeof Object.values(config)[0] === 'boolean';\n\t}\n}\n\nexport const useBrnColumnManager = <T extends BrnColumnVisibility>(initialColumnVisibility: T) =>\n\tnew BrnColumnManager(initialColumnVisibility);\n","import { NgModule } from '@angular/core';\nimport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nimport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nimport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nimport { BrnPaginatorDirective } from './lib/brn-paginator.directive';\nimport { BrnTableComponent } from './lib/brn-table.component';\n\nexport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nexport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nexport { BrnColumnManager, useBrnColumnManager } from './lib/brn-column-manager';\nexport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nexport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nexport { BrnPaginatorDirective, PaginatorContext, PaginatorState } from './lib/brn-paginator.directive';\nexport { BrnTableComponent } from './lib/brn-table.component';\n\nexport const BrnTableImports = [\n\tBrnCellDefDirective,\n\tBrnColumnDefComponent,\n\tBrnFooterDefDirective,\n\tBrnHeaderDefDirective,\n\tBrnTableComponent,\n\tBrnPaginatorDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnTableImports],\n\texports: [...BrnTableImports],\n})\nexport class BrnTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, forwardRef, input, booleanAttribute, model, computed, signal, output, Component, ChangeDetectorRef, Directive, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, forwardRef, input, booleanAttribute, model, computed, signal, output, ChangeDetectionStrategy, Component, ChangeDetectorRef, Directive, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
 
5
5
  const BrnToggleGroupToken = new InjectionToken('BrnToggleGroupToken');
@@ -142,7 +142,7 @@ class BrnToggleGroupComponent {
142
142
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
143
143
  /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: BrnToggleGroupComponent, isStandalone: true, selector: "brn-toggle-group", inputs: { vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, nullable: { classPropertyName: "nullable", publicName: "nullable", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "group" }, listeners: { "focusout": "onTouched()" }, properties: { "attr.aria-disabled": "state().disabled()", "attr.data-disabled": "state().disabled()", "attr.data-vertical": "vertical()" }, classAttribute: "brn-button-toggle-group" }, providers: [provideBrnToggleGroup(BrnToggleGroupComponent), BRN_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR], exportAs: ["brnToggleGroup"], ngImport: i0, template: `
144
144
  <ng-content />
145
- `, isInline: true });
145
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
146
  }
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnToggleGroupComponent, decorators: [{
148
148
  type: Component,
@@ -162,6 +162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
162
162
  template: `
163
163
  <ng-content />
164
164
  `,
165
+ changeDetection: ChangeDetectionStrategy.OnPush,
165
166
  }]
166
167
  }] });
167
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-toggle-group.mjs","sources":["../../../../libs/brain/toggle-group/src/lib/brn-toggle-group.token.ts","../../../../libs/brain/toggle-group/src/lib/brn-toggle-group.component.ts","../../../../libs/brain/toggle-group/src/lib/brn-toggle-item.directive.ts","../../../../libs/brain/toggle-group/src/index.ts","../../../../libs/brain/toggle-group/src/spartan-ng-brain-toggle-group.ts"],"sourcesContent":["import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { BrnToggleGroupComponent } from './brn-toggle-group.component';\n\nconst BrnToggleGroupToken = new InjectionToken<BrnToggleGroupComponent>('BrnToggleGroupToken');\n\nexport function injectBrnToggleGroup<T>(): BrnToggleGroupComponent<T> | null {\n\treturn inject(BrnToggleGroupToken, { optional: true }) as BrnToggleGroupComponent<T> | null;\n}\n\nexport function provideBrnToggleGroup<T>(value: Type<BrnToggleGroupComponent<T>>): ExistingProvider {\n\treturn { provide: BrnToggleGroupToken, useExisting: value };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Component, booleanAttribute, computed, forwardRef, input, model, output, signal } from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { provideBrnToggleGroup } from './brn-toggle-group.token';\nimport { BrnToggleGroupItemDirective } from './brn-toggle-item.directive';\n\nexport const BRN_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnToggleGroupComponent),\n\tmulti: true,\n};\n\nexport class BrnButtonToggleChange<T = unknown> {\n\tconstructor(\n\t\tpublic source: BrnToggleGroupItemDirective<T>,\n\t\tpublic value: ToggleValue<T>,\n\t) {}\n}\n\n@Component({\n\tselector: 'brn-toggle-group',\n\tstandalone: true,\n\tproviders: [provideBrnToggleGroup(BrnToggleGroupComponent), BRN_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n\thost: {\n\t\trole: 'group',\n\t\tclass: 'brn-button-toggle-group',\n\t\t'[attr.aria-disabled]': 'state().disabled()',\n\t\t'[attr.data-disabled]': 'state().disabled()',\n\t\t'[attr.data-vertical]': 'vertical()',\n\t\t'(focusout)': 'onTouched()',\n\t},\n\texportAs: 'brnToggleGroup',\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnToggleGroupComponent<T = unknown> implements ControlValueAccessor {\n\t/**\n\t * The method to be called in order to update ngModel.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: (value: ToggleValue<T>) => void = () => {};\n\n\t/** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected onTouched: () => void = () => {};\n\n\t/** Whether the button toggle group has a vertical orientation */\n\tpublic readonly vertical = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Value of the toggle group. */\n\tpublic readonly value = model<ToggleValue<T>>(undefined);\n\n\t/** Whether no button toggles need to be selected. */\n\tpublic readonly nullable = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether multiple button toggles can be selected. */\n\tpublic readonly multiple = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether the button toggle group is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The internal state of the component. This can be replaced with linkedSignal in the future. */\n\tpublic readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\t/** Emit event when the group value changes. */\n\tpublic readonly change = output<BrnButtonToggleChange<T>>();\n\n\twriteValue(value: ToggleValue<T>): void {\n\t\tthis.value.set(value);\n\t}\n\n\tregisterOnChange(fn: (value: ToggleValue<T>) => void) {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void) {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\t/**\n\t * @internal\n\t * Determines whether a value can be set on the group.\n\t */\n\tcanDeselect(value: ToggleValue<T>): boolean {\n\t\t// if null values are allowed, the group can always be nullable\n\t\tif (this.nullable()) return true;\n\n\t\tconst currentValue = this.value();\n\n\t\tif (this.multiple() && Array.isArray(currentValue)) {\n\t\t\treturn !(currentValue.length === 1 && currentValue[0] === value);\n\t\t}\n\n\t\treturn currentValue !== value;\n\t}\n\n\t/**\n\t * @internal\n\t * Selects a value.\n\t */\n\tselect(value: T, source: BrnToggleGroupItemDirective<T>): void {\n\t\tif (this.state().disabled() || this.isSelected(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentValue = this.value();\n\n\t\t// emit the valueChange event here as we should only emit based on user interaction\n\t\tif (this.multiple()) {\n\t\t\tthis.emitSelectionChange([...((currentValue ?? []) as T[]), value], source);\n\t\t} else {\n\t\t\tthis.emitSelectionChange(value, source);\n\t\t}\n\n\t\tthis._onChange(this.value());\n\t\tthis.change.emit(new BrnButtonToggleChange<T>(source, this.value()));\n\t}\n\n\t/**\n\t * @internal\n\t * Deselects a value.\n\t */\n\tdeselect(value: T, source: BrnToggleGroupItemDirective<T>): void {\n\t\tif (this.state().disabled() || !this.isSelected(value) || !this.canDeselect(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentValue = this.value();\n\n\t\tif (this.multiple()) {\n\t\t\tthis.emitSelectionChange(\n\t\t\t\t((currentValue ?? []) as T[]).filter((v) => v !== value),\n\t\t\t\tsource,\n\t\t\t);\n\t\t} else if (currentValue === value) {\n\t\t\tthis.emitSelectionChange(null, source);\n\t\t}\n\t}\n\n\t/**\n\t * @internal\n\t * Determines whether a value is selected.\n\t */\n\tisSelected(value: T): boolean {\n\t\tconst currentValue = this.value();\n\n\t\tif (\n\t\t\tcurrentValue == null ||\n\t\t\tcurrentValue === undefined ||\n\t\t\t(Array.isArray(currentValue) && currentValue.length === 0)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\treturn (currentValue as T[])?.includes(value);\n\t\t}\n\t\treturn currentValue === value;\n\t}\n\n\t/** Update the value of the group */\n\tprivate emitSelectionChange(value: ToggleValue<T>, source: BrnToggleGroupItemDirective<T>): void {\n\t\tthis.value.set(value);\n\t\tthis._onChange(value);\n\t\tthis.change.emit(new BrnButtonToggleChange<T>(source, this.value()));\n\t}\n}\n\ntype ToggleValue<T> = T | T[] | null | undefined;\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { injectBrnToggleGroup } from './brn-toggle-group.token';\n\n@Directive({\n\tselector: 'button[hlmToggleGroupItem], button[brnToggleGroupItem]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': 'disabled() || group?.disabled() ? true : null',\n\t\t'[attr.data-disabled]': 'disabled() || group?.disabled() ? true : null',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.aria-pressed]': 'isOn()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnToggleGroupItemDirective<T> {\n\tprivate static _uniqueId = 0;\n\n\tprivate readonly _changeDetector = inject(ChangeDetectorRef);\n\n\t/** Access the toggle group if available. */\n\tprotected readonly group = injectBrnToggleGroup<T>();\n\n\t/** The id of the toggle. */\n\tpublic readonly id = input(`brn-toggle-group-item-${BrnToggleGroupItemDirective._uniqueId++}`);\n\n\t/** The value this toggle represents. */\n\tpublic readonly value = input<T>();\n\n\t/** Whether the toggle is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The current state of the toggle when not used in a group. */\n\tpublic readonly state = model<'on' | 'off'>('off');\n\n\t/** Whether the toggle is responds to click events. */\n\tpublic readonly disableToggleClick = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether the toggle is in the on state. */\n\tprotected readonly isOn = computed(() => this._state() === 'on');\n\n\t/** The current state that reflects the group state or the model state. */\n\tprotected readonly _state = computed(() => {\n\t\tif (this.group) {\n\t\t\treturn this.group.isSelected(this.value() as T) ? 'on' : 'off';\n\t\t}\n\t\treturn this.state();\n\t});\n\n\ttoggle(): void {\n\t\tif (this.disableToggleClick()) return;\n\n\t\tif (this.group) {\n\t\t\tif (this.isOn()) {\n\t\t\t\tthis.group.deselect(this.value() as T, this);\n\t\t\t} else {\n\t\t\t\tthis.group.select(this.value() as T, this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.set(this.isOn() ? 'off' : 'on');\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnToggleGroupComponent } from './lib/brn-toggle-group.component';\nimport { BrnToggleGroupItemDirective } from './lib/brn-toggle-item.directive';\n\nexport * from './lib/brn-toggle-group.component';\nexport * from './lib/brn-toggle-item.directive';\n\n@NgModule({\n\timports: [BrnToggleGroupItemDirective, BrnToggleGroupComponent],\n\texports: [BrnToggleGroupItemDirective, BrnToggleGroupComponent],\n})\nexport class BrnToggleGroupModule {}\n\n@NgModule({\n\timports: [BrnToggleGroupItemDirective],\n\texports: [BrnToggleGroupItemDirective],\n})\nexport class BrnToggleGroupItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-toggle-group.mjs","sources":["../../../../libs/brain/toggle-group/src/lib/brn-toggle-group.token.ts","../../../../libs/brain/toggle-group/src/lib/brn-toggle-group.component.ts","../../../../libs/brain/toggle-group/src/lib/brn-toggle-item.directive.ts","../../../../libs/brain/toggle-group/src/index.ts","../../../../libs/brain/toggle-group/src/spartan-ng-brain-toggle-group.ts"],"sourcesContent":["import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { BrnToggleGroupComponent } from './brn-toggle-group.component';\n\nconst BrnToggleGroupToken = new InjectionToken<BrnToggleGroupComponent>('BrnToggleGroupToken');\n\nexport function injectBrnToggleGroup<T>(): BrnToggleGroupComponent<T> | null {\n\treturn inject(BrnToggleGroupToken, { optional: true }) as BrnToggleGroupComponent<T> | null;\n}\n\nexport function provideBrnToggleGroup<T>(value: Type<BrnToggleGroupComponent<T>>): ExistingProvider {\n\treturn { provide: BrnToggleGroupToken, useExisting: value };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tbooleanAttribute,\n\tcomputed,\n\tforwardRef,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { provideBrnToggleGroup } from './brn-toggle-group.token';\nimport { BrnToggleGroupItemDirective } from './brn-toggle-item.directive';\n\nexport const BRN_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnToggleGroupComponent),\n\tmulti: true,\n};\n\nexport class BrnButtonToggleChange<T = unknown> {\n\tconstructor(\n\t\tpublic source: BrnToggleGroupItemDirective<T>,\n\t\tpublic value: ToggleValue<T>,\n\t) {}\n}\n\n@Component({\n\tselector: 'brn-toggle-group',\n\tstandalone: true,\n\tproviders: [provideBrnToggleGroup(BrnToggleGroupComponent), BRN_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n\thost: {\n\t\trole: 'group',\n\t\tclass: 'brn-button-toggle-group',\n\t\t'[attr.aria-disabled]': 'state().disabled()',\n\t\t'[attr.data-disabled]': 'state().disabled()',\n\t\t'[attr.data-vertical]': 'vertical()',\n\t\t'(focusout)': 'onTouched()',\n\t},\n\texportAs: 'brnToggleGroup',\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnToggleGroupComponent<T = unknown> implements ControlValueAccessor {\n\t/**\n\t * The method to be called in order to update ngModel.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: (value: ToggleValue<T>) => void = () => {};\n\n\t/** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected onTouched: () => void = () => {};\n\n\t/** Whether the button toggle group has a vertical orientation */\n\tpublic readonly vertical = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Value of the toggle group. */\n\tpublic readonly value = model<ToggleValue<T>>(undefined);\n\n\t/** Whether no button toggles need to be selected. */\n\tpublic readonly nullable = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether multiple button toggles can be selected. */\n\tpublic readonly multiple = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether the button toggle group is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The internal state of the component. This can be replaced with linkedSignal in the future. */\n\tpublic readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\t/** Emit event when the group value changes. */\n\tpublic readonly change = output<BrnButtonToggleChange<T>>();\n\n\twriteValue(value: ToggleValue<T>): void {\n\t\tthis.value.set(value);\n\t}\n\n\tregisterOnChange(fn: (value: ToggleValue<T>) => void) {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void) {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\t/**\n\t * @internal\n\t * Determines whether a value can be set on the group.\n\t */\n\tcanDeselect(value: ToggleValue<T>): boolean {\n\t\t// if null values are allowed, the group can always be nullable\n\t\tif (this.nullable()) return true;\n\n\t\tconst currentValue = this.value();\n\n\t\tif (this.multiple() && Array.isArray(currentValue)) {\n\t\t\treturn !(currentValue.length === 1 && currentValue[0] === value);\n\t\t}\n\n\t\treturn currentValue !== value;\n\t}\n\n\t/**\n\t * @internal\n\t * Selects a value.\n\t */\n\tselect(value: T, source: BrnToggleGroupItemDirective<T>): void {\n\t\tif (this.state().disabled() || this.isSelected(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentValue = this.value();\n\n\t\t// emit the valueChange event here as we should only emit based on user interaction\n\t\tif (this.multiple()) {\n\t\t\tthis.emitSelectionChange([...((currentValue ?? []) as T[]), value], source);\n\t\t} else {\n\t\t\tthis.emitSelectionChange(value, source);\n\t\t}\n\n\t\tthis._onChange(this.value());\n\t\tthis.change.emit(new BrnButtonToggleChange<T>(source, this.value()));\n\t}\n\n\t/**\n\t * @internal\n\t * Deselects a value.\n\t */\n\tdeselect(value: T, source: BrnToggleGroupItemDirective<T>): void {\n\t\tif (this.state().disabled() || !this.isSelected(value) || !this.canDeselect(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentValue = this.value();\n\n\t\tif (this.multiple()) {\n\t\t\tthis.emitSelectionChange(\n\t\t\t\t((currentValue ?? []) as T[]).filter((v) => v !== value),\n\t\t\t\tsource,\n\t\t\t);\n\t\t} else if (currentValue === value) {\n\t\t\tthis.emitSelectionChange(null, source);\n\t\t}\n\t}\n\n\t/**\n\t * @internal\n\t * Determines whether a value is selected.\n\t */\n\tisSelected(value: T): boolean {\n\t\tconst currentValue = this.value();\n\n\t\tif (\n\t\t\tcurrentValue == null ||\n\t\t\tcurrentValue === undefined ||\n\t\t\t(Array.isArray(currentValue) && currentValue.length === 0)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\treturn (currentValue as T[])?.includes(value);\n\t\t}\n\t\treturn currentValue === value;\n\t}\n\n\t/** Update the value of the group */\n\tprivate emitSelectionChange(value: ToggleValue<T>, source: BrnToggleGroupItemDirective<T>): void {\n\t\tthis.value.set(value);\n\t\tthis._onChange(value);\n\t\tthis.change.emit(new BrnButtonToggleChange<T>(source, this.value()));\n\t}\n}\n\ntype ToggleValue<T> = T | T[] | null | undefined;\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { injectBrnToggleGroup } from './brn-toggle-group.token';\n\n@Directive({\n\tselector: 'button[hlmToggleGroupItem], button[brnToggleGroupItem]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': 'disabled() || group?.disabled() ? true : null',\n\t\t'[attr.data-disabled]': 'disabled() || group?.disabled() ? true : null',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.aria-pressed]': 'isOn()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnToggleGroupItemDirective<T> {\n\tprivate static _uniqueId = 0;\n\n\tprivate readonly _changeDetector = inject(ChangeDetectorRef);\n\n\t/** Access the toggle group if available. */\n\tprotected readonly group = injectBrnToggleGroup<T>();\n\n\t/** The id of the toggle. */\n\tpublic readonly id = input(`brn-toggle-group-item-${BrnToggleGroupItemDirective._uniqueId++}`);\n\n\t/** The value this toggle represents. */\n\tpublic readonly value = input<T>();\n\n\t/** Whether the toggle is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The current state of the toggle when not used in a group. */\n\tpublic readonly state = model<'on' | 'off'>('off');\n\n\t/** Whether the toggle is responds to click events. */\n\tpublic readonly disableToggleClick = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Whether the toggle is in the on state. */\n\tprotected readonly isOn = computed(() => this._state() === 'on');\n\n\t/** The current state that reflects the group state or the model state. */\n\tprotected readonly _state = computed(() => {\n\t\tif (this.group) {\n\t\t\treturn this.group.isSelected(this.value() as T) ? 'on' : 'off';\n\t\t}\n\t\treturn this.state();\n\t});\n\n\ttoggle(): void {\n\t\tif (this.disableToggleClick()) return;\n\n\t\tif (this.group) {\n\t\t\tif (this.isOn()) {\n\t\t\t\tthis.group.deselect(this.value() as T, this);\n\t\t\t} else {\n\t\t\t\tthis.group.select(this.value() as T, this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.set(this.isOn() ? 'off' : 'on');\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnToggleGroupComponent } from './lib/brn-toggle-group.component';\nimport { BrnToggleGroupItemDirective } from './lib/brn-toggle-item.directive';\n\nexport * from './lib/brn-toggle-group.component';\nexport * from './lib/brn-toggle-item.directive';\n\n@NgModule({\n\timports: [BrnToggleGroupItemDirective, BrnToggleGroupComponent],\n\texports: [BrnToggleGroupItemDirective, BrnToggleGroupComponent],\n})\nexport class BrnToggleGroupModule {}\n\n@NgModule({\n\timports: [BrnToggleGroupItemDirective],\n\texports: [BrnToggleGroupItemDirective],\n})\nexport class BrnToggleGroupItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spartan-ng/brain",
3
- "version": "0.0.1-alpha.457",
3
+ "version": "0.0.1-alpha.458",
4
4
  "sideEffects": false,
5
5
  "exports": {
6
6
  "./hlm-tailwind-preset": {
@@ -1,8 +1,10 @@
1
- import { type AfterViewInit, OnDestroy } from '@angular/core';
1
+ import { type AfterViewInit, OnDestroy, OnInit } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- export declare class BrnSelectTriggerDirective<T> implements AfterViewInit, OnDestroy {
4
+ export declare class BrnSelectTriggerDirective<T> implements AfterViewInit, OnDestroy, OnInit {
5
5
  private readonly _elementRef;
6
+ /** Access the change detector */
7
+ private readonly _changeDetector;
6
8
  protected readonly _select: import("@spartan-ng/brain/select").BrnSelectComponent<T>;
7
9
  protected readonly _ngControl: NgControl | null;
8
10
  private readonly _platform;
@@ -11,7 +13,9 @@ export declare class BrnSelectTriggerDirective<T> implements AfterViewInit, OnDe
11
13
  protected readonly _disabled: import("@angular/core").Signal<boolean>;
12
14
  protected readonly _labelledBy: import("@angular/core").Signal<string | import("@angular/core").InputSignal<string>>;
13
15
  private _resizeObserver?;
16
+ private _statusChangedSubscription?;
14
17
  constructor();
18
+ ngOnInit(): void;
15
19
  ngAfterViewInit(): void;
16
20
  ngOnDestroy(): void;
17
21
  focus(): void;
@@ -15,6 +15,8 @@ export type PaginatorContext = {
15
15
  decrementable: Signal<boolean>;
16
16
  increment: () => void;
17
17
  decrement: () => void;
18
+ goToFirstPage: () => void;
19
+ goToLastPage: () => void;
18
20
  };
19
21
  };
20
22
  export declare class BrnPaginatorDirective implements OnInit {
@@ -31,6 +33,7 @@ export declare class BrnPaginatorDirective implements OnInit {
31
33
  constructor();
32
34
  ngOnInit(): void;
33
35
  decrementPage(): void;
36
+ goToLastPage(): void;
34
37
  incrementPage(): void;
35
38
  reset(): void;
36
39
  private calculateNewState;