@ngbase/adk 0.1.9 → 0.1.11

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":"ngbase-adk-table.mjs","sources":["../../../projects/adk/table/head-cell.ts","../../../projects/adk/table/column.ts","../../../projects/adk/table/body-cell.ts","../../../projects/adk/table/head-row.ts","../../../projects/adk/table/table.ts","../../../projects/adk/table/body-row.ts","../../../projects/adk/table/public-api.ts","../../../projects/adk/table/ngbase-adk-table.ts"],"sourcesContent":["import { Directive, inject } from '@angular/core';\nimport { NgbColumn } from './column';\n\n@Directive({\n selector: '[ngbHead]',\n host: {\n '[class]': `column.sticky() === 'start' ? 'sticky left-0 border-r z-10' : column.sticky() === 'end' ? 'sticky right-0 border-l z-10' : ''`,\n },\n})\nexport class NgbHead {\n readonly column = inject(NgbColumn);\n readonly sticky = this.column.sticky;\n}\n\n@Directive({\n selector: '[ngbHeadDef]',\n})\nexport class NgbHeadDef {}\n","import { Directive, input, contentChild, TemplateRef } from '@angular/core';\nimport { NgbCellDef } from './body-cell';\nimport { NgbHeadDef } from './head-cell';\n\n@Directive({\n selector: '[ngbColumn]',\n})\nexport class NgbColumn {\n readonly ngbColumn = input.required<string>();\n readonly sticky = input<'start' | 'end' | ''>('');\n readonly cells = contentChild(NgbCellDef, { read: TemplateRef });\n readonly heads = contentChild(NgbHeadDef, { read: TemplateRef });\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbColumn } from './column';\n\n@Directive({\n selector: '[ngbCell]',\n host: {\n '[class]': `column.sticky() === 'start' ? 'sticky left-0 border-r z-10' : column.sticky() === 'end' ? 'sticky right-0 border-l z-10' : ''`,\n },\n})\nexport class NgbCell {\n readonly column = inject(NgbColumn);\n}\n\n@Directive({\n selector: '[ngbCellDef]',\n})\nexport class NgbCellDef {}\n","import {\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n input,\n OnDestroy,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgbColumn } from './column';\nimport { NgbTable, ROW_TOKEN } from './table';\n\n@Directive({\n selector: '[ngbHeadRowDef]',\n})\nexport class NgbHeadRowDef {\n readonly ngbHeadRowDef = input<string[]>();\n readonly ngbHeadRowDefSticky = input();\n}\n\n@Directive({\n selector: '[ngbHeadRow]',\n host: {\n '[attr.data-sticky]': 'headDef.ngbHeadRowDefSticky()',\n },\n})\nexport class NgbHeadRow implements OnDestroy {\n def = inject(ROW_TOKEN);\n table = inject(NgbTable);\n container = viewChild('container', { read: ViewContainerRef });\n ref = new Map<NgbColumn, EmbeddedViewRef<any>>();\n headDef = inject(NgbHeadRowDef);\n\n constructor() {\n effect(() => {\n const columns = this.table.columns();\n this.ref.forEach((ref, column) => {\n if (!columns.includes(column)) {\n ref.destroy();\n this.ref.delete(column);\n return;\n }\n });\n const cols = this.headDef.ngbHeadRowDef();\n columns.forEach((column, index) => {\n if (!cols?.includes(column.ngbColumn())) {\n if (this.ref.has(column)) {\n const ref = this.ref.get(column);\n ref!.destroy();\n this.ref.delete(column);\n }\n return;\n }\n if (!this.ref.has(column)) {\n // maintain the order of the columns\n const ref = this.container()!.createEmbeddedView(column.heads()!, undefined, { index });\n this.ref.set(column, ref);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.container()!.clear();\n }\n}\n","import {\n contentChild,\n contentChildren,\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n InjectionToken,\n Injector,\n input,\n IterableDiffer,\n IterableDiffers,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgbColumn } from './column';\n\nimport { NgbBodyRowDef } from './body-row';\nimport { NgbHeadRowDef } from './head-row';\n\nexport const ROW_TOKEN = new InjectionToken<any>('ROW_TOKEN');\n\n@Directive({\n selector: 'table[ngbTable]',\n})\nexport class NgbTable<T> {\n private readonly injector = inject(Injector);\n private readonly differs = inject(IterableDiffers);\n\n private readonly thead = viewChild('thead', { read: ViewContainerRef });\n private readonly tbody = viewChild('tbody', { read: ViewContainerRef });\n private readonly bodyRowDef = contentChildren(NgbBodyRowDef, { read: TemplateRef });\n private readonly headRowDef = contentChild(NgbHeadRowDef, { read: TemplateRef });\n readonly columns = contentChildren(NgbColumn);\n\n readonly data = input.required<T[]>();\n readonly trackBy = input<(index: number, item: T) => any>((_, item) => item);\n\n private _dataDiffers?: IterableDiffer<T>;\n private readonly _values = new WeakMap<EmbeddedViewRef<TableOutletContext<T>>, T>();\n private readonly valuesTracker = new Map<string, any>();\n\n constructor() {\n let headerRendered = false;\n effect(() => {\n const thead = this.thead()!;\n const tbody = this.tbody()!;\n const headRowDef = this.headRowDef()!;\n const bodyRowDefs = this.bodyRowDef()!;\n const data = this.data();\n\n this._dataDiffers ??= this.differs.find([]).create(this.trackBy());\n const changes = this._dataDiffers?.diff(data);\n\n if (!changes) {\n return;\n }\n\n // append head row\n if (!headerRendered) {\n const value = null;\n const injector = Injector.create({\n providers: [{ provide: ROW_TOKEN, useValue: value }],\n parent: this.injector,\n });\n thead.createEmbeddedView(headRowDef, { $implicit: value }, { injector });\n headerRendered = true;\n }\n\n const len = bodyRowDefs.length;\n\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n const value = item.item;\n this.valuesTracker.set(this.trackBy()(currentIndex!, item.item), value);\n const injector = Injector.create({\n providers: [{ provide: ROW_TOKEN, useValue: value }],\n parent: this.injector,\n });\n const i = currentIndex! * len;\n for (let j = 0; j < len; j++) {\n const ref = tbody.createEmbeddedView(\n bodyRowDefs[j],\n { $implicit: value },\n { injector, index: i + j },\n );\n this._values.set(ref, item.item);\n }\n } else if (currentIndex == null) {\n for (let i = 0; i < len; i++) {\n const ref = tbody.get(adjustedPreviousIndex! * len);\n ref?.destroy();\n }\n // tbody.remove(adjustedPreviousIndex!);\n } else {\n // based on current and previous index we need to check whether we need to do 1 or -1\n for (let i = 0; i < len; i++) {\n const ref = tbody.get(adjustedPreviousIndex! * len + i);\n tbody.move(ref!, currentIndex! * len + i);\n }\n }\n });\n\n // update rows\n changes.forEachIdentityChange(record => {\n const id = this.trackBy()(record.currentIndex!, record.item);\n const value = this.valuesTracker.get(id)!;\n value?.data.set(record.item);\n });\n\n this._updateItemIndexContext();\n });\n }\n\n private _updateItemIndexContext() {\n const viewContainer = this.tbody()!;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex) as any;\n const context = viewRef.context as TableOutletContext<T>;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n context.index = renderIndex;\n }\n }\n}\n\nexport class TableOutletContext<T> {\n $implicit: T;\n index?: number;\n count?: number;\n first?: boolean;\n last?: boolean;\n even?: boolean;\n odd?: boolean;\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n","import {\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n input,\n OnDestroy,\n untracked,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgbColumn } from './column';\nimport { NgbTable, ROW_TOKEN } from './table';\n\n@Directive({ selector: '[ngbBodyRowDef]' })\nexport class NgbBodyRowDef {\n readonly ngbBodyRowDefColumns = input<string[]>([]);\n context: any;\n}\n\n@Directive({\n selector: '[ngbBodyRow]',\n})\nexport class NgbBodyRow implements OnDestroy {\n readonly def = inject(ROW_TOKEN);\n readonly table = inject(NgbTable);\n readonly rowDef = inject(NgbBodyRowDef);\n\n readonly container = viewChild('container', { read: ViewContainerRef });\n readonly ref = new Map<NgbColumn, EmbeddedViewRef<any>>();\n\n constructor() {\n effect(() => {\n const data = this.def;\n const rows = this.table.columns();\n // Remove rows that are no longer in the definition\n this.ref.forEach((ref, row) => {\n if (!rows.includes(row)) {\n ref.destroy();\n this.ref.delete(row);\n }\n });\n\n const cols = this.rowDef.ngbBodyRowDefColumns();\n rows.forEach((row, index) => {\n if (!cols?.includes(row.ngbColumn())) {\n if (this.ref.has(row)) {\n const ref = this.ref.get(row);\n ref!.destroy();\n this.ref.delete(row);\n }\n return;\n }\n if (this.ref.has(row)) {\n const ref = this.ref.get(row);\n ref!.context.$implicit = data;\n ref!.markForCheck();\n return;\n }\n\n const ref = untracked(() => {\n // maintain the order of the columns\n return this.container()!.createEmbeddedView(row.cells()!, { $implicit: data }, { index });\n });\n this.ref.set(row, ref);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.container()!.clear();\n this.ref.clear();\n }\n}\n","import { NgbCell, NgbCellDef } from './body-cell';\nimport { NgbBodyRow, NgbBodyRowDef } from './body-row';\nimport { NgbColumn } from './column';\nimport { NgbHead, NgbHeadDef } from './head-cell';\nimport { NgbHeadRow, NgbHeadRowDef } from './head-row';\nimport { NgbTable } from './table';\n\nconst TableComponents = [\n NgbBodyRow,\n NgbBodyRowDef,\n NgbCell,\n NgbCellDef,\n NgbHead,\n NgbHeadDef,\n NgbHeadRow,\n NgbHeadRowDef,\n NgbColumn,\n NgbTable,\n];\n\nexport {\n NgbBodyRow,\n NgbBodyRowDef,\n NgbCell,\n NgbCellDef,\n NgbHead,\n NgbHeadDef,\n NgbHeadRow,\n NgbHeadRowDef,\n NgbColumn,\n NgbTable,\n TableComponents,\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-table.mjs","sources":["../../../projects/adk/table/head-cell.ts","../../../projects/adk/table/column.ts","../../../projects/adk/table/body-cell.ts","../../../projects/adk/table/head-row.ts","../../../projects/adk/table/table.ts","../../../projects/adk/table/body-row.ts","../../../projects/adk/table/sort.ts","../../../projects/adk/table/ngbase-adk-table.ts"],"sourcesContent":["import { Directive, inject } from '@angular/core';\nimport { NgbColumn } from './column';\n\n@Directive({\n selector: '[ngbHead]',\n host: {\n '[attr.data-sticky]': 'column.sticky() || undefined',\n },\n})\nexport class NgbHead {\n readonly column = inject(NgbColumn);\n readonly sticky = this.column.sticky;\n}\n\n@Directive({\n selector: '[ngbHeadDef]',\n})\nexport class NgbHeadDef {}\n","import { Directive, input, contentChild, TemplateRef } from '@angular/core';\nimport { NgbCellDef } from './body-cell';\nimport { NgbHeadDef } from './head-cell';\n\n@Directive({\n selector: '[ngbColumn]',\n})\nexport class NgbColumn {\n readonly ngbColumn = input.required<string>();\n readonly sticky = input<'start' | 'end' | ''>('');\n readonly cells = contentChild(NgbCellDef, { read: TemplateRef });\n readonly heads = contentChild(NgbHeadDef, { read: TemplateRef });\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbColumn } from './column';\n\n@Directive({\n selector: '[ngbCell]',\n host: {\n '[class]': `column.sticky() === 'start' ? 'sticky left-0 border-r z-10' : column.sticky() === 'end' ? 'sticky right-0 border-l z-10' : ''`,\n },\n})\nexport class NgbCell {\n readonly column = inject(NgbColumn);\n}\n\n@Directive({\n selector: '[ngbCellDef]',\n})\nexport class NgbCellDef {}\n","import {\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n input,\n OnDestroy,\n untracked,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgbColumn } from './column';\nimport { NgbTable } from './table';\n\n@Directive({\n selector: '[ngbHeadRowDef]',\n})\nexport class NgbHeadRowDef {\n readonly ngbHeadRowDef = input.required<string[]>();\n readonly ngbHeadRowDefSticky = input();\n}\n\n@Directive({\n selector: '[ngbHeadRow]',\n host: {\n '[attr.data-sticky]': 'headDef.ngbHeadRowDefSticky() || undefined',\n },\n})\nexport class NgbHeadRow implements OnDestroy {\n readonly headDef = inject(NgbHeadRowDef);\n readonly table = inject(NgbTable);\n readonly container = viewChild.required('container', { read: ViewContainerRef });\n readonly ref = new Map<NgbColumn, EmbeddedViewRef<any>>();\n\n constructor() {\n effect(() => {\n const columns = this.table.columns();\n const displayColumns = this.headDef.ngbHeadRowDef();\n columns.forEach(column => {\n const index = displayColumns.indexOf(column.ngbColumn());\n if (index === -1) {\n const ref = this.ref.get(column);\n if (ref) {\n ref.destroy();\n this.ref.delete(column);\n }\n return;\n }\n if (!this.ref.has(column)) {\n // maintain the order of the columns\n const ref = untracked(() =>\n this.container().createEmbeddedView(column.heads()!, undefined, { index }),\n );\n this.ref.set(column, ref);\n } else {\n const ref = this.ref.get(column);\n this.container().move(ref!, index);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.container().clear();\n }\n}\n\nexport function aliasHeadRow(headRow: typeof NgbHeadRow) {\n return { provide: NgbHeadRow, useExisting: headRow };\n}\n","import {\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n InjectionToken,\n Injector,\n input,\n IterableDiffer,\n IterableDiffers,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n WritableSignal,\n} from '@angular/core';\nimport { NgbColumn } from './column';\n\nimport { NgbBodyRowDef } from './body-row';\nimport { NgbHeadRowDef } from './head-row';\n\nexport const TABLE_ROW_DATA = new InjectionToken<WritableSignal<any>>('TABLE_ROW_DATA');\n\n@Directive({\n selector: 'table[ngbTable]',\n})\nexport class NgbTable<T> {\n private readonly injector = inject(Injector);\n private readonly differs = inject(IterableDiffers);\n\n private readonly thead = viewChild.required('thead', { read: ViewContainerRef });\n private readonly tbody = viewChild.required('tbody', { read: ViewContainerRef });\n private readonly bodyRowDef = contentChildren(NgbBodyRowDef, { read: TemplateRef });\n private readonly headRowDef = contentChild.required(NgbHeadRowDef, { read: TemplateRef });\n readonly columns = contentChildren(NgbColumn);\n\n readonly plugins = signal<Set<(data: T[]) => T[]>>(new Set());\n readonly data = input.required<T[]>();\n readonly trackBy = input<(index: number, item: T) => any>((_, item) => item);\n\n protected readonly pluggedData = computed(() => {\n return Array.from(this.plugins()).reduce((acc, plugin) => plugin(acc), this.data());\n });\n private _dataDiffers?: IterableDiffer<T>;\n private readonly _values = new WeakMap<EmbeddedViewRef<TableOutletContext<T>>, T>();\n\n constructor() {\n effect(cleanup => {\n const headRowDef = this.headRowDef();\n const thead = this.thead();\n\n // append head row\n const injector = Injector.create({ providers: [], parent: this.injector });\n thead.createEmbeddedView(headRowDef, {}, { injector });\n cleanup(() => thead.clear());\n });\n\n effect(() => {\n const tbody = this.tbody()!;\n const bodyRowDefs = this.bodyRowDef();\n const data = this.pluggedData();\n\n this._dataDiffers ??= this.differs.find([]).create(this.trackBy());\n const changes = this._dataDiffers?.diff(data);\n\n if (!changes) {\n return;\n }\n\n const len = bodyRowDefs.length;\n\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n const value = item.item;\n const data = signal(value);\n const injector = Injector.create({\n providers: [{ provide: TABLE_ROW_DATA, useValue: data }],\n parent: this.injector,\n });\n const i = currentIndex! * len;\n for (let j = 0; j < len; j++) {\n const ref = tbody.createEmbeddedView(\n bodyRowDefs[j],\n { $implicit: value, _data: data },\n { injector, index: i + j },\n );\n this._values.set(ref, item.item);\n }\n } else if (currentIndex == null) {\n for (let i = 0; i < len; i++) {\n const ref = tbody.get(adjustedPreviousIndex! * len);\n ref?.destroy();\n }\n // tbody.remove(adjustedPreviousIndex!);\n } else {\n // based on current and previous index we need to check whether we need to do 1 or -1\n for (let i = 0; i < len; i++) {\n const ref = tbody.get(adjustedPreviousIndex! * len + i);\n tbody.move(ref!, currentIndex! * len + i);\n }\n }\n });\n\n // update rows\n changes.forEachIdentityChange(record => {\n const ref = tbody.get(record.currentIndex!) as any;\n if (ref) {\n const context = ref.context as TableOutletContext<T>;\n context._data.set(record.item);\n }\n });\n\n this._updateItemIndexContext();\n });\n }\n\n private _updateItemIndexContext() {\n const viewContainer = this.tbody()!;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex) as any;\n const context = viewRef.context as TableOutletContext<T>;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n context.index = renderIndex;\n }\n }\n}\n\nexport function aliasTable(table: typeof NgbTable) {\n return { provide: NgbTable, useExisting: table };\n}\n\nexport class TableOutletContext<T> {\n _data: WritableSignal<T>;\n $implicit: T;\n index?: number;\n count?: number;\n first?: boolean;\n last?: boolean;\n even?: boolean;\n odd?: boolean;\n constructor(data: T) {\n this.$implicit = data;\n this._data = signal(data);\n }\n}\n","import {\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n input,\n OnDestroy,\n untracked,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgbColumn } from './column';\nimport { NgbTable, TABLE_ROW_DATA } from './table';\n\n@Directive({ selector: '[ngbBodyRowDef]' })\nexport class NgbBodyRowDef {\n readonly ngbBodyRowDefColumns = input.required<string[]>();\n context: any;\n}\n\n@Directive({\n selector: '[ngbBodyRow]',\n})\nexport class NgbBodyRow implements OnDestroy {\n readonly rowData = inject(TABLE_ROW_DATA);\n readonly table = inject(NgbTable);\n readonly rowDef = inject(NgbBodyRowDef);\n\n readonly container = viewChild.required('container', { read: ViewContainerRef });\n readonly ref = new Map<NgbColumn, EmbeddedViewRef<any>>();\n\n constructor() {\n effect(() => {\n const data = this.rowData();\n const columns = this.table.columns();\n\n const cols = this.rowDef.ngbBodyRowDefColumns();\n columns.forEach(row => {\n const index = cols.indexOf(row.ngbColumn());\n if (index === -1) {\n const ref = this.ref.get(row);\n if (ref) {\n ref.destroy();\n this.ref.delete(row);\n }\n return;\n }\n let ref = this.ref.get(row);\n if (ref) {\n // move the row to the new index\n this.container().move(ref, index);\n ref.context.$implicit = data;\n ref.markForCheck();\n return;\n }\n\n ref = untracked(() => {\n // maintain the order of the columns\n return this.container().createEmbeddedView(row.cells()!, { $implicit: data }, { index });\n });\n this.ref.set(row, ref);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.container().clear();\n this.ref.clear();\n }\n}\n\nexport function aliasBodyRow(row: typeof NgbBodyRow) {\n return { provide: NgbBodyRow, useExisting: row };\n}\n","import {\n computed,\n Directive,\n effect,\n inject,\n input,\n model,\n output,\n untracked,\n} from '@angular/core';\nimport { NgbTable } from './table';\nimport { NgbColumn } from './column';\n\nexport type SortDirection = 'asc' | 'desc' | '';\n\nexport interface Sort {\n active: string;\n direction: SortDirection;\n}\n\nexport type SortFn<T> = (data: T[], column: string, direction: SortDirection) => T[];\n\n@Directive({\n selector: '[ngbSort]',\n exportAs: 'ngbSort',\n})\nexport class NgbSort<T> {\n private readonly table = inject(NgbTable);\n\n readonly sortFn = input<SortFn<T>>();\n readonly disableClear = input<boolean>(false);\n\n readonly sortColumn = model<string>('');\n readonly sortDirection = model<SortDirection>('');\n readonly sortMode = input<'client' | 'server'>('client');\n readonly sortChange = output<Sort>();\n\n constructor() {\n effect(cleanup => {\n if (this.sortMode() === 'client') {\n const sortFn = untracked(() => this.sortFn() || this.defaultSortFn);\n const fn = (data: T[]) => sortFn(data, this.sortColumn(), this.sortDirection());\n this.table.plugins.update(plugins => new Set([...plugins, fn]));\n cleanup(() => {\n this.table.plugins.update(\n plugins => new Set([...plugins].filter(plugin => plugin !== fn)),\n );\n });\n }\n });\n }\n\n private defaultSortFn: SortFn<T> = (data: T[], column: string, direction: SortDirection) => {\n let sorted = [...data];\n if (direction && column) {\n sorted = sorted.sort((a, b) => {\n const aValue = a[column as keyof T];\n const bValue = b[column as keyof T];\n\n if (aValue === bValue) return 0;\n if (aValue === null || aValue === undefined) return 1;\n if (bValue === null || bValue === undefined) return -1;\n\n const comparison = aValue < bValue ? -1 : 1;\n return direction === 'asc' ? comparison : -comparison;\n });\n }\n return sorted;\n };\n\n sort(column: string, direction?: SortDirection) {\n let currentDirection = this.sortDirection();\n const currentColumn = this.sortColumn();\n\n let newDirection: SortDirection;\n let newColumn: string;\n\n if (direction !== undefined) {\n newDirection = direction;\n newColumn = column;\n } else if (currentColumn === column) {\n if (currentDirection === 'asc') {\n newDirection = 'desc';\n newColumn = column;\n } else if (currentDirection === 'desc') {\n if (this.disableClear()) {\n newDirection = 'asc';\n newColumn = column;\n } else {\n newDirection = '';\n newColumn = '';\n }\n } else {\n newDirection = 'asc';\n newColumn = column;\n }\n } else {\n newDirection = 'asc';\n newColumn = column;\n }\n\n this.sortColumn.set(newColumn);\n this.sortDirection.set(newDirection);\n\n this.sortChange.emit({\n active: newColumn,\n direction: newDirection,\n });\n }\n}\n\n@Directive({\n selector: '[ngbSortHeader]',\n host: {\n '[attr.aria-sort]': 'sortDirection()',\n },\n})\nexport class NgbSortHeader<T extends NgbSort<U>, U = any> {\n readonly sort = inject<T>(NgbSort as any);\n readonly column = inject(NgbColumn);\n\n readonly disableClear = input<boolean>(false);\n readonly sortDirection = computed(() => {\n return this.column.ngbColumn() === this.sort.sortColumn()\n ? this.sort.sortDirection()\n : undefined;\n });\n\n setDirections(direction: SortDirection) {\n this.sort.sort(this.column.ngbColumn(), direction);\n }\n\n toggle() {\n this.sort.sort(\n this.column.ngbColumn(),\n this.sortDirection() === 'asc' ? 'desc' : this.sortDirection() === 'desc' ? '' : 'asc',\n );\n }\n}\n\nexport function aliasSort(directive: typeof NgbSort) {\n return { provide: NgbSort, useExisting: directive };\n}\n\nexport function aliasSortHeader(directive: typeof NgbSortHeader<any, any>) {\n return { provide: NgbSortHeader, useExisting: directive };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngbase/adk",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ng-base/ngbase.git"
@@ -44,10 +44,6 @@
44
44
  "types": "./autocomplete/index.d.ts",
45
45
  "default": "./fesm2022/ngbase-adk-autocomplete.mjs"
46
46
  },
47
- "./bidi": {
48
- "types": "./bidi/index.d.ts",
49
- "default": "./fesm2022/ngbase-adk-bidi.mjs"
50
- },
51
47
  "./avatar": {
52
48
  "types": "./avatar/index.d.ts",
53
49
  "default": "./fesm2022/ngbase-adk-avatar.mjs"
@@ -56,14 +52,18 @@
56
52
  "types": "./breadcrumb/index.d.ts",
57
53
  "default": "./fesm2022/ngbase-adk-breadcrumb.mjs"
58
54
  },
59
- "./cache": {
60
- "types": "./cache/index.d.ts",
61
- "default": "./fesm2022/ngbase-adk-cache.mjs"
55
+ "./bidi": {
56
+ "types": "./bidi/index.d.ts",
57
+ "default": "./fesm2022/ngbase-adk-bidi.mjs"
62
58
  },
63
59
  "./carousel": {
64
60
  "types": "./carousel/index.d.ts",
65
61
  "default": "./fesm2022/ngbase-adk-carousel.mjs"
66
62
  },
63
+ "./cache": {
64
+ "types": "./cache/index.d.ts",
65
+ "default": "./fesm2022/ngbase-adk-cache.mjs"
66
+ },
67
67
  "./checkbox": {
68
68
  "types": "./checkbox/index.d.ts",
69
69
  "default": "./fesm2022/ngbase-adk-checkbox.mjs"
@@ -208,10 +208,6 @@
208
208
  "types": "./switch/index.d.ts",
209
209
  "default": "./fesm2022/ngbase-adk-switch.mjs"
210
210
  },
211
- "./table": {
212
- "types": "./table/index.d.ts",
213
- "default": "./fesm2022/ngbase-adk-table.mjs"
214
- },
215
211
  "./tabs": {
216
212
  "types": "./tabs/index.d.ts",
217
213
  "default": "./fesm2022/ngbase-adk-tabs.mjs"
@@ -220,9 +216,9 @@
220
216
  "types": "./test/index.d.ts",
221
217
  "default": "./fesm2022/ngbase-adk-test.mjs"
222
218
  },
223
- "./toggle": {
224
- "types": "./toggle/index.d.ts",
225
- "default": "./fesm2022/ngbase-adk-toggle.mjs"
219
+ "./toggle-group": {
220
+ "types": "./toggle-group/index.d.ts",
221
+ "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
226
222
  },
227
223
  "./tooltip": {
228
224
  "types": "./tooltip/index.d.ts",
@@ -232,25 +228,29 @@
232
228
  "types": "./tour/index.d.ts",
233
229
  "default": "./fesm2022/ngbase-adk-tour.mjs"
234
230
  },
235
- "./translate": {
236
- "types": "./translate/index.d.ts",
237
- "default": "./fesm2022/ngbase-adk-translate.mjs"
231
+ "./table": {
232
+ "types": "./table/index.d.ts",
233
+ "default": "./fesm2022/ngbase-adk-table.mjs"
238
234
  },
239
235
  "./tree": {
240
236
  "types": "./tree/index.d.ts",
241
237
  "default": "./fesm2022/ngbase-adk-tree.mjs"
242
238
  },
239
+ "./translate": {
240
+ "types": "./translate/index.d.ts",
241
+ "default": "./fesm2022/ngbase-adk-translate.mjs"
242
+ },
243
243
  "./utils": {
244
244
  "types": "./utils/index.d.ts",
245
245
  "default": "./fesm2022/ngbase-adk-utils.mjs"
246
246
  },
247
+ "./toggle": {
248
+ "types": "./toggle/index.d.ts",
249
+ "default": "./fesm2022/ngbase-adk-toggle.mjs"
250
+ },
247
251
  "./virtualizer": {
248
252
  "types": "./virtualizer/index.d.ts",
249
253
  "default": "./fesm2022/ngbase-adk-virtualizer.mjs"
250
- },
251
- "./toggle-group": {
252
- "types": "./toggle-group/index.d.ts",
253
- "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
254
254
  }
255
255
  }
256
256
  }
@@ -17,7 +17,7 @@ import { Chip, ChipGroup } from '<%= basepath %>/chip';
17
17
 
18
18
  - **Outputs:**
19
19
 
20
- - `close`: void - Emits when the chip is closed
20
+ - `close`: PointerEvent - Emits when the close button is clicked
21
21
 
22
22
  ## Usage
23
23
 
@@ -4,7 +4,10 @@ import { ɵFocusStyles as focusStyles } from '<%= basepath %>/checkbox';
4
4
  @Directive({
5
5
  selector: '[<%= name %>InputStyle]',
6
6
  host: {
7
- class: `mis inline-block rounded-lg bg-transparent px-2.5 py-2 border font-normal min-h-10 ${focusStyles.focus} ${focusStyles.within}`,
7
+ '[class]':
8
+ "'mis inline-block rounded-lg bg-transparent px-2.5 py-2 border font-normal min-h-10 ' + focusStyles.focus + ' ' + focusStyles.within",
8
9
  },
9
10
  })
10
- export class InputStyle {}
11
+ export class InputStyle {
12
+ readonly focusStyles = focusStyles;
13
+ }
@@ -1,6 +1,6 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import { NgbList, NgbListActionGroup, provideList } from '@ngbase/adk/list';
3
- import { FocusStyle } from '../checkbox/focus-style.directive';
3
+ import { ɵFocusStyle as FocusStyle } from '<%= basepath %>/checkbox';
4
4
 
5
5
  @Directive({
6
6
  selector: '[<%= name %>ListStyle]',
@@ -1,5 +1,11 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
+ import {
3
+ booleanAttribute,
4
+ ChangeDetectionStrategy,
5
+ Component,
6
+ Directive,
7
+ input,
8
+ } from '@angular/core';
3
9
  import { FormsModule } from '@angular/forms';
4
10
  import { Icon } from '<%= basepath %>/icon';
5
11
  import { provideIcons } from '@ng-icons/core';
@@ -13,6 +19,7 @@ import {
13
19
  } from '@ngbase/adk/select';
14
20
  import { Option } from './option';
15
21
  import { SelectInput } from './select-input';
22
+ import { PopoverOptions } from '@ngbase/adk/popover';
16
23
 
17
24
  @Directive({
18
25
  selector: '[<%= name %>SelectOption]',
@@ -48,7 +55,9 @@ export class SelectOption<T> {}
48
55
  {{ cValue() || placeholder() }}
49
56
  </ng-content>
50
57
  </span>
51
- <<%= name %>-icon name="lucideChevronsUpDown" class="ml-0.5 text-muted-foreground" />
58
+ @if (!noIcon()) {
59
+ <<%= name %>-icon name="lucideChevronsUpDown" class="ml-0.5 text-muted-foreground" />
60
+ }
52
61
  </button>
53
62
 
54
63
  <!-- Options template -->
@@ -92,8 +101,8 @@ export class SelectOption<T> {}
92
101
  },
93
102
  })
94
103
  export class Select<T> extends NgbSelect<T> {
95
- override defaultOptions = {
104
+ readonly noIcon = input(false, { transform: booleanAttribute });
105
+ override defaultOptions: Partial<PopoverOptions> = {
96
106
  sideOffset: 16,
97
- offset1: 0,
98
107
  };
99
108
  }
@@ -1,7 +1,7 @@
1
1
  # Table
2
2
 
3
3
  ```typescript
4
- import { TableComponents } from '@/ui/table';
4
+ import { TableComponents, Sort, SortHeader, EmptyState } from '@/ui/table';
5
5
  ```
6
6
 
7
7
  ### `<%= name %>Table`
@@ -13,6 +13,29 @@ import { TableComponents } from '@/ui/table';
13
13
 
14
14
  - **Exports** - `<%= name %>Table`
15
15
 
16
+ ### `<%= name %>EmptyState`
17
+
18
+ ### `<%= name %>Sort`
19
+
20
+ - **inputs**
21
+
22
+ - `mode`: `'selection' | 'toggle'`
23
+ - `sortFn`: `(data: T[], column: string, direction: 'asc' | 'desc') => T[]`
24
+ - `disableClear`: `boolean`
25
+ - `sortMode`: `'client' | 'server'`
26
+
27
+ - **Outputs**
28
+
29
+ - `sortChange`: `(sort: Sort) => void`
30
+
31
+ ### `<%= name %>SortHeader`
32
+
33
+ - **inputs**
34
+
35
+ - `disableClear`: `boolean`
36
+
37
+ - **Exports** - `<%= name %>SortHeader`
38
+
16
39
  ## Usage
17
40
 
18
41
  ```html
@@ -25,6 +48,23 @@ import { TableComponents } from '@/ui/table';
25
48
  <th <%= name %>Head *<%= name %>HeadDef>Age</th>
26
49
  <td <%= name %>Cell *<%= name %>CellDef="let row">{{row.age}}</td>
27
50
  </ng-container>
51
+ <tr <%= name %>EmptyState>
52
+ No data
53
+ </tr>
54
+ <tr <%= name %>HeadRow *<%= name %>HeadRowDef="columns()"></tr>
55
+ <tr <%= name %>BodyRow *<%= name %>BodyRowDef="let row; columns: columns()"></tr>
56
+ </table>
57
+
58
+ <!-- Table with sort -->
59
+ <table <%= name %>Table [data]="data" [trackBy]="trackBy" <%= name %>Sort>
60
+ <ng-container <%= name %>Column="name">
61
+ <th <%= name %>Head *<%= name %>HeadDef <%= name %>SortHeader>Name</th>
62
+ <td <%= name %>Cell *<%= name %>CellDef="let row">{{row.name}}</td>
63
+ </ng-container>
64
+ <ng-container <%= name %>Column="age">
65
+ <th <%= name %>Head *<%= name %>HeadDef <%= name %>SortHeader>Age</th>
66
+ <td <%= name %>Cell *<%= name %>CellDef="let row">{{row.age}}</td>
67
+ </ng-container>
28
68
  <tr <%= name %>HeadRow *<%= name %>HeadRowDef="columns()"></tr>
29
69
  <tr <%= name %>BodyRow *<%= name %>BodyRowDef="let row; columns: columns()"></tr>
30
70
  </table>
@@ -1,5 +1,17 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
1
  import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ computed,
5
+ Directive,
6
+ inject,
7
+ input,
8
+ } from '@angular/core';
9
+ import {
10
+ aliasBodyRow,
11
+ aliasHeadRow,
12
+ aliasSort,
13
+ aliasSortHeader,
14
+ aliasTable,
3
15
  NgbBodyRow,
4
16
  NgbBodyRowDef,
5
17
  NgbCell,
@@ -9,26 +21,58 @@ import {
9
21
  NgbHeadDef,
10
22
  NgbHeadRow,
11
23
  NgbHeadRowDef,
24
+ NgbSort,
25
+ NgbSortHeader,
12
26
  NgbTable,
13
27
  } from '@ngbase/adk/table';
28
+ import { Select, Option, SelectTrigger } from '<%= basepath %>/select';
29
+ import { FormField, InputSuffix } from '<%= basepath %>/form-field';
30
+ import { Icon } from '<%= basepath %>/icon';
31
+ import { provideIcons } from '@ng-icons/core';
32
+ import {
33
+ lucideArrowDown,
34
+ lucideArrowUp,
35
+ lucideArrowUpDown,
36
+ lucideChevronsUpDown,
37
+ } from '@ng-icons/lucide';
38
+ import { Button } from '<%= basepath %>/button';
39
+ import { NgTemplateOutlet } from '@angular/common';
14
40
 
15
41
  @Component({
16
42
  selector: 'table[<%= name %>Table]',
17
43
  changeDetection: ChangeDetectionStrategy.OnPush,
18
- providers: [{ provide: NgbTable, useExisting: Table }],
44
+ providers: [aliasTable(Table)],
19
45
  template: `
20
46
  <thead>
21
47
  <ng-container #thead />
22
48
  </thead>
23
49
  <tbody>
24
50
  <ng-container #tbody />
51
+ @if (isEmpty()) {
52
+ <ng-content select="[<%= name %>EmptyState]" />
53
+ }
25
54
  </tbody>
26
55
  `,
27
56
  host: {
28
- class: 'w-full text-sm',
57
+ class: 'w-full text-sm border-separate border-spacing-0',
58
+ },
59
+ })
60
+ export class Table<T> extends NgbTable<T> {
61
+ readonly isEmpty = computed(() => this.pluggedData().length === 0);
62
+ }
63
+
64
+ @Component({
65
+ selector: '[<%= name %>EmptyState]',
66
+ template: `<td class="h-24 p-2 text-center align-middle" [attr.colspan]="table.columns().length">
67
+ <ng-content />
68
+ </td>`,
69
+ host: {
70
+ class: 'border-b hover:bg-muted/50 data-[state=selected]:bg-muted',
29
71
  },
30
72
  })
31
- export class Table<T> extends NgbTable<T> {}
73
+ export class EmptyState {
74
+ readonly table = inject(Table);
75
+ }
32
76
 
33
77
  // Cell
34
78
  @Component({
@@ -61,10 +105,10 @@ export class BodyRowDef {}
61
105
  @Component({
62
106
  selector: '[<%= name %>BodyRow]',
63
107
  changeDetection: ChangeDetectionStrategy.OnPush,
64
- providers: [{ provide: NgbBodyRow, useExisting: BodyRow }],
108
+ providers: [aliasBodyRow(BodyRow)],
65
109
  template: `<ng-container #container />`,
66
110
  host: {
67
- class: '[&:not(:last-child)]:border-b hover:bg-muted h-12',
111
+ class: '[&:not(:last-child)>td]:border-b hover:bg-muted h-12',
68
112
  },
69
113
  })
70
114
  export class BodyRow extends NgbBodyRow {}
@@ -79,14 +123,12 @@ export class Column {}
79
123
 
80
124
  // Head Cell
81
125
 
82
- @Component({
126
+ @Directive({
83
127
  selector: '[<%= name %>Head]',
84
- changeDetection: ChangeDetectionStrategy.OnPush,
85
128
  hostDirectives: [NgbHead],
86
- template: `<ng-content />`,
87
129
  host: {
88
130
  class:
89
- 'px-4 py-2 text-left align-middle font-medium text-muted-foreground border-b bg-background',
131
+ 'px-4 py-2 text-left align-middle font-medium text-muted-foreground border-b bg-background [&[data-sticky]]:sticky [&[data-sticky]]:!z-20 [&[data-sticky="start"]]:left-0 [&[data-sticky="end"]]:right-0 [&[data-sticky="start"]]:border-r [&[data-sticky="end"]]:border-l',
90
132
  },
91
133
  })
92
134
  export class Head {}
@@ -102,10 +144,10 @@ export class HeadDef {}
102
144
  @Component({
103
145
  selector: '[<%= name %>HeadRow]',
104
146
  changeDetection: ChangeDetectionStrategy.OnPush,
105
- providers: [{ provide: NgbHeadRow, useExisting: HeadRow }],
147
+ providers: [aliasHeadRow(HeadRow)],
106
148
  template: `<ng-container #container />`,
107
149
  host: {
108
- class: `h-10 [&[data-sticky=true]]:sticky [&[data-sticky=true]]:top-0 [&[data-sticky=true]]:bg-background`,
150
+ class: `h-10 [&[data-sticky]>th]:sticky [&[data-sticky]>th]:top-0 [&[data-sticky]>th]:bg-background [&[data-sticky]>th]:z-10`,
109
151
  },
110
152
  })
111
153
  export class HeadRow extends NgbHeadRow {}
@@ -120,3 +162,54 @@ export class HeadRow extends NgbHeadRow {}
120
162
  ],
121
163
  })
122
164
  export class HeadRowDef {}
165
+
166
+ @Directive({
167
+ selector: '[<%= name %>Sort]',
168
+ exportAs: '<%= name %>Sort',
169
+ providers: [aliasSort(Sort)],
170
+ })
171
+ export class Sort extends NgbSort<any> {
172
+ readonly mode = input<'selection' | 'toggle'>('toggle');
173
+ }
174
+
175
+ @Component({
176
+ selector: '[<%= name %>SortHeader]',
177
+ changeDetection: ChangeDetectionStrategy.OnPush,
178
+ viewProviders: [
179
+ provideIcons({ lucideChevronsUpDown, lucideArrowDown, lucideArrowUp, lucideArrowUpDown }),
180
+ ],
181
+ providers: [aliasSortHeader(SortHeader)],
182
+ imports: [Select, Option, SelectTrigger, FormField, InputSuffix, Icon, Button, NgTemplateOutlet],
183
+ template: `
184
+ <ng-template #temp><ng-content /></ng-template>
185
+ @if (sort.mode() === 'selection') {
186
+ <<%= name %>-form-field class="[&>.mis]:h-8 [&>.mis]:min-h-8 [&>.mis]:border-none">
187
+ <<%= name %>-select noIcon>
188
+ <div <%= name %>SelectTrigger class="text-xs"><ng-container *ngTemplateOutlet="temp" /></div>
189
+ <<%= name %>-option value="asc" (click)="setDirections('asc')">Asc</<%= name %>-option>
190
+ <<%= name %>-option value="desc" (click)="setDirections('desc')">Desc</<%= name %>-option>
191
+ </<%= name %>-select>
192
+ <<%= name %>-icon <%= name %>Suffix [name]="directionIcon()" class="!ml-0.5 text-muted-foreground" />
193
+ </<%= name %>-form-field>
194
+ } @else {
195
+ <button <%= name %>Button="ghost" class="h-8 gap-0.5 !px-2" (click)="toggle()">
196
+ <ng-container *ngTemplateOutlet="temp" />
197
+ <<%= name %>-icon [name]="directionIcon()" />
198
+ </button>
199
+ }
200
+ `,
201
+ host: {
202
+ class: '!py-1 !px-2',
203
+ },
204
+ })
205
+ export class SortHeader extends NgbSortHeader<Sort> {
206
+ readonly directionIcon = computed(() => {
207
+ return this.sortDirection() === 'asc'
208
+ ? 'lucideArrowDown'
209
+ : this.sortDirection() === 'desc'
210
+ ? 'lucideArrowUp'
211
+ : this.sort.mode() === 'selection'
212
+ ? 'lucideChevronsUpDown'
213
+ : 'lucideArrowUpDown';
214
+ });
215
+ }
@@ -6,16 +6,20 @@ export declare class NgbBodyRowDef {
6
6
  readonly ngbBodyRowDefColumns: import("@angular/core").InputSignal<string[]>;
7
7
  context: any;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbBodyRowDef, never>;
9
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBodyRowDef, "[ngbBodyRowDef]", never, { "ngbBodyRowDefColumns": { "alias": "ngbBodyRowDefColumns"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBodyRowDef, "[ngbBodyRowDef]", never, { "ngbBodyRowDefColumns": { "alias": "ngbBodyRowDefColumns"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
10
10
  }
11
11
  export declare class NgbBodyRow implements OnDestroy {
12
- readonly def: any;
12
+ readonly rowData: import("@angular/core").WritableSignal<any>;
13
13
  readonly table: NgbTable<any>;
14
14
  readonly rowDef: NgbBodyRowDef;
15
- readonly container: import("@angular/core").Signal<ViewContainerRef | undefined>;
15
+ readonly container: import("@angular/core").Signal<ViewContainerRef>;
16
16
  readonly ref: Map<NgbColumn, EmbeddedViewRef<any>>;
17
17
  constructor();
18
18
  ngOnDestroy(): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbBodyRow, never>;
20
20
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBodyRow, "[ngbBodyRow]", never, {}, {}, never, never, true, never>;
21
21
  }
22
+ export declare function aliasBodyRow(row: typeof NgbBodyRow): {
23
+ provide: typeof NgbBodyRow;
24
+ useExisting: typeof NgbBodyRow;
25
+ };
@@ -3,19 +3,22 @@ import { NgbColumn } from './column';
3
3
  import { NgbTable } from './table';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class NgbHeadRowDef {
6
- readonly ngbHeadRowDef: import("@angular/core").InputSignal<string[] | undefined>;
6
+ readonly ngbHeadRowDef: import("@angular/core").InputSignal<string[]>;
7
7
  readonly ngbHeadRowDefSticky: import("@angular/core").InputSignal<unknown>;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbHeadRowDef, never>;
9
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgbHeadRowDef, "[ngbHeadRowDef]", never, { "ngbHeadRowDef": { "alias": "ngbHeadRowDef"; "required": false; "isSignal": true; }; "ngbHeadRowDefSticky": { "alias": "ngbHeadRowDefSticky"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbHeadRowDef, "[ngbHeadRowDef]", never, { "ngbHeadRowDef": { "alias": "ngbHeadRowDef"; "required": true; "isSignal": true; }; "ngbHeadRowDefSticky": { "alias": "ngbHeadRowDefSticky"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
10
  }
11
11
  export declare class NgbHeadRow implements OnDestroy {
12
- def: any;
13
- table: NgbTable<any>;
14
- container: import("@angular/core").Signal<ViewContainerRef | undefined>;
15
- ref: Map<NgbColumn, EmbeddedViewRef<any>>;
16
- headDef: NgbHeadRowDef;
12
+ readonly headDef: NgbHeadRowDef;
13
+ readonly table: NgbTable<any>;
14
+ readonly container: import("@angular/core").Signal<ViewContainerRef>;
15
+ readonly ref: Map<NgbColumn, EmbeddedViewRef<any>>;
17
16
  constructor();
18
17
  ngOnDestroy(): void;
19
18
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbHeadRow, never>;
20
19
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbHeadRow, "[ngbHeadRow]", never, {}, {}, never, never, true, never>;
21
20
  }
21
+ export declare function aliasHeadRow(headRow: typeof NgbHeadRow): {
22
+ provide: typeof NgbHeadRow;
23
+ useExisting: typeof NgbHeadRow;
24
+ };
@@ -1,8 +1,8 @@
1
1
  import { NgbCell, NgbCellDef } from './body-cell';
2
- import { NgbBodyRow, NgbBodyRowDef } from './body-row';
2
+ import { NgbBodyRow, NgbBodyRowDef, aliasBodyRow } from './body-row';
3
3
  import { NgbColumn } from './column';
4
4
  import { NgbHead, NgbHeadDef } from './head-cell';
5
- import { NgbHeadRow, NgbHeadRowDef } from './head-row';
6
- import { NgbTable } from './table';
7
- declare const TableComponents: (typeof NgbHeadDef)[];
8
- export { NgbBodyRow, NgbBodyRowDef, NgbCell, NgbCellDef, NgbHead, NgbHeadDef, NgbHeadRow, NgbHeadRowDef, NgbColumn, NgbTable, TableComponents, };
5
+ import { NgbHeadRow, NgbHeadRowDef, aliasHeadRow } from './head-row';
6
+ import { aliasSort, aliasSortHeader, NgbSort, NgbSortHeader } from './sort';
7
+ import { NgbTable, aliasTable } from './table';
8
+ export { NgbBodyRow, NgbBodyRowDef, NgbCell, NgbCellDef, NgbColumn, NgbHead, NgbHeadDef, NgbHeadRow, NgbHeadRowDef, NgbSort, NgbSortHeader, NgbTable, aliasBodyRow, aliasHeadRow, aliasSort, aliasSortHeader, aliasTable, };