@angular-bootstrap/ngbootstrap 0.0.11 → 0.0.12
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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-bootstrap/ngbootstrap",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Angular UI library providing datagrid, drag-and-drop, pagination, stepper, splitter, typeahead and chips components with Bootstrap-friendly styling.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Harmeet Singh"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, AfterContentInit, OnChanges, EventEmitter, SimpleChanges, InjectionToken, QueryList,
|
|
2
|
+
import { TemplateRef, AfterContentInit, AfterViewInit, OnChanges, ElementRef, EventEmitter, SimpleChanges, InjectionToken, QueryList, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { AbstractControl, FormGroup, FormControl, ControlValueAccessor } from '@angular/forms';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
|
|
@@ -175,9 +175,43 @@ declare class ExportButtonDirective {
|
|
|
175
175
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ExportButtonDirective, "[ngbExportButton]", never, {}, {}, never, never, true, never>;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
interface HighlightItem {
|
|
179
|
+
row: any;
|
|
180
|
+
columnKey?: any;
|
|
181
|
+
}
|
|
182
|
+
|
|
178
183
|
type SortDir = 'asc' | 'desc' | '';
|
|
179
184
|
type KeyOf<T> = Extract<keyof T, string>;
|
|
180
|
-
|
|
185
|
+
type NgbTableResponsive = true | false | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
186
|
+
interface NgbTableOptions {
|
|
187
|
+
stripedRows?: boolean;
|
|
188
|
+
stripedColumns?: boolean;
|
|
189
|
+
hoverRows?: boolean;
|
|
190
|
+
activeRows?: boolean;
|
|
191
|
+
bordered?: boolean;
|
|
192
|
+
borderless?: boolean;
|
|
193
|
+
small?: boolean;
|
|
194
|
+
groupDividers?: boolean;
|
|
195
|
+
align?: 'top' | 'middle' | 'bottom';
|
|
196
|
+
caption?: string;
|
|
197
|
+
captionSide?: 'top' | 'bottom';
|
|
198
|
+
responsive?: NgbTableResponsive;
|
|
199
|
+
stickyHeader?: boolean;
|
|
200
|
+
stickyFooter?: boolean;
|
|
201
|
+
stickyRows?: boolean;
|
|
202
|
+
}
|
|
203
|
+
type NgbSelectionMode = 'none' | 'single' | 'multiple';
|
|
204
|
+
type NgbSelectionBehavior = 'row' | 'checkbox' | 'both';
|
|
205
|
+
type NgbSelectionKeyMode = 'desktop' | 'mobile';
|
|
206
|
+
type NgbRowKey = string | ((row: any, rowIndex: number) => any);
|
|
207
|
+
type NgbColKey = string | ((column: any, columnIndex: number) => any);
|
|
208
|
+
interface NgbSelectionLabels {
|
|
209
|
+
selectAll?: string;
|
|
210
|
+
unselectAll?: string;
|
|
211
|
+
selectRow?: string;
|
|
212
|
+
unselectRow?: string;
|
|
213
|
+
}
|
|
214
|
+
declare class Datagrid<T = any> implements AfterContentInit, AfterViewInit, OnChanges {
|
|
181
215
|
/** Column definitions to render */
|
|
182
216
|
columns: ColumnDef<T>[];
|
|
183
217
|
/** Row data to display */
|
|
@@ -194,6 +228,41 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
194
228
|
addButtonAriaLabel: string | null;
|
|
195
229
|
/** Visible text rendered inside the add-row button. */
|
|
196
230
|
addButtonText: string;
|
|
231
|
+
/** Shows sticky toggle column and keeps pinned rows at the top of the list. */
|
|
232
|
+
stickyRows: boolean;
|
|
233
|
+
/** Enables sticky column header when scrolling. */
|
|
234
|
+
stickyHeader: boolean;
|
|
235
|
+
/** Enables sticky footer when scrolling. */
|
|
236
|
+
stickyFooter: boolean;
|
|
237
|
+
/** Enables scroll container (used when pagination is off). */
|
|
238
|
+
scrollable: boolean;
|
|
239
|
+
/** Row height used to stack multiple sticky rows without overlap (px). */
|
|
240
|
+
stickyRowHeight: number;
|
|
241
|
+
/** Header height (px) used to offset sticky rows below the header. */
|
|
242
|
+
stickyHeaderHeight: number;
|
|
243
|
+
/** Footer height (px) used to offset scrollable area. */
|
|
244
|
+
stickyFooterHeight: number;
|
|
245
|
+
/** Bootstrap-like table styling options. */
|
|
246
|
+
tableOptions: NgbTableOptions;
|
|
247
|
+
/** Selection mode for rows. */
|
|
248
|
+
selectionMode: NgbSelectionMode;
|
|
249
|
+
/** Selection activation: row click, checkbox only, or both. */
|
|
250
|
+
selectionBehavior: NgbSelectionBehavior;
|
|
251
|
+
/** Keyboard modifier rules for multi-select. */
|
|
252
|
+
selectionKeyMode: NgbSelectionKeyMode;
|
|
253
|
+
/** Enable header select-all checkbox for multiple mode. */
|
|
254
|
+
selectAllEnabled: boolean;
|
|
255
|
+
/** A11y labels for selection controls. */
|
|
256
|
+
selectionA11yLabels: NgbSelectionLabels;
|
|
257
|
+
/** Disable selection for specific rows. */
|
|
258
|
+
selectionDisabledFn?: (row: T, index: number) => boolean;
|
|
259
|
+
/** Highlight items (row/cell). */
|
|
260
|
+
highlightedIndex: HighlightItem[];
|
|
261
|
+
/** Row key for highlighting. */
|
|
262
|
+
highlightRowKey: NgbRowKey | null;
|
|
263
|
+
/** Column key for highlighting. */
|
|
264
|
+
highlightColKey: NgbColKey | null;
|
|
265
|
+
scrollbarWidth: number;
|
|
197
266
|
/** Accessible label for the global filter input. */
|
|
198
267
|
globalFilterAriaLabel: string;
|
|
199
268
|
/** Accessible label announced when expanding a row. */
|
|
@@ -217,6 +286,9 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
217
286
|
dataProviderAll?: () => Observable<any[]> | Promise<any[]> | any[];
|
|
218
287
|
dataProviderSelection?: () => any[];
|
|
219
288
|
exportButtonDir?: ExportButtonDirective;
|
|
289
|
+
bodyScroller?: ElementRef<HTMLElement>;
|
|
290
|
+
headerScroller?: ElementRef<HTMLElement>;
|
|
291
|
+
colgroupSyncId: string;
|
|
220
292
|
exporting: boolean;
|
|
221
293
|
rowAdd: EventEmitter<{
|
|
222
294
|
newRow: T;
|
|
@@ -250,6 +322,14 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
250
322
|
page: number;
|
|
251
323
|
pageSize: number;
|
|
252
324
|
}>;
|
|
325
|
+
selectionChange: EventEmitter<{
|
|
326
|
+
selected: T[];
|
|
327
|
+
lastAction: {
|
|
328
|
+
row: T;
|
|
329
|
+
index: number;
|
|
330
|
+
selected: boolean;
|
|
331
|
+
} | null;
|
|
332
|
+
}>;
|
|
253
333
|
rowDetailTpl?: NgbRowDetailTemplate<T>;
|
|
254
334
|
private exporter;
|
|
255
335
|
expanded: Set<number>;
|
|
@@ -263,6 +343,10 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
263
343
|
active: Extract<keyof T, string> | null;
|
|
264
344
|
direction: SortDir;
|
|
265
345
|
};
|
|
346
|
+
stickyRowIds: Set<any>;
|
|
347
|
+
selectedRowIds: Set<any>;
|
|
348
|
+
private selectionAnchor;
|
|
349
|
+
private highlightRowMap;
|
|
266
350
|
globalFilter: string;
|
|
267
351
|
filters: Record<string, string>;
|
|
268
352
|
page: number;
|
|
@@ -275,6 +359,7 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
275
359
|
saveAttemptedNew: boolean;
|
|
276
360
|
private addDraftRowId;
|
|
277
361
|
private readonly defaultEditService;
|
|
362
|
+
private cdr;
|
|
278
363
|
private norm;
|
|
279
364
|
private keyOf;
|
|
280
365
|
private getDefaults;
|
|
@@ -290,13 +375,20 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
290
375
|
get anyFilterable(): boolean;
|
|
291
376
|
get startIndex(): number;
|
|
292
377
|
get endIndex(): number;
|
|
378
|
+
get shouldEnableScroll(): boolean;
|
|
379
|
+
get isHeaderSticky(): boolean;
|
|
380
|
+
get isFooterSticky(): boolean;
|
|
293
381
|
get detailColspan(): number;
|
|
382
|
+
get tableClassList(): string[];
|
|
383
|
+
get responsiveWrapperClasses(): string[];
|
|
384
|
+
updateHighlightCache(): void;
|
|
294
385
|
headerText(col: ColumnDef<T>): string;
|
|
295
386
|
columnFilterAriaLabel(col: ColumnDef<T>): string;
|
|
296
387
|
inputAriaLabel(col: ColumnDef<T>): string;
|
|
297
388
|
ariaSortFor(field: Extract<keyof T, string>): 'ascending' | 'descending' | 'none';
|
|
298
389
|
sortButtonAriaLabel(col: ColumnDef<T>): string;
|
|
299
390
|
exportAriaLabel(kind: 'pdf' | 'excel'): string;
|
|
391
|
+
private withStickyRowsFirst;
|
|
300
392
|
private dataIndexFromPaged;
|
|
301
393
|
private rebuildFilterForm;
|
|
302
394
|
private cellTplQ;
|
|
@@ -312,6 +404,7 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
312
404
|
export(kind: 'pdf' | 'excel'): Promise<void>;
|
|
313
405
|
private resolveDataset;
|
|
314
406
|
ngAfterContentInit(): void;
|
|
407
|
+
ngAfterViewInit(): void;
|
|
315
408
|
ngOnChanges(ch: SimpleChanges): void;
|
|
316
409
|
private getRowId;
|
|
317
410
|
private getEditService;
|
|
@@ -325,6 +418,10 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
325
418
|
validateInto(col: ColumnDef<T>, targetDraft: Partial<Record<KeyOf<T>, any>> | null, targetErrors: Partial<Record<KeyOf<T>, string>>): void;
|
|
326
419
|
deleteRow(i: number): void;
|
|
327
420
|
trackRow: (index: number, row: T) => any;
|
|
421
|
+
private rowKeyValue;
|
|
422
|
+
private colKeyValue;
|
|
423
|
+
isRowHighlighted(row: T, rowIndex: number): boolean;
|
|
424
|
+
isCellHighlighted(row: T, rowIndex: number, column: ColumnDef<T>, colIndex: number): boolean;
|
|
328
425
|
toggleSort(field: Extract<keyof T, string>): void;
|
|
329
426
|
onGlobalFilterChange(): void;
|
|
330
427
|
onColumnFilterChange(): void;
|
|
@@ -338,8 +435,29 @@ declare class Datagrid<T = any> implements AfterContentInit, OnChanges {
|
|
|
338
435
|
asBool(v: any): boolean;
|
|
339
436
|
triggerExport(kind: 'pdf' | 'excel'): void;
|
|
340
437
|
isResponsiveEnabled(): boolean;
|
|
438
|
+
isRowSticky(row: T, pagedIndex: number): boolean;
|
|
439
|
+
toggleStickyRow(pagedIndex: number): void;
|
|
440
|
+
stickyIcon(row: T, pagedIndex: number): string;
|
|
441
|
+
stickyTop(row: T, pagedIndex: number): number | null;
|
|
442
|
+
get stickyRowsEnabled(): boolean;
|
|
443
|
+
get stickyHeaderEnabled(): boolean;
|
|
444
|
+
get stickyFooterEnabled(): boolean;
|
|
445
|
+
isSelectionEnabled(): boolean;
|
|
446
|
+
isCheckboxOnly(): boolean;
|
|
447
|
+
isSelectionDisabled(row: T, pagedIndex: number): boolean;
|
|
448
|
+
isRowSelected(row: T, pagedIndex: number): boolean;
|
|
449
|
+
toggleSelection(pagedIndex: number, event?: Event): void;
|
|
450
|
+
private emitSelection;
|
|
451
|
+
toggleSelectAllCurrentPage(): void;
|
|
452
|
+
isPageAllSelected(): boolean;
|
|
453
|
+
isPageIndeterminate(): boolean;
|
|
454
|
+
selectAllLabel(): string;
|
|
455
|
+
rowSelectionLabel(index: number): string;
|
|
456
|
+
onRowSelect(ev: MouseEvent, pagedIndex: number): void;
|
|
457
|
+
onHeaderScroll(): void;
|
|
458
|
+
private syncScrollbarWidth;
|
|
341
459
|
static ɵfac: i0.ɵɵFactoryDeclaration<Datagrid<any>, never>;
|
|
342
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Datagrid<any>, "ngb-datagrid", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "enableSorting": { "alias": "enableSorting"; "required": false; }; "enableFiltering": { "alias": "enableFiltering"; "required": false; }; "enableGlobalFilter": { "alias": "enableGlobalFilter"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; }; "enableEdit": { "alias": "enableEdit"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "enableAdd": { "alias": "enableAdd"; "required": false; }; "addButtonAriaLabel": { "alias": "addButtonAriaLabel"; "required": false; }; "addButtonText": { "alias": "addButtonText"; "required": false; }; "globalFilterAriaLabel": { "alias": "globalFilterAriaLabel"; "required": false; }; "expandRowAriaLabel": { "alias": "expandRowAriaLabel"; "required": false; }; "collapseRowAriaLabel": { "alias": "collapseRowAriaLabel"; "required": false; }; "exportPdfAriaLabel": { "alias": "exportPdfAriaLabel"; "required": false; }; "exportExcelAriaLabel": { "alias": "exportExcelAriaLabel"; "required": false; }; "newRowDefaults": { "alias": "newRowDefaults"; "required": false; }; "strictEmail": { "alias": "strictEmail"; "required": false; }; "editOnRowClick": { "alias": "editOnRowClick"; "required": false; }; "singleExpand": { "alias": "singleExpand"; "required": false; }; "exportOptions": { "alias": "exportOptions"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "editService": { "alias": "editService"; "required": false; }; "dataProviderAll": { "alias": "dataProviderAll"; "required": false; }; "dataProviderSelection": { "alias": "dataProviderSelection"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "rowAdd": "rowAdd"; "rowEdit": "rowEdit"; "rowSave": "rowSave"; "rowCancel": "rowCancel"; "rowDelete": "rowDelete"; "sortChange": "sortChange"; "filtersChange": "filtersChange"; "pageChange": "pageChange"; }, ["exportButtonDir", "rowDetailTpl", "cellTplQ", "editTplQ", "filterTplQ", "globalTplQ"], never, true, never>;
|
|
460
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Datagrid<any>, "ngb-datagrid", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "enableSorting": { "alias": "enableSorting"; "required": false; }; "enableFiltering": { "alias": "enableFiltering"; "required": false; }; "enableGlobalFilter": { "alias": "enableGlobalFilter"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; }; "enableEdit": { "alias": "enableEdit"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "enableAdd": { "alias": "enableAdd"; "required": false; }; "addButtonAriaLabel": { "alias": "addButtonAriaLabel"; "required": false; }; "addButtonText": { "alias": "addButtonText"; "required": false; }; "stickyRows": { "alias": "stickyRows"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "stickyFooter": { "alias": "stickyFooter"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "stickyRowHeight": { "alias": "stickyRowHeight"; "required": false; }; "stickyHeaderHeight": { "alias": "stickyHeaderHeight"; "required": false; }; "stickyFooterHeight": { "alias": "stickyFooterHeight"; "required": false; }; "tableOptions": { "alias": "tableOptions"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; }; "selectionKeyMode": { "alias": "selectionKeyMode"; "required": false; }; "selectAllEnabled": { "alias": "selectAllEnabled"; "required": false; }; "selectionA11yLabels": { "alias": "selectionA11yLabels"; "required": false; }; "selectionDisabledFn": { "alias": "selectionDisabledFn"; "required": false; }; "highlightedIndex": { "alias": "highlightedIndex"; "required": false; }; "highlightRowKey": { "alias": "highlightRowKey"; "required": false; }; "highlightColKey": { "alias": "highlightColKey"; "required": false; }; "globalFilterAriaLabel": { "alias": "globalFilterAriaLabel"; "required": false; }; "expandRowAriaLabel": { "alias": "expandRowAriaLabel"; "required": false; }; "collapseRowAriaLabel": { "alias": "collapseRowAriaLabel"; "required": false; }; "exportPdfAriaLabel": { "alias": "exportPdfAriaLabel"; "required": false; }; "exportExcelAriaLabel": { "alias": "exportExcelAriaLabel"; "required": false; }; "newRowDefaults": { "alias": "newRowDefaults"; "required": false; }; "strictEmail": { "alias": "strictEmail"; "required": false; }; "editOnRowClick": { "alias": "editOnRowClick"; "required": false; }; "singleExpand": { "alias": "singleExpand"; "required": false; }; "exportOptions": { "alias": "exportOptions"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "editService": { "alias": "editService"; "required": false; }; "dataProviderAll": { "alias": "dataProviderAll"; "required": false; }; "dataProviderSelection": { "alias": "dataProviderSelection"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "rowAdd": "rowAdd"; "rowEdit": "rowEdit"; "rowSave": "rowSave"; "rowCancel": "rowCancel"; "rowDelete": "rowDelete"; "sortChange": "sortChange"; "filtersChange": "filtersChange"; "pageChange": "pageChange"; "selectionChange": "selectionChange"; }, ["exportButtonDir", "rowDetailTpl", "cellTplQ", "editTplQ", "filterTplQ", "globalTplQ"], never, true, never>;
|
|
343
461
|
}
|
|
344
462
|
|
|
345
463
|
interface PdfExportPayload {
|
|
@@ -888,4 +1006,4 @@ declare class NgbChipsComponent {
|
|
|
888
1006
|
}
|
|
889
1007
|
|
|
890
1008
|
export { DATAGRID_TEMPLATE_DIRECTIVES, DND_I18N, DND_LIVE_ANNOUNCE, Datagrid, ExcelExportAdapter, ExportButtonDirective, JsPdfAdapter, NgbCellTemplate, NgbChipsComponent, NgbDatagridDefaultEditService, NgbDndItemDirective, NgbDndListDirective, NgbDndState, NgbEditorTemplate, NgbExportService, NgbFilterTemplate, NgbGlobalFilterTemplate, NgbLiveAnnouncer, NgbPaginationComponent, NgbRowDetailTemplate, NgbSplitterComponent, NgbSplitterPaneComponent, NgbStepLabelDirective, NgbStepperComponent, NgbTreeComponent, NgbTypeaheadComponent, PdfExportAdapter, XlsxAdapter, defaultDndI18n };
|
|
891
|
-
export type { CellCtx, ColumnDef, ColumnType, DndCanDropFn, DndCanDropPayload, DndI18n, DndSession, EditCtx, ExcelExportPayload, ExportButtonContext, FilterCtx, GlobalFilterCtx, NgbChip, NgbDataGridExportOptions, NgbDataGridExportPages, NgbDataGridExportType, NgbDataGridResponsiveOptions, NgbDataGridTheme, NgbDatagridEditService, NgbDatagridTrackByFn, NgbDndDropEvent, NgbSplitterOrientation, NgbSplitterPaneSize, NgbStepperContentPosition, NgbStepperLabelPosition, NgbStepperOrientation, NgbStepperSelectionChangeEvent, NgbStepperState, NgbStepperStep, NgbStepperTheme, NgbTreeI18n, NgbTreeNode, NgbTreeType, NgbTypeaheadI18n, NgbTypeaheadItem, PdfExportPayload };
|
|
1009
|
+
export type { CellCtx, ColumnDef, ColumnType, DndCanDropFn, DndCanDropPayload, DndI18n, DndSession, EditCtx, ExcelExportPayload, ExportButtonContext, FilterCtx, GlobalFilterCtx, NgbChip, NgbColKey, NgbDataGridExportOptions, NgbDataGridExportPages, NgbDataGridExportType, NgbDataGridResponsiveOptions, NgbDataGridTheme, NgbDatagridEditService, NgbDatagridTrackByFn, NgbDndDropEvent, NgbRowKey, NgbSelectionBehavior, NgbSelectionKeyMode, NgbSelectionLabels, NgbSelectionMode, NgbSplitterOrientation, NgbSplitterPaneSize, NgbStepperContentPosition, NgbStepperLabelPosition, NgbStepperOrientation, NgbStepperSelectionChangeEvent, NgbStepperState, NgbStepperStep, NgbStepperTheme, NgbTableOptions, NgbTableResponsive, NgbTreeI18n, NgbTreeNode, NgbTreeType, NgbTypeaheadI18n, NgbTypeaheadItem, PdfExportPayload };
|